1. 05 9月, 2012 3 次提交
  2. 22 8月, 2012 1 次提交
  3. 16 8月, 2012 1 次提交
    • S
      HID: picolcd: using vmalloc() requires the include of vmalloc.h · d1c60a03
      Stephen Rothwell 提交于
      Fixes thes build errors:
      
      drivers/hid/hid-picolcd_fb.c: In function 'picolcd_fb_destroy':
      drivers/hid/hid-picolcd_fb.c:350:2: error: implicit declaration of function 'vfree' [-Werror=implicit-function-declaration]
      drivers/hid/hid-picolcd_fb.c: In function 'picolcd_init_framebuffer':
      drivers/hid/hid-picolcd_fb.c:508:2: error: implicit declaration of function 'vmalloc' [-Werror=implicit-function-declaration]
      drivers/hid/hid-picolcd_fb.c:508:12: warning: assignment makes pointer from integer without a cast [enabled by default]
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      d1c60a03
  4. 15 8月, 2012 5 次提交
    • B
      HID: picoLCD: Improve unplug handling · a93ab849
      Bruno Prémont 提交于
      Stop earlier attempting to submit new reports/URBs (though locking and
      usbhid still prevents to bail out early enough to not produce multiple
        hid-picolcd 0003:04D8:C002.0003: usb_submit_urb(out) failed: -19
      messages in kernel log.
      
      Strengthen framebuffer removal to be less racy.
      Signed-off-by: NBruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      a93ab849
    • B
      HID: picoLCD: satify some checkpatch warnings · baacf9c5
      Bruno Prémont 提交于
      WARNING: static const char * array should probably be static const char * const
      +static const char *error_codes[] = {
      
      WARNING: min() should probably be min_t(size_t, 20, s)
      +       raw_data[2] = min((size_t)20, s);
      
      Note: the second min_t suggestion cannot be followed because GCC is not
      smart enough to track constants through it and make
      copy_from_user_overflow() check happy.
      
      WARNING: min() should probably be min_t(u8, 20, raw_data[2])
      +       if (copy_from_user(raw_data+3, u, min((u8)20, raw_data[2])))
                      return -EFAULT;
      Signed-off-by: NBruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      baacf9c5
    • B
      HID: picoLCD: prevent NULL pointer dereference on unplug · b07072e6
      Bruno Prémont 提交于
      [  679.807480] BUG: unable to handle kernel NULL pointer dereference at 00000074
      [  679.814457] IP: [<de93b5bf>] picolcd_led_set_brightness+0x1f/0xb0 [hid_picolcd]
      [  679.814457] *pde = 00000000
      [  679.814457] Oops: 0000 [#1]
      [  679.814457] Modules linked in: hid_picolcd fb_sys_fops sysimgblt sysfillrect syscopyarea drm_kms_helper nfs lockd nfs_acl sunrpc [last unloaded: hid_picolcd]
      [  679.814457]
      [  679.814457] Pid: 272, comm: khubd Not tainted 3.5.0-jupiter-00006-g463a4c0 #1 NVIDIA Corporation. nFORCE-MCP/MS-6373
      [  679.814457] EIP: 0060:[<de93b5bf>] EFLAGS: 00010246 CPU: 0
      [  679.814457] EIP is at picolcd_led_set_brightness+0x1f/0xb0 [hid_picolcd]
      [  679.814457] EAX: 00000000 EBX: d9f0c4e0 ECX: 00000000 EDX: 00000000
      [  679.814457] ESI: 00000000 EDI: dd6b79c0 EBP: dd4f7d90 ESP: dd4f7d80
      [  679.814457]  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
      [  679.814457] CR0: 8005003b CR2: 00000074 CR3: 1d74e000 CR4: 000007d0
      [  679.814457] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      [  679.814457] DR6: ffff0ff0 DR7: 00000400
      [  679.814457] Process khubd (pid: 272, ti=dd4f6000 task=dd442470 task.ti=dd4f6000)
      [  679.814457] Stack:
      [  679.814457]  1d6c3300 d9f0c4e0 d9f0c4e0 dd6b79c0 dd4f7da0 c132912a 00000000 d9f0c4e0
      [  679.814457]  dd4f7dac c132935d 00000000 dd4f7dc0 de93b847 dd6b79c0 00000282 c700ecc8
      [  679.814457]  dd4f7ddc de93924f 00000004 c700ecc8 c700e060 c700ecbc c15ee300 dd4f7dec
      [  679.814457] Call Trace:
      [  679.814457]  [<c132912a>] led_brightness_set+0x2a/0x30
      [  679.814457]  [<c132935d>] led_classdev_unregister+0xd/0x50
      [  679.814457]  [<de93b847>] picolcd_exit_leds+0x27/0x40 [hid_picolcd]
      [  679.814457]  [<de93924f>] picolcd_remove+0xbf/0x110 [hid_picolcd]
      [  679.814457]  [<c132c5dd>] hid_device_remove+0x3d/0x80
      [  679.814457]  [<c1294126>] __device_release_driver+0x56/0xa0
      [  679.814457]  [<c1294190>] device_release_driver+0x20/0x30
      [  679.814457]  [<c1293bbf>] bus_remove_device+0x9f/0xc0
      [  679.814457]  [<c1291a1d>] device_del+0xdd/0x150
      [  679.814457]  [<c132c205>] hid_destroy_device+0x25/0x60
      [  679.814457]  [<c13368cb>] usbhid_disconnect+0x1b/0x40
      [  679.814457]  [<c12f4976>] usb_unbind_interface+0x46/0x170
      [  679.814457]  [<c1294126>] __device_release_driver+0x56/0xa0
      [  679.814457]  [<c1294190>] device_release_driver+0x20/0x30
      [  679.814457]  [<c1293bbf>] bus_remove_device+0x9f/0xc0
      [  679.814457]  [<c1291a1d>] device_del+0xdd/0x150
      [  679.814457]  [<c12f2975>] usb_disable_device+0x85/0x1a0
      [  679.814457]  [<c1053146>] ? __cond_resched+0x16/0x30
      [  679.814457]  [<c12ebdb0>] usb_disconnect+0x80/0xf0
      [  679.814457]  [<c12ed61f>] hub_thread+0x3df/0x1030
      [  679.814457]  [<c10484a0>] ? wake_up_bit+0x30/0x30
      [  679.814457]  [<c12ed240>] ? usb_remote_wakeup+0x40/0x40
      [  679.814457]  [<c1047f94>] kthread+0x74/0x80
      [  679.814457]  [<c1047f20>] ? flush_kthread_worker+0x90/0x90
      [  679.814457]  [<c140e33e>] kernel_thread_helper+0x6/0xd
      [  679.814457] Code: e0 25 00 e0 ff ff ff 48 14 eb 99 90 55 89 e5 83 ec 10 89 5d f4 89 75 f8 89 c3 89 7d fc 8b 40 1c 89 d6 8b 00 e8 13 89 95 e2 31 c9 <39> 5c 88 74 74 13 41 83 f9 08 75 f4 8b 5d f4 8b 75 f8 8b 7d fc
      [  679.814457] EIP: [<de93b5bf>] picolcd_led_set_brightness+0x1f/0xb0 [hid_picolcd] SS:ESP 0068:dd4f7d80
      [  679.814457] CR2: 0000000000000074
      [  680.116438] ---[ end trace 6f0d9d63bff280ff ]---
      Signed-off-by: NBruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      b07072e6
    • B
      9966c37c
    • B
      HID: picoLCD: split driver code · fabdbf2f
      Bruno Prémont 提交于
      In order to make code maintenance easier, split the vairous
      functions into individial files (this removes a bunch of #ifdefs).
      Signed-off-by: NBruno Prémont <bonbons@linux-vserver.org>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      fabdbf2f
  5. 24 7月, 2012 1 次提交
  6. 23 7月, 2012 29 次提交