GitHub/moto-9609/android_kernel_motorola_exynos9610.git
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
Linus Torvalds [Sat, 8 Oct 2005 21:58:25 +0000 (14:58 -0700)]
Merge /linux/kernel/git/wim/linux-2.6-watchdog

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sat, 8 Oct 2005 21:57:46 +0000 (14:57 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sat, 8 Oct 2005 21:57:20 +0000 (14:57 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

19 years ago[PATCH] Keys: Possessor permissions should be additive
David Howells [Fri, 7 Oct 2005 15:41:24 +0000 (16:41 +0100)]
[PATCH] Keys: Possessor permissions should be additive

This patch makes the possessor permissions on a key additive with
user/group/other permissions on the same key.

This permits extra rights to be granted to the possessor of a key without
taking away any rights conferred by them owning the key or having common group
membership.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Keys: Split key permissions checking into a .c file
David Howells [Fri, 7 Oct 2005 14:07:38 +0000 (15:07 +0100)]
[PATCH] Keys: Split key permissions checking into a .c file

The attached patch splits key permissions checking out of key-ui.h and
moves it into a .c file.  It's quite large and called quite a lot, and
it's about to get bigger with the addition of LSM support for keys...

key_any_permission() is also discarded as it's no longer used.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Keys: Add request-key process documentation
David Howells [Fri, 7 Oct 2005 14:04:52 +0000 (15:04 +0100)]
[PATCH] Keys: Add request-key process documentation

The attached patch adds documentation for the process by which request-key
works, including how it permits helper processes to gain access to the
requestor's keyrings.

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] key: plug request_key_auth memleak
David Howells [Fri, 7 Oct 2005 14:01:09 +0000 (15:01 +0100)]
[PATCH] key: plug request_key_auth memleak

Plug request_key_auth memleak.  This can be triggered by unprivileged
users, so is local DoS.

Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] yenta: fix build if YENTA && !CARDBUS
David Vrabel [Fri, 7 Oct 2005 13:43:22 +0000 (14:43 +0100)]
[PATCH] yenta: fix build if YENTA && !CARDBUS

(struct pcmcia_socket).tune_bridge only exists if CONFIG_CARDBUS is set
but building yenta_socket without CardBus is valid.

Signed-off-by: David Vrabel <dvrabel@arcom.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fix do_coredump() vs SIGSTOP race
Oleg Nesterov [Fri, 7 Oct 2005 13:46:19 +0000 (17:46 +0400)]
[PATCH] fix do_coredump() vs SIGSTOP race

Let's suppose we have 2 threads in thread group:
A - does coredump
B - has pending SIGSTOP

thread A thread B

do_coredump: get_signal_to_deliver:

  lock(->sighand)
  ->signal->flags = SIGNAL_GROUP_EXIT
  unlock(->sighand)

lock(->sighand)
signr = dequeue_signal()
->signal->flags |= SIGNAL_STOP_DEQUEUED
return SIGSTOP;

do_signal_stop:
    unlock(->sighand)

  coredump_wait:

      zap_threads:
          lock(tasklist_lock)
          send SIGKILL to B
              // signal_wake_up() does nothing
          unlock(tasklist_lock)

    lock(tasklist_lock)
    lock(->sighand)
    re-check sig->flags & SIGNAL_STOP_DEQUEUED, yes
    set_current_state(TASK_STOPPED);
    finish_stop:
        schedule();
            // ->state == TASK_STOPPED

      wait_for_completion(&startup_done)
         // waits for complete() from B,
         // ->state == TASK_UNINTERRUPTIBLE

We can't wake up 'B' in any way:

SIGCONT will be ignored because handle_stop_signal() sees
->signal->flags & SIGNAL_GROUP_EXIT.

sys_kill(SIGKILL)->__group_complete_signal() will choose
uninterruptible 'A', so it can't help.

sys_tkill(B, SIGKILL) will be ignored by specific_send_sig_info()
because B already has pending SIGKILL.

This scenario is not possbile if 'A' does do_group_exit(), because
it sets sig->flags = SIGNAL_GROUP_EXIT and delivers SIGKILL to
subthreads atomically, holding both tasklist_lock and sighand->lock.
That means that do_signal_stop() will notice !SIGNAL_STOP_DEQUEUED
after re-locking ->sighand. And it is not possible to any other
thread to re-add SIGNAL_STOP_DEQUEUED later, because dequeue_signal()
can only return SIGKILL.

I think it is better to change do_coredump() to do sigaddset(SIGKILL)
and signal_wake_up() under sighand->lock, but this patch is much
simpler.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[ATM]: [br2684] if we free the skb, we should return 0
Jean-Denis Boyer [Fri, 7 Oct 2005 20:44:35 +0000 (13:44 -0700)]
[ATM]: [br2684] if we free the skb, we should return 0

From: "Jean-Denis Boyer" <jdboyer@mediatrix.com>
Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Fix userland FPU state corruption.
David S. Miller [Fri, 7 Oct 2005 20:30:49 +0000 (13:30 -0700)]
[SPARC64]: Fix userland FPU state corruption.

We need to use stricter memory barriers around the block
load and store instructions we use to save and restore the
FPU register file.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC]: Fix p9100 framebuffer in 2.6
Tom 'spot' Callaway [Fri, 7 Oct 2005 20:05:56 +0000 (13:05 -0700)]
[SPARC]: Fix p9100 framebuffer in 2.6

The attached patch fixes the p9100 framebuffer so that text is viewable
(not black on black, like it was before the patch). The linux logo
displays for a very short period of time, then is replaced by a grey
box. This leads me to believe that this framebuffer would have problems
in X, but since there hasn't been a weitek driver for X in several
millennia, this isn't something that I can confirm or deny.

But this patch does get color console working on my SPARCbook 3TX.

Signed-off-by: Tom 'spot' Callaway <tcallawa@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[ATM]: add support for LECS addresses learned from network
Eric Kinzie [Fri, 7 Oct 2005 05:19:28 +0000 (22:19 -0700)]
[ATM]: add support for LECS addresses learned from network

From: Eric Kinzie <ekinzie@cmf.nrl.navy.mil>
Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC32]: Enable generic IOMAP.
Tom 'spot' Callaway [Fri, 7 Oct 2005 05:14:59 +0000 (22:14 -0700)]
[SPARC32]: Enable generic IOMAP.

This helps some PCI stuff build.

Signed-off-by: Tom 'spot' Callaway <tcallawa@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoAvoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL
Linus Torvalds [Fri, 7 Oct 2005 04:54:21 +0000 (21:54 -0700)]
Avoid 'names_cache' memory leak with CONFIG_AUDITSYSCALL

The nameidata "last.name" is always allocated with "__getname()", and
should always be free'd with "__putname()".

Using "putname()" without the underscores will leak memory, because the
allocation will have been hidden from the AUDITSYSCALL code.

Arguably the real bug is that the AUDITSYSCALL code is really broken,
but in the meantime this fixes the problem people see.

Reported by Robert Derr, patch by Rick Lindsley.

Acked-by: Al Viro <viro@ftp.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[SCTP] Fix SCTP socket options to work with 32-bit apps on 64-bit kernels.
Sridhar Samudrala [Fri, 7 Oct 2005 04:37:01 +0000 (21:37 -0700)]
[SCTP] Fix SCTP socket options to work with 32-bit apps on 64-bit kernels.

Adds alignment attribute to a few structures used with SCTP socket
options so that the sizes and offsets remain the same when built using
either 32 or 64 bit tools.

Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SCTP] Fix sctp_get{pl}addrs() API to work with 32-bit apps on 64-bit kernels.
Ivan Skytte Jørgensen [Fri, 7 Oct 2005 04:36:17 +0000 (21:36 -0700)]
[SCTP] Fix sctp_get{pl}addrs() API to work with 32-bit apps on 64-bit kernels.

The old socket options are marked with a _OLD suffix so that the
existing 32-bit apps on 32-bit kernels do not break.

Signed-off-by: Ivan Skytte Jørgensen <isj-sctp@i1.dk>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Probe for power device on ISA bus too.
David S. Miller [Fri, 7 Oct 2005 03:43:54 +0000 (20:43 -0700)]
[SPARC64]: Probe for power device on ISA bus too.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoMerge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Thu, 6 Oct 2005 22:37:09 +0000 (15:37 -0700)]
Merge branch 'release' of /linux/kernel/git/aegl/linux-2.6

19 years ago[IA64] Avoid kernel hang during CMC interrupt storm
Bryan Sutula [Wed, 5 Oct 2005 17:02:06 +0000 (11:02 -0600)]
[IA64] Avoid kernel hang during CMC interrupt storm

I've noticed a kernel hang during a storm of CMC interrupts, which was
tracked down to the continual execution of the interrupt handler.

There's code in the CMC handler that's supposed to disable CMC
interrupts and switch to polling mode when it sees a bunch of CMCs.
Because disabling CMCs across all CPUs isn't safe in interrupt context,
the disable is done with a schedule_work().  But with continual CMC
interrupts, the schedule_work() never gets executed.

The following patch immediately disables CMC interrupts for the current
CPU.  This then allows (at least) one CPU to ignore CMC interrupts,
execute the schedule_work() code, and disable CMC interrupts on the rest
of the CPUs.

Acked-by: Keith Owens <kaos@sgi.com>
Signed-off-by: Bryan Sutula <Bryan.Sutula@hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-ucb
Linus Torvalds [Thu, 6 Oct 2005 22:01:11 +0000 (15:01 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-ucb

19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Thu, 6 Oct 2005 22:00:53 +0000 (15:00 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 6 Oct 2005 21:16:19 +0000 (14:16 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Thu, 6 Oct 2005 21:16:07 +0000 (14:16 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

19 years ago[MFD] Fix gcc4 build errors in ucb1x00-core.c
Russell King [Thu, 6 Oct 2005 12:09:42 +0000 (13:09 +0100)]
[MFD] Fix gcc4 build errors in ucb1x00-core.c

drivers/mfd/ucb1x00-core.c:555: error: static declaration of 'ucb1x00_class' follows non-static declaration
drivers/mfd/ucb1x00.h:109: error: previous declaration of 'ucb1x00_class' was here

Since ucb1x00_class isn't used by anything, remove the extern
declaration and the symbol export.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[SPARC64]: Fix initrd when net booting.
David S. Miller [Wed, 5 Oct 2005 22:12:00 +0000 (15:12 -0700)]
[SPARC64]: Fix initrd when net booting.

By allocating early memory for the firmware page tables, we
can write over the beginning of the initrd image.

So what we do now is:

1) Read in firmware translations table while still on the
   firmware's trap table.
2) Switch to Linux trap table.
3) Init bootmem.
4) Build firmware page tables using __alloc_bootmem().

And this keeps the initrd from being clobbered.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[ARM] 2954/1: Allow D and I cache and branch prediction disabling for ARMv6
Catalin Marinas [Wed, 5 Oct 2005 22:06:36 +0000 (23:06 +0100)]
[ARM] 2954/1: Allow D and I cache and branch prediction disabling for ARMv6

Patch from Catalin Marinas

There is no reason to not allow these config options. They are useful when
the hardware has problems.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[SPARC]: Remove some duplicated sparc32 config items
Martin Habets [Wed, 5 Oct 2005 19:21:36 +0000 (12:21 -0700)]
[SPARC]: Remove some duplicated sparc32 config items

Remove some duplicated items due to the inclusion of the general
drivers/Kconfig file. These are now taken from drivers/char/Kconfig,
and can be turned off there as well (which is desirable sometimes).

Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[AX.25]: Fix packet socket crash
Ralf Baechle [Wed, 5 Oct 2005 19:16:04 +0000 (12:16 -0700)]
[AX.25]: Fix packet socket crash

Since changeset 98a82febb6340466824c3a453738d4fbd05db81a AX.25 is passing
received IP and ARP packets to the stack through netif_rx() but we don't
set the skb->mac.raw to right value which may result in a crash with
applications that use a packet socket.

Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPSEC]: Document that policy direction is derived from the index.
Herbert Xu [Wed, 5 Oct 2005 19:15:12 +0000 (12:15 -0700)]
[IPSEC]: Document that policy direction is derived from the index.

