You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
[SK_BUFF]: unions of just one member don't get anything done, kill them
Renaming skb->h to skb->transport_header, skb->nh to skb->network_header and
skb->mac to skb->mac_header, to match the names of the associated helpers
(skb[_[re]set]_{transport,network,mac}_header).
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
cfe1fc7759
commit
b0e380b1d8
@@ -519,9 +519,12 @@ static int arcnet_header(struct sk_buff *skb, struct net_device *dev,
|
||||
* real header when we do rebuild_header.
|
||||
*/
|
||||
*(uint16_t *) skb_push(skb, 2) = type;
|
||||
if (skb->nh.raw - skb->mac.raw != 2)
|
||||
/*
|
||||
* XXX: Why not use skb->mac_len?
|
||||
*/
|
||||
if (skb->network_header - skb->mac_header != 2)
|
||||
BUGMSG(D_NORMAL, "arcnet_header: Yikes! diff (%d) is not 2!\n",
|
||||
(int)(skb->nh.raw - skb->mac.raw));
|
||||
(int)(skb->network_header - skb->mac_header));
|
||||
return -2; /* return error -- can't transmit yet! */
|
||||
}
|
||||
else {
|
||||
@@ -554,11 +557,13 @@ static int arcnet_rebuild_header(struct sk_buff *skb)
|
||||
unsigned short type;
|
||||
uint8_t daddr=0;
|
||||
struct ArcProto *proto;
|
||||
|
||||
if (skb->nh.raw - skb->mac.raw != 2) {
|
||||
/*
|
||||
* XXX: Why not use skb->mac_len?
|
||||
*/
|
||||
if (skb->network_header - skb->mac_header != 2) {
|
||||
BUGMSG(D_NORMAL,
|
||||
"rebuild_header: shouldn't be here! (hdrsize=%d)\n",
|
||||
(int)(skb->nh.raw - skb->mac.raw));
|
||||
"rebuild_header: shouldn't be here! (hdrsize=%d)\n",
|
||||
(int)(skb->network_header - skb->mac_header));
|
||||
return 0;
|
||||
}
|
||||
type = *(uint16_t *) skb_pull(skb, 2);
|
||||
|
||||
@@ -885,7 +885,7 @@ static int ad_lacpdu_send(struct port *port)
|
||||
|
||||
skb->dev = slave->dev;
|
||||
skb_reset_mac_header(skb);
|
||||
skb->nh.raw = skb->mac.raw + ETH_HLEN;
|
||||
skb->network_header = skb->mac_header + ETH_HLEN;
|
||||
skb->protocol = PKT_TYPE_LACPDU;
|
||||
skb->priority = TC_PRIO_CONTROL;
|
||||
|
||||
@@ -929,7 +929,7 @@ static int ad_marker_send(struct port *port, struct marker *marker)
|
||||
|
||||
skb->dev = slave->dev;
|
||||
skb_reset_mac_header(skb);
|
||||
skb->nh.raw = skb->mac.raw + ETH_HLEN;
|
||||
skb->network_header = skb->mac_header + ETH_HLEN;
|
||||
skb->protocol = PKT_TYPE_LACPDU;
|
||||
|
||||
marker_header = (struct marker_header *)skb_put(skb, length);
|
||||
|
||||
@@ -896,7 +896,7 @@ static void alb_send_learning_packets(struct slave *slave, u8 mac_addr[])
|
||||
memcpy(data, &pkt, size);
|
||||
|
||||
skb_reset_mac_header(skb);
|
||||
skb->nh.raw = skb->mac.raw + ETH_HLEN;
|
||||
skb->network_header = skb->mac_header + ETH_HLEN;
|
||||
skb->protocol = pkt.type;
|
||||
skb->priority = TC_PRIO_CONTROL;
|
||||
skb->dev = slave->dev;
|
||||
|
||||
@@ -1077,7 +1077,7 @@ void hostap_80211_rx(struct net_device *dev, struct sk_buff *skb,
|
||||
skb2->protocol = __constant_htons(ETH_P_802_3);
|
||||
skb_reset_mac_header(skb2);
|
||||
skb_reset_network_header(skb2);
|
||||
/* skb2->nh.raw += ETH_HLEN; */
|
||||
/* skb2->network_header += ETH_HLEN; */
|
||||
dev_queue_xmit(skb2);
|
||||
}
|
||||
|
||||
|
||||
@@ -275,8 +275,8 @@ static inline struct sk_buff *__vlan_put_tag(struct sk_buff *skb, unsigned short
|
||||
veth->h_vlan_TCI = htons(tag);
|
||||
|
||||
skb->protocol = __constant_htons(ETH_P_8021Q);
|
||||
skb->mac.raw -= VLAN_HLEN;
|
||||
skb->nh.raw -= VLAN_HLEN;
|
||||
skb->mac_header -= VLAN_HLEN;
|
||||
skb->network_header -= VLAN_HLEN;
|
||||
|
||||
return skb;
|
||||
}
|
||||
|
||||
@@ -69,8 +69,8 @@
|
||||
* NONE: skb is checksummed by protocol or csum is not required.
|
||||
*
|
||||
* PARTIAL: device is required to csum packet as seen by hard_start_xmit
|
||||
* from skb->h.raw to the end and to record the checksum
|
||||
* at skb->h.raw+skb->csum.
|
||||
* from skb->transport_header to the end and to record the checksum
|
||||
* at skb->transport_header + skb->csum.
|
||||
*
|
||||
* Device must show its capabilities in dev->features, set
|
||||
* at device setup time.
|
||||
@@ -188,8 +188,8 @@ enum {
|
||||
* @dev: Device we arrived on/are leaving by
|
||||
* @iif: ifindex of device we arrived on
|
||||
* @h: Transport layer header
|
||||
* @nh: Network layer header
|
||||
* @mac: Link layer header
|
||||
* @network_header: Network layer header
|
||||
* @mac_header: Link layer header
|
||||
* @dst: destination entry
|
||||
* @sp: the security path, used for xfrm
|
||||
* @cb: Control buffer. Free for use by every layer. Put private vars here
|
||||
@@ -236,18 +236,9 @@ struct sk_buff {
|
||||
int iif;
|
||||
/* 4 byte hole on 64 bit*/
|
||||
|
||||
union {
|
||||
unsigned char *raw;
|
||||
} h;
|
||||
|
||||
union {
|
||||
unsigned char *raw;
|
||||
} nh;
|
||||
|
||||
union {
|
||||
unsigned char *raw;
|
||||
} mac;
|
||||
|
||||
unsigned char *transport_header;
|
||||
unsigned char *network_header;
|
||||
unsigned char *mac_header;
|
||||
struct dst_entry *dst;
|
||||
struct sec_path *sp;
|
||||
|
||||
@@ -953,68 +944,68 @@ static inline void skb_reserve(struct sk_buff *skb, int len)
|
||||
|
||||
static inline unsigned char *skb_transport_header(const struct sk_buff *skb)
|
||||
{
|
||||
return skb->h.raw;
|
||||
return skb->transport_header;
|
||||
}
|
||||
|
||||
static inline void skb_reset_transport_header(struct sk_buff *skb)
|
||||
{
|
||||
skb->h.raw = skb->data;
|
||||
skb->transport_header = skb->data;
|
||||
}
|
||||
|
||||
static inline void skb_set_transport_header(struct sk_buff *skb,
|
||||
const int offset)
|
||||
{
|
||||
skb->h.raw = skb->data + offset;
|
||||
skb->transport_header = skb->data + offset;
|
||||
}
|
||||
|
||||
static inline int skb_transport_offset(const struct sk_buff *skb)
|
||||
{
|
||||
return skb->h.raw - skb->data;
|
||||
return skb->transport_header - skb->data;
|
||||
}
|
||||
|
||||
static inline unsigned char *skb_network_header(const struct sk_buff *skb)
|
||||
{
|
||||
return skb->nh.raw;
|
||||
return skb->network_header;
|
||||
}
|
||||
|
||||
static inline void skb_reset_network_header(struct sk_buff *skb)
|
||||
{
|
||||
skb->nh.raw = skb->data;
|
||||
skb->network_header = skb->data;
|
||||
}
|
||||
|
||||
static inline void skb_set_network_header(struct sk_buff *skb, const int offset)
|
||||
{
|
||||
skb->nh.raw = skb->data + offset;
|
||||
skb->network_header = skb->data + offset;
|
||||
}
|
||||
|
||||
static inline int skb_network_offset(const struct sk_buff *skb)
|
||||
{
|
||||
return skb->nh.raw - skb->data;
|
||||
return skb->network_header - skb->data;
|
||||
}
|
||||
|
||||
static inline u32 skb_network_header_len(const struct sk_buff *skb)
|
||||
{
|
||||
return skb->h.raw - skb->nh.raw;
|
||||
return skb->transport_header - skb->network_header;
|
||||
}
|
||||
|
||||
static inline unsigned char *skb_mac_header(const struct sk_buff *skb)
|
||||
{
|
||||
return skb->mac.raw;
|
||||
return skb->mac_header;
|
||||
}
|
||||
|
||||
static inline int skb_mac_header_was_set(const struct sk_buff *skb)
|
||||
{
|
||||
return skb->mac.raw != NULL;
|
||||
return skb->mac_header != NULL;
|
||||
}
|
||||
|
||||
static inline void skb_reset_mac_header(struct sk_buff *skb)
|
||||
{
|
||||
skb->mac.raw = skb->data;
|
||||
skb->mac_header = skb->data;
|
||||
}
|
||||
|
||||
static inline void skb_set_mac_header(struct sk_buff *skb, const int offset)
|
||||
{
|
||||
skb->mac.raw = skb->data + offset;
|
||||
skb->mac_header = skb->data + offset;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -59,7 +59,7 @@ static int snap_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
proto = find_snap_client(skb_transport_header(skb));
|
||||
if (proto) {
|
||||
/* Pass the frame on. */
|
||||
skb->h.raw += 5;
|
||||
skb->transport_header += 5;
|
||||
skb_pull_rcsum(skb, 5);
|
||||
rc = proto->rcvfunc(skb, dev, &snap_packet_type, orig_dev);
|
||||
} else {
|
||||
|
||||
@@ -83,7 +83,7 @@ static inline struct sk_buff *vlan_check_reorder_header(struct sk_buff *skb)
|
||||
/* Lifted from Gleb's VLAN code... */
|
||||
memmove(skb->data - ETH_HLEN,
|
||||
skb->data - VLAN_ETH_HLEN, 12);
|
||||
skb->mac.raw += VLAN_HLEN;
|
||||
skb->mac_header += VLAN_HLEN;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1383,10 +1383,10 @@ free_it:
|
||||
* @pt - packet type
|
||||
*
|
||||
* Receive a packet (in skb) from device dev. This has come from the SNAP
|
||||
* decoder, and on entry skb->h.raw is the DDP header, skb->len is the DDP
|
||||
* header, skb->len is the DDP length. The physical headers have been
|
||||
* extracted. PPP should probably pass frames marked as for this layer.
|
||||
* [ie ARPHRD_ETHERTALK]
|
||||
* decoder, and on entry skb->transport_header is the DDP header, skb->len
|
||||
* is the DDP header, skb->len is the DDP length. The physical headers
|
||||
* have been extracted. PPP should probably pass frames marked as for this
|
||||
* layer. [ie ARPHRD_ETHERTALK]
|
||||
*/
|
||||
static int atalk_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
struct packet_type *pt, struct net_device *orig_dev)
|
||||
|
||||
@@ -174,7 +174,7 @@ static int br_nf_pre_routing_finish_ipv6(struct sk_buff *skb)
|
||||
skb->dev = nf_bridge->physindev;
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_push(skb, VLAN_HLEN);
|
||||
skb->nh.raw -= VLAN_HLEN;
|
||||
skb->network_header -= VLAN_HLEN;
|
||||
}
|
||||
NF_HOOK_THRESH(PF_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL,
|
||||
br_handle_frame_finish, 1);
|
||||
@@ -255,7 +255,7 @@ static int br_nf_pre_routing_finish_bridge(struct sk_buff *skb)
|
||||
else {
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_pull(skb, VLAN_HLEN);
|
||||
skb->nh.raw += VLAN_HLEN;
|
||||
skb->network_header += VLAN_HLEN;
|
||||
}
|
||||
skb->dst->output(skb);
|
||||
}
|
||||
@@ -325,7 +325,7 @@ bridged_dnat:
|
||||
if (skb->protocol ==
|
||||
htons(ETH_P_8021Q)) {
|
||||
skb_push(skb, VLAN_HLEN);
|
||||
skb->nh.raw -= VLAN_HLEN;
|
||||
skb->network_header -= VLAN_HLEN;
|
||||
}
|
||||
NF_HOOK_THRESH(PF_BRIDGE, NF_BR_PRE_ROUTING,
|
||||
skb, skb->dev, NULL,
|
||||
@@ -344,7 +344,7 @@ bridged_dnat:
|
||||
skb->dev = nf_bridge->physindev;
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_push(skb, VLAN_HLEN);
|
||||
skb->nh.raw -= VLAN_HLEN;
|
||||
skb->network_header -= VLAN_HLEN;
|
||||
}
|
||||
NF_HOOK_THRESH(PF_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL,
|
||||
br_handle_frame_finish, 1);
|
||||
@@ -497,7 +497,7 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb,
|
||||
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_pull_rcsum(skb, VLAN_HLEN);
|
||||
skb->nh.raw += VLAN_HLEN;
|
||||
skb->network_header += VLAN_HLEN;
|
||||
}
|
||||
return br_nf_pre_routing_ipv6(hook, skb, in, out, okfn);
|
||||
}
|
||||
@@ -514,7 +514,7 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb,
|
||||
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_pull_rcsum(skb, VLAN_HLEN);
|
||||
skb->nh.raw += VLAN_HLEN;
|
||||
skb->network_header += VLAN_HLEN;
|
||||
}
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct iphdr)))
|
||||
@@ -595,7 +595,7 @@ static int br_nf_forward_finish(struct sk_buff *skb)
|
||||
}
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_push(skb, VLAN_HLEN);
|
||||
skb->nh.raw -= VLAN_HLEN;
|
||||
skb->network_header -= VLAN_HLEN;
|
||||
}
|
||||
NF_HOOK_THRESH(PF_BRIDGE, NF_BR_FORWARD, skb, in,
|
||||
skb->dev, br_forward_finish, 1);
|
||||
@@ -631,7 +631,7 @@ static unsigned int br_nf_forward_ip(unsigned int hook, struct sk_buff **pskb,
|
||||
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_pull(*pskb, VLAN_HLEN);
|
||||
(*pskb)->nh.raw += VLAN_HLEN;
|
||||
(*pskb)->network_header += VLAN_HLEN;
|
||||
}
|
||||
|
||||
nf_bridge = skb->nf_bridge;
|
||||
@@ -667,13 +667,13 @@ static unsigned int br_nf_forward_arp(unsigned int hook, struct sk_buff **pskb,
|
||||
if (!IS_VLAN_ARP(skb))
|
||||
return NF_ACCEPT;
|
||||
skb_pull(*pskb, VLAN_HLEN);
|
||||
(*pskb)->nh.raw += VLAN_HLEN;
|
||||
(*pskb)->network_header += VLAN_HLEN;
|
||||
}
|
||||
|
||||
if (arp_hdr(skb)->ar_pln != 4) {
|
||||
if (IS_VLAN_ARP(skb)) {
|
||||
skb_push(*pskb, VLAN_HLEN);
|
||||
(*pskb)->nh.raw -= VLAN_HLEN;
|
||||
(*pskb)->network_header -= VLAN_HLEN;
|
||||
}
|
||||
return NF_ACCEPT;
|
||||
}
|
||||
@@ -723,7 +723,7 @@ static unsigned int br_nf_local_out(unsigned int hook, struct sk_buff **pskb,
|
||||
}
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_push(skb, VLAN_HLEN);
|
||||
skb->nh.raw -= VLAN_HLEN;
|
||||
skb->network_header -= VLAN_HLEN;
|
||||
}
|
||||
|
||||
NF_HOOK(PF_BRIDGE, NF_BR_FORWARD, skb, realindev, skb->dev,
|
||||
@@ -790,7 +790,7 @@ static unsigned int br_nf_post_routing(unsigned int hook, struct sk_buff **pskb,
|
||||
|
||||
if (skb->protocol == htons(ETH_P_8021Q)) {
|
||||
skb_pull(skb, VLAN_HLEN);
|
||||
skb->nh.raw += VLAN_HLEN;
|
||||
skb->network_header += VLAN_HLEN;
|
||||
}
|
||||
|
||||
nf_bridge_save_header(skb);
|
||||
|
||||
@@ -1077,7 +1077,7 @@ static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev)
|
||||
skb_reset_network_header(skb2);
|
||||
}
|
||||
|
||||
skb2->h.raw = skb2->nh.raw;
|
||||
skb2->transport_header = skb2->network_header;
|
||||
skb2->pkt_type = PACKET_OUTGOING;
|
||||
ptype->func(skb2, skb->dev, ptype, skb->dev);
|
||||
}
|
||||
@@ -1207,7 +1207,7 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features)
|
||||
BUG_ON(skb_shinfo(skb)->frag_list);
|
||||
|
||||
skb_reset_mac_header(skb);
|
||||
skb->mac_len = skb->nh.raw - skb->mac.raw;
|
||||
skb->mac_len = skb->network_header - skb->mac_header;
|
||||
__skb_pull(skb, skb->mac_len);
|
||||
|
||||
if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
|
||||
@@ -1774,7 +1774,7 @@ int netif_receive_skb(struct sk_buff *skb)
|
||||
|
||||
skb_reset_network_header(skb);
|
||||
skb_reset_transport_header(skb);
|
||||
skb->mac_len = skb->nh.raw - skb->mac.raw;
|
||||
skb->mac_len = skb->network_header - skb->mac_header;
|
||||
|
||||
pt_prev = NULL;
|
||||
|
||||
|
||||
@@ -2358,7 +2358,7 @@ static struct sk_buff *fill_packet_ipv4(struct net_device *odev,
|
||||
}
|
||||
|
||||
skb_set_network_header(skb, skb->tail - skb->data);
|
||||
skb->h.raw = skb->nh.raw + sizeof(struct iphdr);
|
||||
skb->transport_header = skb->network_header + sizeof(struct iphdr);
|
||||
skb_put(skb, sizeof(struct iphdr) + sizeof(struct udphdr));
|
||||
|
||||
iph = ip_hdr(skb);
|
||||
@@ -2391,9 +2391,9 @@ static struct sk_buff *fill_packet_ipv4(struct net_device *odev,
|
||||
iph->check = 0;
|
||||
iph->check = ip_fast_csum((void *)iph, iph->ihl);
|
||||
skb->protocol = protocol;
|
||||
skb->mac.raw = (skb->nh.raw - ETH_HLEN -
|
||||
pkt_dev->nr_labels * sizeof(u32) -
|
||||
VLAN_TAG_SIZE(pkt_dev) - SVLAN_TAG_SIZE(pkt_dev));
|
||||
skb->mac_header = (skb->network_header - ETH_HLEN -
|
||||
pkt_dev->nr_labels * sizeof(u32) -
|
||||
VLAN_TAG_SIZE(pkt_dev) - SVLAN_TAG_SIZE(pkt_dev));
|
||||
skb->dev = odev;
|
||||
skb->pkt_type = PACKET_HOST;
|
||||
|
||||
@@ -2697,7 +2697,7 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev,
|
||||
}
|
||||
|
||||
skb_set_network_header(skb, skb->tail - skb->data);
|
||||
skb->h.raw = skb->nh.raw + sizeof(struct ipv6hdr);
|
||||
skb->transport_header = skb->network_header + sizeof(struct ipv6hdr);
|
||||
skb_put(skb, sizeof(struct ipv6hdr) + sizeof(struct udphdr));
|
||||
|
||||
iph = ipv6_hdr(skb);
|
||||
@@ -2738,9 +2738,9 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev,
|
||||
ipv6_addr_copy(&iph->daddr, &pkt_dev->cur_in6_daddr);
|
||||
ipv6_addr_copy(&iph->saddr, &pkt_dev->cur_in6_saddr);
|
||||
|
||||
skb->mac.raw = (skb->nh.raw - ETH_HLEN -
|
||||
pkt_dev->nr_labels * sizeof(u32) -
|
||||
VLAN_TAG_SIZE(pkt_dev) - SVLAN_TAG_SIZE(pkt_dev));
|
||||
skb->mac_header = (skb->network_header - ETH_HLEN -
|
||||
pkt_dev->nr_labels * sizeof(u32) -
|
||||
VLAN_TAG_SIZE(pkt_dev) - SVLAN_TAG_SIZE(pkt_dev));
|
||||
skb->protocol = protocol;
|
||||
skb->dev = odev;
|
||||
skb->pkt_type = PACKET_HOST;
|
||||
|
||||
@@ -396,9 +396,9 @@ struct sk_buff *skb_clone(struct sk_buff *skb, gfp_t gfp_mask)
|
||||
n->sk = NULL;
|
||||
C(tstamp);
|
||||
C(dev);
|
||||
C(h);
|
||||
C(nh);
|
||||
C(mac);
|
||||
C(transport_header);
|
||||
C(network_header);
|
||||
C(mac_header);
|
||||
C(dst);
|
||||
dst_clone(skb->dst);
|
||||
C(sp);
|
||||
@@ -461,9 +461,9 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
|
||||
#ifdef CONFIG_INET
|
||||
new->sp = secpath_get(old->sp);
|
||||
#endif
|
||||
new->h.raw = old->h.raw + offset;
|
||||
new->nh.raw = old->nh.raw + offset;
|
||||
new->mac.raw = old->mac.raw + offset;
|
||||
new->transport_header = old->transport_header + offset;
|
||||
new->network_header = old->network_header + offset;
|
||||
new->mac_header = old->mac_header + offset;
|
||||
memcpy(new->cb, old->cb, sizeof(old->cb));
|
||||
new->local_df = old->local_df;
|
||||
new->fclone = SKB_FCLONE_UNAVAILABLE;
|
||||
@@ -639,9 +639,9 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
|
||||
skb->end = data + size;
|
||||
skb->data += off;
|
||||
skb->tail += off;
|
||||
skb->mac.raw += off;
|
||||
skb->h.raw += off;
|
||||
skb->nh.raw += off;
|
||||
skb->transport_header += off;
|
||||
skb->network_header += off;
|
||||
skb->mac_header += off;
|
||||
skb->cloned = 0;
|
||||
skb->nohdr = 0;
|
||||
atomic_set(&skb_shinfo(skb)->dataref, 1);
|
||||
@@ -1906,7 +1906,8 @@ struct sk_buff *skb_segment(struct sk_buff *skb, int features)
|
||||
skb_reserve(nskb, headroom);
|
||||
skb_reset_mac_header(nskb);
|
||||
skb_set_network_header(nskb, skb->mac_len);
|
||||
nskb->h.raw = nskb->nh.raw + skb_network_header_len(skb);
|
||||
nskb->transport_header = (nskb->network_header +
|
||||
skb_network_header_len(skb));
|
||||
memcpy(skb_put(nskb, doffset), skb->data, doffset);
|
||||
|
||||
if (!sg) {
|
||||
|
||||
@@ -793,7 +793,7 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
|
||||
skb2->protocol = __constant_htons(ETH_P_802_3);
|
||||
skb_reset_mac_header(skb2);
|
||||
skb_reset_network_header(skb2);
|
||||
/* skb2->nh.raw += ETH_HLEN; */
|
||||
/* skb2->network_header += ETH_HLEN; */
|
||||
dev_queue_xmit(skb2);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -181,9 +181,9 @@ static int ah_input(struct xfrm_state *x, struct sk_buff *skb)
|
||||
}
|
||||
}
|
||||
((struct iphdr*)work_buf)->protocol = ah->nexthdr;
|
||||
skb->nh.raw += ah_hlen;
|
||||
skb->network_header += ah_hlen;
|
||||
memcpy(skb_network_header(skb), work_buf, ihl);
|
||||
skb->h.raw = skb->nh.raw;
|
||||
skb->transport_header = skb->network_header;
|
||||
__skb_pull(skb, ah_hlen + ihl);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -333,7 +333,7 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, int size)
|
||||
((u8*)&pip[1])[2] = 0;
|
||||
((u8*)&pip[1])[3] = 0;
|
||||
|
||||
skb->h.raw = skb->nh.raw + sizeof(struct iphdr) + 4;
|
||||
skb->transport_header = skb->network_header + sizeof(struct iphdr) + 4;
|
||||
skb_put(skb, sizeof(*pig));
|
||||
pig = igmpv3_report_hdr(skb);
|
||||
pig->type = IGMPV3_HOST_MEMBERSHIP_REPORT;
|
||||
|
||||
@@ -828,7 +828,7 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
old_iph = ip_hdr(skb);
|
||||
}
|
||||
|
||||
skb->h.raw = skb->nh.raw;
|
||||
skb->transport_header = skb->network_header;
|
||||
skb_push(skb, gre_hlen);
|
||||
skb_reset_network_header(skb);
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
|
||||
@@ -582,7 +582,7 @@ slow_path:
|
||||
skb_reserve(skb2, ll_rs);
|
||||
skb_put(skb2, len + hlen);
|
||||
skb_reset_network_header(skb2);
|
||||
skb2->h.raw = skb2->nh.raw + hlen;
|
||||
skb2->transport_header = skb2->network_header + hlen;
|
||||
|
||||
/*
|
||||
* Charge the memory for the fragment to any owner
|
||||
@@ -713,7 +713,7 @@ static inline int ip_ufo_append_data(struct sock *sk,
|
||||
skb_reset_network_header(skb);
|
||||
|
||||
/* initialize protocol header pointer */
|
||||
skb->h.raw = skb->nh.raw + fragheaderlen;
|
||||
skb->transport_header = skb->network_header + fragheaderlen;
|
||||
|
||||
skb->ip_summed = CHECKSUM_PARTIAL;
|
||||
skb->csum = 0;
|
||||
@@ -918,7 +918,8 @@ alloc_new_skb:
|
||||
*/
|
||||
data = skb_put(skb, fraglen);
|
||||
skb_set_network_header(skb, exthdrlen);
|
||||
skb->h.raw = skb->nh.raw + fragheaderlen;
|
||||
skb->transport_header = (skb->network_header +
|
||||
fragheaderlen);
|
||||
data += fragheaderlen;
|
||||
|
||||
if (fraggap) {
|
||||
@@ -1112,8 +1113,8 @@ ssize_t ip_append_page(struct sock *sk, struct page *page,
|
||||
*/
|
||||
skb_put(skb, fragheaderlen + fraggap);
|
||||
skb_reset_network_header(skb);
|
||||
skb->h.raw = skb->nh.raw + fragheaderlen;
|
||||
|
||||
skb->transport_header = (skb->network_header +
|
||||
fragheaderlen);
|
||||
if (fraggap) {
|
||||
skb->csum = skb_copy_and_csum_bits(skb_prev,
|
||||
maxfraglen,
|
||||
|
||||
@@ -87,7 +87,7 @@ static int ipcomp_input(struct xfrm_state *x, struct sk_buff *skb)
|
||||
iph = ip_hdr(skb);
|
||||
ipch = (void *)skb->data;
|
||||
iph->protocol = ipch->nexthdr;
|
||||
skb->h.raw = skb->nh.raw + sizeof(*ipch);
|
||||
skb->transport_header = skb->network_header + sizeof(*ipch);
|
||||
__skb_pull(skb, sizeof(*ipch));
|
||||
err = ipcomp_decompress(x, skb);
|
||||
|
||||
|
||||
@@ -485,7 +485,7 @@ static int ipip_rcv(struct sk_buff *skb)
|
||||
|
||||
secpath_reset(skb);
|
||||
|
||||
skb->mac.raw = skb->nh.raw;
|
||||
skb->mac_header = skb->network_header;
|
||||
skb_reset_network_header(skb);
|
||||
skb->protocol = htons(ETH_P_IP);
|
||||
skb->pkt_type = PACKET_HOST;
|
||||
@@ -617,7 +617,7 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
old_iph = ip_hdr(skb);
|
||||
}
|
||||
|
||||
skb->h.raw = skb->nh.raw;
|
||||
skb->transport_header = skb->network_header;
|
||||
skb_push(skb, sizeof(struct iphdr));
|
||||
skb_reset_network_header(skb);
|
||||
memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user