diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-06-29 14:45:37 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-20 07:23:52 -0300 |
commit | 4411d29165d83a4a73ea351ffccfdc0fd8baeb1e (patch) | |
tree | b92cf32d0edc6b292afd68934ffbedf19c475c33 /drivers/media/dvb | |
parent | 14a638cd3b6031c27b33560506244b9bf1913ad9 (diff) | |
download | linux-4411d29165d83a4a73ea351ffccfdc0fd8baeb1e.tar.gz linux-4411d29165d83a4a73ea351ffccfdc0fd8baeb1e.tar.bz2 linux-4411d29165d83a4a73ea351ffccfdc0fd8baeb1e.zip |
V4L/DVB (8309): sms1xxx: fix OOPS on 64 bit kernels due to a bad cast
Fix the following build warning:
smscoreapi.c: In function 'smscore_detect_mode':
smscoreapi.c:689: warning: cast from pointer to integer of different size
smscoreapi.c:689: warning: cast to pointer from integer of different size
smscoreapi.c: In function 'smscore_set_device_mode':
smscoreapi.c:820: warning: cast from pointer to integer of different size
smscoreapi.c:820: warning: cast to pointer from integer of different size
...and fix the following OOPS on 64bit kernels:
[ 717.263667] usb 6-4: new high speed USB device using ehci_hcd and address 2
[ 717.396386] usb 6-4: configuration #1 chosen from 1 choice
[ 717.473650] Unable to handle kernel paging request at 0000000000c02000 RIP:
[ 717.473657] [<ffffffff88db9edc>] :sms1xxx:smscore_set_device_mode+0x22c/0x4a0
[ 717.473669] PGD 3c6f7067 PUD 3d484067 PMD 0
[ 717.473674] Oops: 0002 [1] SMP
[ 717.473678] CPU 0
[Modules linked in snipped]
[ 717.473773] Pid: 8380, comm: modprobe Tainted: P 2.6.24-16-generic #1
[ 717.473776] RIP: 0010:[<ffffffff88db9edc>] [<ffffffff88db9edc>] :sms1xxx:smscore_set_device_mode+0x22c/0x4a0
[ 717.473784] RSP: 0018:ffff81003d495ba8 EFLAGS: 00010206
[ 717.473786] RAX: ffff81003d8cd8d0 RBX: ffff81003d8cd800 RCX: ffff81003d8cd8d0
[ 717.473788] RDX: 0000000000000008 RSI: ffff81003f080070 RDI: ffff81003d8cd800
[ 717.473791] RBP: 0000000000000004 R08: ffff81003ec0104b R09: ffffffffffffffff
[ 717.473793] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000c02000
[ 717.473796] R13: 00000000fffffff4 R14: ffff810000c02000 R15: ffff81003d8cd878
[ 717.473799] FS: 00007f70a680f6e0(0000) GS:ffffffff805b0000(0000) knlGS:0000000000000000
[ 717.473801] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 717.473804] CR2: 0000000000c02000 CR3: 000000003c68b000 CR4: 00000000000006e0
[ 717.473806] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 717.473809] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 717.473812] Process modprobe (pid: 8380, threadinfo ffff81003d494000, task ffff81003d2fc000)
[ 717.473814] Stack: ffff81003d8cd800 ffff81003d8cd800 0000000000000000 ffff81003c6d8000
[ 717.473820] ffff81003dcac800 0000000000000008 ffffc20000787bb0 ffffffff88dba16c
[ 717.473825] ffff81003dcac800 000000000000000a 0000000000000000 ffffffff88dbb2fa
[ 717.473829] Call Trace:
[ 717.473866] [<ffffffff88dba16c>] :sms1xxx:smscore_start_device+0x1c/0xb0
[ 717.473885] [<ffffffff88dbb2fa>] :sms1xxx:smsusb_probe+0x29a/0x670
[ 717.473929] [<ffffffff88dbaca0>] :sms1xxx:smsusb_sendrequest+0x0/0x30
[ 717.473965] [<ffffffff804614d9>] mutex_lock+0x9/0x20
[ 717.473998] [<ffffffff8806c42e>] :usbcore:usb_autopm_do_device+0x8e/0x130
[ 717.474040] [<ffffffff8806d33a>] :usbcore:usb_probe_interface+0xda/0x160
[ 717.474067] [<ffffffff803b9f4c>] driver_probe_device+0x9c/0x1b0
[ 717.474091] [<ffffffff803ba219>] __driver_attach+0xc9/0xd0
[ 717.474107] [<ffffffff803ba150>] __driver_attach+0x0/0xd0
[ 717.474115] [<ffffffff803b918d>] bus_for_each_dev+0x4d/0x80
[ 717.474156] [<ffffffff803b959c>] bus_add_driver+0xac/0x220
[ 717.474203] [<ffffffff8806cde9>] :usbcore:usb_register_driver+0xa9/0x120
[ 717.474232] [<ffffffff88dbb00b>] :sms1xxx:smsusb_register+0x1b/0x70
[ 717.474243] [<ffffffff88dba50c>] :sms1xxx:smscore_module_init+0x7c/0xb0
[ 717.474253] [<ffffffff80263b6e>] sys_init_module+0x18e/0x1a90
[ 717.474426] [<ffffffff8020c37e>] system_call+0x7e/0x83
[ 717.474490]
[ 717.474491]
[ 717.474492] Code: 66 41 c7 04 24 9c 02 41 c6 44 24 02 00 4c 89 e6 41 c6 44 24
[ 717.474506] RIP [<ffffffff88db9edc>] :sms1xxx:smscore_set_device_mode+0x22c/0x4a0
[ 717.474513] RSP <ffff81003d495ba8>
[ 717.474515] CR2: 0000000000c02000
[ 717.474521] ---[ end trace 52d9c6f207be106a ]---
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r-- | drivers/media/dvb/siano/smscoreapi.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/dvb/siano/smscoreapi.h b/drivers/media/dvb/siano/smscoreapi.h index c1f56900b3ea..eeb5c0a7f62b 100644 --- a/drivers/media/dvb/siano/smscoreapi.h +++ b/drivers/media/dvb/siano/smscoreapi.h @@ -50,7 +50,7 @@ typedef struct mutex kmutex_t; #define SMS_ALLOC_ALIGNMENT 128 #define SMS_DMA_ALIGNMENT 16 #define SMS_ALIGN_ADDRESS(addr) \ - ((((u32)(addr)) + (SMS_DMA_ALIGNMENT-1)) & ~(SMS_DMA_ALIGNMENT-1)) + ((((uintptr_t)(addr)) + (SMS_DMA_ALIGNMENT-1)) & ~(SMS_DMA_ALIGNMENT-1)) #define SMS_DEVICE_FAMILY2 1 #define SMS_ROM_NO_RESPONSE 2 |