Here is a patch that adds a helper called xfrm_policy_id2dir to
document the fact that the policy direction can be and is derived
from the index.

This is based on a patch by YOSHIFUJI Hideaki and 210313105@suda.edu.cn.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV6]: Fix NS handing for proxy/anycast address
YOSHIFUJI Hideaki [Wed, 5 Oct 2005 19:11:41 +0000 (12:11 -0700)]
[IPV6]: Fix NS handing for proxy/anycast address

Timer set up by pneigh_enqueue() ended up calling ndisc_rcv()
via pndisc_redo(), which clears LOCALLY_ENQUEUED flag in
NEIGH_CB(skb) and NS was queued again.
Let's call ndisc_recv_ns() directly to avoid the loop.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TCP]: BIC coding bug in Linux 2.6.13
Stephen Hemminger [Wed, 5 Oct 2005 19:09:31 +0000 (12:09 -0700)]
[TCP]: BIC coding bug in Linux 2.6.13

Missing parenthesis in causes BIC to be slow in increasing congestion
window.

Spotted by Injong Rhee.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[MCAST] ipv6: Fix address size in grec_size
Yan Zheng [Wed, 5 Oct 2005 19:08:13 +0000 (12:08 -0700)]
[MCAST] ipv6: Fix address size in grec_size

Signed-Off-By: Yan Zheng <yanzheng@21cn.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Acked-by: David L Stevens <dlstevens@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] Fix drm 'debug' sysfs permissions
Dave Jones [Mon, 3 Oct 2005 19:02:20 +0000 (15:02 -0400)]
[PATCH] Fix drm 'debug' sysfs permissions

Just enables some extra printk's, but still..  Only the sysadmin should
be able to do that.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ppc: Fix timekeeping with HZ=250 on some Mac models
Benjamin Herrenschmidt [Wed, 5 Oct 2005 07:43:40 +0000 (17:43 +1000)]
[PATCH] ppc: Fix timekeeping with HZ=250 on some Mac models

Older Macs which uses the VIA chip timers to calibrate the timebase used
some code that wouldn't work if HZ wasn't divisible by 100...

This fixes it at least for 250.  Not totally perfect but should be
enough for now (so it at least works with the default value which is now
250).

There is still a potential issue with the core using CLOCK_TICK_RATE to
maintain xtime and CLOCK_TICK_RATE value on ppc32 is pure crap, but that
is a different problem, this patch at least brings us back to our
previous situation.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fix the breakage in sparc headers
Al Viro [Wed, 5 Oct 2005 07:36:02 +0000 (08:36 +0100)]
[PATCH] fix the breakage in sparc headers

If we switch extern inline to static inline, we'd better switch the
pre-declarations we use to say that these puppies have
__attribute_const__ on them.

Otherwise we get extern declaration followed by static inline one.
Which makes gcc unhappy, and for a good reason...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[XFRM]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:45:35 +0000 (22:45 -0700)]
[XFRM]: fix sparse gfp nocast warnings

Fix implicit nocast warnings in xfrm code:
net/xfrm/xfrm_policy.c:232:47: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TEXTSEARCH]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:45:14 +0000 (22:45 -0700)]
[TEXTSEARCH]: fix sparse gfp nocast warnings

Fix nocast sparse warnings:
include/linux/textsearch.h:165:57: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[RPC]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:44:45 +0000 (22:44 -0700)]
[RPC]: fix sparse gfp nocast warnings

Fix nocast sparse warnings:
net/rxrpc/call.c:2013:25: warning: implicit cast to nocast type
net/rxrpc/connection.c:538:46: warning: implicit cast to nocast type
net/sunrpc/sched.c:730:36: warning: implicit cast to nocast type
net/sunrpc/sched.c:734:56: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[AF_KEY]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:43:04 +0000 (22:43 -0700)]
[AF_KEY]: fix sparse gfp nocast warnings

Fix implicit nocast warnings in net/key code:
net/key/af_key.c:195:27: warning: implicit cast to nocast type
net/key/af_key.c:1439:28: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:42:42 +0000 (22:42 -0700)]
[NETFILTER]: fix sparse gfp nocast warnings

