Re: [BUG] next-20081216 - WARNING: at kernel/smp.c:333 smp_call_function_mask

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Dec 27, 2008 at 7:29 AM, Kamalesh Babulal
<kamalesh@xxxxxxxxxxxxxxxxxx> wrote:
> * Ingo Molnar <mingo@xxxxxxx> [2008-12-27 13:26:32]:
>
>>
>> * Kamalesh Babulal <kamalesh@xxxxxxxxxxxxxxxxxx> wrote:
>>
>> > > yes, indeed - updated patch below.
>> > >
>> > >   Ingo
>> > >
>> >
>> > Hi Ingo,
>> >
>> >     Sorry, for not mentioning that the previous kernel trace, was
>> > after adding the return statement to the arch_init_chip_data().
>>
>> ah, i missed that detail. There was a stupid typo in one of the conflict
>> resolutions i had to do - could you check the updated patch below?
>>
>> Thanks,
>>
>>       Ingo
>>
>
>
> Hi Ingo,
>
>        kernel still crashes, with the updated patch.
>
>
>> ----------->
>> From 13a0c3c269b223f60abfac8a9811d77111a8b4ba Mon Sep 17 00:00:00 2001
>> From: Yinghai Lu <yinghai@xxxxxxxxxx>
>> Date: Fri, 26 Dec 2008 02:05:47 -0800
>> Subject: [PATCH] sparseirq: work around compiler optimizing away __weak functions
>>
>> Impact: fix panic on null pointer with sparseirq
>>
>> Some GCC versions seem to inline the weak global function,
>> when that function is empty.
>>
>> Work it around, by making the functions return a (dummy) integer.
>>
>> Signed-off-by: Yinghai <yinghai@xxxxxxxxxx>
>> Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
>> ---
>>  arch/x86/kernel/io_apic.c |    8 ++++++--
>>  include/linux/irq.h       |    6 +++---
>>  init/main.c               |    7 ++++---
>>  kernel/irq/handle.c       |    7 ++++---
>>  4 files changed, 17 insertions(+), 11 deletions(-)
>>
>> diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
>> index 2fe543f..9760393 100644
>> --- a/arch/x86/kernel/io_apic.c
>> +++ b/arch/x86/kernel/io_apic.c
>> @@ -170,7 +170,7 @@ static struct irq_cfg irq_cfgx[NR_IRQS] = {
>>       [15] = { .domain = CPU_MASK_ALL, .vector = IRQ15_VECTOR, },
>>  };
>>
>> -void __init arch_early_irq_init(void)
>> +int __init arch_early_irq_init(void)
>>  {
>>       struct irq_cfg *cfg;
>>       struct irq_desc *desc;
>> @@ -184,6 +184,8 @@ void __init arch_early_irq_init(void)
>>               desc = irq_to_desc(i);
>>               desc->chip_data = &cfg[i];
>>       }
>> +
>> +     return 0;

can you try current tip/master?

current there are several blank __weak, and __weak + return 0..in the
whole tree.

it seems there three solution:
1. use printk?
2. not use __weak with blank function any more, and use #ifdef and
inline functions instead
3. blacklist that gcc 4.1.1 complier..

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-next" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux