linux-stable/net
Ismael Ferreras Morezuelas c2a6db015a Bluetooth: btusb: Fix CSR clones again by re-adding ERR_DATA_REPORTING quirk
commit 42d7731e3e upstream.

A patch series by a Qualcomm engineer essentially removed my
quirk/workaround because they thought it was unnecessary.

It wasn't, and it broke everything again:

https://patchwork.kernel.org/project/netdevbpf/list/?series=661703&archive=both&state=*

He argues that the quirk is not necessary because the code should check
if the dongle says if it's supported or not. The problem is that for
these Chinese CSR clones they say that it would work:

= New Index: 00:00:00:00:00:00 (Primary,USB,hci0)
= Open Index: 00:00:00:00:00:00
< HCI Command: Read Local Version Information (0x04|0x0001) plen 0
> HCI Event: Command Complete (0x0e) plen 12
> [hci0] 11.276039
      Read Local Version Information (0x04|0x0001) ncmd 1
        Status: Success (0x00)
        HCI version: Bluetooth 5.0 (0x09) - Revision 2064 (0x0810)
        LMP version: Bluetooth 5.0 (0x09) - Subversion 8978 (0x2312)
        Manufacturer: Cambridge Silicon Radio (10)
...
< HCI Command: Read Local Supported Features (0x04|0x0003) plen 0
> HCI Event: Command Complete (0x0e) plen 68
> [hci0] 11.668030
      Read Local Supported Commands (0x04|0x0002) ncmd 1
        Status: Success (0x00)
        Commands: 163 entries
          ...
          Read Default Erroneous Data Reporting (Octet 18 - Bit 2)
          Write Default Erroneous Data Reporting (Octet 18 - Bit 3)
          ...
...
< HCI Command: Read Default Erroneous Data Reporting (0x03|0x005a) plen 0
= Close Index: 00:1A:7D:DA:71:XX

So bring it back wholesale.