Fix implicit nocast warnings in nfnetlink code:
net/netfilter/nfnetlink.c:204:43: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPVS]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:42:15 +0000 (22:42 -0700)]
[IPVS]: fix sparse gfp nocast warnings

From: Randy Dunlap <rdunlap@xenotime.net>

Fix implicit nocast warnings in ip_vs code:
net/ipv4/ipvs/ip_vs_app.c:631:54: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[DECNET]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:41:48 +0000 (22:41 -0700)]
[DECNET]: fix sparse gfp nocast warnings

Fix implicit nocast warnings in decnet code:
net/decnet/af_decnet.c:458:40: warning: implicit cast to nocast type
net/decnet/dn_nsp_out.c:125:35: warning: implicit cast to nocast type
net/decnet/dn_nsp_out.c:219:29: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[CONNECTOR]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:41:16 +0000 (22:41 -0700)]
[CONNECTOR]: fix sparse gfp nocast warnings

Fix implicit nocast warnings in connector code:
drivers/connector/connector.c:102:24: warning: implicit cast to nocast type
drivers/connector/connector.c:114:45: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[BONDING]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:39:41 +0000 (22:39 -0700)]
[BONDING]: fix sparse gfp nocast warnings

Fix implicit nocast warnings in bonding code:
drivers/net/bonding/bond_main.c:1302:49: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[ATM]: fix sparse gfp nocast warnings
Randy Dunlap [Wed, 5 Oct 2005 05:38:44 +0000 (22:38 -0700)]
[ATM]: fix sparse gfp nocast warnings

Fix implicit nocast warnings in atm code:
net/atm/atm_misc.c:35:44: warning: implicit cast to nocast type
drivers/atm/fore200e.c:183:33: warning: implicit cast to nocast type

Also use kzalloc() instead of kmalloc().

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] orinoco: Information leakage due to incorrect padding
Pavel Roskin [Wed, 5 Oct 2005 01:33:10 +0000 (21:33 -0400)]
[PATCH] orinoco: Information leakage due to incorrect padding

The orinoco driver can send uninitialized data exposing random pieces of
the system memory.  This happens because data is not padded with zeroes
when its length needs to be increased.

Reported by Meder Kydyraliev <meder@o0o.nu>

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years agoMerge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
Linus Torvalds [Tue, 4 Oct 2005 23:55:43 +0000 (16:55 -0700)]
Merge branch 'for-linus' of /linux/kernel/git/roland/infiniband

19 years ago[PATCH] Fix broken IXP4xx GPIO macro
Deepak Saxena [Tue, 4 Oct 2005 23:32:38 +0000 (16:32 -0700)]
[PATCH] Fix broken IXP4xx GPIO macro

Macro ended up backwards during one of cleanups. Found by Alessandro Zummo.

Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[NETFILTER]: Fix Kconfig typo
Horst H. von Brand [Tue, 4 Oct 2005 22:58:56 +0000 (15:58 -0700)]
[NETFILTER]: Fix Kconfig typo

Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 4 Oct 2005 22:57:53 +0000 (15:57 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years ago[PATCH] x86_64: Drop global bit from early low mappings
Andi Kleen [Tue, 4 Oct 2005 22:21:39 +0000 (00:21 +0200)]
[PATCH] x86_64: Drop global bit from early low mappings

Drop global bit from early low mappings

Suggested by Linus, originally also proposed by Suresh.

This fixes a race condition with early start of udev, originally
tracked down by Suresh B. Siddha. The problem was that switching
to the user space VM would not clear the global low mappings
for the beginning of memory, which lead to memory corruption.

Drop the global bits.

The kernel mapping stays global because it should stay constant.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[INET]: Shrink struct inet_ehash_bucket on 32 bits UP
Eric Dumazet [Tue, 4 Oct 2005 22:55:51 +0000 (15:55 -0700)]
[INET]: Shrink struct inet_ehash_bucket on 32 bits UP

No need to align struct inet_ehash_bucket on a 8 bytes boundary.

On 32 bits Uniprocessor, that's a waste of 4 bytes per struct (50 %)

On other platforms, the attribute is useless, natual alignement is already 8.

platform     | Size before | Size after patch
-------------+-------------+------------------
32 bits, UP  |         8   |     4
32 bits, SMP |         8   |     8
64 bits, UP  |         8   |     8
64 bits, SMP |        16   |    16

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Replace cheetah+ code patching with variables.
David S. Miller [Tue, 4 Oct 2005 22:23:20 +0000 (15:23 -0700)]
[SPARC64]: Replace cheetah+ code patching with variables.

Instead of code patching to handle the page size fields in
the context registers, just use variables from which we get
the proper values.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[ARM] 2952/1: fix a register clobber list
Nicolas Pitre [Tue, 4 Oct 2005 22:17:53 +0000 (23:17 +0100)]
[ARM] 2952/1: fix a register clobber list

Patch from Nicolas Pitre

If gcc decides to assign lr to %0 we're screwed.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2951/1: fix wrong comment
Nicolas Pitre [Tue, 4 Oct 2005 22:17:52 +0000 (23:17 +0100)]
[ARM] 2951/1: fix wrong comment

Patch from Nicolas Pitre

The cmpxchg emulation syscall needs write access.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2950/1: i.MX gpio setup function
Sascha Hauer [Tue, 4 Oct 2005 22:17:52 +0000 (23:17 +0100)]
[ARM] 2950/1: i.MX gpio setup function

Patch from Sascha Hauer

Current implementation of imx_gpio_mode does not allow to
configure all alternate routing possibilities of the i.MX. With
this patch every bit in the gpio setup registers has a
corresponding bit in the gpio_mode parameter, so every routing
should be possible now.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] 2949/1: Hynix h720x Run mode
Sascha Hauer [Tue, 4 Oct 2005 22:17:51 +0000 (23:17 +0100)]
[ARM] 2949/1: Hynix h720x Run mode

