"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "net/core/dev.c" between
linux-5.3-rc3.tar.gz and linux-5.3-rc4.tar.gz

About: The full source of the development Linux kernel 5.3 (release candidate).

dev.c  (linux-5.3-rc3):dev.c  (linux-5.3-rc4)
skipping to change at line 4370 skipping to change at line 4370
orig_data = xdp->data; orig_data = xdp->data;
eth = (struct ethhdr *)xdp->data; eth = (struct ethhdr *)xdp->data;
orig_bcast = is_multicast_ether_addr_64bits(eth->h_dest); orig_bcast = is_multicast_ether_addr_64bits(eth->h_dest);
orig_eth_type = eth->h_proto; orig_eth_type = eth->h_proto;
rxqueue = netif_get_rxqueue(skb); rxqueue = netif_get_rxqueue(skb);
xdp->rxq = &rxqueue->xdp_rxq; xdp->rxq = &rxqueue->xdp_rxq;
act = bpf_prog_run_xdp(xdp_prog, xdp); act = bpf_prog_run_xdp(xdp_prog, xdp);
/* check if bpf_xdp_adjust_head was used */
off = xdp->data - orig_data; off = xdp->data - orig_data;
if (off > 0) if (off) {
__skb_pull(skb, off); if (off > 0)
else if (off < 0) __skb_pull(skb, off);
__skb_push(skb, -off); else if (off < 0)
skb->mac_header += off; __skb_push(skb, -off);
skb->mac_header += off;
skb_reset_network_header(skb);
}
/* check if bpf_xdp_adjust_tail was used. it can only "shrink" /* check if bpf_xdp_adjust_tail was used. it can only "shrink"
* pckt. * pckt.
*/ */
off = orig_data_end - xdp->data_end; off = orig_data_end - xdp->data_end;
if (off != 0) { if (off != 0) {
skb_set_tail_pointer(skb, xdp->data_end - xdp->data); skb_set_tail_pointer(skb, xdp->data_end - xdp->data);
skb->len -= off; skb->len -= off;
} }
skipping to change at line 9694 skipping to change at line 9699
/* Ignore unmoveable devices (i.e. loopback) */ /* Ignore unmoveable devices (i.e. loopback) */
if (dev->features & NETIF_F_NETNS_LOCAL) if (dev->features & NETIF_F_NETNS_LOCAL)
continue; continue;
/* Leave virtual devices for the generic cleanup */ /* Leave virtual devices for the generic cleanup */
if (dev->rtnl_link_ops) if (dev->rtnl_link_ops)
continue; continue;
/* Push remaining network devices to init_net */ /* Push remaining network devices to init_net */
snprintf(fb_name, IFNAMSIZ, "dev%d", dev->ifindex); snprintf(fb_name, IFNAMSIZ, "dev%d", dev->ifindex);
if (__dev_get_by_name(&init_net, fb_name))
snprintf(fb_name, IFNAMSIZ, "dev%%d");
err = dev_change_net_namespace(dev, &init_net, fb_name); err = dev_change_net_namespace(dev, &init_net, fb_name);
if (err) { if (err) {
pr_emerg("%s: failed to move %s to init_net: %d\n", pr_emerg("%s: failed to move %s to init_net: %d\n",
__func__, dev->name, err); __func__, dev->name, err);
BUG(); BUG();
} }
} }
rtnl_unlock(); rtnl_unlock();
} }
 End of changes. 3 change blocks. 
5 lines changed or deleted 12 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)