diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-03-23 22:39:07 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2022-03-24 11:30:47 +0200 |
| commit | 3865f5c94cb90d16810b7e751fa79034321ea836 (patch) | |
| tree | 67f44fc695189ae3ac28a931b6856991535167fe /hid-tmt300rs.c | |
| parent | fed8081d45d05ecf2b557515e17a5005b90a7e96 (diff) | |
| download | hid-tmff2-3865f5c94cb90d16810b7e751fa79034321ea836.tar.gz hid-tmff2-3865f5c94cb90d16810b7e751fa79034321ea836.zip | |
fixed possible kernel oops when unplugging device
Diffstat (limited to 'hid-tmt300rs.c')
| -rw-r--r-- | hid-tmt300rs.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/hid-tmt300rs.c b/hid-tmt300rs.c index 167262c..c2a6c64 100644 --- a/hid-tmt300rs.c +++ b/hid-tmt300rs.c @@ -1303,7 +1303,7 @@ int t300rs_open(void *data) return t300rs->open(t300rs->input_dev); } -int t300rs_close(void *data) +int t300rs_close(void *data, int dev_accessible) { struct t300rs_device_entry *t300rs = data; struct t300rs_packet_close { @@ -1314,11 +1314,13 @@ int t300rs_close(void *data) if (!t300rs) return -ENODEV; - close_packet = (struct t300rs_packet_close *)t300rs->send_buffer; - close_packet->header.cmd = 0x01; + if (dev_accessible) { + close_packet = (struct t300rs_packet_close *)t300rs->send_buffer; + close_packet->header.cmd = 0x01; - if ((ret = t300rs_send_int(t300rs))) - hid_warn(t300rs->hdev, "failed sending close command\n"); + if ((ret = t300rs_send_int(t300rs))) + hid_warn(t300rs->hdev, "failed sending close command\n"); + } t300rs->close(t300rs->input_dev); return ret; |
