git.samba.org
/
sfrench
/
cifs-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[sfrench/cifs-2.6.git]
/
net
/
ipv4
/
ip_output.c
diff --git
a/net/ipv4/ip_output.c
b/net/ipv4/ip_output.c
index cff9c3a72daf254013b7ae80cb5761e04a733a2f..ca0e714613fb504bf495dad4eb20b2e2579aecc3 100644
(file)
--- a/
net/ipv4/ip_output.c
+++ b/
net/ipv4/ip_output.c
@@
-53,7
+53,6
@@
#include <linux/mm.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/mm.h>
#include <linux/string.h>
#include <linux/errno.h>
-#include <linux/config.h>
#include <linux/socket.h>
#include <linux/sockios.h>
#include <linux/socket.h>
#include <linux/sockios.h>
@@
-210,8
+209,7
@@
static inline int ip_finish_output(struct sk_buff *skb)
return dst_output(skb);
}
#endif
return dst_output(skb);
}
#endif
- if (skb->len > dst_mtu(skb->dst) &&
- !(skb_shinfo(skb)->ufo_size || skb_shinfo(skb)->tso_size))
+ if (skb->len > dst_mtu(skb->dst) && !skb_shinfo(skb)->gso_size)
return ip_fragment(skb, ip_finish_output2);
else
return ip_finish_output2(skb);
return ip_fragment(skb, ip_finish_output2);
else
return ip_finish_output2(skb);
@@
-362,7
+360,7
@@
packet_routed:
}
ip_select_ident_more(iph, &rt->u.dst, sk,
}
ip_select_ident_more(iph, &rt->u.dst, sk,
- (skb_shinfo(skb)->
t
so_segs ?: 1) - 1);
+ (skb_shinfo(skb)->
g
so_segs ?: 1) - 1);
/* Add an IP checksum. */
ip_send_check(iph);
/* Add an IP checksum. */
ip_send_check(iph);
@@
-410,6
+408,7
@@
static void ip_copy_metadata(struct sk_buff *to, struct sk_buff *from)
nf_bridge_get(to->nf_bridge);
#endif
#endif
nf_bridge_get(to->nf_bridge);
#endif
#endif
+ skb_copy_secmark(to, from);
}
/*
}
/*
@@
-743,7
+742,8
@@
static inline int ip_ufo_append_data(struct sock *sk,
(length - transhdrlen));
if (!err) {
/* specify the length of each IP datagram fragment*/
(length - transhdrlen));
if (!err) {
/* specify the length of each IP datagram fragment*/
- skb_shinfo(skb)->ufo_size = (mtu - fragheaderlen);
+ skb_shinfo(skb)->gso_size = mtu - fragheaderlen;
+ skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
__skb_queue_tail(&sk->sk_write_queue, skb);
return 0;
__skb_queue_tail(&sk->sk_write_queue, skb);
return 0;
@@
-839,7
+839,7
@@
int ip_append_data(struct sock *sk,
*/
if (transhdrlen &&
length + fragheaderlen <= mtu &&
*/
if (transhdrlen &&
length + fragheaderlen <= mtu &&
- rt->u.dst.dev->features
&(NETIF_F_IP_CSUM|NETIF_F_NO_CSUM|NETIF_F_HW_CSUM)
&&
+ rt->u.dst.dev->features
& NETIF_F_ALL_CSUM
&&
!exthdrlen)
csummode = CHECKSUM_HW;
!exthdrlen)
csummode = CHECKSUM_HW;
@@
-1086,14
+1086,16
@@
ssize_t ip_append_page(struct sock *sk, struct page *page,
inet->cork.length += size;
if ((sk->sk_protocol == IPPROTO_UDP) &&
inet->cork.length += size;
if ((sk->sk_protocol == IPPROTO_UDP) &&
- (rt->u.dst.dev->features & NETIF_F_UFO))
- skb_shinfo(skb)->ufo_size = (mtu - fragheaderlen);
+ (rt->u.dst.dev->features & NETIF_F_UFO)) {
+ skb_shinfo(skb)->gso_size = mtu - fragheaderlen;
+ skb_shinfo(skb)->gso_type = SKB_GSO_UDP;
+ }
while (size > 0) {
int i;
while (size > 0) {
int i;
- if (skb_shinfo(skb)->
uf
o_size)
+ if (skb_shinfo(skb)->
gs
o_size)
len = size;
else {
len = size;
else {