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>