Bluetooth: L2CAP: Add get_peer_pid callback
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Mon, 23 Mar 2020 20:34:56 +0000 (13:34 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 24 Mar 2020 08:48:00 +0000 (09:48 +0100)
This adds a callback to read the socket pid.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/net/bluetooth/l2cap.h
net/bluetooth/l2cap_sock.c

index 537aaead259f52c066ee68d7351fb27ba0574752..2d7d28474d34b8fdbf219eb7bd03da538d97d8b5 100644 (file)
@@ -660,6 +660,7 @@ struct l2cap_ops {
        void                    (*suspend) (struct l2cap_chan *chan);
        void                    (*set_shutdown) (struct l2cap_chan *chan);
        long                    (*get_sndtimeo) (struct l2cap_chan *chan);
+       struct pid              *(*get_peer_pid) (struct l2cap_chan *chan);
        struct sk_buff          *(*alloc_skb) (struct l2cap_chan *chan,
                                               unsigned long hdr_len,
                                               unsigned long len, int nb);
index 40fb10b591bd3650e03653d92ec9d3f6db1ec02b..117ba20ea194601838074f5285835cf04f0c8cd9 100644 (file)
@@ -1504,6 +1504,13 @@ static long l2cap_sock_get_sndtimeo_cb(struct l2cap_chan *chan)
        return sk->sk_sndtimeo;
 }
 
+static struct pid *l2cap_sock_get_peer_pid_cb(struct l2cap_chan *chan)
+{
+       struct sock *sk = chan->data;
+
+       return sk->sk_peer_pid;
+}
+
 static void l2cap_sock_suspend_cb(struct l2cap_chan *chan)
 {
        struct sock *sk = chan->data;
@@ -1525,6 +1532,7 @@ static const struct l2cap_ops l2cap_chan_ops = {
        .suspend                = l2cap_sock_suspend_cb,
        .set_shutdown           = l2cap_sock_set_shutdown_cb,
        .get_sndtimeo           = l2cap_sock_get_sndtimeo_cb,
+       .get_peer_pid           = l2cap_sock_get_peer_pid_cb,
        .alloc_skb              = l2cap_sock_alloc_skb_cb,
 };