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:
[NET]: Make skb_seq_read unmap the last fragment
[NET]: Re-enable irqs before pushing pending DMA requests
[TCP] tcp_read_sock: Allow recv_actor() return return negative error value.
[PPP]: Fix osize too small errors when decoding mppe.
[PPP]: Revert 606f585e363527da9feaed79465132c0c661fd9e
[TIPC]: Fix infinite loop in netlink handler
[SKBUFF]: Fix incorrect config #ifdef around skb_copy_secmark
[IPV4]: include sysctl.h from inetdevice.h
[IPV6] NDISC: Fix thinko to control Router Preference support.
[NETFILTER]: nfctnetlink: Don't allow to change helper
[NETFILTER]: nf_conntrack_sip: add missing message types containing RTP info

+37 -14
+12 -1
drivers/net/ppp_generic.c
··· 1708 1708 goto err; 1709 1709 1710 1710 if (proto == PPP_COMP) { 1711 - ns = dev_alloc_skb(ppp->mru + PPP_HDRLEN); 1711 + int obuff_size; 1712 + 1713 + switch(ppp->rcomp->compress_proto) { 1714 + case CI_MPPE: 1715 + obuff_size = ppp->mru + PPP_HDRLEN + 1; 1716 + break; 1717 + default: 1718 + obuff_size = ppp->mru + PPP_HDRLEN; 1719 + break; 1720 + } 1721 + 1722 + ns = dev_alloc_skb(obuff_size); 1712 1723 if (ns == 0) { 1713 1724 printk(KERN_ERR "ppp_decompress_frame: no memory\n"); 1714 1725 goto err;
+5 -5
drivers/net/ppp_mppe.c
··· 493 493 494 494 /* 495 495 * Make sure we have enough room to decrypt the packet. 496 - * To account for possible PFC we should only subtract 1 497 - * byte whereas in mppe_compress() we added 2 bytes (+MPPE_OVHD); 498 - * However, we assume no PFC, thus subtracting 2 bytes. 496 + * Note that for our test we only subtract 1 byte whereas in 497 + * mppe_compress() we added 2 bytes (+MPPE_OVHD); 498 + * this is to account for possible PFC. 499 499 */ 500 - if (osize < isize - MPPE_OVHD - 2) { 500 + if (osize < isize - MPPE_OVHD - 1) { 501 501 printk(KERN_DEBUG "mppe_decompress[%d]: osize too small! " 502 502 "(have: %d need: %d)\n", state->unit, 503 - osize, isize - MPPE_OVHD - 2); 503 + osize, isize - MPPE_OVHD - 1); 504 504 return DECOMP_ERROR; 505 505 } 506 506 osize = isize - MPPE_OVHD - 2; /* assume no PFC */
+1
include/linux/inetdevice.h
··· 8 8 #include <linux/netdevice.h> 9 9 #include <linux/rcupdate.h> 10 10 #include <linux/timer.h> 11 + #include <linux/sysctl.h> 11 12 12 13 struct ipv4_devconf 13 14 {
+1 -1
net/core/dev.c
··· 2009 2009 } 2010 2010 } 2011 2011 out: 2012 + local_irq_enable(); 2012 2013 #ifdef CONFIG_NET_DMA 2013 2014 /* 2014 2015 * There may not be any more sk_buffs coming right now, so push ··· 2023 2022 rcu_read_unlock(); 2024 2023 } 2025 2024 #endif 2026 - local_irq_enable(); 2027 2025 return; 2028 2026 2029 2027 softnet_break:
+6 -1
net/core/skbuff.c
··· 434 434 n->tc_verd = CLR_TC_MUNGED(n->tc_verd); 435 435 C(iif); 436 436 #endif 437 - skb_copy_secmark(n, skb); 438 437 #endif 438 + skb_copy_secmark(n, skb); 439 439 C(truesize); 440 440 atomic_set(&n->users, 1); 441 441 C(head); ··· 1704 1704 1705 1705 st->frag_idx++; 1706 1706 st->stepped_offset += frag->size; 1707 + } 1708 + 1709 + if (st->frag_data) { 1710 + kunmap_skb_frag(st->frag_data); 1711 + st->frag_data = NULL; 1707 1712 } 1708 1713 1709 1714 if (st->cur_skb->next) {
+6 -2
net/ipv4/tcp.c
··· 1064 1064 break; 1065 1065 } 1066 1066 used = recv_actor(desc, skb, offset, len); 1067 - if (used <= len) { 1067 + if (used < 0) { 1068 + if (!copied) 1069 + copied = used; 1070 + break; 1071 + } else if (used <= len) { 1068 1072 seq += used; 1069 1073 copied += used; 1070 1074 offset += used; ··· 1090 1086 tcp_rcv_space_adjust(sk); 1091 1087 1092 1088 /* Clean up data we have read: This will do ACK frames. */ 1093 - if (copied) 1089 + if (copied > 0) 1094 1090 tcp_cleanup_rbuf(sk, copied); 1095 1091 return copied; 1096 1092 }
+1 -1
net/ipv6/ndisc.c
··· 1062 1062 pref = ra_msg->icmph.icmp6_router_pref; 1063 1063 /* 10b is handled as if it were 00b (medium) */ 1064 1064 if (pref == ICMPV6_ROUTER_PREF_INVALID || 1065 - in6_dev->cnf.accept_ra_rtr_pref) 1065 + !in6_dev->cnf.accept_ra_rtr_pref) 1066 1066 pref = ICMPV6_ROUTER_PREF_MEDIUM; 1067 1067 #endif 1068 1068
+1 -2
net/netfilter/nf_conntrack_netlink.c
··· 869 869 return 0; 870 870 871 871 if (help->helper) 872 - /* we had a helper before ... */ 873 - nf_ct_remove_expectations(ct); 872 + return -EBUSY; 874 873 875 874 /* need to zero data of old helper */ 876 875 memset(&help->help, 0, sizeof(help->help));
+3
net/netfilter/nf_conntrack_sip.c
··· 442 442 443 443 /* RTP info only in some SDP pkts */ 444 444 if (memcmp(dptr, "INVITE", sizeof("INVITE") - 1) != 0 && 445 + memcmp(dptr, "UPDATE", sizeof("UPDATE") - 1) != 0 && 446 + memcmp(dptr, "SIP/2.0 180", sizeof("SIP/2.0 180") - 1) != 0 && 447 + memcmp(dptr, "SIP/2.0 183", sizeof("SIP/2.0 183") - 1) != 0 && 445 448 memcmp(dptr, "SIP/2.0 200", sizeof("SIP/2.0 200") - 1) != 0) { 446 449 goto out; 447 450 }
+1 -1
net/tipc/netlink.c
··· 60 60 rep_nlh = nlmsg_hdr(rep_buf); 61 61 memcpy(rep_nlh, req_nlh, hdr_space); 62 62 rep_nlh->nlmsg_len = rep_buf->len; 63 - genlmsg_unicast(rep_buf, req_nlh->nlmsg_pid); 63 + genlmsg_unicast(rep_buf, NETLINK_CB(skb).pid); 64 64 } 65 65 66 66 return 0;