lkml.org 
[lkml]   [2008]   [Sep]   [16]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateTue, 16 Sep 2008 09:14:03 +0200
FromMarco Stornelli <>
SubjectRe: [PATCH 1/1] avr32: added mem kernel command line option support
From: Marco Stornelli <marco.stornelli@gmail.com>

Now is it ok? Sorry but it's the first time I submit a patch for the kernel.
Signed-off-by: Marco Stornelli <marco.stornelli@gmail.com>
---
--- linux-2.6.26.3/arch/avr32/kernel/setup.c.orig	2008-09-15
11:30:00.000000000 +0200
+++ linux-2.6.26.3/arch/avr32/kernel/setup.c	2008-09-16
09:06:31.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 17:30:48 +0200 Marco Stornelli wrote:
> 
>> 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);
> 
> Lots of whitespace damage here.  Your first patch looked OK
> for whitespace, so something changed....
> 
> 
>> +
>> + 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


\
 
 \ /
  Last update: 2008-09-16 09:15    [from the cache]
©2003-2008