RE: Patch "net: stmmac: Tx coe sw fallback" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

To make this complete, I think you have to take the dt binding 
commit 6fb8c20a04be ("dt-bindings: net: snps,dwmac: Tx coe unsupported")
also from the upstream.

BR,
Rohan

> Subject: Patch "net: stmmac: Tx coe sw fallback" has been added to the 6.6-
> stable tree
> 
> This is a note to let you know that I've just added the patch titled
> 
>     net: stmmac: Tx coe sw fallback
> 
> to the 6.6-stable tree which can be found at:
>     http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-
> queue.git;a=summary
> 
> The filename of the patch is:
>      net-stmmac-tx-coe-sw-fallback.patch
> and it can be found in the queue-6.6 subdirectory.
> 
> If you, or anyone else, feels it should not be added to the stable tree, please
> let <stable@xxxxxxxxxxxxxxx> know about it.
> 
> 
> 
> commit 071be3267bf1cf00cff09a9e6758055b060f2a7b
> Author: Rohan G Thomas <rohan.g.thomas@xxxxxxxxx>
> Date:   Sat Sep 16 14:33:12 2023 +0800
> 
>     net: stmmac: Tx coe sw fallback
> 
>     [ Upstream commit 8452a05b2c633b708dbe3e742f71b24bf21fe42d ]
> 
>     Add sw fallback of tx checksum calculation for those tx queues that
>     don't support tx checksum offloading. DW xGMAC IP can be synthesized
>     such that it can support tx checksum offloading only for a few
>     initial tx queues. Also as Serge pointed out, for the DW QoS IP, tx
>     coe can be individually configured for each tx queue.
> 
>     So when tx coe is enabled, for any tx queue that doesn't support
>     tx coe with 'coe-unsupported' flag set will have a sw fallback
>     happen in the driver for tx checksum calculation when any packets to
>     be transmitted on these tx queues.
> 
>     Signed-off-by: Rohan G Thomas <rohan.g.thomas@xxxxxxxxx>
>     Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
>     Stable-dep-of: c2945c435c99 ("net: stmmac: Prevent DSA tags from
> breaking COE")
>     Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> 
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> index 1bfcf673b3ce..59e07efe08c9 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> @@ -4417,6 +4417,16 @@ static netdev_tx_t stmmac_xmit(struct sk_buff
> *skb, struct net_device *dev)
>  	WARN_ON(tx_q->tx_skbuff[first_entry]);
> 
>  	csum_insertion = (skb->ip_summed == CHECKSUM_PARTIAL);
> +	/* DWMAC IPs can be synthesized to support tx coe only for a few tx
> +	 * queues. In that case, checksum offloading for those queues that
> don't
> +	 * support tx coe needs to fallback to software checksum calculation.
> +	 */
> +	if (csum_insertion &&
> +	    priv->plat->tx_queues_cfg[queue].coe_unsupported) {
> +		if (unlikely(skb_checksum_help(skb)))
> +			goto dma_map_err;
> +		csum_insertion = !csum_insertion;
> +	}
> 
>  	if (likely(priv->extend_desc))
>  		desc = (struct dma_desc *)(tx_q->dma_etx + entry); diff --git
> a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> index 2f0678f15fb7..30d5e635190e 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> @@ -276,6 +276,9 @@ static int stmmac_mtl_setup(struct platform_device
> *pdev,
>  			plat->tx_queues_cfg[queue].use_prio = true;
>  		}
> 
> +		plat->tx_queues_cfg[queue].coe_unsupported =
> +			of_property_read_bool(q_node, "snps,coe-
> unsupported");
> +
>  		queue++;
>  	}
>  	if (queue != plat->tx_queues_to_use) { diff --git
> a/include/linux/stmmac.h b/include/linux/stmmac.h index
> e3f7ee169c08..5acb77968902 100644
> --- a/include/linux/stmmac.h
> +++ b/include/linux/stmmac.h
> @@ -139,6 +139,7 @@ struct stmmac_rxq_cfg {
> 
>  struct stmmac_txq_cfg {
>  	u32 weight;
> +	bool coe_unsupported;
>  	u8 mode_to_use;
>  	/* Credit Base Shaper parameters */
>  	u32 send_slope;





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux