diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 17:40:30 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 17:40:30 -0400 |
| commit | a57793651ff1a09ef18bade998632435ca2dc13f (patch) | |
| tree | fffc839d7b001f196421f09f0a06491588835fe1 /include/linux | |
| parent | 9cf52b2921fbe62566b6b2ee79f71203749c9e5e (diff) | |
| parent | 52f095ee88d8851866bc7694ab991ca5abf21d5e (diff) | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (51 commits)
[IPV6]: Fix again the fl6_sock_lookup() fixed locking
[NETFILTER]: nf_conntrack_tcp: fix connection reopening fix
[IPV6]: Fix race in ipv6_flowlabel_opt() when inserting two labels
[IPV6]: Lost locking in fl6_sock_lookup
[IPV6]: Lost locking when inserting a flowlabel in ipv6_fl_list
[NETFILTER]: xt_sctp: fix mistake to pass a pointer where array is required
[NET]: Fix OOPS due to missing check in dev_parse_header().
[TCP]: Remove lost_retrans zero seqno special cases
[NET]: fix carrier-on bug?
[NET]: Fix uninitialised variable in ip_frag_reasm()
[IPSEC]: Rename mode to outer_mode and add inner_mode
[IPSEC]: Disallow combinations of RO and AH/ESP/IPCOMP
[IPSEC]: Use the top IPv4 route's peer instead of the bottom
[IPSEC]: Store afinfo pointer in xfrm_mode
[IPSEC]: Add missing BEET checks
[IPSEC]: Move type and mode map into xfrm_state.c
[IPSEC]: Fix length check in xfrm_parse_spi
[IPSEC]: Move ip_summed zapping out of xfrm6_rcv_spi
[IPSEC]: Get nexthdr from caller in xfrm6_rcv_spi
[IPSEC]: Move tunnel parsing for IPv4 out of xfrm4_input
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/filter.h | 1 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 2 | ||||
| -rw-r--r-- | include/linux/netfilter/xt_sctp.h | 13 |
3 files changed, 7 insertions, 9 deletions
diff --git a/include/linux/filter.h b/include/linux/filter.h index 91b2e3b925..ddfa0372a3 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h | |||
| @@ -146,6 +146,7 @@ struct sock; | |||
| 146 | 146 | ||
| 147 | extern unsigned int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen); | 147 | extern unsigned int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen); |
| 148 | extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk); | 148 | extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk); |
| 149 | extern int sk_detach_filter(struct sock *sk); | ||
| 149 | extern int sk_chk_filter(struct sock_filter *filter, int flen); | 150 | extern int sk_chk_filter(struct sock_filter *filter, int flen); |
| 150 | #endif /* __KERNEL__ */ | 151 | #endif /* __KERNEL__ */ |
| 151 | 152 | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 39dd83b183..452c88d971 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -827,7 +827,7 @@ static inline int dev_parse_header(const struct sk_buff *skb, | |||
| 827 | { | 827 | { |
| 828 | const struct net_device *dev = skb->dev; | 828 | const struct net_device *dev = skb->dev; |
| 829 | 829 | ||
| 830 | if (!dev->header_ops->parse) | 830 | if (!dev->header_ops || !dev->header_ops->parse) |
| 831 | return 0; | 831 | return 0; |
| 832 | return dev->header_ops->parse(skb, haddr); | 832 | return dev->header_ops->parse(skb, haddr); |
| 833 | } | 833 | } |
diff --git a/include/linux/netfilter/xt_sctp.h b/include/linux/netfilter/xt_sctp.h index b157897e77..dd5a4fd4cf 100644 --- a/include/linux/netfilter/xt_sctp.h +++ b/include/linux/netfilter/xt_sctp.h | |||
| @@ -7,9 +7,6 @@ | |||
| 7 | 7 | ||
| 8 | #define XT_SCTP_VALID_FLAGS 0x07 | 8 | #define XT_SCTP_VALID_FLAGS 0x07 |
| 9 | 9 | ||
| 10 | #define ELEMCOUNT(x) (sizeof(x)/sizeof(x[0])) | ||
| 11 | |||
| 12 | |||
| 13 | struct xt_sctp_flag_info { | 10 | struct xt_sctp_flag_info { |
| 14 | u_int8_t chunktype; | 11 | u_int8_t chunktype; |
| 15 | u_int8_t flag; | 12 | u_int8_t flag; |
| @@ -59,21 +56,21 @@ struct xt_sctp_info { | |||
| 59 | #define SCTP_CHUNKMAP_RESET(chunkmap) \ | 56 | #define SCTP_CHUNKMAP_RESET(chunkmap) \ |
| 60 | do { \ | 57 | do { \ |
| 61 | int i; \ | 58 | int i; \ |
| 62 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 59 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \ |
| 63 | chunkmap[i] = 0; \ | 60 | chunkmap[i] = 0; \ |
| 64 | } while (0) | 61 | } while (0) |
| 65 | 62 | ||
| 66 | #define SCTP_CHUNKMAP_SET_ALL(chunkmap) \ | 63 | #define SCTP_CHUNKMAP_SET_ALL(chunkmap) \ |
| 67 | do { \ | 64 | do { \ |
| 68 | int i; \ | 65 | int i; \ |
| 69 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 66 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) \ |
| 70 | chunkmap[i] = ~0; \ | 67 | chunkmap[i] = ~0; \ |
| 71 | } while (0) | 68 | } while (0) |
| 72 | 69 | ||
| 73 | #define SCTP_CHUNKMAP_COPY(destmap, srcmap) \ | 70 | #define SCTP_CHUNKMAP_COPY(destmap, srcmap) \ |
| 74 | do { \ | 71 | do { \ |
| 75 | int i; \ | 72 | int i; \ |
| 76 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) \ | 73 | for (i = 0; i < ARRAY_SIZE(srcmap); i++) \ |
| 77 | destmap[i] = srcmap[i]; \ | 74 | destmap[i] = srcmap[i]; \ |
| 78 | } while (0) | 75 | } while (0) |
| 79 | 76 | ||
| @@ -81,7 +78,7 @@ struct xt_sctp_info { | |||
| 81 | ({ \ | 78 | ({ \ |
| 82 | int i; \ | 79 | int i; \ |
| 83 | int flag = 1; \ | 80 | int flag = 1; \ |
| 84 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) { \ | 81 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) { \ |
| 85 | if (chunkmap[i]) { \ | 82 | if (chunkmap[i]) { \ |
| 86 | flag = 0; \ | 83 | flag = 0; \ |
| 87 | break; \ | 84 | break; \ |
| @@ -94,7 +91,7 @@ struct xt_sctp_info { | |||
| 94 | ({ \ | 91 | ({ \ |
| 95 | int i; \ | 92 | int i; \ |
| 96 | int flag = 1; \ | 93 | int flag = 1; \ |
| 97 | for (i = 0; i < ELEMCOUNT(chunkmap); i++) { \ | 94 | for (i = 0; i < ARRAY_SIZE(chunkmap); i++) { \ |
| 98 | if (chunkmap[i] != ~0) { \ | 95 | if (chunkmap[i] != ~0) { \ |
| 99 | flag = 0; \ | 96 | flag = 0; \ |
| 100 | break; \ | 97 | break; \ |
