blob: c397e544c3de5fc5c4bf919afd74376087f39e01 [file] [log] [blame]
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