forked from mirrors/linux
		
	 52fa3b6532
			
		
	
	
		52fa3b6532
		
	
	
	
	
		
			
			When CONFIG_SYSFS is not set, the kernel fails to compile:
     net/core/page_pool_user.c:368:45: error: implicit declaration of function 'get_netdev_rx_queue_index' [-Werror=implicit-function-declaration]
      368 |                 if (pool->slow.queue_idx == get_netdev_rx_queue_index(rxq)) {
          |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~
When CONFIG_SYSFS is not set, get_netdev_rx_queue_index() is not defined
as well.
Fix by removing the ifdef around get_netdev_rx_queue_index(). It is not
needed anymore after commit e817f85652 ("xdp: generic XDP handling of
xdp_rxq_info") removed most of the CONFIG_SYSFS ifdefs.
Fixes: 0f92140468 ("memory-provider: dmabuf devmem memory provider")
Cc: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Mina Almasry <almasrymina@google.com>
Link: https://patch.msgid.link/20240913032824.2117095-1-almasrymina@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
		
	
			
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _LINUX_NETDEV_RX_QUEUE_H
 | |
| #define _LINUX_NETDEV_RX_QUEUE_H
 | |
| 
 | |
| #include <linux/kobject.h>
 | |
| #include <linux/netdevice.h>
 | |
| #include <linux/sysfs.h>
 | |
| #include <net/xdp.h>
 | |
| #include <net/page_pool/types.h>
 | |
| 
 | |
| /* This structure contains an instance of an RX queue. */
 | |
| struct netdev_rx_queue {
 | |
| 	struct xdp_rxq_info		xdp_rxq;
 | |
| #ifdef CONFIG_RPS
 | |
| 	struct rps_map __rcu		*rps_map;
 | |
| 	struct rps_dev_flow_table __rcu	*rps_flow_table;
 | |
| #endif
 | |
| 	struct kobject			kobj;
 | |
| 	struct net_device		*dev;
 | |
| 	netdevice_tracker		dev_tracker;
 | |
| 
 | |
| #ifdef CONFIG_XDP_SOCKETS
 | |
| 	struct xsk_buff_pool            *pool;
 | |
| #endif
 | |
| 	/* NAPI instance for the queue
 | |
| 	 * Readers and writers must hold RTNL
 | |
| 	 */
 | |
| 	struct napi_struct		*napi;
 | |
| 	struct pp_memory_provider_params mp_params;
 | |
| } ____cacheline_aligned_in_smp;
 | |
| 
 | |
| /*
 | |
|  * RX queue sysfs structures and functions.
 | |
|  */
 | |
| struct rx_queue_attribute {
 | |
| 	struct attribute attr;
 | |
| 	ssize_t (*show)(struct netdev_rx_queue *queue, char *buf);
 | |
| 	ssize_t (*store)(struct netdev_rx_queue *queue,
 | |
| 			 const char *buf, size_t len);
 | |
| };
 | |
| 
 | |
| static inline struct netdev_rx_queue *
 | |
| __netif_get_rx_queue(struct net_device *dev, unsigned int rxq)
 | |
| {
 | |
| 	return dev->_rx + rxq;
 | |
| }
 | |
| 
 | |
| static inline unsigned int
 | |
| get_netdev_rx_queue_index(struct netdev_rx_queue *queue)
 | |
| {
 | |
| 	struct net_device *dev = queue->dev;
 | |
| 	int index = queue - dev->_rx;
 | |
| 
 | |
| 	BUG_ON(index >= dev->num_rx_queues);
 | |
| 	return index;
 | |
| }
 | |
| 
 | |
| int netdev_rx_queue_restart(struct net_device *dev, unsigned int rxq);
 | |
| 
 | |
| #endif
 |