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>
This commit is contained in:
parent
14a638cd3b
commit
4411d29165
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue