From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Archie Pusaka <apusaka@chromium.org>,
syzbot+338f014a98367a08a114@syzkaller.appspotmail.com,
Alain Michaud <alainm@chromium.org>,
Abhishek Pandit-Subedi <abhishekpandit@chromium.org>,
Guenter Roeck <groeck@chromium.org>,
Marcel Holtmann <marcel@holtmann.org>,
Sasha Levin <sashal@kernel.org>,
linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 5.10 18/85] Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
Date: Wed, 5 May 2021 12:35:41 -0400 [thread overview]
Message-ID: <20210505163648.3462507-18-sashal@kernel.org> (raw)
In-Reply-To: <20210505163648.3462507-1-sashal@kernel.org>
From: Archie Pusaka <apusaka@chromium.org>
[ Upstream commit 3a9d54b1947ecea8eea9a902c0b7eb58a98add8a ]
Currently l2cap_chan_set_defaults() reset chan->conf_state to zero.
However, there is a flag CONF_NOT_COMPLETE which is set when
creating the l2cap_chan. It is suggested that the flag should be
cleared when l2cap_chan is ready, but when l2cap_chan_set_defaults()
is called, l2cap_chan is not yet ready. Therefore, we must set this
flag as the default.
Example crash call trace:
__dump_stack lib/dump_stack.c:15 [inline]
dump_stack+0xc4/0x118 lib/dump_stack.c:56
panic+0x1c6/0x38b kernel/panic.c:117
__warn+0x170/0x1b9 kernel/panic.c:471
warn_slowpath_fmt+0xc7/0xf8 kernel/panic.c:494
debug_print_object+0x175/0x193 lib/debugobjects.c:260
debug_object_assert_init+0x171/0x1bf lib/debugobjects.c:614
debug_timer_assert_init kernel/time/timer.c:629 [inline]
debug_assert_init kernel/time/timer.c:677 [inline]
del_timer+0x7c/0x179 kernel/time/timer.c:1034
try_to_grab_pending+0x81/0x2e5 kernel/workqueue.c:1230
cancel_delayed_work+0x7c/0x1c4 kernel/workqueue.c:2929
l2cap_clear_timer+0x1e/0x41 include/net/bluetooth/l2cap.h:834
l2cap_chan_del+0x2d8/0x37e net/bluetooth/l2cap_core.c:640
l2cap_chan_close+0x532/0x5d8 net/bluetooth/l2cap_core.c:756
l2cap_sock_shutdown+0x806/0x969 net/bluetooth/l2cap_sock.c:1174
l2cap_sock_release+0x64/0x14d net/bluetooth/l2cap_sock.c:1217
__sock_release+0xda/0x217 net/socket.c:580
sock_close+0x1b/0x1f net/socket.c:1039
__fput+0x322/0x55c fs/file_table.c:208
____fput+0x17/0x19 fs/file_table.c:244
task_work_run+0x19b/0x1d3 kernel/task_work.c:115
exit_task_work include/linux/task_work.h:21 [inline]
do_exit+0xe4c/0x204a kernel/exit.c:766
do_group_exit+0x291/0x291 kernel/exit.c:891
get_signal+0x749/0x1093 kernel/signal.c:2396
do_signal+0xa5/0xcdb arch/x86/kernel/signal.c:737
exit_to_usermode_loop arch/x86/entry/common.c:243 [inline]
prepare_exit_to_usermode+0xed/0x235 arch/x86/entry/common.c:277
syscall_return_slowpath+0x3a7/0x3b3 arch/x86/entry/common.c:348
int_ret_from_sys_call+0x25/0xa3
Signed-off-by: Archie Pusaka <apusaka@chromium.org>
Reported-by: syzbot+338f014a98367a08a114@syzkaller.appspotmail.com
Reviewed-by: Alain Michaud <alainm@chromium.org>
Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/bluetooth/l2cap_core.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 1ab27b90ddcb..3e18cddfbcc5 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -516,7 +516,9 @@ void l2cap_chan_set_defaults(struct l2cap_chan *chan)
chan->flush_to = L2CAP_DEFAULT_FLUSH_TO;
chan->retrans_timeout = L2CAP_DEFAULT_RETRANS_TO;
chan->monitor_timeout = L2CAP_DEFAULT_MONITOR_TO;
+
chan->conf_state = 0;
+ set_bit(CONF_NOT_COMPLETE, &chan->conf_state);
set_bit(FLAG_FORCE_ACTIVE, &chan->flags);
}
--
2.30.2
next prev parent reply other threads:[~2021-05-05 16:51 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-05 16:35 [PATCH AUTOSEL 5.10 01/85] ath11k: fix thermal temperature read Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 06/85] tipc: convert dest node's address to network order Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 08/85] net/mlx5e: Use net_prefetchw instead of prefetchw in MPWQE TX datapath Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 09/85] net: stmmac: Set FIFO sizes for ipq806x Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 11/85] Documentation: networking: switchdev: fix command for static FDB entries Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 12/85] Bluetooth: Fix incorrect status handling in LE PHY UPDATE event Sasha Levin
2021-05-05 16:35 ` Sasha Levin [this message]
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 19/85] Bluetooth: verify AMP hci_chan before amp_destroy Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 20/85] Bluetooth: initialize skb_queue_head at l2cap_chan_create() Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 21/85] net/sched: cls_flower: use ntohs for struct flow_dissector_key_ports Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 22/85] net: bridge: when suppression is enabled exclude RARP packets Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 23/85] Bluetooth: check for zapped sk before connecting Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 26/85] net: hns3: remediate a potential overflow risk of bd_num_list Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 27/85] net: hns3: add handling for xmit skb with recursive fraglist Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 28/85] ip6_vti: proper dev_{hold|put} in ndo_[un]init methods Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 30/85] ice: handle increasing Tx or Rx ring sizes Sasha Levin
2021-05-05 16:35 ` [PATCH AUTOSEL 5.10 31/85] net: usb: ax88179_178a: initialize local variables before use Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 38/85] mac80211: clear the beacon's CRC after channel switch Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 40/85] rtw88: 8822c: add LC calibration for RTL8822C Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 41/85] mt76: mt7615: support loading EEPROM for MT7613BE Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 42/85] mt76: mt76x0: disable GTK offloading Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 43/85] mt76: mt7915: fix txpower init for TSSI off chips Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 47/85] iwlwifi: pcie: make cfg vs. trans_cfg more robust Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 53/85] selftests: Set CC to clang in lib.mk if LLVM is set Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 58/85] sctp: Fix out-of-bounds warning in sctp_process_asconf_param() Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 59/85] flow_dissector: Fix out-of-bounds warning in __skb_flow_bpf_to_target() Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 62/85] ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user() Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 63/85] net: sched: tapr: prevent cycle_time == 0 in parse_taprio_schedule Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 64/85] samples/bpf: Fix broken tracex1 due to kprobe argument change Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 69/85] mt76: mt7615: fix entering driver-own state on mt7663 Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 71/85] wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 72/85] wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 73/85] qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 75/85] iavf: remove duplicate free resources calls Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 76/85] net: ethernet: mtk_eth_soc: fix RX VLAN offload Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 77/85] selftests: mlxsw: Increase the tolerance of backlog buildup Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 78/85] selftests: mlxsw: Fix mausezahn invocation in ERSPAN scale test Sasha Levin
2021-05-05 16:36 ` [PATCH AUTOSEL 5.10 80/85] bnxt_en: Add PCI IDs for Hyper-V VF devices Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210505163648.3462507-18-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=abhishekpandit@chromium.org \
--cc=alainm@chromium.org \
--cc=apusaka@chromium.org \
--cc=groeck@chromium.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=netdev@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=syzbot+338f014a98367a08a114@syzkaller.appspotmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).