Patch from Sascha Hauer

After coming out of idle mode the h720x goes into slow mode. Switch
it back to run mode.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Tue, 4 Oct 2005 20:55:22 +0000 (13:55 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

19 years ago[PATCH] uml: Fix sysrq-r support for skas mode
Allan Graves [Tue, 4 Oct 2005 18:53:52 +0000 (14:53 -0400)]
[PATCH] uml: Fix sysrq-r support for skas mode

The old code had the IP and SP coming from the registers in the thread
struct, which are completely wrong since those are the userspace
registers.  This fixes that by pulling the correct values from the
jmp_buf in which the kernel state of each thread is stored.

Signed-off-by: Allan Graves <allan.graves@oracle.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] UML - Fix Al's build tidying
Jeff Dike [Tue, 4 Oct 2005 18:53:49 +0000 (14:53 -0400)]
[PATCH] UML - Fix Al's build tidying

Al's build tidying missed one bit from me - without this UML doesn't boot.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Acked-by: Al Viro <viro@ftp.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] bfs iget() abuses
Al Viro [Tue, 4 Oct 2005 16:48:44 +0000 (17:48 +0100)]
[PATCH] bfs iget() abuses

bfs_fill_super() walks the inode table to get the bitmap of free inodes
and collect stats.  It has no business using iget() for that - it's a
lot of extra work, extra icache pollution and more complex code.
Switched to walking the damn thing directly.

Note: that also allows to kill ->i_dsk_ino in there - separate patch if
Tigran can confirm that this field can be zero only for deleted inodes
(i.e.  something that could only be found during that scan and not by
normal lookups).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] bfs endianness annotations
Alexey Dobriyan [Tue, 4 Oct 2005 16:43:06 +0000 (17:43 +0100)]
[PATCH] bfs endianness annotations

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] bogus kfree() in ibmtr
Al Viro [Tue, 4 Oct 2005 16:40:44 +0000 (17:40 +0100)]
[PATCH] bogus kfree() in ibmtr

On several failure exits in ibmtr we end up doing kfree() on dev->priv,
with dev allocated by alloc_trdev() and ->priv never reassigned.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] missing include in megaraid_sas
Al Viro [Tue, 4 Oct 2005 16:36:04 +0000 (17:36 +0100)]
[PATCH] missing include in megaraid_sas

megaraid_sas depends on arch-specific indirect includes pulling
fs.h in; on alpha they do not.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[IPV4]: fib_trie root-node expansion
Robert Olsson [Tue, 4 Oct 2005 20:01:58 +0000 (13:01 -0700)]
[IPV4]: fib_trie root-node expansion

The patch below introduces special thresholds to keep root node in the trie
large. This gives a flatter tree at the cost of a modest memory increase.
Overall it seems to be gain and this was also proposed by one the authors
of the paper in recent a seminar.

Main table after loading 123 k routes.

Aver depth:     3.30
Max depth:      9
        Root-node size  12 bits
        Total size: 4044  kB

With the patch:
Aver depth:     2.78
Max depth:      8
        Root-node size  15 bits
        Total size: 4150  kB

An increase of 8-10% was seen in forwading performance for an rDoS attack.

Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV6]: Fix infinite loop in udp_v6_get_port().
YOSHIFUJI Hideaki [Tue, 4 Oct 2005 20:00:39 +0000 (13:00 -0700)]
[IPV6]: Fix infinite loop in udp_v6_get_port().

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/aia21/ntfs-2.6
Linus Torvalds [Tue, 4 Oct 2005 16:34:00 +0000 (09:34 -0700)]
Merge /pub/scm/linux/kernel/git/aia21/ntfs-2.6

19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Tue, 4 Oct 2005 15:11:13 +0000 (08:11 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

19 years agoNTFS: Fix a 64-bitness bug where a left-shift could overflow a 32-bit variable
Anton Altaparmakov [Tue, 4 Oct 2005 12:08:53 +0000 (13:08 +0100)]
NTFS: Fix a 64-bitness bug where a left-shift could overflow a 32-bit variable
      which we now cast to 64-bit first (fs/ntfs/mft.c::map_mft_record_page().

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
19 years agoNTFS: Fix a stupid bug in __ntfs_bitmap_set_bits_in_run() which caused the
Anton Altaparmakov [Tue, 4 Oct 2005 12:06:00 +0000 (13:06 +0100)]
NTFS: Fix a stupid bug in __ntfs_bitmap_set_bits_in_run() which caused the
      count to become negative and hence we had a wild memset() scribbling
      all over the system's ram.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
19 years ago[PATCH] sungem: fix gfp flags type
Randy Dunlap [Tue, 4 Oct 2005 07:41:22 +0000 (00:41 -0700)]
[PATCH] sungem: fix gfp flags type

Fix nocast sparse warnings in sungen:
drivers/net/sungem.h:1040:45: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] ns83820: fix gfp flags type
Randy Dunlap [Tue, 4 Oct 2005 04:24:36 +0000 (21:24 -0700)]
[PATCH] ns83820: fix gfp flags type

Fix implicit nocast warnings in ns83820 code, including __nocast:
drivers/net/ns83820.c:603:46: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] ieee80211: fix gfp flags type
Randy Dunlap [Tue, 4 Oct 2005 04:24:45 +0000 (21:24 -0700)]
[PATCH] ieee80211: fix gfp flags type

