]> git.pld-linux.org Git - packages/kernel.git/blob - jam-08-memparam.patch
- added description of djurban's branch
[packages/kernel.git] / jam-08-memparam.patch
1         Fix mem=XXX kernel parameter when user gives a size bigger than what
2         kernel autodetected (kill a previous change)
3         Author: Adrian Bunk <bunk@fs.tum.de>,
4                         Leonardo Gomes Figueira <sabbath@planetarium.com.br>
5
6 --- linux/arch/i386/kernel/setup.c.original     Mon Jul 22 21:44:45 2002
7 +++ linux/arch/i386/kernel/setup.c      Tue Jul 23 03:38:08 2002
8 @@ -770,21 +770,29 @@
9                                 userdef = 1;
10                         } else {
11                                 /* If the user specifies memory size, we
12 -                                * limit the BIOS-provided memory map to
13 -                                * that size. exactmap can be used to specify
14 -                                * the exact map. mem=number can be used to
15 -                                * trim the existing memory map.
16 +                                * blow away any automatically generated
17 +                                * size
18                                  */
19                                 unsigned long long start_at, mem_size;
20   
21 +                               if (userdef == 0) {
22 +                                       /* first time in: zap the whitelist
23 +                                        * and reinitialize it with the
24 +                                        * standard low-memory region.
25 +                                        */
26 +                                       e820.nr_map = 0;
27 +                                       userdef = 1;
28 +                                       add_memory_region(0, LOWMEMSIZE(), E820_RAM);
29 +                               }
30                                 mem_size = memparse(from+4, &from);
31 -                               if (*from == '@') {
32 +                               if (*from == '@')
33                                         start_at = memparse(from+1, &from);
34 -                                       add_memory_region(start_at, mem_size, E820_RAM);
35 -                               } else {
36 -                                       limit_regions(mem_size);
37 +                               else {
38 +                                       start_at = HIGH_MEMORY;
39 +                                       mem_size -= HIGH_MEMORY;
40                                         userdef=1;
41                                 }
42 +                               add_memory_region(start_at, mem_size, E820_RAM);
43                         }
44                 }
45  
This page took 0.643412 seconds and 3 git commands to generate.