diff options
author | David S. Miller <davem@davemloft.net> | 2014-02-19 01:24:22 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-02-19 01:24:22 -0500 |
commit | 1e8d6421cff2c24fe0b345711e7a21af02e8bcf5 (patch) | |
tree | 773b30106efb9b48055bc93958e5a94ac53768ce /net/tipc | |
parent | f7b12606b5de323a2bb5ca1696558efde8f25441 (diff) | |
parent | 960dfc4eb23a28495276b02604d7458e0e1a1ed8 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/bonding/bond_3ad.h
drivers/net/bonding/bond_main.c
Two minor conflicts in bonding, both of which were overlapping
changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/core.h | 1 | ||||
-rw-r--r-- | net/tipc/link.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/net/tipc/core.h b/net/tipc/core.h index 1ff477b0450d..5569d96b4da3 100644 --- a/net/tipc/core.h +++ b/net/tipc/core.h | |||
@@ -192,6 +192,7 @@ static inline void k_term_timer(struct timer_list *timer) | |||
192 | 192 | ||
193 | struct tipc_skb_cb { | 193 | struct tipc_skb_cb { |
194 | void *handle; | 194 | void *handle; |
195 | bool deferred; | ||
195 | }; | 196 | }; |
196 | 197 | ||
197 | #define TIPC_SKB_CB(__skb) ((struct tipc_skb_cb *)&((__skb)->cb[0])) | 198 | #define TIPC_SKB_CB(__skb) ((struct tipc_skb_cb *)&((__skb)->cb[0])) |
diff --git a/net/tipc/link.c b/net/tipc/link.c index e4f233d58d35..284d6383ad6c 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c | |||
@@ -1408,6 +1408,12 @@ static int link_recv_buf_validate(struct sk_buff *buf) | |||
1408 | u32 hdr_size; | 1408 | u32 hdr_size; |
1409 | u32 min_hdr_size; | 1409 | u32 min_hdr_size; |
1410 | 1410 | ||
1411 | /* If this packet comes from the defer queue, the skb has already | ||
1412 | * been validated | ||
1413 | */ | ||
1414 | if (unlikely(TIPC_SKB_CB(buf)->deferred)) | ||
1415 | return 1; | ||
1416 | |||
1411 | if (unlikely(buf->len < MIN_H_SIZE)) | 1417 | if (unlikely(buf->len < MIN_H_SIZE)) |
1412 | return 0; | 1418 | return 0; |
1413 | 1419 | ||
@@ -1717,6 +1723,7 @@ static void link_handle_out_of_seq_msg(struct tipc_link *l_ptr, | |||
1717 | &l_ptr->newest_deferred_in, buf)) { | 1723 | &l_ptr->newest_deferred_in, buf)) { |
1718 | l_ptr->deferred_inqueue_sz++; | 1724 | l_ptr->deferred_inqueue_sz++; |
1719 | l_ptr->stats.deferred_recv++; | 1725 | l_ptr->stats.deferred_recv++; |
1726 | TIPC_SKB_CB(buf)->deferred = true; | ||
1720 | if ((l_ptr->deferred_inqueue_sz % 16) == 1) | 1727 | if ((l_ptr->deferred_inqueue_sz % 16) == 1) |
1721 | tipc_link_proto_xmit(l_ptr, STATE_MSG, 0, 0, 0, 0, 0); | 1728 | tipc_link_proto_xmit(l_ptr, STATE_MSG, 0, 0, 0, 0, 0); |
1722 | } else | 1729 | } else |