diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-09 18:50:41 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-09 18:50:41 -0400 |
| commit | 09075ef0fd585fb093bb9a6cd1240272114f89cf (patch) | |
| tree | c01d2cc260a18df73f785bea4de1c1cfbcbbd16f /include/linux | |
| parent | c87fed1546bd00b42ee75f26c6b45393e4bf7559 (diff) | |
| parent | 1b30dd359ebec22d035e8b145751319f63772ca1 (diff) | |
Merge commit master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 of HEAD
* HEAD:
[AX.25]: Use kzalloc
[ATM] net/atm/clip.c: fix PROC_FS=n compile
[PKT_SCHED]: act_api: Fix module leak while flushing actions
[NET]: Fix IPv4/DECnet routing rule dumping
[NET] gso: Fix up GSO packets with broken checksums
[NET] gso: Add skb_is_gso
[IRDA]: fix drivers/net/irda/ali-ircc.c:ali_ircc_init()
[ATM]: fix possible recursive locking in skb_migrate()
[ATM]: Typo in drivers/atm/Kconfig...
[TG3]: add amd8131 to "write reorder" chipsets
[NET]: Fix network device interface printk message priority
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/netdevice.h | 8 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 5 |
2 files changed, 10 insertions, 3 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 85f99f60deea..76cc099c8580 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -549,6 +549,7 @@ struct packet_type { | |||
| 549 | struct net_device *); | 549 | struct net_device *); |
| 550 | struct sk_buff *(*gso_segment)(struct sk_buff *skb, | 550 | struct sk_buff *(*gso_segment)(struct sk_buff *skb, |
| 551 | int features); | 551 | int features); |
| 552 | int (*gso_send_check)(struct sk_buff *skb); | ||
| 552 | void *af_packet_priv; | 553 | void *af_packet_priv; |
| 553 | struct list_head list; | 554 | struct list_head list; |
| 554 | }; | 555 | }; |
| @@ -1001,13 +1002,14 @@ static inline int net_gso_ok(int features, int gso_type) | |||
| 1001 | 1002 | ||
| 1002 | static inline int skb_gso_ok(struct sk_buff *skb, int features) | 1003 | static inline int skb_gso_ok(struct sk_buff *skb, int features) |
| 1003 | { | 1004 | { |
| 1004 | return net_gso_ok(features, skb_shinfo(skb)->gso_size ? | 1005 | return net_gso_ok(features, skb_shinfo(skb)->gso_type); |
| 1005 | skb_shinfo(skb)->gso_type : 0); | ||
| 1006 | } | 1006 | } |
| 1007 | 1007 | ||
| 1008 | static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb) | 1008 | static inline int netif_needs_gso(struct net_device *dev, struct sk_buff *skb) |
| 1009 | { | 1009 | { |
| 1010 | return !skb_gso_ok(skb, dev->features); | 1010 | return skb_is_gso(skb) && |
| 1011 | (!skb_gso_ok(skb, dev->features) || | ||
| 1012 | unlikely(skb->ip_summed != CHECKSUM_HW)); | ||
| 1011 | } | 1013 | } |
| 1012 | 1014 | ||
| 1013 | #endif /* __KERNEL__ */ | 1015 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 3597b4f14389..0bf31b83578c 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -1455,5 +1455,10 @@ static inline void skb_init_secmark(struct sk_buff *skb) | |||
| 1455 | { } | 1455 | { } |
| 1456 | #endif | 1456 | #endif |
| 1457 | 1457 | ||
| 1458 | static inline int skb_is_gso(const struct sk_buff *skb) | ||
| 1459 | { | ||
| 1460 | return skb_shinfo(skb)->gso_size; | ||
| 1461 | } | ||
| 1462 | |||
| 1458 | #endif /* __KERNEL__ */ | 1463 | #endif /* __KERNEL__ */ |
| 1459 | #endif /* _LINUX_SKBUFF_H */ | 1464 | #endif /* _LINUX_SKBUFF_H */ |
