Skip to content
Commits on May 29, 2011
Commits on May 12, 2011
  1. @ali1234
Commits on Apr 25, 2011
  1. @ali1234
  2. @jgeboski

    >= 2.6.37 input_get_keycode fix

    jgeboski committed with Alistair Buxton
Commits on Mar 14, 2011
  1. @CMoH

    Added check of urb status before processing it.

    CMoH committed
    Trying to avoid kernel crash on USB disconnect, where all pending URBs are unlinked and flushed. Based on the following stacktrace:
    
    general protection fault: 0000 [#1] PREEMPT SMP 
    last sysfs file: /sys/devices/platform/coretemp.0/temp1_label
    CPU 4 
    Modules linked in: vboxnetflt vboxnetadp vboxdrv nvidia(P) hid_g19 hid_gfb
    
    Pid: 480, comm: khubd Tainted: P            2.6.36-gentoo-r5 #1 P7P55D DELUXE/System Product Name
    RIP: 0010:[<ffffffff8161d397>]  [<ffffffff8161d397>] _raw_spin_lock_irqsave+0x17/0x30
    RSP: 0018:ffff88021effda98  EFLAGS: 00010002
    RAX: 0000000000000086 RBX: 322f382e312d322f RCX: 0000000000000000
    RDX: 0000000000000100 RSI: 0000000000000018 RDI: 322f382e312d3427
    RBP: 322f382e312d3427 R08: 0000000000000200 R09: 00000000ffffff94
    R10: 000000000000007b R11: 0000000000000000 R12: 322f382e312d322f
    R13: 0000000000000018 R14: ffff88021effdadc R15: ffff88021dfe7d68
    FS:  0000000000000000(0000) GS:ffff880001b00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 00000000006163e8 CR3: 0000000001822000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process khubd (pid: 480, threadinfo ffff88021effc000, task ffff88021ef81330)
    Stack:
     ffffffff8144b9c4 0000000000000018 ffff88021bfa0000 322f382e312d322f
    <0> 0000000000000000 0000000000000001 ffffffffa00074cd 0000000000000002
    <0> ffffffff812f31ec ffff88021ee20890 ffff88021be03e40 0000000000000001
    Call Trace:
     [<ffffffff8144b9c4>] ? input_get_keycode+0x34/0x80
     [<ffffffffa00074cd>] ? g19_handle_key_event+0x3d/0xb0 [hid_g19]
     [<ffffffff812f31ec>] ? is_swiotlb_buffer+0x2c/0x40
     [<ffffffffa0008b54>] ? g19_ep1_urb_completion+0x54/0x7c [hid_g19]
     [<ffffffff8141e04d>] ? usb_hcd_giveback_urb+0x5d/0xe0
     [<ffffffff814312b0>] ? ehci_urb_done+0x80/0xe0
     [<ffffffff81431727>] ? qh_completions+0x417/0x530
     [<ffffffff812df510>] ? kobj_bcast_filter+0x0/0x60
     [<ffffffff814325ac>] ? intr_deschedule+0x16c/0x250
     [<ffffffff81434a95>] ? ehci_urb_dequeue+0xe5/0x110
     [<ffffffff8141f81c>] ? usb_hcd_flush_endpoint+0xec/0x110
     [<ffffffff81420786>] ? usb_disable_endpoint+0x56/0xb0
     [<ffffffff81420874>] ? usb_disable_device+0x94/0x110
     [<ffffffff8141b34b>] ? usb_disconnect+0x8b/0x130
     [<ffffffff8141b339>] ? usb_disconnect+0x79/0x130
     [<ffffffff8141c145>] ? hub_thread+0x3f5/0x10e0
     [<ffffffff81087570>] ? autoremove_wake_function+0x0/0x30
     [<ffffffff8141bd50>] ? hub_thread+0x0/0x10e0
     [<ffffffff8141bd50>] ? hub_thread+0x0/0x10e0
     [<ffffffff810870e6>] ? kthread+0x96/0xa0
     [<ffffffff8102c2d4>] ? kernel_thread_helper+0x4/0x10
     [<ffffffff81087050>] ? kthread+0x0/0xa0
     [<ffffffff8102c2d0>] ? kernel_thread_helper+0x0/0x10
    Code: 06 f3 90 8a 07 eb f6 c3 66 66 66 2e 0f 1f 84 00 00 00 00 00 9c 58 fa 65 48 8b 14 25 c8 b6 00 00 ff 82 44 e0 ff ff ba 00 01 00 00 <f0> 66 0f c1 17 38 f2 74 06 f3 90 8a 17 eb f6 c3 66 0f 1f 84 00 
    RIP  [<ffffffff8161d397>] _raw_spin_lock_irqsave+0x17/0x30
     RSP <ffff88021effda98>
    ---[ end trace 62df2f30ffd09f81 ]---
Commits on Mar 13, 2011
  1. @CMoH

    Added pseudo-palette for g19 framebuffer.

    CMoH committed
    The crash when enabling fbcon seems to originate in the following sequence:
    fbcon needs gfb_fb_imageblit to render the cursor, which uses sys_imageblit in turn.
    sys_imageblit calls color_imageblit, which refers to this palette to convert the
    16-color image to truecolor.
Commits on Mar 12, 2011
  1. @CMoH

    Better conformance to kbuild

    CMoH committed
    Extra targets placed in GNU make if directives.
    Added make variable BUILD_HID controlling if we want to build hid-core et al or just the logitech modules.
Commits on Mar 11, 2011
  1. @CMoH

    Fixed deadlock in hid-gfb

    CMoH committed
    The root cause of the deadlock seems to be one or all of the following:
    
    1. Work queues implementing deferred IO do not allow spinlocks to be
    locked when exiting the deferred task. This means the lock protecting
    fb_vbitmap (left for the urb completion handler to unlock) was reported
    as problematic by the lockdeps analyzer.
    
    The lock was converted to a soft-lock (a boolean flag), which in turn is
    locally protected by the original spinlock.
    
    2. URB completion handler was run from an IRQ handler, which meant the
    URB spinlock was used both in IRQ context and in process context. Again,
    lockdeps complained so the spinlock is now used with the
    irqsave/irqrestore version.
Commits on Mar 10, 2011
  1. @CMoH

    Fixed spinlock use in IRQ handlers

    CMoH committed
    Fixed lockdeps checker issuing an inconsistency because the spinlock is used both from IRQ and normal context.
    
    =================================
    [ INFO: inconsistent lock state ]
    2.6.36-gentoo-r5-debug #7
    ---------------------------------
    inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
    modprobe/2501 [HC0[0]:SC0[0]:HE1:SE1] takes:
     (&(&data->lock)->rlock){?.....}, at: [<ffffffffa000877c>] g19_probe+0x76c/0xb50 [hid_g19]
    {IN-HARDIRQ-W} state was registered at:
      [<ffffffff810a3639>] __lock_acquire+0xbc9/0x1b70
      [<ffffffff810a463a>] lock_acquire+0x5a/0x70
      [<ffffffff8165400d>] _raw_spin_lock_irqsave+0x4d/0x90
      [<ffffffffa0007499>] g19_raw_event+0x39/0x1f0 [hid_g19]
      [<ffffffff814f00d3>] hid_input_report+0x203/0x270
      [<ffffffff814f78cf>] hid_ctrl+0x9f/0x1c0
      [<ffffffff81445c5f>] usb_hcd_giveback_urb+0x5f/0xd0
      [<ffffffff81459484>] ehci_urb_done+0x84/0xf0
      [<ffffffff814598e7>] qh_completions+0x3f7/0x510
      [<ffffffff8145bc2e>] ehci_work+0x7e/0x9c0
      [<ffffffff8145dd31>] ehci_irq+0x1d1/0x210
      [<ffffffff814453e3>] usb_hcd_irq+0x33/0xa0
      [<ffffffff810be41a>] handle_IRQ_event+0x3a/0xe0
      [<ffffffff810c0c27>] handle_fasteoi_irq+0x77/0x100
      [<ffffffff8102f42d>] handle_irq+0x1d/0x30
      [<ffffffff8102e91e>] do_IRQ+0x6e/0xf0
      [<ffffffff81654e93>] ret_from_intr+0x0/0xf
      [<ffffffff8165290e>] mutex_lock_nested+0x6e/0x3b0
      [<ffffffff811704ef>] sysfs_permission+0x2f/0x70
      [<ffffffff8111d880>] exec_permission+0x20/0x80
      [<ffffffff8111fe5b>] link_path_walk+0x7b/0xbd0
      [<ffffffff81120b22>] path_walk+0x62/0xe0
      [<ffffffff81120bfb>] do_path_lookup+0x5b/0x60
      [<ffffffff81121842>] user_path_at+0x52/0xa0
      [<ffffffff81117dc7>] vfs_fstatat+0x37/0x70
      [<ffffffff81117e36>] vfs_stat+0x16/0x20
      [<ffffffff8111800f>] sys_newstat+0x1f/0x50
      [<ffffffff8102c42b>] system_call_fastpath+0x16/0x1b
    irq event stamp: 13525
    hardirqs last  enabled at (13525): [<ffffffff81654a7b>] _raw_spin_unlock_irq+0x2b/0x60
    hardirqs last disabled at (13524): [<ffffffff81653f54>] _raw_spin_lock_irq+0x14/0x80
    softirqs last  enabled at (13356): [<ffffffff8158240f>] sk_filter+0x7f/0xe0
    softirqs last disabled at (13354): [<ffffffff815823a6>] sk_filter+0x16/0xe0
    
    other info that might help us debug this:
    2 locks held by modprobe/2501:
     #0:  (&__lockdep_no_validate__){+.+.+.}, at: [<ffffffff813beaa3>] __driver_attach+0x53/0xa0
     #1:  (&__lockdep_no_validate__){+.+.+.}, at: [<ffffffff813beab1>] __driver_attach+0x61/0xa0
    
    stack backtrace:
    Pid: 2501, comm: modprobe Not tainted 2.6.36-gentoo-r5-debug #7
    Call Trace:
     [<ffffffff8109ffff>] print_usage_bug+0x17f/0x1d0
     [<ffffffff810a0469>] mark_lock+0x419/0x630
     [<ffffffff810a3545>] __lock_acquire+0xad5/0x1b70
     [<ffffffff810a06e7>] ? mark_held_locks+0x67/0x90
     [<ffffffff81654a7b>] ? _raw_spin_unlock_irq+0x2b/0x60
     [<ffffffff8106967d>] ? sub_preempt_count+0x9d/0xd0
     [<ffffffff81654a86>] ? _raw_spin_unlock_irq+0x36/0x60
     [<ffffffff810a463a>] lock_acquire+0x5a/0x70
     [<ffffffffa000877c>] ? g19_probe+0x76c/0xb50 [hid_g19]
     [<ffffffff81069725>] ? add_preempt_count+0x75/0xd0
     [<ffffffff81653e6b>] _raw_spin_lock+0x3b/0x70
     [<ffffffffa000877c>] ? g19_probe+0x76c/0xb50 [hid_g19]
     [<ffffffffa000877c>] g19_probe+0x76c/0xb50 [hid_g19]
     [<ffffffff8106967d>] ? sub_preempt_count+0x9d/0xd0
     [<ffffffff814eea92>] hid_device_probe+0x72/0xe0
     [<ffffffff813be7da>] ? driver_sysfs_add+0x7a/0xb0
     [<ffffffff813be926>] driver_probe_device+0x96/0x1c0
     [<ffffffff813beaeb>] __driver_attach+0x9b/0xa0
     [<ffffffff813bea50>] ? __driver_attach+0x0/0xa0
     [<ffffffff813bdff8>] bus_for_each_dev+0x68/0x90
     [<ffffffff813be759>] driver_attach+0x19/0x20
     [<ffffffff813bd8a0>] bus_add_driver+0x1e0/0x270
     [<ffffffffa000d000>] ? g19_init+0x0/0x20 [hid_g19]
     [<ffffffff813bedf8>] driver_register+0x78/0x140
     [<ffffffffa000d000>] ? g19_init+0x0/0x20 [hid_g19]
     [<ffffffff814ee2f1>] __hid_register_driver+0x61/0xa0
     [<ffffffffa000d01e>] g19_init+0x1e/0x20 [hid_g19]
     [<ffffffff810001de>] do_one_initcall+0x3e/0x180
     [<ffffffff810b1262>] sys_init_module+0xb2/0x200
     [<ffffffff8102c42b>] system_call_fastpath+0x16/0x1b
    hid-g19 0003:046D:C229.0005: Logitech G19 hasn't completed stage 1 yet, forging ahead with initialization
  2. @CMoH

    Ignored build results

    CMoH committed
  3. @CMoH

    Ignoring ~ files

    CMoH committed
Commits on Mar 1, 2011
  1. Addded README file

    committed
Commits on Feb 9, 2011
Commits on Jan 30, 2011
Commits on Jan 29, 2011
  1. Initial revision

    committed
Something went wrong with that request. Please try again.