Fix implicit nocast warnings in ieee80211 code, including __nocast:
net/ieee80211/ieee80211_tx.c:215:9: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[netdrvr starfire] fix highmem and broken firmware issues
Ion Badulescu [Tue, 4 Oct 2005 02:31:36 +0000 (22:31 -0400)]
[netdrvr starfire] fix highmem and broken firmware issues

Unfortunately, [your patch] might address the crash but doesn't address
the real problem. It turns out that the problem is one of padding
(the firmware cksum engine works only on 32-bit chunks, yuck), so
the special casing for length == 1 wasn't sufficient anyway.

This patch addresses the issue, as well the other issue of i386 +
CONFIG_HIGHMEM being broken. It is pretty much the same workaround
that Adaptec themselves used in their Windows driver. I have yet to
check if it fixes the problem when the skb is non-linear, but this
patch _will_ solve the problem for 99% of the users out there (those
not using sendfile).

Signed-off-by: Ion Badulescu <ionut@badula.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] net/Kconfig: convert pocket_adapter ISA to PARPORT
Grant Coady [Fri, 9 Sep 2005 14:14:05 +0000 (00:14 +1000)]
[PATCH] net/Kconfig: convert pocket_adapter ISA to PARPORT

This patch changes pocket and parallel adaptors to depend on PARPORT
instead of ISA in order to get the option in newer SuperIO based systems.

Signed-off-by: Grant Coady <gcoady@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] emac: add support for platform-specific unsupported PHY features
Wade Farnsworth [Tue, 4 Oct 2005 02:21:33 +0000 (22:21 -0400)]
[PATCH] emac: add support for platform-specific unsupported PHY features

This patch adds support to the ibm_emac driver for platform-specific
unsupported PHY features.

The patch attempts to determine the highest speed and duplex when
autonegotiation is unsupported.

Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] tulip DC21143 rev 48 10Mbit HDX fix
Philippe De Muyter [Thu, 22 Sep 2005 09:09:44 +0000 (11:09 +0200)]
[PATCH] tulip DC21143 rev 48 10Mbit HDX fix

The patch below is necessary to allow my Digital DS21143 Tulip rev 48
ethernet interface to work in a 10Mbit Half Duplex network.  Without
it, the driver keeps retrying other modes in an endless loop.  It seems
like someone already had the same problem with a rev 65 board :)

Signed-off-by: Philippe De Muyter <phdm@macqel.be>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] fix bonding crash, remove old ABI support
Jay Vosburgh [Mon, 26 Sep 2005 23:11:50 +0000 (16:11 -0700)]
[PATCH] fix bonding crash, remove old ABI support

David S. Miller <davem@davemloft.net> wrote:
>I think removing support for older ifenslave binaries is
>the least painful solution to this problem.

This patch removes backwards compatibility for old ifenslave
binaries (ifenslave prior to verison 1.0.0).

I did not similarly modify ifenslave itself; with sysfs on the
horizon, I don't see that as being worthwhile.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] s390: qeth driver fixes
Ursula Braun [Fri, 30 Sep 2005 08:17:24 +0000 (10:17 +0200)]
[PATCH] s390: qeth driver fixes

From: Peter Tiedemann <ptiedem@de.ibm.com>
From: Frank Pavlic <pavlic@de.ibm.com>
minor qeth fixes:
- free old skb in qeth_realloc_headroom after duplicating skb
- disable IPV6 support for Hipersockets devices
- call ccw_device_set_offline on every channel regardless
  of the return value of the prior ccw_device_set_offline calls
- allocate qdio structures in DMA-area
- schedule recovery of appropriate card
  when cable has been inserted again.
- add missing initialization of card->lock
- write sequence number in skb->cb for SNA protocol which
  requires strictly serialized packets.

Signed-off-by: Frank Pavlic <pavlic@de.ibm.com>
diffstat:
 qeth.h      |    2 ++
 qeth_main.c |   37 +++++++++++++++++--------------------
 2 files changed, 19 insertions(+), 20 deletions(-)
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[netdrvr] fix smc91c92_cs multicast bug
Komuro [Tue, 4 Oct 2005 02:03:28 +0000 (22:03 -0400)]
[netdrvr] fix smc91c92_cs multicast bug

The smc91c92_cs multicast does not work
if the count of multicast address is 1.

Signed-off-by: <komurojun-mbn@nifty.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] ieee80211: fix gfp flags type
Randy Dunlap [Mon, 3 Oct 2005 05:41:09 +0000 (22:41 -0700)]
[PATCH] ieee80211: fix gfp flags type

Fix implicit nocast warnings in ieee80211 code:
net/ieee80211/ieee80211_tx.c:215:9: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] ns83820: fix gfp flags type
Randy Dunlap [Mon, 3 Oct 2005 05:42:11 +0000 (22:42 -0700)]
[PATCH] ns83820: fix gfp flags type

