Messages in this thread Patch in this message | | | Date | Mon, 15 Sep 2008 17:30:48 +0200 | From | Marco Stornelli <> | Subject | Re: [PATCH 1/1] avr32: added mem kernel command line option support |
| |
From: Marco Stornelli <marco.stornelli@gmail.com>
Fixed the type of size and start, now they are resource_size_t. Fixed the double pointer parameter, now it's only a single pointer. Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com> --- --- linux-2.6.26.5/arch/avr32/kernel/setup.c.orig 2008-09-15 11:30:00.000000000 +0200
+++ linux-2.6.26.5/arch/avr32/kernel/setup.c 2008-09-15 11:30:17.000000000 +0200 @@ -283,6 +283,25 @@ static int __init early_parse_fbmem(char } early_param("fbmem", early_parse_fbmem);
+/* + * Pick out the memory size. We look for mem=size@start, + * where start and size are "size[KkMmGg]" + */ +static int __init early_mem(char *p) +{ + resource_size_t size, start; + + start = system_ram->start; + size = memparse(p, &p); + if (**p == '@') + start = memparse(p + 1, &p); + + system_ram->start = start; + system_ram->end = system_ram->start + size - 1; + return 0; +} +early_param("mem", early_mem); + static int __init parse_tag_core(struct tag *tag) { if (tag->hdr.size > 2) {
Randy Dunlap ha scritto: > On Mon, 15 Sep 2008 16:57:10 +0200 Marco Stornelli wrote: > > >> If you see the above function early_parse_fbmem: >> >> static int __init early_parse_fbmem(char *p) >> { >> int ret; >> unsigned long align; >> >> fbmem_size = memparse(p, &p); >> ......... >> >> where fbmem_size is a resource_size_t (u32 because avr32 is a 32-bit >> architecture), so I used the same philosophy. Maybe I can remove >> unsigned long and replace it with resource_size_t to be more uniform. >> > > Yes, I think that would be better. > > Thanks. > > >> Randy Dunlap ha scritto: >> >>> On Mon, 15 Sep 2008 12:07:19 +0200 Marco Stornelli wrote: >>> >>> >>> >>>> From: Marco Stornelli <marco.stornelli@gmail.com> >>>> >>>> Added support for the mem kernel command line option >>>> Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com> >>>> --- >>>> --- setup.c.orig 2008-09-15 11:30:00.000000000 +0200 >>>> +++ setup.c 2008-09-15 11:30:17.000000000 +0200 >>>> @@ -283,6 +283,25 @@ static int __init early_parse_fbmem(char >>>> } >>>> early_param("fbmem", early_parse_fbmem); >>>> >>>> +/* >>>> + * Pick out the memory size. We look for mem=size@start, >>>> + * where start and size are "size[KkMm]" >>>> >>>> >>> [KkMmGg] >>> >>> >>> >>>> + */ >>>> +static int __init early_mem(char **p) >>>> +{ >>>> + unsigned long size, start; >>>> + >>>> + start = system_ram->start; >>>> + size = memparse(*p, p); >>>> >>>> >>> memparse() returns an unsigned long long. Is the truncation OK for avr32? >>> >>> >>> >>>> + if (**p == '@') >>>> + start = memparse(*p + 1, p); >>>> + >>>> + system_ram->start = start; >>>> + system_ram->end = system_ram->start + size - 1; >>>> + return 0; >>>> +} >>>> +early_param("mem", early_mem); >>>> + >>>> static int __init parse_tag_core(struct tag *tag) >>>> { >>>> if (tag->hdr.size > 2) { >>>> -- >>>> > > > --- > ~Randy > Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA > http://linuxplumbersconf.org/ > >
-- Marco Stornelli Embedded Software Engineer CoRiTeL - Consorzio di Ricerca sulle Telecomunicazioni http://www.coritel.it
marco.stornelli@coritel.it +39 06 72582838
| |