Fixes: 63b1a7dd38 ("Bluetooth: hci_sync: Remove HCI_QUIRK_BROKEN_ERR_DATA_REPORTING")
Fixes: e168f69008 ("Bluetooth: btusb: Remove HCI_QUIRK_BROKEN_ERR_DATA_REPORTING for fake CSR")
Fixes: 766ae2422b ("Bluetooth: hci_sync: Check LMP feature bit instead of quirk")
Cc: stable@vger.kernel.org
Cc: Zijun Hu <quic_zijuhu@quicinc.com>
Cc: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Tested-by: Ismael Ferreras Morezuelas <swyterzone@gmail.com>
Signed-off-by: Ismael Ferreras Morezuelas <swyterzone@gmail.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-12-14 11:40:52 +01:00
..
6lowpan
9p 9p/xen: check logical size for buffer size 2022-12-14 11:40:49 +01:00
802
8021q Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-07-14 15:27:35 -07:00
appletalk
atm net/atm: fix proc_mpc_write incorrect return value 2022-10-29 10:08:32 +02:00
ax25 net: avoid overflow when rose /proc displays timer information. 2022-08-05 19:00:02 -07:00
batman-adv batman-adv: Fix hang up with small MTU hard-interface 2022-08-20 14:17:45 +02:00
bluetooth Bluetooth: btusb: Fix CSR clones again by re-adding ERR_DATA_REPORTING quirk 2022-12-14 11:40:52 +01:00
bpf bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb() 2022-11-26 09:27:28 +01:00
bpfilter
bridge bridge: switchdev: Fix memory leaks when changing VLAN protocol 2022-11-26 09:27:37 +01:00
caif net: caif: fix double disconnect client in chnl_net_open() 2022-11-26 09:27:35 +01:00
can can: isotp: fix tx state handling for echo tx processing 2022-11-16 10:04:10 +01:00
ceph libceph: clean up ceph_osdc_start_request prototype 2022-08-03 14:05:39 +02:00
core netfilter: conntrack: Fix data-races around ct mark 2022-12-02 17:43:04 +01:00
dcb
dccp dccp/tcp: Reset saddr on failure after inet6?_hash_connect(). 2022-12-02 17:43:08 +01:00
decnet dn_route: replace "jiffies-now>0" with "jiffies!=now" 2022-07-29 20:12:49 -07:00
dns_resolver
dsa net: dsa: don't leak tagger-owned storage on switch driver unbind 2022-11-26 09:27:39 +01:00
ethernet
ethtool ethtool: eeprom: fix null-deref on genl_info in dump 2022-11-04 00:00:24 +09:00
hsr net: hsr: Fix potential use-after-free 2022-12-08 11:30:17 +01:00
ieee802154 net: ieee802154: fix error return code in dgram_bind() 2022-11-04 00:00:25 +09:00
ife
ipv4 ipv4: Fix route deletion when nexthop info is not specified 2022-12-08 11:30:21 +01:00
ipv6 dccp/tcp: Reset saddr on failure after inet6?_hash_connect(). 2022-12-02 17:43:08 +01:00
iucv
kcm kcm: avoid potential race in kcm_tx_work 2022-11-26 09:27:54 +01:00
key xfrm: Fix oops in __xfrm_state_delete() 2022-12-02 17:43:07 +01:00
l2tp l2tp: l2tp_debugfs: fix Clang -Wformat warnings 2022-07-08 12:14:36 +01:00
l3mdev
lapb
llc
mac80211 wifi: mac8021: fix possible oob access in ieee80211_get_rate_duration 2022-12-08 11:30:16 +01:00
mac802154 mac802154: Fix LQI recording 2022-11-04 00:00:21 +09:00
mctp mctp: Fix an error handling path in mctp_init() 2022-11-16 10:04:02 +01:00
mpls net: Use u64_stats_fetch_begin_irq() for stats fetch. 2022-08-29 13:02:27 +01:00
mptcp mptcp: fix sleep in atomic at close time 2022-12-08 11:30:17 +01:00
ncsi net/ncsi: use proper "mellanox" DT vendor prefix 2022-06-23 20:51:06 -07:00
netfilter netfilter: flowtable_offload: add missing locking 2022-12-02 17:43:07 +01:00
netlabel netlabel: fix typo in comment 2022-08-10 09:24:41 +01:00
netlink netlink: Bounds-check struct nlmsgerr creation 2022-11-26 09:27:55 +01:00
netrom
nfc NFC: nci: fix memory leak in nci_rx_data_packet() 2022-12-02 17:43:07 +01:00
nsh
openvswitch netfilter: conntrack: Fix data-races around ct mark 2022-12-02 17:43:04 +01:00
packet packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE 2022-12-08 11:30:18 +01:00
phonet
psample
qrtr net: qrtr: start MHI channel after endpoit creation 2022-08-15 11:21:42 +01:00
rds net: rds: don't hold sock lock when cancelling work from rds_tcp_reset_callbacks() 2022-10-21 12:38:20 +02:00
rfkill
rose rose: Fix NULL pointer dereference in rose_send_frame() 2022-11-10 18:17:19 +01:00
rxrpc rxrpc: Fix race between conn bundle lookup and bundle removal [ZDI-CAN-15975] 2022-12-02 17:43:04 +01:00
sched net: sched: allow act_ct to be built without NF_NAT 2022-12-02 17:43:07 +01:00
sctp sctp: fix memory leak in sctp_stream_outq_migrate() 2022-12-08 11:30:18 +01:00
smc net/smc: Fix possible leaked pernet namespace in smc_init() 2022-11-10 18:17:22 +01:00
strparser strparser: pad sk_skb_cb to avoid straddling cachelines 2022-07-08 18:38:44 -07:00
sunrpc SUNRPC: Fix crasher in gss_unwrap_resp_integ() 2022-11-26 09:27:18 +01:00
switchdev
tipc tipc: re-fetch skb cb after tipc_msg_validate 2022-12-08 11:30:17 +01:00
tls tls: strp: make sure the TCP skbs do not have overlapping data 2022-10-29 10:08:32 +02:00
unix net: remove SOCK_SUPPORT_ZC from sockmap 2022-11-10 18:17:35 +01:00
vmw_vsock vsock: fix possible infinite sleep in vsock_connectible_wait_data() 2022-11-10 18:17:22 +01:00
wireless wifi: cfg80211: don't allow multi-BSSID in S1G 2022-12-08 11:30:16 +01:00
x25 net/x25: Fix skb leak in x25_lapb_receive_frame() 2022-11-26 09:27:38 +01:00
xdp xsk: Fix backpressure mechanism on Tx 2022-10-21 12:38:05 +02:00
xfrm xfrm: replay: Fix ESN wrap around for GSO 2022-12-02 17:43:02 +01:00
compat.c net: clear msg_get_inq in __get_compat_msghdr() 2022-09-20 08:23:20 -07:00
devres.c
Kconfig
Kconfig.debug
Makefile
socket.c net: Fix a data-race around sysctl_somaxconn. 2022-08-24 13:46:58 +01:00
sysctl_net.c