-----Original Message----- From: longli@linuxonhyperv.com longli@linuxonhyperv.com Sent: Monday, August 5, 2024 7:38 PM To: KY Srinivasan kys@microsoft.com; Haiyang Zhang haiyangz@microsoft.com; Wei Liu wei.liu@kernel.org; Dexuan Cui decui@microsoft.com; David S. Miller davem@davemloft.net; Eric Dumazet edumazet@google.com; Jakub Kicinski kuba@kernel.org; Paolo Abeni pabeni@redhat.com; Shradha Gupta shradhagupta@linux.microsoft.com; Simon Horman horms@kernel.org; Konstantin Taranov kotaranov@microsoft.com; Souradeep Chakrabarti schakrabarti@linux.microsoft.com; Erick Archer erick.archer@outlook.com; linux-hyperv@vger.kernel.org; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; linux- rdma@vger.kernel.org Cc: Long Li longli@microsoft.com; stable@vger.kernel.org Subject: [PATCH net] net: mana: Fix doorbell out of order violation and avoid unnecessary doorbell rings
From: Long Li longli@microsoft.com
After napi_complete_done() is called, another NAPI may be running on another CPU and ring the doorbell before the current CPU does. When combined with unnecessary rings when there is no need to ARM the CQ, this triggers error paths in the hardware.
Fix this by always ring the doorbell in sequence and avoid unnecessary rings.
Cc: stable@vger.kernel.org Fixes: e1b5683ff62e ("net: mana: Move NAPI from EQ to CQ") Signed-off-by: Long Li longli@microsoft.com
Reviewed-by: Haiyang Zhang haiyangz@microsoft.com
Thank you.