On 2024-03-04 18:01, Mina Almasry wrote:
> This API enables the net stack to reset the queues used for devmem.
> 
> Signed-off-by: Mina Almasry <almasrym...@google.com>
> 
> ---
>  include/linux/netdevice.h | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> index c41019f34179..3105c586355d 100644
> --- a/include/linux/netdevice.h
> +++ b/include/linux/netdevice.h
> @@ -1435,6 +1435,20 @@ struct netdev_net_notifier {
>   *                      struct kernel_hwtstamp_config *kernel_config,
>   *                      struct netlink_ext_ack *extack);
>   *   Change the hardware timestamping parameters for NIC device.
> + *
> + * void *(*ndo_queue_mem_alloc)(struct net_device *dev, int idx);
> + *   Allocate memory for an RX queue. The memory returned in the form of
> + *   a void * can be passed to ndo_queue_mem_free() for freeing or to
> + *   ndo_queue_start to create an RX queue with this memory.
> + *
> + * void      (*ndo_queue_mem_free)(struct net_device *dev, void *);
> + *   Free memory from an RX queue.
> + *
> + * int (*ndo_queue_start)(struct net_device *dev, int idx, void *);
> + *   Start an RX queue at the specified index.
> + *
> + * int (*ndo_queue_stop)(struct net_device *dev, int idx, void **);
> + *   Stop the RX queue at the specified index.
>   */
>  struct net_device_ops {
>       int                     (*ndo_init)(struct net_device *dev);
> @@ -1679,6 +1693,16 @@ struct net_device_ops {
>       int                     (*ndo_hwtstamp_set)(struct net_device *dev,
>                                                   struct 
> kernel_hwtstamp_config *kernel_config,
>                                                   struct netlink_ext_ack 
> *extack);
> +     void *                  (*ndo_queue_mem_alloc)(struct net_device *dev,
> +                                                    int idx);
> +     void                    (*ndo_queue_mem_free)(struct net_device *dev,
> +                                                   void *queue_mem);
> +     int                     (*ndo_queue_start)(struct net_device *dev,
> +                                                int idx,
> +                                                void *queue_mem);
> +     int                     (*ndo_queue_stop)(struct net_device *dev,
> +                                               int idx,
> +                                               void **out_queue_mem);
>  };

I'm working to port bnxt over to using this API. What are your thoughts
on maybe pulling this out and use bnxt to drive it?

>  
>  /**

Reply via email to