Rusty Russell
2007-Apr-18 13:02 UTC
[PATCH] Fix 'arch/i386/kernel/paravirt.c:481: warning: initialization from incompatible pointer type'
Fix paravirt_probe() macro so that handing it start_kernel doesn't evoke a warning (start_kernel is asmlinkage). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/dontdiff --minimal linux-2.6.19-rc4-mm2/include/asm-i386/paravirt.h working-2.6.19-rc4-mm2-warnings/include/asm-i386/paravirt.h --- linux-2.6.19-rc4-mm2/include/asm-i386/paravirt.h 2006-11-05 15:35:55.000000000 +1100 +++ working-2.6.19-rc4-mm2-warnings/include/asm-i386/paravirt.h 2006-11-05 16:03:41.000000000 +1100 @@ -147,7 +147,7 @@ struct paravirt_ops /* Mark a paravirt probe function. */ #define paravirt_probe(fn) \ - static void (*__paravirtprobe_##fn)(void) __attribute_used__ \ + static asmlinkage void (*__paravirtprobe_##fn)(void) __attribute_used__ \ __attribute__((__section__(".paravirtprobe"))) = fn extern struct paravirt_ops paravirt_ops;
Rusty Russell
2007-Apr-18 13:02 UTC
[PATCH] Fix 'arch/i386/kernel/alternative.c:355: warning: unused variable 'i''
Fix warning about "unused variable i" when CONFIG_PARAVIRT enabled and CONFIG_DEBUG_PARAVIRT disabled. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/dontdiff --minimal linux-2.6.19-rc4-mm2/arch/i386/kernel/alternative.c working-2.6.19-rc4-mm2-warnings/arch/i386/kernel/alternative.c --- linux-2.6.19-rc4-mm2/arch/i386/kernel/alternative.c 2006-11-05 15:35:24.000000000 +1100 +++ working-2.6.19-rc4-mm2-warnings/arch/i386/kernel/alternative.c 2006-11-05 16:04:38.000000000 +1100 @@ -352,7 +352,6 @@ void alternatives_smp_switch(int smp) void apply_paravirt(struct paravirt_patch *start, struct paravirt_patch *end) { struct paravirt_patch *p; - int i; for (p = start; p < end; p++) { unsigned int used; @@ -360,6 +359,8 @@ void apply_paravirt(struct paravirt_patc used = paravirt_ops.patch(p->instrtype, p->clobbers, p->instr, p->len); #ifdef CONFIG_DEBUG_PARAVIRT + { + int i; /* Deliberately clobber regs using "not %reg" to find bugs. */ for (i = 0; i < 3; i++) { if (p->len - used >= 2 && (p->clobbers & (1 << i))) { @@ -368,6 +369,7 @@ void apply_paravirt(struct paravirt_patc used += 2; } } + } #endif /* Pad the rest with nops */ nop_out(p->instr + used, p->len - used);