diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/bluetooth/hidp/core.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c index 0c0028463fa..b2bcbe2dc32 100644 --- a/net/bluetooth/hidp/core.c +++ b/net/bluetooth/hidp/core.c | |||
@@ -945,6 +945,13 @@ static int hidp_setup_hid(struct hidp_session *session, | |||
945 | hid->hid_get_raw_report = hidp_get_raw_report; | 945 | hid->hid_get_raw_report = hidp_get_raw_report; |
946 | hid->hid_output_raw_report = hidp_output_raw_report; | 946 | hid->hid_output_raw_report = hidp_output_raw_report; |
947 | 947 | ||
948 | /* True if device is blacklisted in drivers/hid/hid-core.c */ | ||
949 | if (hid_ignore(hid)) { | ||
950 | hid_destroy_device(session->hid); | ||
951 | session->hid = NULL; | ||
952 | return -ENODEV; | ||
953 | } | ||
954 | |||
948 | return 0; | 955 | return 0; |
949 | 956 | ||
950 | fault: | 957 | fault: |
@@ -1017,7 +1024,7 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock, | |||
1017 | 1024 | ||
1018 | if (req->rd_size > 0) { | 1025 | if (req->rd_size > 0) { |
1019 | err = hidp_setup_hid(session, req); | 1026 | err = hidp_setup_hid(session, req); |
1020 | if (err) | 1027 | if (err && err != -ENODEV) |
1021 | goto purge; | 1028 | goto purge; |
1022 | } | 1029 | } |
1023 | 1030 | ||