![]() | |||||||||||
Messages in this thread Complete thread (EXPERIMENTAL) |
In drivers/acpi/glue.c the address of an integer is cast to the
address of an unsigned long. This breaks on systems where a long is
larger than an int --- for a start the int can be misaligned; for a
second the assignment through the pointer will overwrite part of the
next variable.
Is the cast here really needed?Patch is against linux-2.6.14-rc4 Signed-off-by: Peter Chubb <peterc@gelato.unsw.edu.au> Index: linux-2.6-import/drivers/acpi/glue.c =================================================================== --- linux-2.6-import.orig/drivers/acpi/glue.c 2005-09-09 09:08:49.928854100 +1000 +++ linux-2.6-import/drivers/acpi/glue.c 2005-10-20 13:32:32.126445742 +1000 @@ -89,46 +89,46 @@ static int acpi_find_bridge_device(struc /* Get PCI root bridge's handle from its segment and bus number */ struct acpi_find_pci_root { unsigned int seg; unsigned int bus; acpi_handle handle; }; static acpi_status do_root_bridge_busnr_callback(struct acpi_resource *resource, void *data) { - int *busnr = (int *)data; + unsigned long *busnr = (unsigned long *)data; regards, -- Jiri Slaby www.fi.muni.cz/~xslaby ~\-/~ jirislaby@gmail.com ~\-/~ B67499670407CE62ACC8 22A032CC55C339D47A7E | ||||||||||
![]() | |||||||||||
| Last update: 2005-10-20 11:29 [W:0.117 / U:9.500 seconds] ©2003-2005 Jasper Spaans | |||||||||||