Re: [PATCH v2] net: ns83820: fix DMA mapping error handling in hard_start_xmit

From: Joe Damato

Date: Tue Mar 31 2026 - 19:51:31 EST


On Tue, Mar 31, 2026 at 08:21:41PM +0800, Wang Jun wrote:
> Hi Paolo Abeni,
>
> This is v2 of the DMA mapping error handling fix for ns83820. Changes since v1:
>
> - Added queue restart check in error path to avoid potential TX queue stall
> (as pointed out by the AI review)
> - Adjusted variable declarations to follow reverse christmas tree order
> - Switched from dma_unmap_single to dma_unmap_page for fragments

Usually you'd put the changelog below. Take a look at how this recent patch
does it:

https://lore.kernel.org/netdev/20260331123858.1912449-2-charles.perry@xxxxxxxxxxxxx/

> diff --git a/drivers/net/ethernet/natsemi/ns83820.c b/drivers/net/ethernet/natsemi/ns83820.c
> index cdbf82affa7b..f8d037db4ffb 100644
> --- a/drivers/net/ethernet/natsemi/ns83820.c
> +++ b/drivers/net/ethernet/natsemi/ns83820.c
> @@ -1051,6 +1051,12 @@ static netdev_tx_t ns83820_hard_start_xmit(struct sk_buff *skb,
> int stopped = 0;
> int do_intr = 0;
> volatile __le32 *first_desc;
> + int i;
> + int frag_mapped_count = 0;
> + unsigned int main_len = 0;
> + unsigned int frag_dma_len[MAX_SKB_FRAGS];
> + dma_addr_t main_buf = 0;
> + dma_addr_t frag_dma_addr[MAX_SKB_FRAGS];

You mentioned it was fixed to reverse christmas tree in the changelog above,
but doesn't seem like it in the patch?