Message ID | 20201223204904.12677-1-ljp@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 1f45dc22066797479072978feeada0852502e180 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v2] ibmvnic: continue fatal error reset after passive init | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 9 maintainers not CCed: davem@davemloft.net julietk@linux.vnet.ibm.com drt@linux.ibm.com benh@kernel.crashing.org mpe@ellerman.id.au linuxppc-dev@lists.ozlabs.org paulus@samba.org kuba@kernel.org sukadev@linux.ibm.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 19 this patch: 19 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 9 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
netdev/stable | success | Stable not CCed |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Wed, 23 Dec 2020 14:49:04 -0600 you wrote: > Commit f9c6cea0b385 ("ibmvnic: Skip fatal error reset after passive init") > says "If the passive > CRQ initialization occurs before the FATAL reset task is processed, > the FATAL error reset task would try to access a CRQ message queue > that was freed, causing an oops. The problem may be most likely to > occur during DLPAR add vNIC with a non-default MTU, because the DLPAR > process will automatically issue a change MTU request. > Fix this by not processing fatal error reset if CRQ is passively > initialized after client-driven CRQ initialization fails." > > [...] Here is the summary with links: - [net,v2] ibmvnic: continue fatal error reset after passive init https://git.kernel.org/netdev/net/c/1f45dc220667 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index b370c88a43f1..237a36040689 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -2342,8 +2342,7 @@ static void __ibmvnic_reset(struct work_struct *work) set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(60 * HZ); } - } else if (!(rwi->reset_reason == VNIC_RESET_FATAL && - adapter->from_passive_init)) { + } else { rc = do_reset(adapter, rwi, reset_state); } kfree(rwi);
Commit f9c6cea0b385 ("ibmvnic: Skip fatal error reset after passive init") says "If the passive CRQ initialization occurs before the FATAL reset task is processed, the FATAL error reset task would try to access a CRQ message queue that was freed, causing an oops. The problem may be most likely to occur during DLPAR add vNIC with a non-default MTU, because the DLPAR process will automatically issue a change MTU request. Fix this by not processing fatal error reset if CRQ is passively initialized after client-driven CRQ initialization fails." The original commit skips a specific reset condition, but that does not fix the problem it claims to fix, and misses a reset condition. The effective fix is commit 0e435befaea4 ("ibmvnic: fix NULL pointer dereference in ibmvic_reset_crq") and commit a0faaa27c716 ("ibmvnic: fix NULL pointer dereference in reset_sub_crq_queues"). With above two fixes, there are no more crashes seen as described even without the original commit, so I would like to revert the original commit. Fixes: f9c6cea0b385 ("ibmvnic: Skip fatal error reset after passive init") Signed-off-by: Lijun Pan <ljp@linux.ibm.com> --- v2: reword the commit message to explain it better. drivers/net/ethernet/ibm/ibmvnic.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)