Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[BRIDGE]: fix locking and memory leak in br_add_bridge
[IRDA]: Missing allocation result check in irlap_change_speed().
[PPPOE]: Missing result check in __pppoe_xmit().
[NET]: Eliminate unused /proc/sys/net/ethernet
[NETCONSOLE]: Clean up initcall warning.
[TCP]: Avoid skb_pull if possible when trimming head

+18 -44
+1 -1
drivers/net/netconsole.c
··· 107 107 108 108 if(!configured) { 109 109 printk("netconsole: not configured, aborting\n"); 110 - return -EINVAL; 110 + return 0; 111 111 } 112 112 113 113 if(netpoll_setup(&np))
+3
drivers/net/pppoe.c
··· 861 861 * give dev_queue_xmit something it can free. 862 862 */ 863 863 skb2 = skb_clone(skb, GFP_ATOMIC); 864 + 865 + if (skb2 == NULL) 866 + goto abort; 864 867 } 865 868 866 869 ph = (struct pppoe_hdr *) skb_push(skb2, sizeof(struct pppoe_hdr));
+7 -12
net/bridge/br_if.c
··· 300 300 rtnl_lock(); 301 301 if (strchr(dev->name, '%')) { 302 302 ret = dev_alloc_name(dev, dev->name); 303 - if (ret < 0) 304 - goto err1; 303 + if (ret < 0) { 304 + free_netdev(dev); 305 + goto out; 306 + } 305 307 } 306 308 307 309 ret = register_netdevice(dev); 308 310 if (ret) 309 - goto err2; 311 + goto out; 310 312 311 313 ret = br_sysfs_addbr(dev); 312 314 if (ret) 313 - goto err3; 314 - rtnl_unlock(); 315 - return 0; 316 - 317 - err3: 318 - unregister_netdev(dev); 319 - err2: 320 - free_netdev(dev); 321 - err1: 315 + unregister_netdevice(dev); 316 + out: 322 317 rtnl_unlock(); 323 318 return ret; 324 319 }
-1
net/ethernet/Makefile
··· 3 3 # 4 4 5 5 obj-y += eth.o 6 - obj-$(CONFIG_SYSCTL) += sysctl_net_ether.o 7 6 obj-$(subst m,y,$(CONFIG_IPX)) += pe2.o 8 7 obj-$(subst m,y,$(CONFIG_ATALK)) += pe2.o
-14
net/ethernet/sysctl_net_ether.c
··· 1 - /* -*- linux-c -*- 2 - * sysctl_net_ether.c: sysctl interface to net Ethernet subsystem. 3 - * 4 - * Begun April 1, 1996, Mike Shaver. 5 - * Added /proc/sys/net/ether directory entry (empty =) ). [MS] 6 - */ 7 - 8 - #include <linux/mm.h> 9 - #include <linux/sysctl.h> 10 - #include <linux/if_ether.h> 11 - 12 - ctl_table ether_table[] = { 13 - {0} 14 - };
+5 -7
net/ipv4/tcp_output.c
··· 642 642 * eventually). The difference is that pulled data not copied, but 643 643 * immediately discarded. 644 644 */ 645 - static unsigned char *__pskb_trim_head(struct sk_buff *skb, int len) 645 + static void __pskb_trim_head(struct sk_buff *skb, int len) 646 646 { 647 647 int i, k, eat; 648 648 ··· 667 667 skb->tail = skb->data; 668 668 skb->data_len -= len; 669 669 skb->len = skb->data_len; 670 - return skb->tail; 671 670 } 672 671 673 672 int tcp_trim_head(struct sock *sk, struct sk_buff *skb, u32 len) ··· 675 676 pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) 676 677 return -ENOMEM; 677 678 678 - if (len <= skb_headlen(skb)) { 679 + /* If len == headlen, we avoid __skb_pull to preserve alignment. */ 680 + if (unlikely(len < skb_headlen(skb))) 679 681 __skb_pull(skb, len); 680 - } else { 681 - if (__pskb_trim_head(skb, len-skb_headlen(skb)) == NULL) 682 - return -ENOMEM; 683 - } 682 + else 683 + __pskb_trim_head(skb, len - skb_headlen(skb)); 684 684 685 685 TCP_SKB_CB(skb)->seq += len; 686 686 skb->ip_summed = CHECKSUM_HW;
+2 -1
net/irda/irlap.c
··· 884 884 if (now) { 885 885 /* Send down empty frame to trigger speed change */ 886 886 skb = dev_alloc_skb(0); 887 - irlap_queue_xmit(self, skb); 887 + if (skb) 888 + irlap_queue_xmit(self, skb); 888 889 } 889 890 } 890 891
-8
net/sysctl_net.c
··· 37 37 .mode = 0555, 38 38 .child = core_table, 39 39 }, 40 - #ifdef CONFIG_NET 41 - { 42 - .ctl_name = NET_ETHER, 43 - .procname = "ethernet", 44 - .mode = 0555, 45 - .child = ether_table, 46 - }, 47 - #endif 48 40 #ifdef CONFIG_INET 49 41 { 50 42 .ctl_name = NET_IPV4,