• Sean Young's avatar
    media: rc: bang in ir_do_keyup · fb7ccc61
    Sean Young authored
    rc_keydown() can be called from interrupt context, by e.g. an rc scancode
    driver. Since commit b2c96ba352b5 ("media: cec: move cec autorepeat
    handling to rc-core"), the del_timer_sync() call is not happy about
    being called in interrupt connect. del_timer() will suffice.
    
    WARNING: CPU: 0 PID: 0 at kernel/time/timer.c:1285 del_timer_sync+0x1d/0x40
    CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W        4.15.0-rc1+ #1
    Hardware name:                  /DG45ID, BIOS IDG4510H.86A.0135.2011.0225.1100 02/25/2011
    task: ffffffffa3e10480 task.stack: ffffffffa3e00000
    RIP: 0010:del_timer_sync+0x1d/0x40
    RSP: 0018:ffff8b396bc03db0 EFLAGS: 00010046
    RAX: 0000000080010000 RBX: ffff8b394d70e410 RCX: 0000000000000073
    RDX: 0000000000000001 RSI: 0000000000000001 RDI: ffff8b394d70e410
    RBP: 0000000000000001 R08: ffffffffc0616000 R09: ffff8b396bfa3000
    R10: 0000000000000000 R11: 0000000000000390 R12: ffff8b394f003800
    R13: 0000000000000000 R14: ffff8b3771c19630 R15: 0000000000000000
    FS:  0000000000000000(0000) GS:ffff8b396bc00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f1944469000 CR3: 00000001ebe09000 CR4: 00000000000006f0
    Call Trace:
     <IRQ>
     ir_do_keyup.part.5+0x22/0x90 [rc_core]
     rc_keyup+0x37/0x50 [rc_core]
     usb_rx_callback_intf0+0x79/0x90 [imon]
     __usb_hcd_giveback_urb+0x90/0x130
     uhci_giveback_urb+0xab/0x250
     uhci_scan_schedule.part.34+0x806/0xb00
     uhci_irq+0xab/0x150
     usb_hcd_irq+0x22/0x30
     __handle_irq_event_percpu+0x3a/0x180
     handle_irq_event_percpu+0x30/0x70
     handle_irq_event+0x27/0x50
     handle_fasteoi_irq+0x6b/0x110
     handle_irq+0xa5/0x100
     do_IRQ+0x41/0xc0
     common_interrupt+0x96/0x96
     </IRQ>
    RIP: 0010:cpuidle_enter_state+0x9a/0x2d0
    RSP: 0018:ffffffffa3e03e88 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffda
    RAX: ffff8b396bc1a000 RBX: 00000010da7bcd63 RCX: 00000010da7bccf6
    RDX: 00000010da7bcd63 RSI: 00000010da7bcd63 RDI: 0000000000000000
    RBP: ffff8b394f587400 R08: 0000000000000000 R09: 0000000000000002
    R10: ffffffffa3e03e48 R11: 0000000000000390 R12: 0000000000000003
    R13: ffffffffa3ebf018 R14: 0000000000000000 R15: 00000010da7ba772
     ? cpuidle_enter_state+0x8d/0x2d0
     do_idle+0x17b/0x1d0
     cpu_startup_entry+0x6f/0x80
     start_kernel+0x4a7/0x4c7
     secondary_startup_64+0xa5/0xb0
    Code: e7 5b 5d 41 5c e9 84 88 05 00 0f 1f 40 00 66 66 66 66 90 65 8b 05 e4 6f ef 5c a9 00 00 0f 00 53 48 89 fb 74 16 f6 47 22 20 75 10 <0f> ff 48 89 df e8 89 f1 ff ff 85 c0 79 0e f3 90 48 89 df e8 7b
    
    Fixes: b2c96ba352b5 ("media: cec: move cec autorepeat handling to rc-core")
    Signed-off-by: default avatarSean Young <sean@mess.org>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    fb7ccc61
rc-main.c 50.8 KB