| From 6348d68f44b46a826d863a6d3a9bb92d1eba437e Mon Sep 17 00:00:00 2001 |
| From: Archie Pusaka <apusaka@chromium.org> |
| Date: Mon, 10 May 2021 17:30:36 +0800 |
| Subject: [PATCH] CHROMIUM: Bluetooth: sco: new getsockopt options |
| BT_SNDMTU/BT_RCVMTU |
| |
| This patch defines new getsockopt options BT_SNDMTU/BT_RCVMTU |
| for SCO socket to be compatible with other bluetooth sockets. |
| These new options return the same value as option SCO_OPTIONS |
| which is already present on existing kernels. |
| |
| This is a cherry-pick from a BACKPORT patch which is landed in |
| kernel v5.4 crrev/2516328 |
| |
| BUG=b:175350512,b:160439174 |
| TEST=Verify WBS works |
| |
| Signed-off-by: Archie Pusaka <apusaka@chromium.org> |
| |
| Change-Id: I223deab7c78fd3d4f6e602e0b5afc98526ec6ce8 |
| Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2882999 |
| Reviewed-by: Shyh-In Hwang <josephsih@chromium.org> |
| Commit-Queue: Archie Pusaka <apusaka@chromium.org> |
| Tested-by: Archie Pusaka <apusaka@chromium.org> |
| --- |
| net/bluetooth/sco.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c |
| --- a/net/bluetooth/sco.c |
| +++ b/net/bluetooth/sco.c |
| @@ -69,6 +69,7 @@ struct sco_pinfo { |
| __u32 flags; |
| __u16 setting; |
| __u8 cmsg_mask; |
| + __u32 wbs_pkt_len; |
| struct sco_conn *conn; |
| }; |
| |
| @@ -277,6 +278,8 @@ static int sco_connect(struct hci_dev *hdev, struct sock *sk) |
| sco_sock_set_timer(sk, sk->sk_sndtimeo); |
| } |
| |
| + sco_pi(sk)->wbs_pkt_len = hdev->wbs_pkt_len; |
| + |
| return err; |
| } |
| |
| @@ -1024,7 +1027,7 @@ static int sco_sock_getsockopt(struct socket *sock, int level, int optname, |
| break; |
| } |
| |
| - if (put_user(sco_pi(sk)->conn->mtu, (u32 __user *)optval)) |
| + if (put_user(sco_pi(sk)->wbs_pkt_len, (u32 __user *)optval)) |
| err = -EFAULT; |
| break; |
| |
| -- |
| 2.33.0.464.g1972c5931b-goog |
| |