Re: [PATCH -tip] x86: acpi/sleep.c saved_magic fix overflow

Sam Ravnborg
2009-04-10T19:11:39Z

On Fri, Apr 10, 2009 at 07:55:45PM +0200, Pavel Machek wrote:
> On Fri 2009-04-10 23:06:55, Jaswinder Singh Rajput wrote:
> > Impact: fix overflow
>
> > Constant 0x123456789abcdef0 is so big for a long.
> > So using saved_magic 0x12345678 for both 32 and 64 bit.
>
> Have you tested the patch? I have feeling that this is tested from
> assembly... Plus it is only set to long constant on 64-bit, so I don't
> think you are fixing anything. And if your code is correct the
> variable is write only...

$ git grep saved_magic
kernel/acpi/sleep.c: saved_magic = 0x12345678;
kernel/acpi/sleep.c: saved_magic = 0x123456789abcdef0;
kernel/acpi/sleep.h:extern long saved_magic;
kernel/acpi/wakeup_32.S: movl %cs:saved_magic, %eax
kernel/acpi/wakeup_32.S:ENTRY(saved_magic) .long 0
kernel/acpi/wakeup_64.S: movq saved_magic, %rax
kernel/acpi/wakeup_64.S:ENTRY(saved_magic) .quad 0

wakeup_32.S:
movl %cs:saved_magic, %eax
cmpl $0x12345678, %eax

wakeup_64.S:
movq saved_magic, %rax
movq $0x123456789abcdef0, %rdx

So patch is obviously bogus.

Sam