Thread (9 messages) flat view 9 messages, 4 authors, 2021-07-20

Re: [PATCH] qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()

From: Jakub Kicinski <kuba@kernel.org>
Date: 2021-07-20 09:10:12
Also in: lkml

On Tue, 20 Jul 2021 02:02:26 +0000, Justin He wrote:
quoted
quoted
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.
  
quoted
  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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help