compat/3.9: switch to check pick_tx and set_xps_queue with compat-config
[~emulex/for-vlad/old/compat.git] / include / linux / compat-3.9.h
1 #ifndef LINUX_3_9_COMPAT_H
2 #define LINUX_3_9_COMPAT_H
3
4 #include <linux/version.h>
5
6 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0))
7
8 #include <linux/netdevice.h>
9 #include <linux/skbuff.h>
10
11 #ifndef CONFIG_COMPAT_NETIF_HAS_PICK_TX
12
13 #define __netdev_pick_tx LINUX_BACKPORT(__netdev_pick_tx)
14 u16 __netdev_pick_tx(struct net_device *dev, struct sk_buff *skb);
15
16 #endif /* CONFIG_COMPAT_NETIF_HAS_PICK_TX */
17
18 #if NR_CPUS < 64
19 #define MAX_XPS_CPUS            NR_CPUS
20 #else
21 #define MAX_XPS_CPUS            64
22 #endif /* NR_CPUS */
23 #define mlx4_en_hashrnd 0xd631614b
24 #define MAX_XPS_BUFFER_SIZE (DIV_ROUND_UP(MAX_XPS_CPUS, 32) * 9)
25
26 #ifndef HAVE_NETIF_SET_XPS_QUEUE
27
28 struct mlx4_en_netq_attribute {
29         struct attribute attr;
30         ssize_t (*show)(struct netdev_queue *queue,
31                         struct mlx4_en_netq_attribute *attr, char *buf);
32         ssize_t (*store)(struct netdev_queue *queue,
33                          struct mlx4_en_netq_attribute *attr, const char *buf,
34                          size_t len);
35 };
36
37 #define to_netq_attr(_attr) container_of(_attr,                         \
38         struct mlx4_en_netq_attribute, attr)
39
40 #define netif_set_xps_queue LINUX_BACKPORT(netif_set_xps_queue)
41 int netif_set_xps_queue(struct net_device *dev, struct cpumask *msk, u16 idx);
42
43 #endif /* HAVE_NETIF_SET_XPS_QUEUE */
44 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0)) */
45
46 #endif /* LINUX_3_9_COMPAT_H */