On Mon, 04 May 2026 17:27:48 -0700 Bobby Eshleman wrote:
> --- a/drivers/net/netkit.c
> +++ b/drivers/net/netkit.c
> @@ -466,6 +466,7 @@ static void netkit_setup(struct net_device *dev)
>       dev->priv_flags |= IFF_NO_QUEUE;
>       dev->priv_flags |= IFF_DISABLE_NETPOLL;
>       dev->lltx = true;
> +     dev->netmem_tx = NETMEM_TX_NO_DMA;
>  
>       dev->netdev_ops     = &netkit_netdev_ops;
>       dev->ethtool_ops    = &netkit_ethtool_ops;
> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> index 0e1e581efc5a..11d68e75eb4f 100644
> --- a/include/linux/netdevice.h
> +++ b/include/linux/netdevice.h
> @@ -1788,6 +1788,12 @@ enum netdev_stat_type {
>       NETDEV_PCPU_STAT_DSTATS, /* struct pcpu_dstats */
>  };
>  
> +enum netmem_tx_mode {
> +     NETMEM_TX_NONE,         /* no netmem TX support */
> +     NETMEM_TX_DMA,          /* DMA-capable netmem TX (real HW) */
> +     NETMEM_TX_NO_DMA,       /* no DMA, e.g. passthrough for virtual devs */

Now there's a little too much here, let's move the NO_DMA changes to
another patch. Just convert the netmem_tx to an enum and change the
existing drivers in patch 1.

Next patch has:

> @@ -1164,16 +1197,30 @@ int netdev_nl_bind_tx_doit(struct sk_buff *skb, 
> struct genl_info *info)
>               goto err_unlock_netdev;
>       }
>  
> -     if (!netdev->netmem_tx) {
> +     if (netdev->netmem_tx == NETMEM_TX_NONE) {
>               err = -EOPNOTSUPP;
>               NL_SET_ERR_MSG(info->extack,
>                              "Driver does not support netmem TX");
>               goto err_unlock_netdev;
>       }

which also should have been in patch 1.

Reply via email to