V4L/DVB (8309): sms1xxx: fix OOPS on 64 bit kernels due to a bad cast
authorMichael Krufky <mkrufky@linuxtv.org>
Sun, 29 Jun 2008 17:45:37 +0000 (14:45 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 20 Jul 2008 10:23:52 +0000 (07:23 -0300)
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>
drivers/media/dvb/siano/smscoreapi.h

index c1f5690..eeb5c0a 100644 (file)
@@ -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