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 ccd985da651..1f4a32bb297 100644 --- a/net/bluetooth/hidp/core.c +++ b/net/bluetooth/hidp/core.c | |||
@@ -941,6 +941,13 @@ static int hidp_setup_hid(struct hidp_session *session, | |||
941 | hid->hid_get_raw_report = hidp_get_raw_report; | 941 | hid->hid_get_raw_report = hidp_get_raw_report; |
942 | hid->hid_output_raw_report = hidp_output_raw_report; | 942 | hid->hid_output_raw_report = hidp_output_raw_report; |
943 | 943 | ||
944 | /* True if device is blacklisted in drivers/hid/hid-core.c */ | ||
945 | if (hid_ignore(hid)) { | ||
946 | hid_destroy_device(session->hid); | ||
947 | session->hid = NULL; | ||
948 | return -ENODEV; | ||
949 | } | ||
950 | |||
944 | return 0; | 951 | return 0; |
945 | 952 | ||
946 | fault: | 953 | fault: |
@@ -1013,7 +1020,7 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock, | |||
1013 | 1020 | ||
1014 | if (req->rd_size > 0) { | 1021 | if (req->rd_size > 0) { |
1015 | err = hidp_setup_hid(session, req); | 1022 | err = hidp_setup_hid(session, req); |
1016 | if (err) | 1023 | if (err && err != -ENODEV) |
1017 | goto purge; | 1024 | goto purge; |
1018 | } | 1025 | } |
1019 | 1026 | ||