compat: Compat file changes for rhel and sles
[~tnikolova/compat/.git] / include / linux / compat-3.16.h
1 #ifndef LINUX_3_16_COMPAT_H
2 #define LINUX_3_16_COMPAT_H
3
4 #include <linux/version.h>
5
6 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0))
7
8 #include <linux/cpumask.h>
9
10 #define cpumask_set_cpu_local_first LINUX_BACKPORT(cpumask_set_cpu_local_first)
11
12 #if NR_CPUS == 1
13 static inline int cpumask_set_cpu_local_first(int i, int numa_node, cpumask_t *dstp)
14 {
15         set_bit(0, cpumask_bits(dstp));
16
17         return 0;
18 }
19 #else
20 int cpumask_set_cpu_local_first(int i, int numa_node, cpumask_t *dstp);
21 #endif
22
23 #include <linux/ktime.h>
24
25 #ifndef smp_mb__after_atomic
26 #define smp_mb__after_atomic()  smp_mb()
27 #endif
28
29 #ifndef smp_mb__before_atomic
30 #define smp_mb__before_atomic() smp_mb()
31 #endif
32
33 #define RPC_CWNDSHIFT           (8U)
34 #define RPC_CWNDSCALE           (1U << RPC_CWNDSHIFT)
35 #define RPC_INITCWND            RPC_CWNDSCALE
36 #define RPC_MAXCWND(xprt)       ((xprt)->max_reqs << RPC_CWNDSHIFT)
37 #define RPCXPRT_CONGESTED(xprt) ((xprt)->cong >= (xprt)->cwnd)
38
39 #include <linux/netdev_features.h>
40
41 #ifndef NETIF_F_GSO_UDP_TUNNEL_CSUM
42 #define NETIF_F_GSO_UDP_TUNNEL_CSUM 0
43 #endif
44
45 #if !defined(HAVE___DEV_UC_SYNC) && !defined(HAVE___DEV_MC_SYNC)
46
47 #include <linux/netdevice.h>
48
49 #define __hw_addr_sync_dev LINUX_BACKPORT(__hw_addr_sync_dev)
50 int __hw_addr_sync_dev(struct netdev_hw_addr_list *list,
51                        struct net_device *dev,
52                        int (*sync)(struct net_device *, const unsigned char *),
53                        int (*unsync)(struct net_device *,
54                                      const unsigned char *));
55
56 /**
57  *  __dev_uc_sync - Synchonize device's unicast list
58  *  @dev:  device to sync
59  *  @sync: function to call if address should be added
60  *  @unsync: function to call if address should be removed
61  *
62  *  Add newly added addresses to the interface, and release
63  *  addresses that have been deleted.
64  */
65 #define __dev_uc_sync LINUX_BACKPORT(__dev_uc_sync)
66 static inline int __dev_uc_sync(struct net_device *dev,
67                                 int (*sync)(struct net_device *,
68                                             const unsigned char *),
69                                 int (*unsync)(struct net_device *,
70                                               const unsigned char *))
71 {
72         return __hw_addr_sync_dev(&dev->uc, dev, sync, unsync);
73 }
74
75 /**
76  *  __dev_mc_sync - Synchonize device's multicast list
77  *  @dev:  device to sync
78  *  @sync: function to call if address should be added
79  *  @unsync: function to call if address should be removed
80  *
81  *  Add newly added addresses to the interface, and release
82  *  addresses that have been deleted.
83  */
84 #define __dev_mc_sync LINUX_BACKPORT(__dev_mc_sync)
85 static inline int __dev_mc_sync(struct net_device *dev,
86                                 int (*sync)(struct net_device *,
87                                             const unsigned char *),
88                                 int (*unsync)(struct net_device *,
89                                               const unsigned char *))
90 {
91         return __hw_addr_sync_dev(&dev->mc, dev, sync, unsync);
92 }
93 #endif
94
95 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0)) */
96
97 #endif /* LINUX_3_16_COMPAT_H */