Fix implicit nocast warnings in ns83820 code:
drivers/net/ns83820.c:603:46: warning: implicit cast to nocast type

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] skge: set mac address oops with bonding
Stephen Hemminger [Mon, 3 Oct 2005 19:03:13 +0000 (12:03 -0700)]
[PATCH] skge: set mac address oops with bonding

Skge driver was bringing link up/down when changing mac
address.  This doesn't work in the bonding environment, and is
more effort than needed.

Fixes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=5271

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[SUNSU]: Fix bogus locking in sunsu_change_mouse_baud()
David S. Miller [Tue, 4 Oct 2005 00:37:27 +0000 (17:37 -0700)]
[SUNSU]: Fix bogus locking in sunsu_change_mouse_baud()

The lock is not held when calling this function, so we
shouldn't drop then reacquire it.

Based upon a report from Jim MacBaine.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC]: "extern inline" doesn't make much sense.
Adrian Bunk [Tue, 4 Oct 2005 00:37:02 +0000 (17:37 -0700)]
[SPARC]: "extern inline" doesn't make much sense.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TG3]: Update driver version and release date.
David S. Miller [Mon, 3 Oct 2005 23:25:23 +0000 (16:25 -0700)]
[TG3]: Update driver version and release date.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: Update icmp sysctl docs and disable broadcast ECHO/TIMESTAMP by default
David S. Miller [Mon, 3 Oct 2005 23:07:30 +0000 (16:07 -0700)]
[IPV4]: Update icmp sysctl docs and disable broadcast ECHO/TIMESTAMP by default

It's not a good idea to be smurf'able by default.
The few people who need this can turn it on.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: Get rid of bogus __in_put_dev in pktgen
Herbert Xu [Mon, 3 Oct 2005 21:36:32 +0000 (14:36 -0700)]
[IPV4]: Get rid of bogus __in_put_dev in pktgen

This patch gets rid of a bogus __in_dev_put() in pktgen.c.  This was
spotted by Suzanne Wood.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: Replace __in_dev_get with __in_dev_get_rcu/rtnl
Herbert Xu [Mon, 3 Oct 2005 21:35:55 +0000 (14:35 -0700)]
[IPV4]: Replace __in_dev_get with __in_dev_get_rcu/rtnl

The following patch renames __in_dev_get() to __in_dev_get_rtnl() and
introduces __in_dev_get_rcu() to cover the second case.

1) RCU with refcnt should use in_dev_get().
2) RCU without refcnt should use __in_dev_get_rcu().
3) All others must hold RTNL and use __in_dev_get_rtnl().

There is one exception in net/ipv4/route.c which is in fact a pre-existing
race condition.  I've marked it as such so that we remember to fix it.

This patch is based on suggestions and prior work by Suzanne Wood and
Paul McKenney.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV6]: Fix leak added by udp connect dst caching fix.
David S. Miller [Mon, 3 Oct 2005 21:21:58 +0000 (14:21 -0700)]
[IPV6]: Fix leak added by udp connect dst caching fix.

Based upon a patch from Mitsuru KANDA <mk@linux-ipv6.org>

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV6]: Fix ipv6 fragment ID selection at slow path
Yan Zheng [Mon, 3 Oct 2005 21:19:15 +0000 (14:19 -0700)]
[IPV6]: Fix ipv6 fragment ID selection at slow path

Signed-Off-By: Yan Zheng <yanzheng@21cn.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV4]: Fix "Proxy ARP seems broken"
Herbert Xu [Mon, 3 Oct 2005 21:18:10 +0000 (14:18 -0700)]
[IPV4]: Fix "Proxy ARP seems broken"

Meelis Roos <mroos@linux.ee> wrote:
> RK> My firewall setup relies on proxyarp working.  However, with 2.6.14-rc3,
> RK> it appears to be completely broken.  The firewall is 212.18.232.186,
>
> Same here with some kernel between 14-rc2 and 14-rc3 - no reposnse to
> ARP on a proxyarp gateway. Sorry, no exact revison and no more debugging
> yet since it'a a production gateway.

The breakage is caused by the change to use the CB area for flagging
whether a packet has been queued due to proxy_delay.  This area gets
cleared every time arp_rcv gets called.  Unfortunately packets delayed
due to proxy_delay also go through arp_rcv when they are reprocessed.

In fact, I can't think of a reason why delayed proxy packets should go
through netfilter again at all.  So the easiest solution is to bypass
that and go straight to arp_process.

This is essentially what would've happened before netfilter support
was added to ARP.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: Fix "sysctl_net.c:36: error: 'core_table' undeclared here"
Russell King [Mon, 3 Oct 2005 21:16:34 +0000 (14:16 -0700)]
[NET]: Fix "sysctl_net.c:36: error: 'core_table' undeclared here"

During the build for ARM machine type "fortunet", this error occurred:

  CC      net/sysctl_net.o
net/sysctl_net.c:36: error: 'core_table' undeclared here (not in a function)

It appears that the following configuration settings cause this error
due to a missing include:
CONFIG_SYSCTL=y
CONFIG_NET=y
# CONFIG_INET is not set

core_table appears to be declared in net/sock.h.  if CONFIG_INET were
defined, net/sock.h would have been included via:
  sysctl_net.c -> net/ip.h -> linux/ip.h -> net/sock.h

so include it directly.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[INET]: speedup inet (tcp/dccp) lookups
Eric Dumazet [Mon, 3 Oct 2005 21:13:38 +0000 (14:13 -0700)]
[INET]: speedup inet (tcp/dccp) lookups

