aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/l2cap_sock.c
diff options
context:
space:
mode:
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>2013-10-15 18:24:48 -0400
committerMarcel Holtmann <marcel@holtmann.org>2013-10-15 19:42:44 -0400
commit5ec1bbe549d939ff1ef88e2cc22b2c3b95d76401 (patch)
tree877df523bdb1b892675bee1f5aa9bb939a811e5c /net/bluetooth/l2cap_sock.c
parent8d836d71e2223b8961b21112bb4ce89ef8231682 (diff)
Bluetooth: Add chan->ops->set_shutdown()
We need to remove all direct access of struct sock from L2CAP core. This change is pretty simple and just add a new L2CAP channel callback to do the work in the L2CAP socket side. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth/l2cap_sock.c')
-rw-r--r--net/bluetooth/l2cap_sock.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index ffa78d3cd8ac..301f25b9b521 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -1136,6 +1136,15 @@ static void l2cap_sock_resume_cb(struct l2cap_chan *chan)
1136 sk->sk_state_change(sk); 1136 sk->sk_state_change(sk);
1137} 1137}
1138 1138
1139static void l2cap_sock_set_shutdown_cb(struct l2cap_chan *chan)
1140{
1141 struct sock *sk = chan->data;
1142
1143 lock_sock(sk);
1144 sk->sk_shutdown = SHUTDOWN_MASK;
1145 release_sock(sk);
1146}
1147
1139static long l2cap_sock_get_sndtimeo_cb(struct l2cap_chan *chan) 1148static long l2cap_sock_get_sndtimeo_cb(struct l2cap_chan *chan)
1140{ 1149{
1141 struct sock *sk = chan->data; 1150 struct sock *sk = chan->data;
@@ -1153,6 +1162,7 @@ static struct l2cap_ops l2cap_chan_ops = {
1153 .ready = l2cap_sock_ready_cb, 1162 .ready = l2cap_sock_ready_cb,
1154 .defer = l2cap_sock_defer_cb, 1163 .defer = l2cap_sock_defer_cb,
1155 .resume = l2cap_sock_resume_cb, 1164 .resume = l2cap_sock_resume_cb,
1165 .set_shutdown = l2cap_sock_set_shutdown_cb,
1156 .get_sndtimeo = l2cap_sock_get_sndtimeo_cb, 1166 .get_sndtimeo = l2cap_sock_get_sndtimeo_cb,
1157 .alloc_skb = l2cap_sock_alloc_skb_cb, 1167 .alloc_skb = l2cap_sock_alloc_skb_cb,
1158}; 1168};