Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
* 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: HID: Add Cando touch screen 15.6-inch product id HID: Add MULTI_INPUT quirk for turbox/mosart touchscreen HID: hidraw, fix a NULL pointer dereference in hidraw_write HID: hidraw, fix a NULL pointer dereference in hidraw_ioctl
This commit is contained in:
@@ -237,6 +237,8 @@ static const struct hid_device_id cando_devices[] = {
|
|||||||
USB_DEVICE_ID_CANDO_MULTI_TOUCH) },
|
USB_DEVICE_ID_CANDO_MULTI_TOUCH) },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
|
||||||
USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6) },
|
USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
|
||||||
|
USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6) },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(hid, cando_devices);
|
MODULE_DEVICE_TABLE(hid, cando_devices);
|
||||||
|
@@ -1292,6 +1292,7 @@ static const struct hid_device_id hid_blacklist[] = {
|
|||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE_2) },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE_2) },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_MULTI_TOUCH) },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_MULTI_TOUCH) },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6) },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6) },
|
||||||
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CANDO, USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6) },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
|
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
|
||||||
|
@@ -134,6 +134,7 @@
|
|||||||
#define USB_VENDOR_ID_CANDO 0x2087
|
#define USB_VENDOR_ID_CANDO 0x2087
|
||||||
#define USB_DEVICE_ID_CANDO_MULTI_TOUCH 0x0a01
|
#define USB_DEVICE_ID_CANDO_MULTI_TOUCH 0x0a01
|
||||||
#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6 0x0b03
|
#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_11_6 0x0b03
|
||||||
|
#define USB_DEVICE_ID_CANDO_MULTI_TOUCH_15_6 0x0f01
|
||||||
|
|
||||||
#define USB_VENDOR_ID_CH 0x068e
|
#define USB_VENDOR_ID_CH 0x068e
|
||||||
#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2
|
#define USB_DEVICE_ID_CH_PRO_PEDALS 0x00f2
|
||||||
@@ -503,6 +504,7 @@
|
|||||||
|
|
||||||
#define USB_VENDOR_ID_TURBOX 0x062a
|
#define USB_VENDOR_ID_TURBOX 0x062a
|
||||||
#define USB_DEVICE_ID_TURBOX_KEYBOARD 0x0201
|
#define USB_DEVICE_ID_TURBOX_KEYBOARD 0x0201
|
||||||
|
#define USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART 0x7100
|
||||||
|
|
||||||
#define USB_VENDOR_ID_TWINHAN 0x6253
|
#define USB_VENDOR_ID_TWINHAN 0x6253
|
||||||
#define USB_DEVICE_ID_TWINHAN_IR_REMOTE 0x0100
|
#define USB_DEVICE_ID_TWINHAN_IR_REMOTE 0x0100
|
||||||
|
@@ -109,6 +109,12 @@ static ssize_t hidraw_write(struct file *file, const char __user *buffer, size_t
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
mutex_lock(&minors_lock);
|
mutex_lock(&minors_lock);
|
||||||
|
|
||||||
|
if (!hidraw_table[minor]) {
|
||||||
|
ret = -ENODEV;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
dev = hidraw_table[minor]->hid;
|
dev = hidraw_table[minor]->hid;
|
||||||
|
|
||||||
if (!dev->hid_output_raw_report) {
|
if (!dev->hid_output_raw_report) {
|
||||||
@@ -244,6 +250,10 @@ static long hidraw_ioctl(struct file *file, unsigned int cmd,
|
|||||||
|
|
||||||
mutex_lock(&minors_lock);
|
mutex_lock(&minors_lock);
|
||||||
dev = hidraw_table[minor];
|
dev = hidraw_table[minor];
|
||||||
|
if (!dev) {
|
||||||
|
ret = -ENODEV;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case HIDIOCGRDESCSIZE:
|
case HIDIOCGRDESCSIZE:
|
||||||
@@ -317,6 +327,7 @@ static long hidraw_ioctl(struct file *file, unsigned int cmd,
|
|||||||
|
|
||||||
ret = -ENOTTY;
|
ret = -ENOTTY;
|
||||||
}
|
}
|
||||||
|
out:
|
||||||
mutex_unlock(&minors_lock);
|
mutex_unlock(&minors_lock);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@@ -36,6 +36,7 @@ static const struct hid_blacklist {
|
|||||||
{ USB_VENDOR_ID_DWAV, USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER, HID_QUIRK_MULTI_INPUT | HID_QUIRK_NOGET },
|
{ USB_VENDOR_ID_DWAV, USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER, HID_QUIRK_MULTI_INPUT | HID_QUIRK_NOGET },
|
||||||
{ USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH, HID_QUIRK_MULTI_INPUT },
|
{ USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH, HID_QUIRK_MULTI_INPUT },
|
||||||
{ USB_VENDOR_ID_MOJO, USB_DEVICE_ID_RETRO_ADAPTER, HID_QUIRK_MULTI_INPUT },
|
{ USB_VENDOR_ID_MOJO, USB_DEVICE_ID_RETRO_ADAPTER, HID_QUIRK_MULTI_INPUT },
|
||||||
|
{ USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_TOUCHSCREEN_MOSART, HID_QUIRK_MULTI_INPUT },
|
||||||
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
||||||
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
||||||
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
{ USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT },
|
||||||
|
Reference in New Issue
Block a user