mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 18:23:53 +08:00
Bluetooth: Fix L2CAP error return used for failed channel lookups
The EFAULT error should only be used for memory address related errors and ENOENT might be needed for other purposes than invalid CID errors. This patch fixes the l2cap_config_req, l2cap_connect_create_rsp and l2cap_create_channel_req handlers to use the unique EBADSLT error to indicate failed lookups on a given CID. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
This commit is contained in:
parent
dc280801da
commit
21870b523e
@ -3884,13 +3884,13 @@ static int l2cap_connect_create_rsp(struct l2cap_conn *conn,
|
||||
if (scid) {
|
||||
chan = __l2cap_get_chan_by_scid(conn, scid);
|
||||
if (!chan) {
|
||||
err = -EFAULT;
|
||||
err = -EBADSLT;
|
||||
goto unlock;
|
||||
}
|
||||
} else {
|
||||
chan = __l2cap_get_chan_by_ident(conn, cmd->ident);
|
||||
if (!chan) {
|
||||
err = -EFAULT;
|
||||
err = -EBADSLT;
|
||||
goto unlock;
|
||||
}
|
||||
}
|
||||
@ -3978,7 +3978,7 @@ static inline int l2cap_config_req(struct l2cap_conn *conn,
|
||||
|
||||
chan = l2cap_get_chan_by_scid(conn, dcid);
|
||||
if (!chan)
|
||||
return -ENOENT;
|
||||
return -EBADSLT;
|
||||
|
||||
if (chan->state != BT_CONFIG && chan->state != BT_CONNECT2) {
|
||||
struct l2cap_cmd_rej_cid rej;
|
||||
@ -4438,7 +4438,7 @@ static int l2cap_create_channel_req(struct l2cap_conn *conn,
|
||||
hs_hcon = hci_conn_hash_lookup_ba(hdev, AMP_LINK, conn->dst);
|
||||
if (!hs_hcon) {
|
||||
hci_dev_put(hdev);
|
||||
return -EFAULT;
|
||||
return -EBADSLT;
|
||||
}
|
||||
|
||||
BT_DBG("mgr %p bredr_chan %p hs_hcon %p", mgr, chan, hs_hcon);
|
||||
|
Loading…
Reference in New Issue
Block a user