diff options
Diffstat (limited to 'net/bluetooth/l2cap_core.c')
-rw-r--r-- | net/bluetooth/l2cap_core.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index df3be692f2cf..bc8d558b01f6 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c | |||
@@ -3209,7 +3209,8 @@ static inline int l2cap_information_rsp(struct l2cap_conn *conn, struct l2cap_cm | |||
3209 | return 0; | 3209 | return 0; |
3210 | } | 3210 | } |
3211 | 3211 | ||
3212 | if (type == L2CAP_IT_FEAT_MASK) { | 3212 | switch (type) { |
3213 | case L2CAP_IT_FEAT_MASK: | ||
3213 | conn->feat_mask = get_unaligned_le32(rsp->data); | 3214 | conn->feat_mask = get_unaligned_le32(rsp->data); |
3214 | 3215 | ||
3215 | if (conn->feat_mask & L2CAP_FEAT_FIXED_CHAN) { | 3216 | if (conn->feat_mask & L2CAP_FEAT_FIXED_CHAN) { |
@@ -3226,11 +3227,15 @@ static inline int l2cap_information_rsp(struct l2cap_conn *conn, struct l2cap_cm | |||
3226 | 3227 | ||
3227 | l2cap_conn_start(conn); | 3228 | l2cap_conn_start(conn); |
3228 | } | 3229 | } |
3229 | } else if (type == L2CAP_IT_FIXED_CHAN) { | 3230 | break; |
3231 | |||
3232 | case L2CAP_IT_FIXED_CHAN: | ||
3233 | conn->fixed_chan_mask = rsp->data[0]; | ||
3230 | conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE; | 3234 | conn->info_state |= L2CAP_INFO_FEAT_MASK_REQ_DONE; |
3231 | conn->info_ident = 0; | 3235 | conn->info_ident = 0; |
3232 | 3236 | ||
3233 | l2cap_conn_start(conn); | 3237 | l2cap_conn_start(conn); |
3238 | break; | ||
3234 | } | 3239 | } |
3235 | 3240 | ||
3236 | return 0; | 3241 | return 0; |