Message ID | 1508866222-15063-1-git-send-email-allen.pais@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
> Switch to using the new timer_setup() and from_timer() > for drivers/hid/* > > Cc: Kees Cook <keescook@chromium.org> > Signed-off-by: Allen Pais <allen.pais@oracle.com> Ignore the patch. I send out a wrong one by mistake. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Allen, [auto build test ERROR on v4.14-rc6] [cannot apply to hid/for-next next-20171018] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Allen-Pais/drivers-hid-Convert-timers-to-use-timer_setup/20171025-230118 config: i386-randconfig-x008-201743 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): In file included from include/linux/ioport.h:12:0, from include/linux/device.h:16, from drivers//hid/hid-multitouch.c:41: drivers//hid/hid-multitouch.c: In function 'mt_expired_timeout': >> include/linux/kernel.h:928:51: error: 'struct hid_device' has no member named 'release_timer' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/compiler.h:553:19: note: in definition of macro '__compiletime_assert' bool __cond = !(condition); \ ^~~~~~~~~ include/linux/compiler.h:576:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:46:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ include/linux/kernel.h:928:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ include/linux/kernel.h:928:20: note: in expansion of macro '__same_type' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ include/linux/timer.h:183:2: note: in expansion of macro 'container_of' container_of(callback_timer, typeof(*var), timer_fieldname) ^~~~~~~~~~~~ >> drivers//hid/hid-multitouch.c:1251:28: note: in expansion of macro 'from_timer' struct hid_device *hdev = from_timer(hdev, t, release_timer); ^~~~~~~~~~ In file included from include/linux/compiler.h:58:0, from include/linux/ioport.h:12, from include/linux/device.h:16, from drivers//hid/hid-multitouch.c:41: >> include/linux/compiler-gcc.h:165:2: error: 'struct hid_device' has no member named 'release_timer' __builtin_offsetof(a, b) ^ include/linux/stddef.h:16:32: note: in expansion of macro '__compiler_offsetof' #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) ^~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:931:21: note: in expansion of macro 'offsetof' ((type *)(__mptr - offsetof(type, member))); }) ^~~~~~~~ include/linux/timer.h:183:2: note: in expansion of macro 'container_of' container_of(callback_timer, typeof(*var), timer_fieldname) ^~~~~~~~~~~~ >> drivers//hid/hid-multitouch.c:1251:28: note: in expansion of macro 'from_timer' struct hid_device *hdev = from_timer(hdev, t, release_timer); ^~~~~~~~~~ -- In file included from include/linux/ioport.h:12:0, from include/linux/device.h:16, from drivers/hid/hid-multitouch.c:41: drivers/hid/hid-multitouch.c: In function 'mt_expired_timeout': >> include/linux/kernel.h:928:51: error: 'struct hid_device' has no member named 'release_timer' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^ include/linux/compiler.h:553:19: note: in definition of macro '__compiletime_assert' bool __cond = !(condition); \ ^~~~~~~~~ include/linux/compiler.h:576:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:46:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ include/linux/kernel.h:928:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ include/linux/kernel.h:928:20: note: in expansion of macro '__same_type' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ include/linux/timer.h:183:2: note: in expansion of macro 'container_of' container_of(callback_timer, typeof(*var), timer_fieldname) ^~~~~~~~~~~~ drivers/hid/hid-multitouch.c:1251:28: note: in expansion of macro 'from_timer' struct hid_device *hdev = from_timer(hdev, t, release_timer); ^~~~~~~~~~ In file included from include/linux/compiler.h:58:0, from include/linux/ioport.h:12, from include/linux/device.h:16, from drivers/hid/hid-multitouch.c:41: >> include/linux/compiler-gcc.h:165:2: error: 'struct hid_device' has no member named 'release_timer' __builtin_offsetof(a, b) ^ include/linux/stddef.h:16:32: note: in expansion of macro '__compiler_offsetof' #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) ^~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:931:21: note: in expansion of macro 'offsetof' ((type *)(__mptr - offsetof(type, member))); }) ^~~~~~~~ include/linux/timer.h:183:2: note: in expansion of macro 'container_of' container_of(callback_timer, typeof(*var), timer_fieldname) ^~~~~~~~~~~~ drivers/hid/hid-multitouch.c:1251:28: note: in expansion of macro 'from_timer' struct hid_device *hdev = from_timer(hdev, t, release_timer); ^~~~~~~~~~ vim +928 include/linux/kernel.h ^1da177e4 Linus Torvalds 2005-04-16 909 91f68b735 Wu Fengguang 2009-01-07 910 e8c97af0c Randy Dunlap 2017-10-13 911 /** e8c97af0c Randy Dunlap 2017-10-13 912 * swap - swap values of @a and @b e8c97af0c Randy Dunlap 2017-10-13 913 * @a: first value e8c97af0c Randy Dunlap 2017-10-13 914 * @b: second value 91f68b735 Wu Fengguang 2009-01-07 915 */ ac7b90049 Peter Zijlstra 2009-02-04 916 #define swap(a, b) \ ac7b90049 Peter Zijlstra 2009-02-04 917 do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0) 91f68b735 Wu Fengguang 2009-01-07 918 ^1da177e4 Linus Torvalds 2005-04-16 919 /** ^1da177e4 Linus Torvalds 2005-04-16 920 * container_of - cast a member of a structure out to the containing structure ^1da177e4 Linus Torvalds 2005-04-16 921 * @ptr: the pointer to the member. ^1da177e4 Linus Torvalds 2005-04-16 922 * @type: the type of the container struct this is embedded in. ^1da177e4 Linus Torvalds 2005-04-16 923 * @member: the name of the member within the struct. ^1da177e4 Linus Torvalds 2005-04-16 924 * ^1da177e4 Linus Torvalds 2005-04-16 925 */ ^1da177e4 Linus Torvalds 2005-04-16 926 #define container_of(ptr, type, member) ({ \ c7acec713 Ian Abbott 2017-07-12 927 void *__mptr = (void *)(ptr); \ c7acec713 Ian Abbott 2017-07-12 @928 BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ c7acec713 Ian Abbott 2017-07-12 929 !__same_type(*(ptr), void), \ c7acec713 Ian Abbott 2017-07-12 930 "pointer type mismatch in container_of()"); \ c7acec713 Ian Abbott 2017-07-12 931 ((type *)(__mptr - offsetof(type, member))); }) ^1da177e4 Linus Torvalds 2005-04-16 932 :::::: The code at line 928 was first introduced by commit :::::: c7acec713d14c6ce8a20154f9dfda258d6bcad3b kernel.h: handle pointers to arrays better in container_of() :::::: TO: Ian Abbott <abbotti@mev.co.uk> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Allen, [auto build test ERROR on v4.14-rc6] [cannot apply to hid/for-next next-20171018] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Allen-Pais/drivers-hid-Convert-timers-to-use-timer_setup/20171025-230118 config: x86_64-randconfig-x011-201743 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): In file included from include/linux/ioport.h:12:0, from include/linux/device.h:16, from drivers/hid/hid-appleir.c:26: drivers/hid/hid-appleir.c: In function 'key_up_tick': >> drivers/hid/hid-appleir.c:178:39: error: 'applier' undeclared (first use in this function) struct appleir *appleir = from_timer(applier, t, key_up_timer); ^ include/linux/compiler.h:553:19: note: in definition of macro '__compiletime_assert' bool __cond = !(condition); \ ^~~~~~~~~ include/linux/compiler.h:576:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:46:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ include/linux/kernel.h:928:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ include/linux/kernel.h:928:20: note: in expansion of macro '__same_type' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ include/linux/timer.h:183:2: note: in expansion of macro 'container_of' container_of(callback_timer, typeof(*var), timer_fieldname) ^~~~~~~~~~~~ >> drivers/hid/hid-appleir.c:178:28: note: in expansion of macro 'from_timer' struct appleir *appleir = from_timer(applier, t, key_up_timer); ^~~~~~~~~~ drivers/hid/hid-appleir.c:178:39: note: each undeclared identifier is reported only once for each function it appears in struct appleir *appleir = from_timer(applier, t, key_up_timer); ^ include/linux/compiler.h:553:19: note: in definition of macro '__compiletime_assert' bool __cond = !(condition); \ ^~~~~~~~~ include/linux/compiler.h:576:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:46:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^~~~~~~~~~~~~~~~~~ include/linux/kernel.h:928:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~~~~~~ include/linux/kernel.h:928:20: note: in expansion of macro '__same_type' BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ ^~~~~~~~~~~ include/linux/timer.h:183:2: note: in expansion of macro 'container_of' container_of(callback_timer, typeof(*var), timer_fieldname) ^~~~~~~~~~~~ >> drivers/hid/hid-appleir.c:178:28: note: in expansion of macro 'from_timer' struct appleir *appleir = from_timer(applier, t, key_up_timer); ^~~~~~~~~~ vim +/applier +178 drivers/hid/hid-appleir.c > 26 #include <linux/device.h> 27 #include <linux/hid.h> 28 #include <linux/module.h> 29 #include "hid-ids.h" 30 31 MODULE_AUTHOR("James McKenzie"); 32 MODULE_AUTHOR("Benjamin Tissoires <benjamin.tissoires@redhat.com>"); 33 MODULE_DESCRIPTION("HID Apple IR remote controls"); 34 MODULE_LICENSE("GPL"); 35 36 #define KEY_MASK 0x0F 37 #define TWO_PACKETS_MASK 0x40 38 39 /* 40 * James McKenzie has two devices both of which report the following 41 * 25 87 ee 83 0a + 42 * 25 87 ee 83 0c - 43 * 25 87 ee 83 09 << 44 * 25 87 ee 83 06 >> 45 * 25 87 ee 83 05 >" 46 * 25 87 ee 83 03 menu 47 * 26 00 00 00 00 for key repeat 48 */ 49 50 /* 51 * Thomas Glanzmann reports the following responses 52 * 25 87 ee ca 0b + 53 * 25 87 ee ca 0d - 54 * 25 87 ee ca 08 << 55 * 25 87 ee ca 07 >> 56 * 25 87 ee ca 04 >" 57 * 25 87 ee ca 02 menu 58 * 26 00 00 00 00 for key repeat 59 * 60 * He also observes the following event sometimes 61 * sent after a key is release, which I interpret 62 * as a flat battery message 63 * 25 87 e0 ca 06 flat battery 64 */ 65 66 /* 67 * Alexandre Karpenko reports the following responses for Device ID 0x8242 68 * 25 87 ee 47 0b + 69 * 25 87 ee 47 0d - 70 * 25 87 ee 47 08 << 71 * 25 87 ee 47 07 >> 72 * 25 87 ee 47 04 >" 73 * 25 87 ee 47 02 menu 74 * 26 87 ee 47 ** for key repeat (** is the code of the key being held) 75 */ 76 77 /* 78 * Bastien Nocera's remote 79 * 25 87 ee 91 5f followed by 80 * 25 87 ee 91 05 gives you >" 81 * 82 * 25 87 ee 91 5c followed by 83 * 25 87 ee 91 05 gives you the middle button 84 */ 85 86 /* 87 * Fabien Andre's remote 88 * 25 87 ee a3 5e followed by 89 * 25 87 ee a3 04 gives you >" 90 * 91 * 25 87 ee a3 5d followed by 92 * 25 87 ee a3 04 gives you the middle button 93 */ 94 95 static const unsigned short appleir_key_table[] = { 96 KEY_RESERVED, 97 KEY_MENU, 98 KEY_PLAYPAUSE, 99 KEY_FORWARD, 100 KEY_BACK, 101 KEY_VOLUMEUP, 102 KEY_VOLUMEDOWN, 103 KEY_RESERVED, 104 KEY_RESERVED, 105 KEY_RESERVED, 106 KEY_RESERVED, 107 KEY_RESERVED, 108 KEY_RESERVED, 109 KEY_RESERVED, 110 KEY_ENTER, 111 KEY_PLAYPAUSE, 112 KEY_RESERVED, 113 }; 114 115 struct appleir { 116 struct input_dev *input_dev; 117 struct hid_device *hid; 118 unsigned short keymap[ARRAY_SIZE(appleir_key_table)]; 119 struct timer_list key_up_timer; /* timer for key up */ 120 spinlock_t lock; /* protects .current_key */ 121 int current_key; /* the currently pressed key */ 122 int prev_key_idx; /* key index in a 2 packets message */ 123 }; 124 125 static int get_key(int data) 126 { 127 /* 128 * The key is coded accross bits 2..9: 129 * 130 * 0x00 or 0x01 ( ) key: 0 -> KEY_RESERVED 131 * 0x02 or 0x03 ( menu ) key: 1 -> KEY_MENU 132 * 0x04 or 0x05 ( >" ) key: 2 -> KEY_PLAYPAUSE 133 * 0x06 or 0x07 ( >> ) key: 3 -> KEY_FORWARD 134 * 0x08 or 0x09 ( << ) key: 4 -> KEY_BACK 135 * 0x0a or 0x0b ( + ) key: 5 -> KEY_VOLUMEUP 136 * 0x0c or 0x0d ( - ) key: 6 -> KEY_VOLUMEDOWN 137 * 0x0e or 0x0f ( ) key: 7 -> KEY_RESERVED 138 * 0x50 or 0x51 ( ) key: 8 -> KEY_RESERVED 139 * 0x52 or 0x53 ( ) key: 9 -> KEY_RESERVED 140 * 0x54 or 0x55 ( ) key: 10 -> KEY_RESERVED 141 * 0x56 or 0x57 ( ) key: 11 -> KEY_RESERVED 142 * 0x58 or 0x59 ( ) key: 12 -> KEY_RESERVED 143 * 0x5a or 0x5b ( ) key: 13 -> KEY_RESERVED 144 * 0x5c or 0x5d ( middle ) key: 14 -> KEY_ENTER 145 * 0x5e or 0x5f ( >" ) key: 15 -> KEY_PLAYPAUSE 146 * 147 * Packets starting with 0x5 are part of a two-packets message, 148 * we notify the caller by sending a negative value. 149 */ 150 int key = (data >> 1) & KEY_MASK; 151 152 if ((data & TWO_PACKETS_MASK)) 153 /* Part of a 2 packets-command */ 154 key = -key; 155 156 return key; 157 } 158 159 static void key_up(struct hid_device *hid, struct appleir *appleir, int key) 160 { 161 input_report_key(appleir->input_dev, key, 0); 162 input_sync(appleir->input_dev); 163 } 164 165 static void key_down(struct hid_device *hid, struct appleir *appleir, int key) 166 { 167 input_report_key(appleir->input_dev, key, 1); 168 input_sync(appleir->input_dev); 169 } 170 171 static void battery_flat(struct appleir *appleir) 172 { 173 dev_err(&appleir->input_dev->dev, "possible flat battery?\n"); 174 } 175 176 static void key_up_tick(struct timer_list *t) 177 { > 178 struct appleir *appleir = from_timer(applier, t, key_up_timer); 179 struct hid_device *hid = appleir->hid; 180 unsigned long flags; 181 182 spin_lock_irqsave(&appleir->lock, flags); 183 if (appleir->current_key) { 184 key_up(hid, appleir, appleir->current_key); 185 appleir->current_key = 0; 186 } 187 spin_unlock_irqrestore(&appleir->lock, flags); 188 } 189 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/hid/hid-appleir.c b/drivers/hid/hid-appleir.c index 07cbc70..f5f4a93 100644 --- a/drivers/hid/hid-appleir.c +++ b/drivers/hid/hid-appleir.c @@ -173,9 +173,9 @@ static void battery_flat(struct appleir *appleir) dev_err(&appleir->input_dev->dev, "possible flat battery?\n"); } -static void key_up_tick(unsigned long data) +static void key_up_tick(struct timer_list *t) { - struct appleir *appleir = (struct appleir *)data; + struct appleir *appleir = from_timer(applier, t, key_up_timer); struct hid_device *hid = appleir->hid; unsigned long flags; @@ -303,8 +303,8 @@ static int appleir_probe(struct hid_device *hid, const struct hid_device_id *id) hid->quirks |= HID_QUIRK_HIDINPUT_FORCE; spin_lock_init(&appleir->lock); - setup_timer(&appleir->key_up_timer, - key_up_tick, (unsigned long) appleir); + timer_setup(&appleir->key_up_timer, + key_up_tick, 0); hid_set_drvdata(hid, appleir); diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 9e8c4d2..b5117a8 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -1246,9 +1246,9 @@ static void mt_release_contacts(struct hid_device *hid) td->num_received = 0; } -static void mt_expired_timeout(unsigned long arg) +static void mt_expired_timeout(struct timer_list *t) { - struct hid_device *hdev = (void *)arg; + struct hid_device *hdev = from_timer(hdev, t, release_timer); struct mt_device *td = hid_get_drvdata(hdev); /* @@ -1331,7 +1331,7 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id) */ hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS; - setup_timer(&td->release_timer, mt_expired_timeout, (long)hdev); + timer_setup(&td->release_timer, mt_expired_timeout, 0); ret = hid_parse(hdev); if (ret != 0) diff --git a/drivers/hid/hid-prodikeys.c b/drivers/hid/hid-prodikeys.c index 49c4bd3..87eda34 100644 --- a/drivers/hid/hid-prodikeys.c +++ b/drivers/hid/hid-prodikeys.c @@ -239,9 +239,9 @@ static void pcmidi_send_note(struct pcmidi_snd *pm, return; } -static void pcmidi_sustained_note_release(unsigned long data) +static void pcmidi_sustained_note_release(struct timer_list *t) { - struct pcmidi_sustain *pms = (struct pcmidi_sustain *)data; + struct pcmidi_sustain *pms = from_timer(pms, t, timer); pcmidi_send_note(pms->pm, pms->status, pms->note, pms->velocity); pms->in_use = 0; @@ -256,8 +256,7 @@ static void init_sustain_timers(struct pcmidi_snd *pm) pms = &pm->sustained_notes[i]; pms->in_use = 0; pms->pm = pm; - setup_timer(&pms->timer, pcmidi_sustained_note_release, - (unsigned long)pms); + timer_setup(&pms->timer, pcmidi_sustained_note_release, 0); } } diff --git a/drivers/hid/hid-wiimote-core.c b/drivers/hid/hid-wiimote-core.c index d003914..579884e 100644 --- a/drivers/hid/hid-wiimote-core.c +++ b/drivers/hid/hid-wiimote-core.c @@ -1226,9 +1226,9 @@ static void wiimote_schedule(struct wiimote_data *wdata) spin_unlock_irqrestore(&wdata->state.lock, flags); } -static void wiimote_init_timeout(unsigned long arg) +static void wiimote_init_timeout(struct timer_list *t) { - struct wiimote_data *wdata = (void*)arg; + struct wiimote_data *wdata = from_timer(wdata, t, timer); wiimote_schedule(wdata); } @@ -1740,7 +1740,7 @@ static struct wiimote_data *wiimote_create(struct hid_device *hdev) wdata->state.cmd_battery = 0xff; INIT_WORK(&wdata->init_worker, wiimote_init_worker); - setup_timer(&wdata->timer, wiimote_init_timeout, (long)wdata); + timer_setup(&wdata->timer, wiimote_init_timeout, 0); return wdata; } diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index 045b5da..640dfb93 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -101,10 +101,10 @@ static int hid_start_in(struct hid_device *hid) } /* I/O retry timer routine */ -static void hid_retry_timeout(unsigned long _hid) +static void hid_retry_timeout(struct timer_list *t) { - struct hid_device *hid = (struct hid_device *) _hid; - struct usbhid_device *usbhid = hid->driver_data; + struct usbhid_device *usbhid = from_timer(usbhid, t, io_retry); + struct hid_device *hid = usbhid->hid; dev_dbg(&usbhid->intf->dev, "retrying intr urb\n"); if (hid_start_in(hid)) @@ -1373,7 +1373,7 @@ static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id * init_waitqueue_head(&usbhid->wait); INIT_WORK(&usbhid->reset_work, hid_reset); - setup_timer(&usbhid->io_retry, hid_retry_timeout, (unsigned long) hid); + timer_setup(&usbhid->io_retry, hid_retry_timeout, 0); spin_lock_init(&usbhid->lock); ret = hid_add_device(hid);
Switch to using the new timer_setup() and from_timer() for drivers/hid/* Cc: Kees Cook <keescook@chromium.org> Signed-off-by: Allen Pais <allen.pais@oracle.com> --- Note: This patch is only compile tested. drivers/hid/hid-appleir.c | 8 ++++---- drivers/hid/hid-multitouch.c | 6 +++--- drivers/hid/hid-prodikeys.c | 7 +++---- drivers/hid/hid-wiimote-core.c | 6 +++--- drivers/hid/usbhid/hid-core.c | 8 ++++---- 5 files changed, 17 insertions(+), 18 deletions(-)