aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* [RTNETLINK]: Fix warning for !CONFIG_KMODThomas Graf2007-07-31
| | | | | | | replay label is unused otherwise. Signed-off-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV4] ip_options.c: kmalloc + memset conversion to kzallocMariusz Kozlowski2007-07-31
| | | | | Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
* [DECNET]: kmalloc + memset conversion to kzallocMariusz Kozlowski2007-07-31
| | | | | Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: ethtool_perm_addr only has one implementationMatthew Wilcox2007-07-31
| | | | | | | | | All drivers implement ethtool get_perm_addr the same way -- by calling the generic function. So we can inline the generic function into the caller and avoid going through the drivers. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: ethtool ops are the only wayMatthew Wilcox2007-07-31
| | | | | | | | | | | | | | | During the transition to the ethtool_ops way of doing things, we supported calling the device's ->do_ioctl method to allow unconverted drivers to continue working. Those days are long behind us, all in-tree drivers use the ethtool_ops way, and so we no longer need to support this. The bonding driver is the biggest beneficiary of this; it no longer needs to call ioctl() as a fallback if ethtool_ops aren't supported. Also put a proper copyright statement on ethtool.c. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PPPOE]: Improve hashing function in hash_item().Florian Zumbiehl2007-07-31
| | | | | | | | The new code produces the same results as the old version and is ~ 3 to 6 times faster for 4-bit hashes on the CPUs I tested. Signed-off-by: Florian Zumbiehl <florz@florz.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* [XFRM]: State selection update to use inner addresses.Joakim Koskela2007-07-31
| | | | | | | | | | | | | | This patch modifies the xfrm state selection logic to use the inner addresses where the outer have been (incorrectly) used. This is required for beet mode in general and interfamily setups in both tunnel and beet mode. Signed-off-by: Joakim Koskela <jookos@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Diego Beltrami <diego.beltrami@gmail.com> Signed-off-by: Miika Komu <miika@iki.fi> Acked-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPSEC]: Ensure that state inner family is setHerbert Xu2007-07-31
| | | | | | | | | | | | | Similar to the issue we had with template families which specified the inner families of policies, we need to set the inner families of states as the main xfrm user Openswan leaves it as zero. af_key is unaffected because the inner family is set by it and not the KM. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Bidir flow must not disregard SACK blocks for lost markingIlpo Järvinen2007-07-31
| | | | | | | | | | | | | | | | | | | It's possible that new SACK blocks that should trigger new LOST markings arrive with new data (which previously made is_dupack false). In addition, I think this fixes a case where we get a cumulative ACK with enough SACK blocks to trigger the fast recovery (is_dupack would be false there too). I'm not completely pleased with this solution because readability of the code is somewhat questionable as 'is_dupack' in SACK case is no longer about dupacks only but would mean something like 'lost_marker_work_todo' too... But because of Eifel stuff done in CA_Recovery, the FLAG_DATA_SACKED check cannot be placed to the if statement which seems attractive solution. Nevertheless, I didn't like adding another variable just for that either... :-) Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: Fix ratehalving with bidirectional flowsIlpo Järvinen2007-07-31
| | | | | | | | | | | | | Actually, the ratehalving seems to work too well, as cwnd is reduced on every second ACK even though the packets in flight remains unchanged. Recoveries in a bidirectional flows suffer quite badly because of this, both NewReno and SACK are affected. After this patch, rate halving is performed for ACK only if packets in flight was supposedly changed too. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PPPOL2TP]: Add CONFIG_INET Kconfig dependency.James Chapman2007-07-31
| | | | | | | PPPOL2TP uses UDP so it obviously depends on CONFIG_INET. Signed-off-by: James Chapman <jchapman@katalix.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Page offsets and lengths need to be __u32.David S. Miller2007-07-31
| | | | | | Based upon a report from Stephen Rothwell. Signed-off-by: David S. Miller <davem@davemloft.net>
* [AF_UNIX]: Make code static.Adrian Bunk2007-07-31
| | | | | | | | | The following code can now become static: - struct unix_socket_table - unix_table_lock Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NETFILTER]: Make nf_ct_ipv6_skip_exthdr() static.Adrian Bunk2007-07-31
| | | | | | | nf_ct_ipv6_skip_exthdr() can now become static. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PKTGEN]: make get_ipsec_sa() static and non-inlineAdrian Bunk2007-07-31
| | | | | | | | | Non-static inline code usually doesn't makes sense. In this case making is static and non-inline is the correct solution. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PPPoE]: move lock_sock() in pppoe_sendmsg() to the right locationFlorian Zumbiehl2007-07-31
| | | | | | | | | and the last one for now: Acquire the sock lock in pppoe_sendmsg() before accessing the sock - and in particular avoid releasing the lock even though it hasn't been acquired. Signed-off-by: Florian Zumbiehl <florz@florz.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PPPoX/E]: return ENOTTY on unknown ioctl requestsFlorian Zumbiehl2007-07-31
| | | | | | | | | here another patch for the PPPoX/E code that makes sure that ENOTTY is returned for unknown ioctl requests rather than 0 (and removes another unneeded initializer which I didn't bother creating a separate patch for). Signed-off-by: Florian Zumbiehl <florz@florz.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV6]: ipv6_addr_type() doesn't know about RFC4193 addresses.Dave Johnson2007-07-31
| | | | | | | | | | | | | | | | ipv6_addr_type() doesn't check for 'Unique Local IPv6 Unicast Addresses' (RFC4193) and returns IPV6_ADDR_RESERVED for that range. SCTP uses this function and will fail bind() and connect() calls that use RFC4193 addresses, SCTP will also ignore inbound connections from RFC4193 addresses if listening on IPV6_ADDR_ANY. There may be other users of ipv6_addr_type() that could also have problems. Signed-off-by: Dave Johnson <djohnson@sw.starentnetworks.com> Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Fix prio_tune() handling of root qdisc.Peter P Waskiewicz Jr2007-07-31
| | | | | | | | | Fix the check in prio_tune() to see if sch->parent is TC_H_ROOT instead of sch->handle to load or reject the qdisc for multiqueue devices. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Acked-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Fix sch_api to properly set sch->parent on the root.Patrick McHardy2007-07-31
| | | | | | | | | Fix sch_api to correctly set sch->parent for both ingress and egress qdiscs in qdisc_create(). Signed-off-by: Patrick McHardy <trash@kaber.net> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET_SCHED]: Fix prio/ingress classification logic errorPatrick McHardy2007-07-31
| | | | | | | | | | | Fix handling of empty or completely non-matching filter chains. In that case -1 is returned and tcf_result is uninitialized, the qdisc should fall back to default classification in that case. Noticed by PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com>. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV6]: Remove circular dependency on if_inet6.hHerbert Xu2007-07-31
| | | | | | | | | | | | | net/if_inet6.h includes linux/ipv6.h which also tries to include net/if_inet6.h. Since the latter only needs it for forward declarations, we can fix this by adding the declarations. A number of files are implicitly including net/if_inet6.h through linux/ipv6.h. They also use net/ipv6.h so this patch includes net/if_inet6.h there. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV4/IPV6]: Fail registration if inet device construction failsHerbert Xu2007-07-31
| | | | | | | | | | Now that netdev notifications can fail, we can use this to signal errors during registration for IPv4/IPv6. In particular, if we fail to allocate memory for the inet device, we can fail the netdev registration. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Allow netdev REGISTER/CHANGENAME events to failHerbert Xu2007-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds code to allow errors to be passed up from event handlers of NETDEV_REGISTER and NETDEV_CHANGENAME. It also adds the notifier_from_errno/notifier_to_errnor helpers to pass the errno value up to the notifier caller. If an error is detected when a device is registered, it causes that operation to fail. A NETDEV_UNREGISTER will be sent to all event handlers. Similarly if NETDEV_CHANGENAME fails the original name is restored and a new NETDEV_CHANGENAME event is sent. As such all event handlers must be idempotent with respect to these events. When an event handler is registered NETDEV_REGISTER events are sent for all devices currently registered. Should any of them fail, we will send NETDEV_GOING_DOWN/NETDEV_DOWN/NETDEV_UNREGISTER events to that handler for the devices which have already been registered with it. The handler registration itself will fail. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET] loopback: Panic if registration failsHerbert Xu2007-07-31
| | | | | | | | | Because IPv4 and IPv6 both depend on the presence of the loopback device to function, failure in registration the loopback device should be fatal. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Take dev_base_lock when moving device name hash list entryHerbert Xu2007-07-31
| | | | | | | | | | | | | | When we added name-based hashing the dev_base_lock was designated as the lock to take when changing the name hash list. Unfortunately, because it was a preexisting lock that just happened to be taken in the right spots we neglected to take it in dev_change_name. The race can affect calles of __dev_get_by_name that do so without taking the RTNL. They may end up walking down the wrong hash chain and end up missing the device that they're looking for. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: Call uninit if necessary in register_netdeviceHerbert Xu2007-07-31
| | | | | | | | | | This patch makes register_netdevice call dev->uninit if the regsitration fails after dev->init has completed successfully. Very few drivers use the init/uninit calls but at least one (drivers/net/wan/sealevel.c) may leak without this change. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPVS]: Use skb_forward_csumHerbert Xu2007-07-31
| | | | | | | | | As a path that forwards packets, IPVS should be using skb_forward_csum instead of directly setting ip_summed to CHECKSUM_NONE. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
* [PKTGEN]: Add missing KERN_* tags to printk()s.David S. Miller2007-07-31
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* [BLUETOOTH] l2cap: don't mangle cmd.lenAl Viro2007-07-31
| | | | | | | | | Since nobody uses it after we convert it to host-endian, no need to do that at all. At that point l2cap is endian-clean. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [BLUETOOTH]: pass (host-endian) cmd length as explicit argument to ↵Al Viro2007-07-31
| | | | | | | | l2cap_conf_req() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [BLUETOOTH] l2cap: endianness annotationsAl Viro2007-07-31
| | | | | | | | no code changes, just documenting existing types Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [BLUETOOTH]: Fix endianness bug in l2cap_sock_listen()Al Viro2007-07-31
| | | | | | | | | | | | | | | | | | | | | | We loop through psm values, calling __l2cap_get_sock_by_addr(psm, ...) until we get NULL; then we set ->psm of our socket to htobs(psm). IOW, we find unused psm value and put it into our socket. So far, so good, but... __l2cap_get_sock_by_addr() compares its argument with ->psm of sockets. IOW, the entire thing works correctly only on little-endian. On big-endian we'll get "no socket with such psm" on the first iteration, since we won't find a socket with ->psm == 0x1001. We will happily conclude that 0x1001 is unused and slap htobs(0x1001) (i.e. 0x110) into ->psm of our socket. Of course, the next time around the same thing will repeat and we'll just get a fsckload of sockets with the same ->psm assigned. Fix: pass htobs(psm) to __l2cap_get_sock_by_addr() there. All other callers are already passing little-endian values and all places that store something in ->psm are storing little-endian. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IRDA]: Fix rfcomm use-after-freeMarcel Holtmann2007-07-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adrian Bunk wrote: > Commit 8de0a15483b357d0f0b821330ec84d1660cadc4e added the following > use-after-free in net/bluetooth/rfcomm/tty.c: > > <-- snip --> > > ... > static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc) > { > ... > if (IS_ERR(dev->tty_dev)) { > list_del(&dev->list); > kfree(dev); > return PTR_ERR(dev->tty_dev); > } > ... > > <-- snip --> > > Spotted by the Coverity checker. really good catch. I fully overlooked that one. The attached patch should fix it. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [IPV6]: Don't update ADVMSS on routes where the MTU is not also updatedSimon Arlott2007-07-31
| | | | | | | | | The ADVMSS value was incorrectly updated for ALL routes when the MTU is updated because it's outside the effect of the if statement's condition. Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET_DMA]: remove unused dma_memcpy_to_kernel_iovecShannon Nelson2007-07-31
| | | | | | | | | Al Viro pointed out that dma_memcpy_to_kernel_iovec() really was unreachable and thus unused. The code originally was there to support in-kernel dma needs, but since it remains unused, we'll pull it out. Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [TIPC]: fix tipc_link_create error handlingFlorian Westphal2007-07-31
| | | | | | | | | | | | if printbuf allocation or tipc_node_attach_link() fails, invalid references to the link are left in the associated node and bearer structures. Fix by allocating printbuf early and moving timer initialization and the addition of the new link to the b_ptr->links list after tipc_node_attach_link() succeeded. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* [NET]: kernel-doc fixesRandy Dunlap2007-07-31
| | | | | | | | | | | | Fix kernel-doc omissions in net/: Warning(linux-2.6.23-rc1//net/core/dev.c:2728): No description found for parameter 'addr' Warning(linux-2.6.23-rc1//net/core/dev.c:2752): No description found for parameter 'addr' Warning(linux-2.6.23-rc1//net/core/dev.c:3839): No description found for parameter 'net_dma' Warning(linux-2.6.23-rc1//net/core/dev.c:3877): No description found for parameter 'state' Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: htcp - use measured rttStephen Hemminger2007-07-31
| | | | | | | | | | Change HTCP to use measured RTT rather than smooth RTT. Srtt is computed using the TCP receive timestamp options, so it is vulnerable to hostile receivers. To avoid any problems this might cause use the measured RTT instead. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: cubic - eliminate use of receive time stampStephen Hemminger2007-07-31
| | | | | | | | | | | | | | Remove use of received timestamp option value from RTT calculation in Cubic. A hostile receiver may be returning a larger timestamp option than the original value. This would cause the sender to believe the malevolent receiver had a larger RTT and because Cubic tries to provide some RTT friendliness, the sender would then favor the liar. Instead, use the jiffie resolutionRTT value already computed and passed back after ack. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [TCP]: congestion control API pass RTT in microsecondsStephen Hemminger2007-07-31
| | | | | | | | | | | | | | | | | This patch changes the API for the callback that is done after an ACK is received. It solves a couple of issues: * Some congestion controls want higher resolution value of RTT (controlled by TCP_CONG_RTT_SAMPLE flag). These don't really want a ktime, but all compute a RTT in microseconds. * Other congestion control could use RTT at jiffies resolution. To keep API consistent the units should be the same for both cases, just the resolution should change. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.23Linus Torvalds2007-07-31
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.23: sh: Fix fs.h removal from mm.h regressions. sh: fix get_wchan() for SH kernels without framepointers sh: arch/sh/boot - fix shell usage rtc: rtc-sh: Correct sh_rtc_set_time() for some SH-3 parts. sh: remove support for sh7300 and solution engine 7300 sh: Add sh to the CC_OPTIMIZE_FOR_SIZE dependencies. sh: Kill off virt_to_bus()/bus_to_virt(). sh: sh-sci - fix SH7708 support sh: Restrict DSP support to specific CPUs. sh: Silence sq compile warning on sh4 nommu. sh: Kill the rest of the SE73180 cruft. sh: remove support for sh73180 and solution engine 73180 sh: remove old broken pint code sh: Reclaim beginning of P3 space for vmalloc area. sh: Fix Dreamcast DMA issues. sh: Add kmap_coherent()/kunmap_coherent() interface for SH-4.
| * sh: Fix fs.h removal from mm.h regressions.Paul Mundt2007-07-31
| | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: fix get_wchan() for SH kernels without framepointersDavid McCullough2007-07-26
| | | | | | | | | | | | | | | | Do not follow the frame pointers (/proc/X/task/1/stat) unless we were compiled with them. Signed-off-by: David McCullough <david_mccullough@au.securecomputing.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: arch/sh/boot - fix shell usageDavid McCullough2007-07-26
| | | | | | | | | | | | | | | | Fix the shell call to explicitly use bash, since they are bash specific and not all systems have bash as the default. Signed-off-by: David McCullough <david_mccullough@au.securecomputing.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * rtc: rtc-sh: Correct sh_rtc_set_time() for some SH-3 parts.Markus Brunner2007-07-26
| | | | | | | | | | | | | | | | | | | | | | Some SH-3 parts (SH7720 and SH7705 at least) need to have the start bit explicitly cleared, as the reset is not enough. This is safe across all parts, so simply clear the start bit in the sh_rtc_set_time() path. Signed-off-by: Markus Brunner <super.firetwister@gmail.com> Signed-off by: Mark Jonas <toertel@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: remove support for sh7300 and solution engine 7300Magnus Damm2007-07-26
| | | | | | | | | | | | | | | | | | This patch removes old dead code: - kill off sh7300 cpu support - get rid of broken solution engine 7300 board support Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Add sh to the CC_OPTIMIZE_FOR_SIZE dependencies.Paul Mundt2007-07-26
| | | | | | | | | | | | | | Presently we only use this with CONFIG_EXPERIMENTAL, but it is something that can be supported commonly. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Kill off virt_to_bus()/bus_to_virt().Paul Mundt2007-07-26
| | | | | | | | | | | | | | | | Wire up ARCH_NO_VIRT_TO_BUS, and kill off the remaining users. The dma-mapping code really wanted virt_to_phys()/phys_to_virt() anyways, there are no inherently special bus addresses. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: sh-sci - fix SH7708 supportMagnus Damm2007-07-26
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes sure the sci serial port driver compiles for sh7708. The approach taken is to treat the sh7708 as a subset of sh7706, sh7707, sh7709. sh7708 is very similar to sh7706, sh7707, sh7709, but only equipped with a single sci port. The platform data in setup-sh770x.c already limits the number of serial ports for sh7708 to a single one, so the non-existing scif ports pointed out in sh-sci.h will remain unused in case of sh7708. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>