compat: backport __netdev_alloc_skb_ip_align()
[~emulex/for-vlad/old/compat.git] / include / linux / compat-3.1.h
1 #ifndef LINUX_3_1_COMPAT_H
2 #define LINUX_3_1_COMPAT_H
3
4 #include <linux/version.h>
5
6 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0))
7
8 #include <linux/security.h>
9 #include <linux/skbuff.h>
10
11 static inline struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev,
12                                                           unsigned int length, gfp_t gfp)
13 {
14         struct sk_buff *skb = __netdev_alloc_skb(dev, length + NET_IP_ALIGN, gfp);
15
16         if (NET_IP_ALIGN && skb)
17                 skb_reserve(skb, NET_IP_ALIGN);
18         return skb;
19 }
20
21 #define IS_ENABLED(option) defined(option)
22
23 #define genl_dump_check_consistent(cb, user_hdr, family)
24
25 #define IFF_TX_SKB_SHARING      0x10000 /* The interface supports sharing
26                                          * skbs on transmit */
27
28 #define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \
29         .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
30                         PCMCIA_DEV_ID_MATCH_CARD_ID| \
31                         PCMCIA_DEV_ID_MATCH_PROD_ID3, \
32         .manf_id = (manf), \
33         .card_id = (card), \
34         .prod_id = { NULL, NULL, (v3), NULL }, \
35         .prod_id_hash = { 0, 0, (vh3), 0 }, }
36
37 /*
38  * This has been defined in include/linux/security.h for some time, but was
39  * only given an EXPORT_SYMBOL for 3.1.  Add a compat_* definition to avoid
40  * breaking the compile.
41  */
42 #define security_sk_clone(a, b) compat_security_sk_clone(a, b)
43
44 static inline void security_sk_clone(const struct sock *sk, struct sock *newsk)
45 {
46 }
47
48 /*
49  * In many versions, several architectures do not seem to include an
50  * atomic64_t implementation, and do not include the software emulation from
51  * asm-generic/atomic64_t.
52  * Detect and handle this here.
53  */
54 #include <asm/atomic.h>
55
56 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)) && !defined(ATOMIC64_INIT) && !defined(CONFIG_X86) && !((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) && defined(CONFIG_ARM) && !defined(CONFIG_GENERIC_ATOMIC64))
57 #include <asm-generic/atomic64.h>
58 #endif
59
60 #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) */
61
62 #endif /* LINUX_3_1_COMPAT_H */