Arnaldo and I agreed it could be applied now, because I have other
pending patches depending on this one (Thank you Arnaldo)

(The other important patch moves skc_refcnt in a separate cache line,
so that the SMP/NUMA performance doesnt suffer from cache line ping pongs)

1) First some performance data :
--------------------------------

tcp_v4_rcv() wastes a *lot* of time in __inet_lookup_established()

The most time critical code is :

sk_for_each(sk, node, &head->chain) {
     if (INET_MATCH(sk, acookie, saddr, daddr, ports, dif))
         goto hit; /* You sunk my battleship! */
}

The sk_for_each() does use prefetch() hints but only the begining of
"struct sock" is prefetched.

As INET_MATCH first comparison uses inet_sk(__sk)->daddr, wich is far
away from the begining of "struct sock", it has to bring into CPU
cache cold cache line. Each iteration has to use at least 2 cache
lines.

This can be problematic if some chains are very long.

2) The goal
-----------

The idea I had is to change things so that INET_MATCH() may return
FALSE in 99% of cases only using the data already in the CPU cache,
using one cache line per iteration.

3) Description of the patch
---------------------------

Adds a new 'unsigned int skc_hash' field in 'struct sock_common',
filling a 32 bits hole on 64 bits platform.

struct sock_common {
unsigned short skc_family;
volatile unsigned char skc_state;
unsigned char skc_reuse;
int skc_bound_dev_if;
struct hlist_node skc_node;
struct hlist_node skc_bind_node;
atomic_t skc_refcnt;
+ unsigned int skc_hash;
struct proto *skc_prot;
};

Store in this 32 bits field the full hash, not masked by (ehash_size -
1) Using this full hash as the first comparison done in INET_MATCH
permits us immediatly skip the element without touching a second cache
line in case of a miss.

Suppress the sk_hashent/tw_hashent fields since skc_hash (aliased to
sk_hash and tw_hash) already contains the slot number if we mask with
(ehash_size - 1)

File include/net/inet_hashtables.h

64 bits platforms :
#define INET_MATCH(__sk, __hash, __cookie, __saddr, __daddr, __ports, __dif)\
     (((__sk)->sk_hash == (__hash))
     ((*((__u64 *)&(inet_sk(__sk)->daddr)))== (__cookie))   &&  \
     ((*((__u32 *)&(inet_sk(__sk)->dport))) == (__ports))   &&  \
     (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))

32bits platforms:
#define TCP_IPV4_MATCH(__sk, __hash, __cookie, __saddr, __daddr, __ports, __dif)\
     (((__sk)->sk_hash == (__hash))                 &&  \
     (inet_sk(__sk)->daddr          == (__saddr))   &&  \
     (inet_sk(__sk)->rcv_saddr      == (__daddr))   &&  \
     (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif))))

- Adds a prefetch(head->chain.first) in
__inet_lookup_established()/__tcp_v4_check_established() and
__inet6_lookup_established()/__tcp_v6_check_established() and
__dccp_v4_check_established() to bring into cache the first element of the
list, before the {read|write}_lock(&head->lock);

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Acked-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[TG3]: Refine AMD K8 write-reorder chipset test.
Michael Chan [Mon, 3 Oct 2005 21:02:39 +0000 (14:02 -0700)]
[TG3]: Refine AMD K8 write-reorder chipset test.

Test for VIA K8T800 north bridge instead of AMD K8 HyperTransport
bridge based on new information from Andi Kleen. The AMD
HyperTransport interface is not responsible for PCI transactions
and so the re-ordering is more likely done by the VIA north bridge.
This code is subject to change if we get more information from AMD
or VIA.

PCI Express devices are excluded from doing the read flush since all
chipsets in the write_reorder list are PCI chipsets.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[CASSINI]: Convert to ethtool_ops
Al Viro [Mon, 3 Oct 2005 21:01:37 +0000 (14:01 -0700)]
[CASSINI]: Convert to ethtool_ops

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NET]: Fix packet timestamping.
Herbert Xu [Mon, 3 Oct 2005 20:57:23 +0000 (13:57 -0700)]
[NET]: Fix packet timestamping.

I've found the problem in general.  It affects any 64-bit
architecture.  The problem occurs when you change the system time.

Suppose that when you boot your system clock is forward by a day.
This gets recorded down in skb_tv_base.  You then wind the clock back
by a day.  From that point onwards the offset will be negative which
essentially overflows the 32-bit variables they're stored in.

In fact, why don't we just store the real time stamp in those 32-bit
variables? After all, we're not going to overflow for quite a while
yet.

When we do overflow, we'll need a better solution of course.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] x86_64: Fix numa node topology detection for srat based x86_64 boxes
Ravikiran G Thirumalai [Mon, 3 Oct 2005 17:36:28 +0000 (10:36 -0700)]
[PATCH] x86_64: Fix numa node topology detection for srat based x86_64 boxes

2.6.14-rc2 does not assign cpus to proper nodeids on our em64t numa boxen.
Our boxes use acpi srat for parsing the numa information.

srat_detect_node() used phys_proc_id[] to get to the cpu's local apic id,
but phys_proc_id[] represents the cpu<->initial_apic_id mapping.  The
following patch fixes this problem.  Now apicid_to_node[] is properly
indexed with the local apic id.

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6
Linus Torvalds [Mon, 3 Oct 2005 15:07:10 +0000 (08:07 -0700)]
Merge /linux/kernel/git/jejb/scsi-for-linus-2.6