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

Configure Feed

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

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

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[NETPOLL]: Fixups for 'fix soft lockup when removing module'
[NET]: net/core/netevent.c should #include <net/netevent.h>
[NETFILTER]: nf_conntrack_h323: add checking of out-of-range on choices' index values
[NET] skbuff: remove export of static symbol
SCTP: Add scope_id validation for link-local binds
SCTP: Check to make sure file is valid before setting timeout
SCTP: Fix thinko in sctp_copy_laddrs()

+20 -8
+1
net/core/netevent.c
··· 15 15 16 16 #include <linux/rtnetlink.h> 17 17 #include <linux/notifier.h> 18 + #include <net/netevent.h> 18 19 19 20 static ATOMIC_NOTIFIER_HEAD(netevent_notif_chain); 20 21
+2 -4
net/core/netpoll.c
··· 72 72 netif_tx_unlock(dev); 73 73 local_irq_restore(flags); 74 74 75 - if (atomic_read(&npinfo->refcnt)) 76 - schedule_delayed_work(&npinfo->tx_work, HZ/10); 75 + schedule_delayed_work(&npinfo->tx_work, HZ/10); 77 76 return; 78 77 } 79 78 netif_tx_unlock(dev); ··· 785 786 if (atomic_dec_and_test(&npinfo->refcnt)) { 786 787 skb_queue_purge(&npinfo->arp_tx); 787 788 skb_queue_purge(&npinfo->txq); 788 - cancel_delayed_work(&npinfo->tx_work); 789 - flush_scheduled_work(); 789 + cancel_rearming_delayed_work(&npinfo->tx_work); 790 790 791 791 /* clean after last, unfinished work */ 792 792 if (!skb_queue_empty(&npinfo->txq)) {
-1
net/core/skbuff.c
··· 2211 2211 EXPORT_SYMBOL(pskb_expand_head); 2212 2212 EXPORT_SYMBOL(skb_checksum); 2213 2213 EXPORT_SYMBOL(skb_clone); 2214 - EXPORT_SYMBOL(skb_clone_fraglist); 2215 2214 EXPORT_SYMBOL(skb_copy); 2216 2215 EXPORT_SYMBOL(skb_copy_and_csum_bits); 2217 2216 EXPORT_SYMBOL(skb_copy_and_csum_dev);
+3 -1
net/netfilter/nf_conntrack_h323_asn1.c
··· 518 518 CHECK_BOUND(bs, 2); 519 519 len = get_len(bs); 520 520 CHECK_BOUND(bs, len); 521 - if (!base) { 521 + if (!base || !(son->attr & DECODE)) { 522 522 PRINT("%*.s%s\n", (level + 1) * TAB_SIZE, 523 523 " ", son->name); 524 524 bs->cur += len; ··· 704 704 } else { 705 705 ext = 0; 706 706 type = get_bits(bs, f->sz); 707 + if (type >= f->lb) 708 + return H323_ERROR_RANGE; 707 709 } 708 710 709 711 /* Write Type */
+4
net/sctp/ipv6.c
··· 844 844 dev = dev_get_by_index(addr->v6.sin6_scope_id); 845 845 if (!dev) 846 846 return 0; 847 + if (!ipv6_chk_addr(&addr->v6.sin6_addr, dev, 0)) { 848 + dev_put(dev); 849 + return 0; 850 + } 847 851 dev_put(dev); 848 852 } 849 853 af = opt->pf->af;
+10 -2
net/sctp/socket.c
··· 980 980 union sctp_addr *sa_addr; 981 981 void *addr_buf; 982 982 unsigned short port; 983 + unsigned int f_flags = 0; 983 984 984 985 sp = sctp_sk(sk); 985 986 ep = sp->ep; ··· 1107 1106 af->to_sk_daddr(&to, sk); 1108 1107 sk->sk_err = 0; 1109 1108 1110 - timeo = sock_sndtimeo(sk, sk->sk_socket->file->f_flags & O_NONBLOCK); 1109 + /* in-kernel sockets don't generally have a file allocated to them 1110 + * if all they do is call sock_create_kern(). 1111 + */ 1112 + if (sk->sk_socket->file) 1113 + f_flags = sk->sk_socket->file->f_flags; 1114 + 1115 + timeo = sock_sndtimeo(sk, f_flags & O_NONBLOCK); 1116 + 1111 1117 err = sctp_wait_for_connect(asoc, &timeo); 1112 1118 1113 1119 /* Don't free association on exit. */ ··· 4178 4170 to += addrlen; 4179 4171 cnt ++; 4180 4172 space_left -= addrlen; 4181 - bytes_copied += addrlen; 4173 + *bytes_copied += addrlen; 4182 4174 } 4183 4175 4184 4176 return cnt;