[ Sasha's backport helper bot ]
Hi,
✅ All tests passed successfully. No issues detected. No action required from the submitter.
The upstream commit SHA1 provided is correct: b6ecc662037694488bfff7c9fd21c405df8411f2
WARNING: Author mismatch between patch and upstream commit: Backport author: Harshit Mogalapalliharshit.m.mogalapalli@oracle.com Commit author: Souradeep Chakrabartischakrabarti@linux.microsoft.com
Status in newer kernel trees: 6.14.y | Present (exact SHA1) 6.13.y | Present (exact SHA1) 6.12.y | Present (exact SHA1) 6.6.y | Present (different SHA1: 9e0bff4900b5) 6.1.y | Present (different SHA1: 9178eb8ebcd8)
Note: The patch differs from the upstream commit: --- 1: b6ecc66203769 ! 1: 63ebacf9b41b2 net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup @@ Metadata ## Commit message ## net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup
+ [ Upstream commit b6ecc662037694488bfff7c9fd21c405df8411f2 ] + Currently napi_disable() gets called during rxq and txq cleanup, even before napi is enabled and hrtimer is initialized. It causes kernel panic. @@ Commit message Reviewed-by: Haiyang Zhang haiyangz@microsoft.com Reviewed-by: Shradha Gupta shradhagupta@linux.microsoft.com Signed-off-by: David S. Miller davem@davemloft.net + (cherry picked from commit b6ecc662037694488bfff7c9fd21c405df8411f2) + [Harshit: conflicts resolved due to missing commit: ed5356b53f07 ("net: + mana: Add XDP support") and commit: d356abb95b98 ("net: mana: Add + counter for XDP_TX") in 5.15.y] + Signed-off-by: Harshit Mogalapalli harshit.m.mogalapalli@oracle.com + + ## drivers/net/ethernet/microsoft/mana/mana.h ## +@@ drivers/net/ethernet/microsoft/mana/mana.h: struct mana_txq { + + atomic_t pending_sends; + ++ bool napi_initialized; ++ + struct mana_stats stats; + }; +
## drivers/net/ethernet/microsoft/mana/mana_en.c ## @@ drivers/net/ethernet/microsoft/mana/mana_en.c: static void mana_destroy_txq(struct mana_port_context *apc) @@ drivers/net/ethernet/microsoft/mana/mana_en.c: static int mana_create_txq(struct memset(&spec, 0, sizeof(spec)); @@ drivers/net/ethernet/microsoft/mana/mana_en.c: static int mana_create_txq(struct mana_port_context *apc,
- netif_napi_add_tx(net, &cq->napi, mana_poll); + netif_tx_napi_add(net, &cq->napi, mana_poll, NAPI_POLL_WEIGHT); napi_enable(&cq->napi); + txq->napi_initialized = true;
@@ drivers/net/ethernet/microsoft/mana/mana_en.c: static void mana_destroy_rxq(stru napi_synchronize(napi);
- napi_disable(napi); +- netif_napi_del(napi); + napi_disable(napi);
+ netif_napi_del(napi); + } - xdp_rxq_info_unreg(&rxq->xdp_rxq); - -- netif_napi_del(napi); -- mana_destroy_wq_obj(apc, GDMA_RQ, rxq->rxobj);
mana_deinit_cq(apc, &rxq->rx_cq); - - ## include/net/mana/mana.h ## -@@ include/net/mana/mana.h: struct mana_txq { - - atomic_t pending_sends; - -+ bool napi_initialized; -+ - struct mana_stats_tx stats; - }; - ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.15.y | Success | Success |