Juha Yrjola [Tue, 14 Feb 2006 15:23:36 +0000 (17:23 +0200)]
ads7846: make the suspend function sleep instead of busy poll
ads7846_suspend was busily polling for a couple of variables,
which never get a chance to change state unless kernel pre-emption
is enabled. Use msleep instead.
Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Imre Deak [Tue, 14 Feb 2006 14:00:15 +0000 (16:00 +0200)]
ads7846: Implement debouncing and rudimentary sample filtering
Some touchscreens seem to oscillate heavily for a while after
touching the screen. Implement support for sampling the screen
until we get two consecutive values that are close enough.
Signed-off-by: Imre Deak <imre.deak@nokia.com> Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Andi Kleen [Sun, 12 Feb 2006 22:34:59 +0000 (14:34 -0800)]
[PATCH] x86_64: GART DMA merging fix
Don't touch the non DMA members in the sg list in dma_map_sg in the IOMMU
Some drivers (in particular ST) ran into problems because they reused the sg
lists after passing them to pci_map_sg(). The merging procedure in the K8
GART IOMMU corrupted the state. This patch changes it to only touch the dma*
entries during merging, but not the other fields. Approach suggested by Dave
Miller.
We found a problem with x86_64 kernels with preemption enabled, where
having multiple tasks doing ptrace singlesteps around the same time will
cause the system to 'oops'. The problem seems that a task can get
preempted out of the do_debug() processing while it is running on the
DEBUG_STACK stack. If another task on that same cpu then enters do_debug()
and uses the same per-cpu DEBUG_STACK stack, the previous preempted tasks's
stack contents can be corrupted, and the system will oops when the
preempted task is context switched back in again.
This patch disables preemptions for the task upon entry to do_debug(), before
interrupts are reenabled, and then disables preemption before exiting
do_debug(), after disabling interrupts. I've noticed that the task can be
preempted either at the end of an interrupt, or on the call to
force_sig_info() on the spin_unlock_irqrestore() processing. It might be
better to attempt to code a fix in entry.S around the code that calls
do_debug().
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jesse Allen [Sun, 12 Feb 2006 22:34:56 +0000 (14:34 -0800)]
[PATCH] orinoco: support smc2532w
The orinoco wireless driver can support the SMC 2532W-B PC Card, so add the
id for it.
Signed-off-by: Jesse Allen <the3dfxdude@gmail.com> Cc: Pavel Roskin <proski@gnu.org> Cc: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jeff Mahoney [Sun, 12 Feb 2006 22:34:55 +0000 (14:34 -0800)]
[PATCH] reiserfs: disable automatic enabling of reiserfs inode attributes
Unfortunately, the reiserfs_attrs_cleared bit in the superblock flag can
lie. File systems have been observed with the bit set, yet still contain
garbage in the stat data field, causing unpredictable results.
This patch backs out the enable-by-default behavior.
Jesper Juhl [Sun, 12 Feb 2006 22:34:53 +0000 (14:34 -0800)]
[PATCH] netfilter: fix build error due to missing has_bridge_parent macro
net/bridge/br_netfilter.c: In function `br_nf_post_routing':
net/bridge/br_netfilter.c:808: warning: implicit declaration of function `has_bridge_parent'
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Cc: Harald Welte <laforge@netfilter.org> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Sun, 12 Feb 2006 01:56:05 +0000 (17:56 -0800)]
[PATCH] tipar fixes
- tipar_open(): fix unsigned comparison
- tipar_open(): don't permit NULL pardevice (probably unneeded given the
above fix).
- tipar_init_module(): handle the situation where parport_register_driver()
failed to register any devices (parport_register_driver() drops the ->attach
return value on the floor).
This probably makes fixes #1 and #2 unneeded.
- tipar_init_module(): fix various error-path resource leaks.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Eric Paris [Sun, 12 Feb 2006 01:56:04 +0000 (17:56 -0800)]
[PATCH] s390: remove one set of brackets in __constant_test_bit()
Right now in __constant_test_bit for the s390 there is an extra set of ()
surrounding the calculation. This patch simply removes one set of () that is
surrounding the whole clause.
Signed-off-by: Eric Paris <eparis@redhat.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Heiko Carstens [Sun, 12 Feb 2006 01:56:00 +0000 (17:56 -0800)]
[PATCH] s390: earlier initialization of cpu_possible_map
Initiliazing of cpu_possible_map was done in smp_prepare_cpus which is way too
late. Therefore assign a static value to cpu_possible_map, since we don't
have access to max_cpus in setup_arch.
[PATCH] s390: fix sclp memory corruption in tty pages list
When the sclp interface takes very long to serve a request, the sclp core
driver will report a failed request to the sclp tty driver even though the
request is still being processed by the sclp interface. Eventually the sclp
interface completes the request and updates some fields in the request buffer
which leads to a corrupted tty pages list. The next time function
sclp_tty_write_room is called, the corrupted list will be traversed, resulting
in an oops.
To avoid this remove the busy retry limit and increase retry intervals.
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Cornelia Huck [Sun, 12 Feb 2006 01:55:57 +0000 (17:55 -0800)]
[PATCH] s390: fix locking in __chp_add() and s390_subchannel_remove_chpid()
Fix locking in __chp_add() and s390_subchannel_remove_chpid(): Need to
disable/enable because they are always called from a thread (and not
directly from a machine check...)
Ingo Molnar [Sun, 12 Feb 2006 01:55:56 +0000 (17:55 -0800)]
[PATCH] x86: print out early faults via early_printk()
Lost a few hours debugging an early-bootup fault within printk itself,
which manifested itself as a hard to debug early hang.
This patch makes it much easier by printing out early faults via
early_printk(), which function is a lot simpler than a full printk, and
hence more likely to succeed in emergencies. (We do not recover from early
faults anyway, so there's no loss from not having these messages in the
normal printk buffer.)
[PATCH] vmscan: skip reclaim_mapped determination if we do not swap
This puts the variables and the way to get to reclaim_mapped in one block.
And allows zone_reclaim or other things to skip the determination (maybe
this whole block of code does not belong into refill_inactive_zone()?)
Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] zone reclaim: do not check references to a page during zone reclaim
shrink_list() and refill_inactive() check all ptes pointing to a page for
reference bits in order to decide if the page should be put on the active
list. This is not necessary for zone_reclaim since we are only interested
in removing unmapped pages. Skip the checks in both functions.
Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Sun, 12 Feb 2006 01:55:52 +0000 (17:55 -0800)]
[PATCH] select: fix returned timeval
With David Woodhouse <dwmw2@infradead.org>
select() presently has a habit of increasing the value of the user's
`timeout' argument on return.
We were writing back a timeout larger than the original. We _deliberately_
round up, since we know we must wait at _least_ as long as the caller asks
us to.
The patch adds a couple of helper functions for magnitude comparison of
timespecs and of timevals, and uses them to prevent the various poll and
select functions from returning a timeout which is larger than the one which
was passed in.
The patch also fixes a bug in compat_sys_pselect7(): it was adding the new
timeout value to the old one and was returning that. It should just return
the new timeout value.
(We have various handy timespec/timeval-to-from-nsec conversion functions in
time.h. But this code open-codes it all).
Cc: "David S. Miller" <davem@davemloft.net> Cc: Andi Kleen <ak@muc.de> Cc: Ulrich Drepper <drepper@redhat.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: george anzinger <george@mvista.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Chris McDermott [Sun, 12 Feb 2006 01:55:50 +0000 (17:55 -0800)]
[PATCH] x86-64: Fix HPET timer on x460
[description from AK]
The IBM Summit 3 chipset doesn't implement the HPET timer replacement
option. Since the current Linux code relies on it use a mixed mode with
both PIT for the interrupt and HPET counters for the time keeping. That
was already implemented, but didn't work properly because it was still
using the last interrupt offset in HPET. This resulted in x460 not
booting. Fix this up by using the free running HPET counter.
Shouldn't affect any other machine because they either use full HPET mode
or no HPET at all.
TBD needs a similar 32bit fix.
Signed-off-by: Andi Kleen <ak@suse.de> Cc: Pallipadi, Venkatesh" <venkatesh.pallipadi@intel.com> Cc: Bob Picco <bob.picco@hp.com> Cc: Bjorn Helgaas <bjorn.helgaas@hp.com> Cc: john stultz <johnstul@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Matt Waddel [Sun, 12 Feb 2006 01:55:48 +0000 (17:55 -0800)]
[PATCH] Add wording to m68k .S files to help clarify license info
Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Matt Waddel <Matt.Waddel@freescale.com> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ulrich Drepper [Sun, 12 Feb 2006 01:55:47 +0000 (17:55 -0800)]
[PATCH] fstatat64 support
The *at patches introduced fstatat and, due to inusfficient research, I
used the newfstat functions generally as the guideline. The result is that
on 32-bit platforms we don't have all the information needed to implement
fstatat64.
This patch modifies the code to pass up 64-bit information if
__ARCH_WANT_STAT64 is defined. I renamed the syscall entry point to make
this clear. Other archs will continue to use the existing code. On x86-64
the compat code is implemented using a new sys32_ function. this is what
is done for the other stat syscalls as well.
This patch might break some other archs (those which define
__ARCH_WANT_STAT64 and which already wired up the syscall). Yet others
might need changes to accomodate the compatibility mode. I really don't
want to do that work because all this stat handling is a mess (more so in
glibc, but the kernel is also affected). It should be done by the arch
maintainers. I'll provide some stand-alone test shortly. Those who are
eager could compile glibc and run 'make check' (no installation needed).
The patch below has been tested on x86 and x86-64.
Signed-off-by: Ulrich Drepper <drepper@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ben Dooks [Fri, 10 Feb 2006 22:40:51 +0000 (22:40 +0000)]
[ARM] 3326/1: H1940 - Control latches
Patch from Ben Dooks
Define the bits for the two board control latches
that control various items on the H1940 iPAQ.
Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King [Fri, 10 Feb 2006 21:50:43 +0000 (21:50 +0000)]
[SERIAL] Remove incorrect code from ioc4 serial driver
Serial drivers in general should not write uart_info->flags - they're
private to serial_core. Serial drivers have no need to fiddle with
tty->alt_speed, nor manipulate TTY_IO_ERROR in tty->flags. Fix the
ioc4 serial driver for both these points by simply removing the
offending code.
Acked-by: pfg@sgi.com Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Dave Jones [Fri, 10 Feb 2006 21:27:11 +0000 (16:27 -0500)]
[PATCH] Fix s390 build failure.
arch/s390/kernel/compat_signal.c:199: error: conflicting types for 'do_sigaction'
include/linux/sched.h:1115: error: previous declaration of 'do_sigaction' was here
Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This adds some additional comments in order to help others figure out how
exactly the code works. And fix a variable name.
Also swap_page does need to ignore all reference bits when unmapping a
page. Otherwise we may have to repeatedly unmap a frequently touched page.
So change the try_to_unmap parameter to 1.
Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Fulghum [Fri, 10 Feb 2006 09:51:14 +0000 (01:51 -0800)]
[PATCH] tty buffering stall fix
Prevent stalled processing of received data when a driver allocates tty
buffer space but does not immediately follow the allocation with more data
and a call to schedule receive tty processing. (example: hvc_console) This
bug was introduced by the first locking patch for the new tty buffering.
Signed-off-by: Paul Fulghum <paulkf@microgate.com> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] slab: Avoid deadlock at kmem_cache_create/kmem_cache_destroy
Prevents deadlock situation between
kmem_cache_create()/kmem_cache_destory(), and kmem_cache_create() /cpu
hotplug. The locking order probably got moved over time.
Andrew Morton [Fri, 10 Feb 2006 09:51:08 +0000 (01:51 -0800)]
[PATCH] x86: don't initialise cpu_possible_map to all ones
Initialising cpu_possible_map to all-ones with CONFIG_HOTPLUG_CPU means that
a) All for_each_cpu() loops will iterate across all NR_CPUS CPUs, rather
than over possible ones. That can be quite expensive.
b) Soon we'll be allocating per-cpu areas only for possible CPUs. So with
CPU_MASK_ALL, we'll be wasting memory.
I also switched voyager over to not use CPU_MASK_ALL in the non-CPU-hotplug
case. Should be OK..
I note that parisc is also using CPU_MASK_ALL. Suggest that it stop doing
that.
Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: Kyle McMartin <kyle@mcmartin.ca> Cc: Paul Jackson <pj@sgi.com> Cc: Ashok Raj <ashok.raj@intel.com> Cc: Zwane Mwaikambo <zwane@linuxpower.ca> Cc: Paul Jackson <pj@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
We are setting up sources for building external modules like this:
/usr/src/linux-obj> # create a .config file
/usr/src/linux-obj> make -C /usr/src/linux O=$PWD oldconfig
/usr/src/linux-obj> make -C /usr/src/linux O=$PWD prepare
/usr/src/linux-obj> make -C /usr/src/linux O=$PWD scripts
/usr/src/linux-obj> make -C /usr/src/linux O=$PWD clean
After that, external modules can be built with:
/usr/src/module> make -C /usr/src/linux-obj M=$PWD
This fails for ppc32 because the `make clean' removes the
arch/powerpc/include directory. This should be done in archmrproper
instead of in archclean.
Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Haren Myneni [Fri, 10 Feb 2006 09:51:05 +0000 (01:51 -0800)]
[PATCH] kexec: fix in free initrd when overlapped with crashkernel region
It is possible that the reserved crashkernel region can be overlapped with
initrd since the bootloader sets the initrd location. When the initrd
region is freed, the second kernel memory will not be contiguous. The
Kexec_load can cause an oops since there is no contiguous memory to write
the second kernel or this memory could be used in the first kernel itself
and may not be part of the dump. For example, on powerpc, the initrd is
located at 36MB and the crashkernel starts at 32MB. The kexec_load caused
panic since writing into non-allocated memory (after 36MB). We could see
the similar issue even on other archs.
One possibility is to move the initrd outside of crashkernel region. But,
the initrd region will be freed anyway before the system is up. This patch
fixes this issue and frees only regions that are not part of crashkernel
memory in case overlaps.
Signed-off-by: Haren Myneni <haren@us.ibm.com> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Nick Piggin [Fri, 10 Feb 2006 09:51:02 +0000 (01:51 -0800)]
[PATCH] sched: remove smpnice
I don't think the code is quite ready, which is why I asked for Peter's
additions to also be merged before I acked it (although it turned out that
it still isn't quite ready with his additions either).
Basically I have had similar observations to Suresh in that it does not
play nicely with the rest of the balancing infrastructure (and raised
similar concerns in my review).
The samples (group of 4) I got for "maximum recorded imbalance" on a 2x2
SMP+HT Xeon are as follows:
Hackbench raw performance is down around 15% with smpnice (but that in
itself isn't a huge deal because it is just a benchmark). However, the
samples show that the imbalance passed into move_tasks is increased by
about a factor of 10-30. I think this would also go some way to explaining
latency blips turning up in the balancing code (though I haven't actually
measured that).
We'll probably have to revert this in the SUSE kernel.
Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: Peter Williams <pwil3058@bigpond.net.au> Cc: "Martin J. Bligh" <mbligh@aracnet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Juha Yrjola [Fri, 10 Feb 2006 15:19:06 +0000 (17:19 +0200)]
NF: Add iptables IDLETIMER target
Each matching packet resets the timer associated with input and/or output
interfaces. Timer expiry causes a kobject uevent. Idle timer can be read via
sysfs.
Signed-off-by: Hiroshi DOYU <hiroshi.doyu@nokia.com> Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Imre Deak [Fri, 10 Feb 2006 15:16:32 +0000 (17:16 +0200)]
ads7846: fix endianness on coordinate values
Remove conversion from Big Endian to CPU order in the ads7846 driver.
We expect the uWire SPI driver to do this for us. Also the shift on read
values should be only 3, since we have a dummy clock at the beginning.
Signed-off-by: Imre Deak <imre.deak@nokia.com> Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Juha Yrjola [Fri, 10 Feb 2006 15:02:09 +0000 (17:02 +0200)]
ads7846: fix ADC power down bug
Submit a seperate read request for powering down the ADC in ads7846,
instead of doing it in the last read request. Otherwise some of the read
values are incorrect.
Signed-off-by: Imre Deak <imre.deak@nokia.com> Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Imre Deak [Fri, 10 Feb 2006 14:57:35 +0000 (16:57 +0200)]
ads7846: convert to input_allocate_device
Patch from David Brownell and Dmitry Torokhov: convert the ads7846 driver
to use input_allocate_device. Also fixes the bug where the SPI message was
not initialized with spi_message_init().
Signed-off-by: Imre Deak <imre.deak@nokia.com> Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Paul Mundt [Fri, 10 Feb 2006 11:14:58 +0000 (13:14 +0200)]
ARM: OMAP: STI STI_DR handling fixup
OMAP1 was using STI_DR instead of STI_RX_DR, which was causing problems
in the RX path. OMAP2 has a consolidated XTI_TRACESELECT, the logic for
trace clearing is the logical inverse of the OMAP1 STI_DR, so fix that
while we're at it.
Signed-off-by: Mikko K. Ylinen <mikko.k.ylinen@nokia.com> Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Becky Bruce [Tue, 7 Feb 2006 19:44:08 +0000 (13:44 -0600)]
[PATCH] powerpc: Add FSL USB node to documentation
Updated the documentation to include the definition of the USB device
node format for Freescale SOC devices.
Signed-off-by: Becky Bruce <becky.bruce@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
[BRIDGE]: fix error handling for add interface to bridge
Refactor how the bridge code interacts with kobject system.
It should still use kobjects even if not using sysfs.
Fix the error unwind handling in br_add_if.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Bridge netfilter code needs to handle the case where device is
removed from bridge while packet in process. In these cases the
bridge_parent can become null while processing.
This should fix: http://bugzilla.kernel.org/show_bug.cgi?id=5803
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
[BRIDGE]: fix for RCU and deadlock on device removal
Change Bridge receive path to correctly handle RCU removal of device
from bridge. Also fixes deadlock between carrier_check and del_nbp.
This replaces the previous deleted flag fix.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Alexey Kuznetsov [Fri, 10 Feb 2006 00:40:58 +0000 (16:40 -0800)]
[NETLINK]: illegal use of pid in rtnetlink
When a netlink message is not related to a netlink socket,
it is issued by kernel socket with pid 0. Netlink "pid" has nothing
to do with current->pid. I called it incorrectly, if it was named "port",
the confusion would be avoided.
Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
Alexey Kuznetsov [Fri, 10 Feb 2006 00:40:11 +0000 (16:40 -0800)]
[NETLINK]: Fix a severe bug
netlink overrun was broken while improvement of netlink.
Destination socket is used in the place where it was meant to be source socket,
so that now overrun is never sent to user netlink sockets, when it should be,
and it even can be set on kernel socket, which results in complete deadlock
of rtnetlink.
Suggested fix is to restore status quo passing source socket as additional
argument to netlink_attachskb().
A little explanation: overrun is set on a socket, when it failed
to receive some message and sender of this messages does not or even
have no way to handle this error. This happens in two cases:
1. when kernel sends something. Kernel never retransmits and cannot
wait for buffer space.
2. when user sends a broadcast and the message was not delivered
to some recipients.
Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> Signed-off-by: David S. Miller <davem@davemloft.net>