kernel/resource.c: fix sign extension in reserve_setup()
authorZhang Rui <[email protected]>
Tue, 30 Jun 2009 18:41:31 +0000 (11:41 -0700)
committerLinus Torvalds <[email protected]>
Wed, 1 Jul 2009 01:56:00 +0000 (18:56 -0700)
When the 32-bit signed quantities get assigned to the u64 resource_size_t,
they are incorrectly sign-extended.

Addresses http://bugzilla.kernel.org/show_bug.cgi?id=13253
Addresses http://bugzilla.kernel.org/show_bug.cgi?id=9905

Signed-off-by: Zhang Rui <[email protected]>
Reported-by: Leann Ogasawara <[email protected]>
Cc: Pierre Ossman <[email protected]>
Reported-by: <[email protected]>
Tested-by: <[email protected]>
Cc: <[email protected]>
Cc: Jesse Barnes <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
kernel/resource.c

index ac5f3a36923fccf5abaee447a2ab6db6bbe71a4d..78b087221c156640f901b8eb59a9ad716155bc7b 100644 (file)
@@ -787,7 +787,7 @@ static int __init reserve_setup(char *str)
        static struct resource reserve[MAXRESERVE];
 
        for (;;) {
-               int io_start, io_num;
+               unsigned int io_start, io_num;
                int x = reserved;
 
                if (get_option (&str, &io_start) != 2)