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 master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[ATM] CLIP: Do not refer freed skbuff in clip_mkip().
[NET]: Drop tx lock in dev_watchdog_up
[PACKET]: Don't truncate non-linear skbs with mmaped IO
[NET]: Mark frame diverter for future removal.
[NETFILTER]: Add secmark headers to header-y
[ATM]: linux-atm-general mailing list is subscribers only
[ATM]: [he] when transmit fails, unmap the dma regions
[TCP] tcp-lp: update information to MAINTAINERS
[TCP] tcp-lp: bug fix for oops in 2.6.18-rc6
[BRIDGE]: random extra bytes on STP TCN packet
[IPV6]: Accept -1 for IPV6_TCLASS
[IPV6]: Fix tclass setting for raw sockets.
[IPVS]: remove the debug option go ip_vs_ftp
[IPVS]: Make sure ip_vs_ftp ports are valid
[IPVS]: auto-help for ip_vs_ftp
[IPVS]: Document the ports option to ip_vs_ftp in kernel-parameters.txt
[TCP]: Turn ABC off.
[NEIGH]: neigh_table_clear() doesn't free stats

+98 -47
+13
Documentation/feature-removal-schedule.txt
··· 281 281 Who: Patrick McHardy <kaber@trash.net> 282 282 283 283 --------------------------- 284 + 285 + What: frame diverter 286 + When: November 2006 287 + Why: The frame diverter is included in most distribution kernels, but is 288 + broken. It does not correctly handle many things: 289 + - IPV6 290 + - non-linear skb's 291 + - network device RCU on removal 292 + - input frames not correctly checked for protocol errors 293 + It also adds allocation overhead even if not enabled. 294 + It is not clear if anyone is still using it. 295 + Who: Stephen Hemminger <shemminger@osdl.org> 296 +
+6
Documentation/kernel-parameters.txt
··· 697 697 ips= [HW,SCSI] Adaptec / IBM ServeRAID controller 698 698 See header of drivers/scsi/ips.c. 699 699 700 + ports= [IP_VS_FTP] IPVS ftp helper module 701 + Default is 21. 702 + Up to 8 (IP_VS_APP_MAX_PORTS) ports 703 + may be specified. 704 + Format: <port>,<port>.... 705 + 700 706 irqfixup [HW] 701 707 When an interrupt is not handled search all handlers 702 708 for it. Intended to get systems with badly broken
+9 -3
Documentation/networking/ip-sysctl.txt
··· 102 102 TCP variables: 103 103 104 104 tcp_abc - INTEGER 105 - Controls Appropriate Byte Count defined in RFC3465. If set to 106 - 0 then does congestion avoid once per ack. 1 is conservative 107 - value, and 2 is more agressive. 105 + Controls Appropriate Byte Count (ABC) defined in RFC3465. 106 + ABC is a way of increasing congestion window (cwnd) more slowly 107 + in response to partial acknowledgments. 108 + Possible values are: 109 + 0 increase cwnd once per acknowledgment (no ABC) 110 + 1 increase cwnd once per acknowledgment of full sized segment 111 + 2 allow increase cwnd by two if acknowledgment is 112 + of two segments to compensate for delayed acknowledgments. 113 + Default: 0 (off) 108 114 109 115 tcp_syn_retries - INTEGER 110 116 Number of times initial SYNs for an active TCP connection attempt
+9 -1
MAINTAINERS
··· 416 416 ATM 417 417 P: Chas Williams 418 418 M: chas@cmf.nrl.navy.mil 419 - L: linux-atm-general@lists.sourceforge.net 419 + L: linux-atm-general@lists.sourceforge.net (subscribers-only) 420 420 W: http://linux-atm.sourceforge.net 421 421 S: Maintained 422 422 ··· 2808 2808 P: Jamal Hadi Salim 2809 2809 M: hadi@cyberus.ca 2810 2810 L: netdev@vger.kernel.org 2811 + S: Maintained 2812 + 2813 + TCP LOW PRIORITY MODULE 2814 + P: Wong Hoi Sing, Edison 2815 + M: hswong3i@gmail.com 2816 + P: Hung Hing Lun, Mike 2817 + M: hlhung3i@gmail.com 2818 + W: http://tcp-lp-mod.sourceforge.net/ 2811 2819 S: Maintained 2812 2820 2813 2821 TI OMAP RANDOM NUMBER GENERATOR SUPPORT
+9
drivers/atm/he.c
··· 2282 2282 TPDRQ_MASK(he_readl(he_dev, TPDRQ_B_H))); 2283 2283 2284 2284 if (new_tail == he_dev->tpdrq_head) { 2285 + int slot; 2286 + 2285 2287 hprintk("tpdrq full (cid 0x%x)\n", cid); 2286 2288 /* 2287 2289 * FIXME ··· 2291 2289 * after service_tbrq, service the backlog 2292 2290 * for now, we just drop the pdu 2293 2291 */ 2292 + for (slot = 0; slot < TPD_MAXIOV; ++slot) { 2293 + if (tpd->iovec[slot].addr) 2294 + pci_unmap_single(he_dev->pci_dev, 2295 + tpd->iovec[slot].addr, 2296 + tpd->iovec[slot].len & TPD_LEN_MASK, 2297 + PCI_DMA_TODEVICE); 2298 + } 2294 2299 if (tpd->skb) { 2295 2300 if (tpd->vcc->pop) 2296 2301 tpd->vcc->pop(tpd->vcc, tpd->skb);
+1 -1
include/linux/netfilter/Kbuild
··· 5 5 xt_helper.h xt_length.h xt_limit.h xt_mac.h xt_mark.h \ 6 6 xt_MARK.h xt_multiport.h xt_NFQUEUE.h xt_pkttype.h \ 7 7 xt_policy.h xt_realm.h xt_sctp.h xt_state.h xt_string.h \ 8 - xt_tcpmss.h xt_tcpudp.h 8 + xt_tcpmss.h xt_tcpudp.h xt_SECMARK.h xt_CONNSECMARK.h 9 9 10 10 unifdef-y := nf_conntrack_common.h nf_conntrack_ftp.h \ 11 11 nf_conntrack_tcp.h nfnetlink.h x_tables.h xt_physdev.h
+1 -1
net/Kconfig
··· 177 177 178 178 config NET_DIVERT 179 179 bool "Frame Diverter (EXPERIMENTAL)" 180 - depends on EXPERIMENTAL 180 + depends on EXPERIMENTAL && BROKEN 181 181 ---help--- 182 182 The Frame Diverter allows you to divert packets from the 183 183 network, that are not aimed at the interface receiving it (in
+2
net/atm/clip.c
··· 500 500 } else { 501 501 unsigned int len = skb->len; 502 502 503 + skb_get(skb); 503 504 clip_push(vcc, skb); 504 505 PRIV(skb->dev)->stats.rx_packets--; 505 506 PRIV(skb->dev)->stats.rx_bytes -= len; 507 + kfree_skb(skb); 506 508 } 507 509 return 0; 508 510 }
+1 -1
net/bridge/br_stp_bpdu.c
··· 121 121 buf[1] = 0; 122 122 buf[2] = 0; 123 123 buf[3] = BPDU_TYPE_TCN; 124 - br_send_bpdu(p, buf, 7); 124 + br_send_bpdu(p, buf, 4); 125 125 } 126 126 127 127 /*
+3
net/core/neighbour.c
··· 1432 1432 kfree(tbl->phash_buckets); 1433 1433 tbl->phash_buckets = NULL; 1434 1434 1435 + free_percpu(tbl->stats); 1436 + tbl->stats = NULL; 1437 + 1435 1438 return 0; 1436 1439 } 1437 1440
+13 -14
net/ipv4/ipvs/ip_vs_ftp.c
··· 46 46 */ 47 47 static int ports[IP_VS_APP_MAX_PORTS] = {21, 0}; 48 48 module_param_array(ports, int, NULL, 0); 49 - 50 - /* 51 - * Debug level 52 - */ 53 - #ifdef CONFIG_IP_VS_DEBUG 54 - static int debug=0; 55 - module_param(debug, int, 0); 56 - #endif 49 + MODULE_PARM_DESC(ports, "Ports to monitor for FTP control commands"); 57 50 58 51 59 52 /* Dummy variable */ ··· 170 177 &start, &end) != 1) 171 178 return 1; 172 179 173 - IP_VS_DBG(1-debug, "PASV response (%u.%u.%u.%u:%d) -> " 180 + IP_VS_DBG(7, "PASV response (%u.%u.%u.%u:%d) -> " 174 181 "%u.%u.%u.%u:%d detected\n", 175 182 NIPQUAD(from), ntohs(port), NIPQUAD(cp->caddr), 0); 176 183 ··· 273 280 while (data <= data_limit - 6) { 274 281 if (strnicmp(data, "PASV\r\n", 6) == 0) { 275 282 /* Passive mode on */ 276 - IP_VS_DBG(1-debug, "got PASV at %zd of %zd\n", 283 + IP_VS_DBG(7, "got PASV at %zd of %zd\n", 277 284 data - data_start, 278 285 data_limit - data_start); 279 286 cp->app_data = &ip_vs_ftp_pasv; ··· 295 302 &start, &end) != 1) 296 303 return 1; 297 304 298 - IP_VS_DBG(1-debug, "PORT %u.%u.%u.%u:%d detected\n", 305 + IP_VS_DBG(7, "PORT %u.%u.%u.%u:%d detected\n", 299 306 NIPQUAD(to), ntohs(port)); 300 307 301 308 /* Passive mode off */ ··· 304 311 /* 305 312 * Now update or create a connection entry for it 306 313 */ 307 - IP_VS_DBG(1-debug, "protocol %s %u.%u.%u.%u:%d %u.%u.%u.%u:%d\n", 314 + IP_VS_DBG(7, "protocol %s %u.%u.%u.%u:%d %u.%u.%u.%u:%d\n", 308 315 ip_vs_proto_name(iph->protocol), 309 316 NIPQUAD(to), ntohs(port), NIPQUAD(cp->vaddr), 0); 310 317 ··· 365 372 for (i=0; i<IP_VS_APP_MAX_PORTS; i++) { 366 373 if (!ports[i]) 367 374 continue; 375 + if (ports[i] < 0 || ports[i] > 0xffff) { 376 + IP_VS_WARNING("ip_vs_ftp: Ignoring invalid " 377 + "configuration port[%d] = %d\n", 378 + i, ports[i]); 379 + continue; 380 + } 368 381 ret = register_ip_vs_app_inc(app, app->protocol, ports[i]); 369 382 if (ret) 370 383 break; 371 - IP_VS_DBG(1-debug, "%s: loaded support on port[%d] = %d\n", 372 - app->name, i, ports[i]); 384 + IP_VS_INFO("%s: loaded support on port[%d] = %d\n", 385 + app->name, i, ports[i]); 373 386 } 374 387 375 388 if (ret)
+1 -1
net/ipv4/tcp_input.c
··· 89 89 int sysctl_tcp_nometrics_save; 90 90 91 91 int sysctl_tcp_moderate_rcvbuf = 1; 92 - int sysctl_tcp_abc = 1; 92 + int sysctl_tcp_abc; 93 93 94 94 #define FLAG_DATA 0x01 /* Incoming frame contained data. */ 95 95 #define FLAG_WIN_UPDATE 0x02 /* Incoming ACK was a window update. */
+22 -15
net/ipv4/tcp_lp.c
··· 3 3 * 4 4 * TCP Low Priority is a distributed algorithm whose goal is to utilize only 5 5 * the excess network bandwidth as compared to the ``fair share`` of 6 - * bandwidth as targeted by TCP. Available from: 7 - * http://www.ece.rice.edu/~akuzma/Doc/akuzma/TCP-LP.pdf 6 + * bandwidth as targeted by TCP. 8 7 * 9 - * Original Author: 10 - * Aleksandar Kuzmanovic <akuzma@northwestern.edu> 11 - * 12 - * See http://www-ece.rice.edu/networks/TCP-LP/ for their implementation. 13 8 * As of 2.6.13, Linux supports pluggable congestion control algorithms. 14 9 * Due to the limitation of the API, we take the following changes from 15 10 * the original TCP-LP implementation: ··· 19 24 * o OWD is handled in relative format, where local time stamp will in 20 25 * tcp_time_stamp format. 21 26 * 22 - * Port from 2.4.19 to 2.6.16 as module by: 23 - * Wong Hoi Sing Edison <hswong3i@gmail.com> 24 - * Hung Hing Lun <hlhung3i@gmail.com> 27 + * Original Author: 28 + * Aleksandar Kuzmanovic <akuzma@northwestern.edu> 29 + * Available from: 30 + * http://www.ece.rice.edu/~akuzma/Doc/akuzma/TCP-LP.pdf 31 + * Original implementation for 2.4.19: 32 + * http://www-ece.rice.edu/networks/TCP-LP/ 25 33 * 26 - * Version: $Id: tcp_lp.c,v 1.22 2006-05-02 18:18:19 hswong3i Exp $ 34 + * 2.6.x module Authors: 35 + * Wong Hoi Sing, Edison <hswong3i@gmail.com> 36 + * Hung Hing Lun, Mike <hlhung3i@gmail.com> 37 + * SourceForge project page: 38 + * http://tcp-lp-mod.sourceforge.net/ 39 + * 40 + * Version: $Id: tcp_lp.c,v 1.24 2006/09/05 20:22:53 hswong3i Exp $ 27 41 */ 28 42 29 43 #include <linux/config.h> ··· 157 153 if (m < 0) 158 154 m = -m; 159 155 160 - if (rhz != 0) { 156 + if (rhz > 0) { 161 157 m -= rhz >> 6; /* m is now error in remote HZ est */ 162 158 rhz += m; /* 63/64 old + 1/64 new */ 163 159 } else 164 160 rhz = m << 6; 165 161 166 - /* record time for successful remote HZ calc */ 167 - lp->flag |= LP_VALID_RHZ; 168 - 169 162 out: 163 + /* record time for successful remote HZ calc */ 164 + if (rhz > 0) 165 + lp->flag |= LP_VALID_RHZ; 166 + else 167 + lp->flag &= ~LP_VALID_RHZ; 168 + 170 169 /* record reference time stamp */ 171 170 lp->remote_ref_time = tp->rx_opt.rcv_tsval; 172 171 lp->local_ref_time = tp->rx_opt.rcv_tsecr; ··· 340 333 module_init(tcp_lp_register); 341 334 module_exit(tcp_lp_unregister); 342 335 343 - MODULE_AUTHOR("Wong Hoi Sing Edison, Hung Hing Lun"); 336 + MODULE_AUTHOR("Wong Hoi Sing Edison, Hung Hing Lun Mike"); 344 337 MODULE_LICENSE("GPL"); 345 338 MODULE_DESCRIPTION("TCP Low Priority");
+1 -1
net/ipv6/datagram.c
··· 696 696 } 697 697 698 698 tc = *(int *)CMSG_DATA(cmsg); 699 - if (tc < 0 || tc > 0xff) 699 + if (tc < -1 || tc > 0xff) 700 700 goto exit_f; 701 701 702 702 err = 0;
+2 -2
net/ipv6/icmp.c
··· 401 401 if (hlimit < 0) 402 402 hlimit = ipv6_get_hoplimit(dst->dev); 403 403 404 - tclass = np->cork.tclass; 404 + tclass = np->tclass; 405 405 if (tclass < 0) 406 406 tclass = 0; 407 407 ··· 497 497 if (hlimit < 0) 498 498 hlimit = ipv6_get_hoplimit(dst->dev); 499 499 500 - tclass = np->cork.tclass; 500 + tclass = np->tclass; 501 501 if (tclass < 0) 502 502 tclass = 0; 503 503
+3 -1
net/ipv6/ipv6_sockglue.c
··· 362 362 break; 363 363 364 364 case IPV6_TCLASS: 365 - if (val < 0 || val > 0xff) 365 + if (val < -1 || val > 0xff) 366 366 goto e_inval; 367 367 np->tclass = val; 368 368 retv = 0; ··· 947 947 948 948 case IPV6_TCLASS: 949 949 val = np->tclass; 950 + if (val < 0) 951 + val = 0; 950 952 break; 951 953 952 954 case IPV6_RECVTCLASS:
+1 -1
net/ipv6/raw.c
··· 781 781 } 782 782 783 783 if (tclass < 0) { 784 - tclass = np->cork.tclass; 784 + tclass = np->tclass; 785 785 if (tclass < 0) 786 786 tclass = 0; 787 787 }
+1 -3
net/packet/af_packet.c
··· 626 626 if ((int)snaplen < 0) 627 627 snaplen = 0; 628 628 } 629 - if (snaplen > skb->len-skb->data_len) 630 - snaplen = skb->len-skb->data_len; 631 629 632 630 spin_lock(&sk->sk_receive_queue.lock); 633 631 h = (struct tpacket_hdr *)packet_lookup_frame(po, po->head); ··· 642 644 status &= ~TP_STATUS_LOSING; 643 645 spin_unlock(&sk->sk_receive_queue.lock); 644 646 645 - memcpy((u8*)h + macoff, skb->data, snaplen); 647 + skb_copy_bits(skb, 0, (u8*)h + macoff, snaplen); 646 648 647 649 h->tp_len = skb->len; 648 650 h->tp_snaplen = snaplen;
-2
net/sched/sch_generic.c
··· 238 238 239 239 static void dev_watchdog_up(struct net_device *dev) 240 240 { 241 - netif_tx_lock_bh(dev); 242 241 __netdev_watchdog_up(dev); 243 - netif_tx_unlock_bh(dev); 244 242 } 245 243 246 244 static void dev_watchdog_down(struct net_device *dev)