* when we send the packet out on the wire, and it will fail at
* that point because skb_checksum_setup() will not look inside
* an 802.1Q header. */
- skb_checksum_setup(skb);
+ vswitch_skb_checksum_setup(skb);
/* GSO is not implemented for packets with an 802.1Q header, so
* we have to do segmentation before we add that header.
u16 *f = a->type == ODPAT_SET_TP_SRC ? &th->source : &th->dest;
u16 old = *f;
u16 new = a->tp_port;
- update_csum((u16*)((u8*)skb->data + check_ofs),
- skb, old, new, 1);
+ update_csum((u16*)(skb_transport_header(skb) + check_ofs),
+ skb, old, new, 1);
*f = new;
}
return skb;
dev = skb->dev = p->dev;
if (is_dp_dev(dev))
dp_dev_recv(dev, skb);
- else
+ else
dp_xmit_skb(skb);
return;
* then freeing the original skbuff is wasteful. So the following code
* is slightly obscure just to avoid that. */
int prev_port = -1;
- int err = 0;
+ int err;
for (; n_actions > 0; a++, n_actions--) {
WARN_ON_ONCE(skb_shared(skb));
if (prev_port != -1) {
do_output(dp, skb, prev_port);
else
kfree_skb(skb);
- return err;
+ return 0;
}