Messages in this thread | | | From | Justin He <> | Subject | RE: [PATCH] qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union() | Date | Tue, 20 Jul 2021 09:28:34 +0000 |
| |
> -----Original Message----- > From: Jakub Kicinski <kuba@kernel.org> > Sent: Tuesday, July 20, 2021 5:06 PM > To: Justin He <Justin.He@arm.com> > Cc: Prabhakar Kushwaha <prabhakar.pkin@gmail.com>; David S. Miller > <davem@davemloft.net>; Ariel Elior <aelior@marvell.com>; GR-everest-linux- > l2@marvell.com; netdev@vger.kernel.org; Linux Kernel Mailing List <linux- > kernel@vger.kernel.org>; nd <nd@arm.com>; Shai Malin <malin1024@gmail.com>; > Shai Malin <smalin@marvell.com>; Prabhakar Kushwaha <pkushwaha@marvell.com> > Subject: Re: [PATCH] qed: fix possible unpaired spin_{un}lock_bh in > _qed_mcp_cmd_and_union() > > On Tue, 20 Jul 2021 02:02:26 +0000, Justin He wrote: > > > > For instance: > > > > _qed_mcp_cmd_and_union() > > > > In while loop > > > > spin_lock_bh() > > > > qed_mcp_has_pending_cmd() (assume false), will break the loop > > > > > > I agree till here. > > > > > > > if (cnt >= max_retries) { > > > > ... > > > > return -EAGAIN; <-- here returns -EAGAIN without invoking bh > unlock > > > > } > > > > > > > > > > Because of break, cnt has not been increased. > > > - cnt is still less than max_retries. > > > - if (cnt >= max_retries) will not be *true*, leading to > spin_unlock_bh(). > > > Hence pairing completed. > > > > Sorry, indeed. Let me check other possibilities. > > @David S. Miller Sorry for the inconvenience, could you please revert it > > in netdev tree? > > Please submit a revert patch with the conclusions from the discussion > included in the commit message. Okay,will do that Thanks for the reminder
-- Cheers, Justin (Jia He)
| |