Re: [PATCH v2 2/2] x86, range: Do not add new blank slot with add_range_with_merge

From: Joshua C.
Date: Wed Jun 12 2013 - 17:12:46 EST


2013/6/11 Yinghai Lu <yinghai@xxxxxxxxxx>:
> On Tue, Jun 11, 2013 at 10:08 AM, Joshua C. <joshuacov@xxxxxxxxx> wrote:
>> 2013/6/11 Yinghai Lu <yinghai@xxxxxxxxxx>:
>>> On Tue, Jun 11, 2013 at 3:04 AM, Joshua C. <joshuacov@xxxxxxxxx> wrote:
>>>> 2013/6/11 Joshua C. <joshuacov@xxxxxxxxx>:
>>>>> 2013/6/10 Yinghai Lu <yinghai@xxxxxxxxxx>:
>>>>>> On Mon, Jun 10, 2013 at 3:55 AM, Sergey Meirovich <rathamahata@xxxxxxxxx> wrote:
>>>>>>
>>>>>>> patches 1,2(latest one) have not helped me on 3.9.5:
>>>>>>
>>>>>> So v1:
>>>>>> https://patchwork.kernel.org/patch/2694981/
>>>>>> https://patchwork.kernel.org/patch/2694971/
>>>>>>
>>>>>> and v2:
>>>>>> https://patchwork.kernel.org/patch/2695891/
>>>>>> https://patchwork.kernel.org/patch/2695881/
>>>>>>
>>>>>> Neither of two versions fix the problem on your setup?
>>>>>>
>>>>>> Can you post boot log with mtrr_cleanup_debug on 3.9.4?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> Yinghai
>>>>>
>>>>> I got some warnings when trying to build v2 of the patches:
>>>>>
>>>>> # make -s ARCH=x86_64 V=1 -j4 bzImage
>>>>> kernel/range.c: In function 'add_range_with_merge':
>>>>> kernel/range.c:51:3: error: implicit declaration of function 'memmove'
>>>>> [-Werror=implicit-function-declaration]
>>>>> kernel/range.c:51:3: warning: incompatible implicit declaration of
>>>>> built-in function 'memmove' [enabled by default]
>>>>> cc1: some warnings being treated as errors
>>>>> scripts/Makefile.build:307: recipe for target 'kernel/range.o' failed
>>>>> make[1]: *** [kernel/range.o] Error 1
>>>>> Makefile:793: recipe for target 'kernel' failed
>>>>> make: *** [kernel] Error 2
>>>>> make: *** Waiting for unfinished jobs....
>>>>>
>>>>>
>>>>> --
>>>>> --joshua
>>>
>>> it does not report warning when I compile it with
>>>
>>> gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012
>>>
>>>>
>>>> A trivial fix for the above warnings:
>>>>
>>>> --- linux-2.6.orig/kernel/range.c
>>>> +++ linux-2.6/kernel/range.c
>>>> @@ -4,6 +4,7 @@
>>>> #include <linux/kernel.h>
>>>> #include <linux/init.h>
>>>> #include <linux/sort.h>
>>>> +#include <linux/string.h>
>>>>
>>>> #include <linux/range.h>
>>>>
>>
>> I use fedora17 with gcc version 4.7.3 (git checkout on 20130411). I
>> have no idea where this came from...
>
> Ok. Your config should have CONFIG_DYNAMIC_DEBUG defined,
> and my config does not have that defined.
>
> we have linux/kernel.h
> linux/printk.h
> linux/dynamic_debug.h
>
> dynamic_debug.h will include linux/string.h when CONFIG_DYNAMIC_DEBUG
> is not defined.
>
> Hi, Andrew,
>
> How to fix this inconsistency caused by dynamic_debug.h
>
> 1. let linux/kernel.h include string.h directly
> 2. or let dynamic_debug include string.h always
> 3. let printk.h include string.h.
> ...
>
> Yinghai

You guys are better at kernel coding than I am, but can't we just
directly add 'string.h' just like the small patch I posted? In the
worst case the file will be included twice... Maybe this is not a good
coding style but it solves the problem and doesn't cause any side
effects. So why not do it the way I did?

--
--joshua
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/