aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* [TCP]: Fix __tcp_push_pending_frames() 'nonagle' handling.David S. Miller2005-07-05
| | | | | | | | | | | | | | | | | | | | | 'nonagle' should be passed to the tcp_snd_test() function as 'TCP_NAGLE_PUSH' if we are checking an SKB not at the tail of the write_queue. This is because Nagle does not apply to such frames since we cannot possibly tack more data onto them. However, while doing this __tcp_push_pending_frames() makes all of the packets in the write_queue use this modified 'nonagle' value. Fix the bug and simplify this function by just calling tcp_write_xmit() directly if sk_send_head is non-NULL. As a result, we can now make tcp_data_snd_check() just call tcp_push_pending_frames() instead of the specialized __tcp_data_snd_check(). Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Fix redundant calculations of tcp_current_mss()David S. Miller2005-07-05
| | | | | | | | | | | tcp_write_xmit() uses tcp_current_mss(), but some of it's callers, namely __tcp_push_pending_frames(), already has this value available already. While we're here, fix the "cur_mss" argument to be "unsigned int" instead of plain "unsigned". Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: tcp_write_xmit() tabbing cleanupDavid S. Miller2005-07-05
| | | | | | | Put the main basic block of work at the top-level of tabbing, and mark the TCP_CLOSE test with unlikely(). Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Kill extra cwnd validate in __tcp_push_pending_frames().David S. Miller2005-07-05
| | | | | | | | | | | The tcp_cwnd_validate() function should only be invoked if we actually send some frames, yet __tcp_push_pending_frames() will always invoke it. tcp_write_xmit() does the call for us, so the call here can simply be removed. Also, tcp_write_xmit() can be marked static. Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Add missing skb_header_release() call to tcp_fragment().David S. Miller2005-07-05
| | | | | | | | When we add any new packet to the TCP socket write queue, we must call skb_header_release() on it in order for the TSO sharing checks in the drivers to work. Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Move __tcp_data_snd_check into tcp_output.cDavid S. Miller2005-07-05
| | | | | | | | It reimplements portions of tcp_snd_check(), so it we move it to tcp_output.c we can consolidate it's logic much easier in a later change. Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Move send test logic out of net/tcp.hDavid S. Miller2005-07-05
| | | | | | | | | | | | This just moves the code into tcp_output.c, no code logic changes are made by this patch. Using this as a baseline, we can begin to untangle the mess of comparisons for the Nagle test et al. We will also be able to reduce all of the redundant computation that occurs when outputting data packets. Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Fix quick-ack decrementing with TSO.David S. Miller2005-07-05
| | | | | | | | | | | | | | | | | On each packet output, we call tcp_dec_quickack_mode() if the ACK flag is set. It drops tp->ack.quick until it hits zero, at which time we deflate the ATO value. When doing TSO, we are emitting multiple packets with ACK set, so we should decrement tp->ack.quick that many segments. Note that, unlike this case, tcp_enter_cwr() should not take the tcp_skb_pcount(skb) into consideration. That function, one time, readjusts tp->snd_cwnd and moves into TCP_CA_CWR state. Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Simplify SKB data portion allocation with NETIF_F_SG.David S. Miller2005-07-05
| | | | | | | | | | | | | | | | | | | | The ideal and most optimal layout for an SKB when doing scatter-gather is to put all the headers at skb->data, and all the user data in the page array. This makes SKB splitting and combining extremely simple, especially before a packet goes onto the wire the first time. So, when sk_stream_alloc_pskb() is given a zero size, make sure there is no skb_tailroom(). This is achieved by applying SKB_DATA_ALIGN() to the header length used here. Next, make select_size() in TCP output segmentation use a length of zero when NETIF_F_SG is true on the outgoing interface. Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Remove __ARGS from include/net/slhc_vj.hAlexey Dobriyan2005-07-05
| | | | | | | | I suspect "#define __ARGS(x) ()" was deprecated before I was born. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: improve readability of dev_set_promiscuity() in net/core/dev.cDavid Chau2005-07-05
| | | | | | | | | | A trivial patch to improve the readability of dev_set_promiscuity() in net/core/dev.c. New code does exactly the same thing as original code. Signed-off-by: David Chau <ddcc@mit.edu> Signed-off-by: Domen Puncer <domen@coderock.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [SHAPER]: Switch to spinlocks.Christoph Hellwig2005-07-05
| | | | | | | | | | Dave, you were right and the sleeping locks in shaper were broken. Markus Kanet noticed this and also tested the patch below that switches locking to spinlocks. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV4]: More broken memory allocation fixes for fib_trieRobert Olsson2005-07-05
| | | | | | | | | | | Below a patch to preallocate memory when doing resize of trie (inflate halve) If preallocations fails it just skips the resize of this tnode for this time. The oops we got when killing bgpd (with full routing) is now gone. Patrick memory patch is also used. Signed-off-by: Robert Olsson <robert.olsson@its.uu.se> Signed-off-by: David S. Miller <davem@davemloft.net>
* [DECNET]: Fix memset overflow on 64bit archs while dumping decnet routing rulesThomas Graf2005-07-05
| | | | | Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV4]: Bug fix in rt_check_expire()Eric Dumazet2005-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | - rt_check_expire() fixes (an overflow occured if size of the hash was >= 65536) reminder of the bugfix: The rt_check_expire() has a serious problem on machines with large route caches, and a standard HZ value of 1000. With default values, ie ip_rt_gc_interval = 60*HZ = 60000 ; the loop count : for (t = ip_rt_gc_interval << rt_hash_log; t >= 0; overflows (t is a 31 bit value) as soon rt_hash_log is >= 16 (65536 slots in route cache hash table). In this case, rt_check_expire() does nothing at all Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV4]: Use the fancy alloc_large_system_hash() function for route hash tableEric Dumazet2005-07-05
| | | | | | | - rt hash table allocated using alloc_large_system_hash() function. Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Hashed spinlocks in net/ipv4/route.cEric Dumazet2005-07-05
| | | | | | | | | | - Locking abstraction - Spinlocks moved out of rt hash table : Less memory (50%) used by rt hash table. it's a win even on UP. - Sizing of spinlocks table depends on NR_CPUS Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV4]: Handle large allocations in fib_triePatrick McHardy2005-07-05
| | | | | | | | | Inflating a node a couple of times makes it exceed the 128k kmalloc limit. Use __get_free_pages for allocations > PAGE_SIZE, as in fib_hash. Signed-off-by: Patrick McHardy <kaber@trash.net> Acked-by: Robert Olsson <Robert.Olsson@data.slu.se> Signed-off-by: David S. Miller <davem@davemloft.net>
* [TG3]: Update driver version and reldate.David S. Miller2005-07-05
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [TG3]: support for ethtool -CMichael Chan2005-07-05
| | | | | | | Add support for ethtool -C with verification of user parameters. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV6]: Makes IPv6 rcv registration happen last during initialisation.Herbert Xu2005-07-05
| | | | | Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV4]: Fix crash in ip_rcv while booting related to netconsoleHerbert Xu2005-07-05
| | | | | | | Makes IPv4 ip_rcv registration happen last in af_inet. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [SKGE]: Fix build on big-endianDavid S. Miller2005-07-05
| | | | | | Missing PCI_REV_DESC define. Signed-off-by: David S. Miller <davem@davemloft.net>
* [PKT_SCHED]: Report rate estimator configuration errors during qdisc allocationThomas Graf2005-07-05
| | | | | | | | | | | | | | Current behaviour is to not report an error if a rate estimator is created together with a qdisc and the configuration of the rate estimator is bogus. This leads to unexpected behaviour because the user is not notified. New behaviour is to report the error and let the whole qdisc creation operation fail so the user is able to fix his mistake. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PKT_SCHED]: Cleanup qdisc creation and alignment macrosThomas Graf2005-07-05
| | | | | | | | | Adds qdisc_alloc() to share code between qdisc_create() and qdisc_create_dflt(). Hides the qdisc alignment behind macros and makes use of them. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PKT_SCHED]: Move sch_generic.c prototypes to correct header fileThomas Graf2005-07-05
| | | | | Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Reduce size of sk_buff by 4 bytesThomas Graf2005-07-05
| | | | | | | | | | | Reduce local_df to a bit field and ip_summed to a 2 bits field thus saving 13 bits. Move bit fields, packet type, and protocol into the spare area between the priority and the destructor. Saves 4 bytes on both, 32bit and 64bit architectures. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Remove unused security member in sk_buffThomas Graf2005-07-05
| | | | | Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: net/core/filter.c: make len cover the entire packetPatrick McHardy2005-07-05
| | | | | | | | | | As suggested by Herbert Xu: Since we don't require anything to be in the linear packet range anymore make len cover the entire packet. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Consolidate common code in net/core/filter.cPatrick McHardy2005-07-05
| | | | | Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Remove redundant code in net/core/filter.cPatrick McHardy2005-07-05
| | | | | | | | | skb_header_pointer handles linear and non-linear data, no need to handle linear data again. Signed-off-by: Patrick McHardy <kaber@trash.net> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Fix signedness issues in net/core/filter.cPatrick McHardy2005-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the code to load packet data into a register: k = fentry->k; if (k < 0) { ... } else { u32 _tmp, *p; p = skb_header_pointer(skb, k, 4, &_tmp); if (p != NULL) { A = ntohl(*p); continue; } } skb_header_pointer checks if the requested data is within the linear area: int hlen = skb_headlen(skb); if (offset + len <= hlen) return skb->data + offset; When offset is within [INT_MAX-len+1..INT_MAX] the addition will result in a negative number which is <= hlen. I couldn't trigger a crash on my AMD64 with 2GB of memory, but a coworker tried on his x86 machine and it crashed immediately. This patch fixes the check in skb_header_pointer to handle large positive offsets similar to skb_copy_bits. Invalid data can still be accessed using negative offsets (also similar to skb_copy_bits), anyone using negative offsets needs to verify them himself. Thanks to Thomas Vögtle <thomas.voegtle@coreworks.de> for verifying the problem by crashing his machine and providing me with an Oops. Signed-off-by: Patrick McHardy <kaber@trash.net> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PATCH] ARM: Fix new-ABI layout of struct stat64Russell King2005-07-04
| | | | | | | Add __attribute__((packed)) to ensure that the stat64 structure is correctly laid out no matter which ABI the kernel is compiled for. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [PATCH] ARM: Fix non-standard PXA io_pg_offst initialisersRussell King2005-07-04
| | | | | | These didn't match my sed expression correctly, fix them up manually. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* [PATCH] ARM: Change 'param_offset' to 'boot_params'Russell King2005-07-04
| | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2005-07-03
|\
| * [PATCH] ARM: 2784/1: Fix the block cache flush operation rangeCatalin Marinas2005-07-03
| | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Catalin Marinas The range for the ARMv6 block cache operations is inclusive but the kernel doesn't re-calculate the end address, causing a page fault when used (this only happens with support for cache aliasing, otherwise the blk_flush_kern_dcache_page() is not called). This patch subtracts L1_CACHE_BYTES from the end address. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * [PATCH] ARM: 2785/1: S3C24XX - serial calls request_irq() with IRQs disabledBen Dooks2005-07-03
| | | | | | | | | | | | | | | | | | | | | | | | Patch from Ben Dooks The request_irq() function is called by s3c24xx uart driver with the local IRQs disabled. The request_irq() function can allocate memory via kmalloc(), and this may sleep causing a warning about sleeping in an invalid context. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| * [PATCH] ARM: Remove machine description macrosRussell King2005-07-03
| | | | | | | | | | | | | | Remove the pointless machine description macros, favouring C99 initialisers instead. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | Merge master.kernel.org:/home/rmk/linux-2.6-serialLinus Torvalds2005-07-03
|\ \
| * | [PATCH] Serial: Fix console port spinlock initialisationRussell King2005-07-03
| |/ | | | | | | | | | | | | Initialise the spinlock for port being used by the console early, but don't re-initialise it again later. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [PATCH] drivers/ide/Makefile: kill dead CONFIG_BLK_DEV_IDE_TCQ entryAdrian Bunk2005-07-03
| | | | | | | | | | | | This patch kills the dead CONFIG_BLK_DEV_IDE_TCQ entry. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] amd74xx: support MCP55 device IDsRob Punkunus2005-07-03
| | | | | | | | | | | | | | | | | | | | | | | | | | From: Rob Punkunus <rpunkunus@nvidia.com> Rob Punkunus recently submitted a patch to enable support for MCP51/MCP55 in the amd74xx driver. This patch was whitespace-corrupted and didn't apply to 2.6.12 since MCP51 support was merged in the 2.6.12-rc series. Gentoo would like to support this hardware for our upcoming release media, so I fixed the patch, and here it is :) Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] ide: fix line break in ide messagesDenis Vlasenko2005-07-03
| | | | | | | | | | | | | | | | From: Denis Vlasenko <vda@ilport.com.ua> * printk("\n") is misplaced, resulting in stray empty line in kernel log * cleanups nerby: some back-to-back printks are combined, etc Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] ide: hotplug mark __devinit via82cxxx.cHerbert Xu2005-07-03
| | | | | | | | | | | | | | | | | | From: Herbert Xu <herbert@gondor.apana.org.au> mark the __init section __devinit. Splitted up from the Debian kernel patch. Signed-off-by: maximilian attems <janitor@sternwelten.at> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] ide: hotplug mark __devinit triflex.cHerbert Xu2005-07-03
| | | | | | | | | | | | | | | | | | From: Herbert Xu <herbert@gondor.apana.org.au> mark the __init section __devinit. Splitted up from the Debian kernel patch. Signed-off-by: maximilian attems <janitor@sternwelten.at> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] ide: hotplug mark __devinit slc90e66.cHerbert Xu2005-07-03
| | | | | | | | | | | | | | | | | | From: Herbert Xu <herbert@gondor.apana.org.au> mark the __init section __devinit. Splitted up from the Debian kernel patch. Signed-off-by: maximilian attems <janitor@sternwelten.at> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] ide: hotplug mark __devinit sl82c105.cHerbert Xu2005-07-03
| | | | | | | | | | | | | | | | | | From: Herbert Xu <herbert@gondor.apana.org.au> mark the __init section __devinit. Splitted up from the Debian kernel patch. Signed-off-by: maximilian attems <janitor@sternwelten.at> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] ide: hotplug mark __devinit sc1200.cHerbert Xu2005-07-03
| | | | | | | | | | | | | | | | | | From: Herbert Xu <herbert@gondor.apana.org.au> mark the __init section __devinit. Splitted up from the Debian kernel patch. Signed-off-by: maximilian attems <janitor@sternwelten.at> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>
* | [PATCH] ide: hotplug mark __devinit opti621.cHerbert Xu2005-07-03
| | | | | | | | | | | | | | | | | | From: Herbert Xu <herbert@gondor.apana.org.au> mark the __init section __devinit. Splitted up from the Debian kernel patch. Signed-off-by: maximilian attems <janitor@sternwelten.at> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@elka.pw.edu.pl>