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

Cyrill Gorcunov
2009-04-10T17:51:01Z

[Jaswinder Singh Rajput - Fri, Apr 10, 2009 at 11:06:55PM +0530]
| Impact: fix overflow
|
| Constant 0x123456789abcdef0 is so big for a long.
| So using saved_magic 0x12345678 for both 32 and 64 bit.
|
| Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
| ---
| arch/x86/kernel/acpi/sleep.c | 3 +--
| 1 files changed, 1 insertions(+), 2 deletions(-)
|
| diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
| index 7c243a2..1ad317a 100644
| --- a/arch/x86/kernel/acpi/sleep.c
| +++ b/arch/x86/kernel/acpi/sleep.c
| @@ -94,7 +94,6 @@ int acpi_save_state_mem(void)
| #ifndef CONFIG_64BIT
| header->pmode_entry = (u32)&wakeup_pmode_return;
| header->pmode_cr3 = (u32)(swsusp_pg_dir - __PAGE_OFFSET);
| - saved_magic = 0x12345678;
| #else /* CONFIG_64BIT */
| header->trampoline_segment = setup_trampoline() >> 4;
| #ifdef CONFIG_SMP
| @@ -104,8 +103,8 @@ int acpi_save_state_mem(void)
| initial_gs = per_cpu_offset(smp_processor_id());
| #endif
| initial_code = (unsigned long)wakeup_long64;
| - saved_magic = 0x123456789abcdef0;
| #endif /* CONFIG_64BIT */
| + saved_magic = 0x12345678;
|
| return 0;
| }
| --
| 1.6.0.6
|

Hi Jaswinder,

actually long on x86-64 is 8 bytes in size.

Cyrill