]> pilppa.com Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
18 years ago[NET] ethernet: Fix first packet goes out with MAC 00:00:00:00:00:00
Jamal Hadi Salim [Fri, 24 Feb 2006 00:18:01 +0000 (16:18 -0800)]
[NET] ethernet: Fix first packet goes out with MAC 00:00:00:00:00:00

When you turn off ARP on a netdevice then the first packet always goes
out with a dstMAC of all zeroes. This is because the first packet is
used to resolve ARP entries. Even though the ARP entry may be resolved
(I tried by setting a static ARP entry for a host i was pinging from),
it gets overwritten by virtue of having the netdevice disabling ARP.

Subsequent packets go out fine with correct dstMAC address (which may
be why people have ignored reporting this issue).

To cut the story short:

the culprit code is in net/ethernet/eth.c::eth_header()

----
        /*
         *      Anyway, the loopback-device should never use this
function...
         */

        if (dev->flags & (IFF_LOOPBACK|IFF_NOARP))
        {
                memset(eth->h_dest, 0, dev->addr_len);
                return ETH_HLEN;
        }

if(daddr)
        {
                memcpy(eth->h_dest,daddr,dev->addr_len);
                return ETH_HLEN;
        }

----

Note how the h_dest is being reset when device has IFF_NOARP.

As a note:
All devices including loopback pass a daddr. loopback in fact passes
a 0 all the time ;->
This means i can delete the check totaly or i can remove the IFF_NOARP

Alexey says:
--------------------
I think, it was me who did this crap. It was so long ago I do not remember
why it was made.

I remember some troubles with dummy device. It tried to resolve
addresses, apparently, without success and generated errors instead of
blackholing. I think the problem was eventually solved at neighbour
level.

After some thinking I suspect the deletion of this chunk could change
behaviour of some parts which do not use neighbour cache f.e. packet
socket.

I think safer approach would be to move this chunk after if (daddr).
And the possibility to remove this completely could be analyzed later.
--------------------

Patch updated with Alexey's safer suggestions.

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Acked-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: Eliminate refcounting confusion by creating __xfrm_state_put().
Herbert Xu [Wed, 22 Feb 2006 22:47:13 +0000 (14:47 -0800)]
[XFRM]: Eliminate refcounting confusion by creating __xfrm_state_put().

We often just do an atomic_dec(&x->refcnt) on an xfrm_state object
because we know there is more than 1 reference remaining and thus
we can elide the heavier xfrm_state_put() call.

Do this behind an inline function called __xfrm_state_put() so that is
more obvious and also to allow us to more cleanly add refcount
debugging later.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IPV4]: Fix garbage collection of multipath route entries
Suresh Bhogavilli [Tue, 21 Feb 2006 21:42:22 +0000 (13:42 -0800)]
[IPV4]: Fix garbage collection of multipath route entries

When garbage collecting route cache entries of multipath routes
in rt_garbage_collect(), entries were deleted from the hash bucket
'i' while holding a spin lock on bucket 'k' resulting in a system
hang.  Delete entries, if any, from bucket 'k' instead.

Signed-off-by: Suresh Bhogavilli <sbhogavilli@verisign.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: Fix bridge netfilter related in xfrm_lookup
Patrick McHardy [Tue, 21 Feb 2006 21:37:35 +0000 (13:37 -0800)]
[NETFILTER]: Fix bridge netfilter related in xfrm_lookup

The bridge-netfilter code attaches a fake dst_entry with dst->ops == NULL
to purely bridged packets. When these packets are SNATed and a policy
lookup is done, xfrm_lookup crashes because it tries to dereference
dst->ops.

Change xfrm_lookup not to dereference dst->ops before checking for the
DST_NOXFRM flag and set this flag in the fake dst_entry.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years agosbp2: update 36byte inquiry workaround (fix compatibility regression)
Stefan Richter [Wed, 15 Feb 2006 03:04:19 +0000 (22:04 -0500)]
sbp2: update 36byte inquiry workaround (fix compatibility regression)

Since about Linux 2.6.14, sbp2's inquiry workaround did not work anymore
due to changes in the SCSI layer. Update it to become effective again.
Testing one of the two known affected bridges has shown that skip_ms_page_8
is required as well.

Also, make force_inquiry_hack tunable via /sys/module/sbp2/parameters.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
(cherry picked from 99496037c6744fd938ffb8ccfc8fc91762322ff8 commit)

18 years agosbp2: variable status FIFO address (fix login timeout)
Stefan Richter [Tue, 31 Jan 2006 05:13:33 +0000 (00:13 -0500)]
sbp2: variable status FIFO address (fix login timeout)

Let the ieee1394 core select a suitable 1394 address range for sbp2's
status FIFO instead of using a fixed range. Since the core only selects
addresses which are guaranteed to be out of the "physical range" as per
OHCI 1.1, this patch also fixes an old bug:

OHCI controllers which implement a writeable PhysicalUpperBound register
included sbp2's status FIFO in the physical range. That way sbp2 was
never notified of a succesful login and always failed after timeout.
Affected OHCI host adapters include ALi and Fujitsu controllers.

As another side effect of this patch, the status FIFO is no longer
located in a range for which OHCI chips perform "posted writes". Each
status write now requires a response subaction. But since large data
transfers involve only few status writes, there is no measurable
decrease of I/O throughput. What's more, the status FIFO is now safe
from potential host bus errors. Nevertheless, posted writes could be
re-enabled by extensions to the ARM features of the 1394 stack.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
(cherry picked from b2d38cccad4ef80d6b672b8f89aae5fe2907b113 commit)

18 years agosbp2: fix another deadlock after disconnection
Stefan Richter [Tue, 31 Jan 2006 05:13:06 +0000 (00:13 -0500)]
sbp2: fix another deadlock after disconnection

If there were commands enqueued but not completed before an SBP-2 unit
was unplugged (or an attempt to reconnect failed), knodemgrd or any
process which tried to remove the device would sleep uninterruptibly
in blk_execute_rq().  Therefore make sure that all commands are
completed when sbp2 retreats.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
(cherry picked from 61daa34c132c5d4ed8630e2c46e9bf2f0c7b3428 commit)

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Wed, 22 Feb 2006 23:23:05 +0000 (15:23 -0800)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

18 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Wed, 22 Feb 2006 23:21:57 +0000 (15:21 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

18 years agoMerge master.kernel.org:/home/rmk/linux-2.6-mmc
Linus Torvalds [Wed, 22 Feb 2006 23:21:22 +0000 (15:21 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-mmc

18 years ago[PATCH] CIFS: CIFSSMBRead was returning an invalid pointer in buf on socket error
Steve French [Wed, 22 Feb 2006 23:31:52 +0000 (17:31 -0600)]
[PATCH] CIFS: CIFSSMBRead was returning an invalid pointer in buf on socket error

Thanks to Adrian Bunk for debugging the problem and to Shaggy for
helping find the solution.

Also added a fix for 64K pages we found in loosely-related testing

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[SCSI] esp: fix eh locking
Christoph Hellwig [Wed, 22 Feb 2006 22:35:52 +0000 (14:35 -0800)]
[SCSI] esp: fix eh locking

esp_reset didn't get fixed when the EH locking changed.
->eh_bus_reset_handler is now called without the host lock held.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[ARM] 3347/1: Bugfix for ixp4xx_set_irq_type()
Mårten Wikström [Wed, 22 Feb 2006 22:27:23 +0000 (22:27 +0000)]
[ARM] 3347/1: Bugfix for ixp4xx_set_irq_type()

Patch from Mårten Wikström

This patch fixes a bug in ixp4xx_set_irq_type() which leads to
GPIO being incorrectly set to both edge triggered for raising
as well as falling edge interrupt types. See the previous
discussion on patch 3312/1.

Signed-off-by: Mårten Wikström <marten.wikstrom@passito.se>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3325/2: GPIO function to control multi-drive (open collector) capability
Andrew Victor [Wed, 22 Feb 2006 21:23:35 +0000 (21:23 +0000)]
[ARM] 3325/2: GPIO function to control multi-drive (open collector) capability

Patch from Andrew Victor

This patch adds the at91_set_multi_drive() function to enable/disable
the multi-drive (open collector) pin capability on the AT91RM9200
processor.

This is necessary to fix the UDC (USB Gadget) driver for the AT91RM9200
board as it will not allow the board reset line to be pulled low if the
pullup is not driven as an open collector output as the boards are wired
to the USB connector on both the DK/EK.

This version of the patch updates it to 2.6.16-rc4.
Orignal patch by Jeff Warren.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] CONFIG_CPU_MPCORE -> CONFIG_CPU_32v6K
Russell King [Wed, 22 Feb 2006 21:13:28 +0000 (21:13 +0000)]
[ARM] CONFIG_CPU_MPCORE -> CONFIG_CPU_32v6K

CONFIG_CPU_MPCORE has never been a configuration symbol - it should
be CONFIG_CPU_32v6K.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3345/1: Fix interday RTC alarms
Uli Luckas [Wed, 22 Feb 2006 21:12:07 +0000 (21:12 +0000)]
[ARM] 3345/1: Fix interday RTC alarms

Patch from Uli Luckas

This is a bugfix.

The comment in arch/arm/common/rtctime.c explains it:
* FIXME: for now, we just copy the alarm time because we're lazy (and
* is therefore buggy - setting a 10am alarm at 8pm will not result in
* the alarm triggering.)

This patch adds one day to the alarm iff the alarm wrapped beyond midnight and therefore appears to be in the past.

Signed-off-by: Uli Luckas <u.luckas@road-gmbh.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3344/1: NSLU2: beeper support
Alessandro Zummo [Wed, 22 Feb 2006 21:12:06 +0000 (21:12 +0000)]
[ARM] 3344/1: NSLU2: beeper support

Patch from Alessandro Zummo

This patch adds support for the beeper
embedded in the NSLU2 to the machine setup code.

Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3343/1: NAS100d: Fix incorrect I2C pin assignment
Alessandro Zummo [Wed, 22 Feb 2006 21:12:06 +0000 (21:12 +0000)]
[ARM] 3343/1: NAS100d: Fix incorrect I2C pin assignment

Patch from Alessandro Zummo

The I2C pin assignment for the Iomega NAS100d board was incorrect.  This
patch fixes it.  The correct assignment has now been tested using the
new RTC class and a new driver for the RTC on the NAS100d.

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3342/1: NSLU2: Protect power button init routine with machine_is_nslu2()
Alessandro Zummo [Wed, 22 Feb 2006 21:12:05 +0000 (21:12 +0000)]
[ARM] 3342/1: NSLU2: Protect power button init routine with machine_is_nslu2()

Patch from Alessandro Zummo

The power button exit routine for the Linksys NSLU2 was not protected by
a machine_is_nslu2(). This patch fixes it.

Signed-off-by: Rod Whitby <rod@whitby.id.au>
Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3340/1: Fix the PCI setup for direct master access to SDRAM
Catalin Marinas [Wed, 22 Feb 2006 19:51:38 +0000 (19:51 +0000)]
[ARM] 3340/1: Fix the PCI setup for direct master access to SDRAM

Patch from Catalin Marinas

The initial code did not configure the inbound memory windows for direct
master access to the SDRAM. This patch creates a 1:1 mapping between the
Versatile/PB PCI memory windows and its SDRAM. Note that an updated FPGA
image is needed for Versatile/PB since the original windows were 1MB and
not able to cover the whole SDRAM (now extended to 256MB). The patch also
fixes the PCI IRQ mapping for slot #2.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6
Linus Torvalds [Wed, 22 Feb 2006 18:24:52 +0000 (10:24 -0800)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6

18 years agoRevert mount/umount uevent removal
Greg Kroah-Hartman [Wed, 22 Feb 2006 17:39:02 +0000 (09:39 -0800)]
Revert mount/umount uevent removal

This change reverts the 033b96fd30db52a710d97b06f87d16fc59fee0f1 commit
from Kay Sievers that removed the mount/umount uevents from the kernel.
Some older versions of HAL still depend on these events to detect when a
new device has been mounted.  These events are not correctly emitted,
and are broken by design, and so, should not be relied upon by any
future program.  Instead, the /proc/mounts file should be polled to
properly detect this kind of event.

A feature-removal-schedule.txt entry has been added, noting when this
interface will be removed from the kernel.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
18 years ago[PATCH] padlock: Fix typo that broke 256-bit keys
Herbert Xu [Wed, 22 Feb 2006 12:43:40 +0000 (23:43 +1100)]
[PATCH] padlock: Fix typo that broke 256-bit keys

A typo crept into the le32_to_cpu patch which broke 256-bit keys
in the padlock driver.  The following patch based on observations
by Michael Heyse fixes the problem.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[ARM] Update mach-types
Russell King [Mon, 20 Feb 2006 10:18:38 +0000 (10:18 +0000)]
[ARM] Update mach-types

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Add panic-on-oops support
Russell King [Sun, 19 Feb 2006 19:53:56 +0000 (19:53 +0000)]
[ARM] Add panic-on-oops support

Although you could ask the kernel for panic-on-oops, it remained
non-functional because the architecture specific code fragment had
not been implemented.  Add it, so it works as advertised.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[MMC] Fix mmc_cmd_type() mask
Russell King [Fri, 17 Feb 2006 20:23:29 +0000 (20:23 +0000)]
[MMC] Fix mmc_cmd_type() mask

It's MMC_CMD_MASK not MMC_CMD_TYPE.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[PATCH] tmpfs: fix mount mpol nodelist parsing
Hugh Dickins [Tue, 21 Feb 2006 23:49:47 +0000 (23:49 +0000)]
[PATCH] tmpfs: fix mount mpol nodelist parsing

I've been dissatisfied with the mpol_nodelist mount option which was
added to tmpfs earlier in -rc.  Replace it by mpol=policy:nodelist.

And it was broken: a nodelist is a comma-separated list of numbers and
ranges; the mount options are a comma-separated list of token=values.
Whoops, blindly strsep'ing on commas doesn't work so well: since we've
no numeric tokens, and unlikely to add them, use that to distinguish.

Move the mpol= parsing to shmem_parse_mpol under CONFIG_NUMA, reject
all its options as invalid if not NUMA.  /proc shows MPOL_PREFERRED
as "prefer", so use that name for the policy instead of "preferred".

Enforce that mpol=default has no nodelist; that mpol=prefer has one
node only; that mpol=bind has a nodelist; but let mpol=interleave use
node_online_map if no nodelist given.  Describe this in tmpfs.txt.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Acked-by: Robin Holt <holt@sgi.com>
Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Tue, 21 Feb 2006 18:13:22 +0000 (10:13 -0800)]
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus

18 years agoMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Tue, 21 Feb 2006 18:11:32 +0000 (10:11 -0800)]
Merge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev

18 years ago[MIPS] Disable CONFIG_ISCSI_TCP; it triggers a gcc 3.4 endless loop.
Ralf Baechle [Tue, 21 Feb 2006 12:46:01 +0000 (13:46 +0100)]
[MIPS] Disable CONFIG_ISCSI_TCP; it triggers a gcc 3.4 endless loop.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Yosemite: Fix build damage by dc8f6029cd51af1b148846a32e68d69013a5cc0f.
Ralf Baechle [Tue, 21 Feb 2006 00:17:50 +0000 (00:17 +0000)]
[MIPS] Yosemite: Fix build damage by dc8f6029cd51af1b148846a32e68d69013a5cc0f.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] jiffies_to_compat_timeval fix
Atsushi Nemoto [Mon, 20 Feb 2006 16:25:06 +0000 (01:25 +0900)]
[MIPS] jiffies_to_compat_timeval fix

The last argument of div_long_long_rem() must be long.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Add topology_init.
Rojhalat Ibrahim [Mon, 20 Feb 2006 13:35:27 +0000 (13:35 +0000)]
[MIPS] Add topology_init.

A recent patch introduced cpu topology in sysfs.  When you run a kernel
with SMP and sysfs enabled, you now get an Oops on boot. The following
patch fixes that by adding topology_init to arch/mips/kernel/smp.c. The
code is copied from arch/s390/kernel/smp.c.

Signed-off-by: Rojhalat Ibrahim <imr@rtschenk.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Fix compiler warnings in arch/mips/sibyte/bcm1480/irq.c
Martin Michlmayr [Mon, 20 Feb 2006 04:57:00 +0000 (04:57 +0000)]
[MIPS] Fix compiler warnings in arch/mips/sibyte/bcm1480/irq.c

Fix the following compiler warnings:

  CC      arch/mips/sibyte/bcm1480/irq.o
arch/mips/sibyte/bcm1480/irq.c: In function ‘bcm1480_set_affinity’:
arch/mips/sibyte/bcm1480/irq.c:168: warning: ISO C90 forbids mixed declarations and code
arch/mips/sibyte/bcm1480/irq.c: In function ‘ack_bcm1480_irq’:
arch/mips/sibyte/bcm1480/irq.c:230: warning: ISO C90 forbids mixed declarations and code

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Follow Uli's latest *at syscall changes.
Ralf Baechle [Tue, 14 Feb 2006 14:22:10 +0000 (14:22 +0000)]
[MIPS] Follow Uli's latest *at syscall changes.

(This really is only the half of the patch which was forgotten in
326a625748535c4cdb1c632b1dcb07030989a393 ...)

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Sibyte: Config option names shouldn't be prefixed with CONFIG_
Ralf Baechle [Thu, 10 Nov 2005 16:32:14 +0000 (16:32 +0000)]
[MIPS] Sibyte: Config option names shouldn't be prefixed with CONFIG_

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Sibyte: #if CONFIG_* doesn't fly.
Ralf Baechle [Thu, 10 Nov 2005 16:35:03 +0000 (16:35 +0000)]
[MIPS] Sibyte: #if CONFIG_* doesn't fly.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] N32: Make sure pointer is good before passing it to sys_waitid().
Ralf Baechle [Sun, 19 Feb 2006 03:42:11 +0000 (03:42 +0000)]
[MIPS] N32: Make sure pointer is good before passing it to sys_waitid().

After all we're calling sys_waitid() with fs set to KERNEL_DS ...

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] N32: Fix N32 rt_sigtimedwait and rt_sigsuspend breakage.
Ralf Baechle [Sat, 18 Feb 2006 22:47:26 +0000 (22:47 +0000)]
[MIPS] N32: Fix N32 rt_sigtimedwait and rt_sigsuspend breakage.

Originally found through an oops in the Gentoo N32 userland build; patch
based on original patch by Daniel Jacobwitz.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Reformat _sys32_rt_sigsuspend with tabs instead of space for consistency.
Ralf Baechle [Sat, 18 Feb 2006 18:20:47 +0000 (18:20 +0000)]
[MIPS] Reformat _sys32_rt_sigsuspend with tabs instead of space for consistency.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Make do_signal32 return void.
Martin Michlmayr [Sat, 18 Feb 2006 15:21:30 +0000 (15:21 +0000)]
[MIPS] Make do_signal32 return void.

do_signal has been changed to return void since the "return value is
ignored everywhere".  Convert do_signal32 accordingly.

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Add support for TIF_RESTORE_SIGMASK for signal32
Martin Michlmayr [Sat, 18 Feb 2006 14:55:45 +0000 (14:55 +0000)]
[MIPS] Add support for TIF_RESTORE_SIGMASK for signal32

Following the recent implementation of TIF_RESTORE_SIGMASK in
arch/mips/kernel/signal.c, 64-bit kernels with 32-bit user-land
compatibility oops when starting init.  signal32.c needs to be
converted to use TIF_RESTORE_SIGMASK too.

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Fixes for uaccess.h with gcc >= 4.0.1
Atsushi Nemoto [Tue, 14 Feb 2006 06:57:50 +0000 (15:57 +0900)]
[MIPS] Fixes for uaccess.h with gcc >= 4.0.1

It seems current get_user() incorrectly sign-extend an unsigned int
value on 64bit kernel.  I think this is because '(__typeof__(val))'
cast in final assignment.  I suppose the cast should be
'(__typeof__(*(addr))'.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[MIPS] Make integer overflow exceptions in kernel mode fatal.
Ralf Baechle [Tue, 14 Feb 2006 21:04:54 +0000 (21:04 +0000)]
[MIPS] Make integer overflow exceptions in kernel mode fatal.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
18 years ago[PATCH] kjournald keeps reference to namespace
Björn Steinbrink [Sat, 18 Feb 2006 17:12:43 +0000 (18:12 +0100)]
[PATCH] kjournald keeps reference to namespace

In daemonize() a new thread gets cleaned up and 'merged' with init_task.
The current fs_struct is handled there, but not the current namespace.

This adds the namespace part.

[ Eric Biederman pointed out the namespace wrappers, and also notes that
  we can't ever count on using our parents namespace because we already
  have called exit_fs(), which is the only way to the namespace from a
  process. ]

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Acked-by: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge branch 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
Linus Torvalds [Tue, 21 Feb 2006 04:23:14 +0000 (20:23 -0800)]
Merge branch 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6

18 years agoMerge branch 'fixes.b8' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/bird
Linus Torvalds [Tue, 21 Feb 2006 04:09:44 +0000 (20:09 -0800)]
Merge branch 'fixes.b8' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/bird

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
Linus Torvalds [Tue, 21 Feb 2006 04:08:23 +0000 (20:08 -0800)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart

18 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge
Linus Torvalds [Tue, 21 Feb 2006 04:05:45 +0000 (20:05 -0800)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge

18 years ago[PATCH] H8/300: CONFIG_CONFIG_ doesn't fly.
Ralf Baechle [Mon, 20 Feb 2006 12:41:55 +0000 (12:41 +0000)]
[PATCH] H8/300: CONFIG_CONFIG_ doesn't fly.

All actual uses of the symbol refer to CONFIG_SH_STANDARD_BIOS so this
option could never be activated on H8/300.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Tue, 21 Feb 2006 04:03:01 +0000 (20:03 -0800)]
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

18 years ago[PATCH] m32r: update sys_tas() routine
Hirokazu Takata [Tue, 21 Feb 2006 02:28:17 +0000 (18:28 -0800)]
[PATCH] m32r: update sys_tas() routine

This patch updates and fixes sys_tas() routine for m32r.

In the previous implementation, a lockup rarely caused at sys_tas()
routine in SMP environment.

> > The problem is that touching *addr will generate an oops if that page isn't
> > paged in.  If we convert it to use get_user() then that's an improvement,
> > but we must not run get_user() under spinlock or local_irq_disable().

I rewrote sys_tas() routine by using "lock -> unlock" instructions, and
utilizing the m32r's interrupt handling characteristics; the m32r processor
can accept interrupts only at the 32-bit instruction boundary.  So, the
"unlock" instruction can be executed continuously after the "lock"
instruction execution without any interruptions.

In addition, to solve such a page_fault problem, I use a fixup code like
get_user().

And, as for the kernel lockup problem, we found that a calling
do_page_fault() routine with disabling interrupts might cause a lockup at
flush_tlb_others(), because we checked a completion of IPI handler's
operations in a spin-locked critical section.

Therefore, by using "lock -> unlock" code, we can implement the sys_tas()
rouitine without disabling interrupts explicitly, then no lockups would
happen at flush_tlb_others(), I hope.

Compile check and some working test in SMP environment have done.

Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m32r: __cmpxchg_u32 fix
Hirokazu Takata [Tue, 21 Feb 2006 02:28:15 +0000 (18:28 -0800)]
[PATCH] m32r: __cmpxchg_u32 fix

This patch fixes a bug of include/asm-m32r/system.h:__cmpxchg_u32().

  static __inline__ unsigned long
  __cmpxchg_u32(volatile unsigned int *p, unsigned int old, unsigned int new);

In __cmpxchg_u32(), the "old" value must not be changed to the previous "*p"
value.  But the former code modifies the previous "*p" value.

A deadlock at _atomic_dec_and_lock sometimes happened due to this bug.

Signed-off-by: Hayato Fujiwara <fujiwara@linux-m32r.org>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] s390: revert dasd eer module
Heiko Carstens [Tue, 21 Feb 2006 02:28:14 +0000 (18:28 -0800)]
[PATCH] s390: revert dasd eer module

Revert dasd eer module until we have a common understanding of how the
interface should be.

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>
18 years ago[PATCH] s390: dasd reference counting
Peter Oberparleiter [Tue, 21 Feb 2006 02:28:13 +0000 (18:28 -0800)]
[PATCH] s390: dasd reference counting

When using the dasd diag discipline, the base discipline module (eckd or fba)
can be unloaded, even though the dasd driver requires both discipline modules
(base and diag) to work correctly.

Implement reference counting for both base and diag discipline modules in
order to fix this.

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>
18 years ago[PATCH] s390: V=V qdio fixes
Frank Pavlic [Tue, 21 Feb 2006 02:28:12 +0000 (18:28 -0800)]
[PATCH] s390: V=V qdio fixes

Using FCP devices with V=V support, the input queue stalled when CCQ 97 had
been returned in qdio_do_eqbs.  When this happen we have to reissue the eqbs
instruction.

Another bug was when V=V was enabled we checked if hardware has SIGA-sync
support.  If not we returned with 0 from tiqdio_is_inbound_q_done.  Thus qdio
lost initiative on FCP devices and input queue stalled.  Running devices in
V=V there is no SIGA-sync support but nevertheless we have to process
tiqdio_is_inbound_q_done either.

Signed-off-by: Frank Pavlic <fpavlic@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>
18 years ago[PATCH] radeonfb: resume support for Samsung P35 laptops
Carl-Daniel Hailfinger [Tue, 21 Feb 2006 02:28:11 +0000 (18:28 -0800)]
[PATCH] radeonfb: resume support for Samsung P35 laptops

Make resume from suspend-to-ram possible for Samsung P35 laptops.

The radeon mobility 9700 chip on Samsung P35 laptops locks up everything on
resume from suspend-to-ram if it is not reinitialized.

VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]
Class 0300: 1002:4e50
       Subsystem: 144d:c00c

Unfortunately, the DMI strings are mostly identical for all Samsung
laptops.  So we match the PCI ID and subsystem ID of the graphics card
which is unique for each Samsung laptop model.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] drivers/fc4/fc.c: memset correct length
Alexey Dobriyan [Tue, 21 Feb 2006 02:28:10 +0000 (18:28 -0800)]
[PATCH] drivers/fc4/fc.c: memset correct length

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] mm/mempolicy.c: fix 'if ();' typo
Alexey Dobriyan [Tue, 21 Feb 2006 02:28:10 +0000 (18:28 -0800)]
[PATCH] mm/mempolicy.c: fix 'if ();' typo

[akpm; it happens that the code was still correct, only inefficient ]

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Christoph Lameter <christoph@lameter.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] ipw2200: Suppress warning message
Zhu Yi [Tue, 21 Feb 2006 02:28:09 +0000 (18:28 -0800)]
[PATCH] ipw2200: Suppress warning message

The following message will be only printed if DEBUG_NOTIF is on.  "Unknown
notification: subtype=40,flags=0xa0,size=40"

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Cc: James Ketrenos <jketreno@linux.intel.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: "John W. Linville" <linville@tuxdriver.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix compile for CONFIG_SYSVIPC=n or CONFIG_SYSCTL=n
Stephen Rothwell [Tue, 21 Feb 2006 02:28:08 +0000 (18:28 -0800)]
[PATCH] Fix compile for CONFIG_SYSVIPC=n or CONFIG_SYSCTL=n

The compat syscalls are added to sys_ni.c since they are not defined if the
above CONFIG options are off.  Also, nfs would not build with CONFIG_SYSCTL
off.

Noticed by Arthur Othieno.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix undefined symbols for nommu architecture
Luke Yang [Tue, 21 Feb 2006 02:28:07 +0000 (18:28 -0800)]
[PATCH] Fix undefined symbols for nommu architecture

Signed-off-by: Luke Yang <luke.adi@gmail.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] powermac: Fix loss of ethernet PHY on sleep
Benjamin Herrenschmidt [Tue, 21 Feb 2006 02:28:06 +0000 (18:28 -0800)]
[PATCH] powermac: Fix loss of ethernet PHY on sleep

Some recent PowerBook models tend to lose the ethernet PHY on
suspend/resume.  It -seems- that they use a combo ethernet-firewire PHY
chip and the firewire PHY seems to die the same way when that happens.  Not
trying to toggle the firewire cable power appears to fix it.  So this patch
disables changes to the firewire cable power control GPIO on those models.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] v9fs: update documentation and fix debug flag
Eric Van Hensbergen [Tue, 21 Feb 2006 02:28:05 +0000 (18:28 -0800)]
[PATCH] v9fs: update documentation and fix debug flag

Minor updates to the documentation to bring them into sync with current
websites and available features.  The debug flag was switched back to hex
to match the documentation.

Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pktcdvd: Only return -EROFS when appropriate
Peter Osterlund [Tue, 21 Feb 2006 02:28:04 +0000 (18:28 -0800)]
[PATCH] pktcdvd: Only return -EROFS when appropriate

When attempting to open the device for writing, only return -EROFS if the disc
appears to be readable but not writable.

Signed-off-by: Peter Osterlund <petero2@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pktcdvd: Fix the logic in the pkt_writable_track function
Peter Osterlund [Tue, 21 Feb 2006 02:28:04 +0000 (18:28 -0800)]
[PATCH] pktcdvd: Fix the logic in the pkt_writable_track function

Fix the pkt_writable_track() function to make it work correctly for all types
of CD/DVD discs.

Signed-off-by: Peter Osterlund <petero2@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pktcdvd: Remove useless printk statements
Peter Osterlund [Tue, 21 Feb 2006 02:28:03 +0000 (18:28 -0800)]
[PATCH] pktcdvd: Remove useless printk statements

Writing the detected disc type in the kernel log is not useful during normal
use of the driver, so remove the printk statements.

Signed-off-by: Peter Osterlund <petero2@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pktcdvd: Rename functions and make their return values sane
Peter Osterlund [Tue, 21 Feb 2006 02:28:02 +0000 (18:28 -0800)]
[PATCH] pktcdvd: Rename functions and make their return values sane

Boolean functions should return non-zero when they mean "true", otherwise the
calling code looks weird.  (As suggested by Linus.)

Signed-off-by: Peter Osterlund <petero2@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pktcdvd: Correctly set rq->cmd_len in pkt_generic_packet()
Peter Osterlund [Tue, 21 Feb 2006 02:28:01 +0000 (18:28 -0800)]
[PATCH] pktcdvd: Correctly set rq->cmd_len in pkt_generic_packet()

It looks like the code in pkt_generic_packet() worked by luck in the past, but
after commit 186d330e682210100c671355580a8592e4a21692 leaving rq->cmd_len
uninitialized doesn't work any more.

Signed-off-by: Peter Osterlund <petero2@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix snd-usb-audio in 32-bit compat environment
Juergen Kreileder [Tue, 21 Feb 2006 02:28:00 +0000 (18:28 -0800)]
[PATCH] Fix snd-usb-audio in 32-bit compat environment

I'm getting oopses with snd-usb-audio in 32-bit compat environments:
control_compat.c:get_ctl_type() doesn't initialize 'info', so
'itemlist[uinfo->value.enumerated.item]' in
usbmixer.c:mixer_ctl_selector_info() might access random memory (The 'if
((int)uinfo->value.enumerated.item >= cval->max)' doesn't fix all problems
because of the unsigned -> signed conversion.)

Signed-off-by: Juergen Kreileder <jk@blackdown.de>
Cc: Jaroslav Kysela <perex@suse.cz>
Acked-by: Takashi Iwai <tiwai@suse.de>
Cc: Greg KH <greg@kroah.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix units in mbind check
Andi Kleen [Tue, 21 Feb 2006 02:27:59 +0000 (18:27 -0800)]
[PATCH] Fix units in mbind check

maxnode is a bit index and can't be directly compared against a byte length
like PAGE_SIZE

Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] suspend-to-ram: allow video options to be set at runtime
Pavel Machek [Tue, 21 Feb 2006 02:27:58 +0000 (18:27 -0800)]
[PATCH] suspend-to-ram: allow video options to be set at runtime

Currently, acpi video options can only be set on kernel command line.  That's
little inflexible; I'd like userland s2ram application that just works, and
modifying kernel command line according to whitelist is not fun.  It is better
to just allow s2ram application to set video options just before suspend
(according to the whitelist).

This implements sysctl to allow setting suspend video options without reboot.

(akpm: Documentation updates for this new sysctl are pending..)

Signed-off-by: Pavel Machek <pavel@suse.cz>
Cc: "Brown, Len" <len.brown@intel.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cpu hotplug documentation fix
Heiko Carstens [Tue, 21 Feb 2006 02:27:58 +0000 (18:27 -0800)]
[PATCH] cpu hotplug documentation fix

Looks like there was a merge conflict when patches
8f8b1138fc9f65e3591aac83a4ee394fef34ac1d and
255acee706b333b79f593dd366f16e1f107cccc3 were applied which wasn't properly
resolved. Fix this and add some additional description.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86_64: Don't set CONFIG_DEBUG_INFO in defconfig
Andi Kleen [Tue, 21 Feb 2006 02:27:57 +0000 (18:27 -0800)]
[PATCH] x86_64: Don't set CONFIG_DEBUG_INFO in defconfig

Undo setting of CONFIG_DEBUG_INFO in the previous defconfig update.  It
will make every build much slower and need more disk space and isn't a good
default.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] spi: Fix modular master driver remove and device suspend/remove
Stephen Street [Tue, 21 Feb 2006 02:27:56 +0000 (18:27 -0800)]
[PATCH] spi: Fix modular master driver remove and device suspend/remove

Fix two problems in the spi subsystem:

1) spi subsystem core dumps when modular spi master is unloaded.
2) spi subsystem core dumps when spi slave device is suspended/resumed and
   module slave driver is not loaded.

Signed-off-by: Stephen Street <stephen@streetfiresound.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cfi_cmdset_0001: fix range for cache invalidation
Alexey Korolev [Tue, 21 Feb 2006 02:27:55 +0000 (18:27 -0800)]
[PATCH] cfi_cmdset_0001: fix range for cache invalidation

I found an issue in cfi_cmdset0001.c.  It is related to cache region
invalidation in the buffered write procedure.

The code performs cache invalidation from "cmd_addr" to "cmd_adr + len" in
do_write_buffer() while we modify region from "adr" to "adr+len".

This issue affects writes + reads of data by small chunks.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386: need to pass virtual address to smp_read_mpc()
Daniel Yeisley [Tue, 21 Feb 2006 02:27:54 +0000 (18:27 -0800)]
[PATCH] i386: need to pass virtual address to smp_read_mpc()

I'm seeing a kernel panic on an ES7000-600 when booting in virtual wire
mode.  The panic happens because smp_read_mpc() is passed a physical
address, and it should be virtual.  I tested the attached patch on the
ES7000-600 and on a 2 cpu Dell box, and saw no problems on either.

Signed-off-by: Dan Yeisley <dan.yeisley@unisys.com>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Terminate process that fails on a constrained allocation
Christoph Lameter [Tue, 21 Feb 2006 02:27:52 +0000 (18:27 -0800)]
[PATCH] Terminate process that fails on a constrained allocation

Some allocations are restricted to a limited set of nodes (due to memory
policies or cpuset constraints).  If the page allocator is not able to find
enough memory then that does not mean that overall system memory is low.

In particular going postal and more or less randomly shooting at processes
is not likely going to help the situation but may just lead to suicide (the
whole system coming down).

It is better to signal to the process that no memory exists given the
constraints that the process (or the configuration of the process) has
placed on the allocation behavior.  The process may be killed but then the
sysadmin or developer can investigate the situation.  The solution is
similar to what we do when running out of hugepages.

This patch adds a check before we kill processes.  At that point
performance considerations do not matter much so we just scan the zonelist
and reconstruct a list of nodes.  If the list of nodes does not contain all
online nodes then this is a constrained allocation and we should kill the
current process.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] OOM kill: children accounting
Kurt Garloff [Tue, 21 Feb 2006 02:27:51 +0000 (18:27 -0800)]
[PATCH] OOM kill: children accounting

In the badness() calculation, there's currently this piece of code:

        /*
         * Processes which fork a lot of child processes are likely
         * a good choice. We add the vmsize of the children if they
         * have an own mm. This prevents forking servers to flood the
         * machine with an endless amount of children
         */
        list_for_each(tsk, &p->children) {
                struct task_struct *chld;
                chld = list_entry(tsk, struct task_struct, sibling);
                if (chld->mm = p->mm && chld->mm)
                        points += chld->mm->total_vm;
        }

The intention is clear: If some server (apache) keeps spawning new children
and we run OOM, we want to kill the father rather than picking a child.

This -- to some degree -- also helps a bit with getting fork bombs under
control, though I'd consider this a desirable side-effect rather than a
feature.

There's one problem with this: No matter how many or few children there are,
if just one of them misbehaves, and all others (including the father) do
everything right, we still always kill the whole family.  This hits in real
life; whether it's javascript in konqueror resulting in kdeinit (and thus the
whole KDE session) being hit or just a classical server that spawns children.

Sidenote: The killer does kill all direct children as well, not only the
selected father, see oom_kill_process().

The idea in attached patch is that we do want to account the memory
consumption of the (direct) children to the father -- however not fully.
This maintains the property that fathers with too many children will still
very likely be picked, whereas a single misbehaving child has the chance to
be picked by the OOM killer.

In the patch I account only half (rounded up) of the children's vm_size to
the parent.  This means that if one child eats more mem than the rest of
the family, it will be picked, otherwise it's still the father and thus the
whole family that gets selected.

This is heuristics -- we could debate whether accounting for a fourth would
be better than for half of it.  Or -- if people would consider it worth the
trouble -- make it a sysctl.  For now I sticked to accounting for half,
which should IMHO be a significant improvement.

The patch does one more thing: As users tend to be irritated by the choice
of killed processes (mainly because the children are killed first, despite
some of them having a very low OOM score), I added some more output: The
selected (father) process will be reported first and it's oom_score printed
to syslog.

Description:

Only account for half of children's vm size in oom score calculation

This should still give the parent enough point in case of fork bombs.  If
any child however has more than 50% of the vm size of all children
together, it'll get a higher score and be elected.

This patch also makes the kernel display the oom_score.

Signed-off-by: Kurt Garloff <garloff@suse.de>
Cc: Rik van Riel <riel@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[AGPGART] Add some informational printk to nforce GART failure path.
Dave Jones [Mon, 20 Feb 2006 23:34:37 +0000 (18:34 -0500)]
[AGPGART] Add some informational printk to nforce GART failure path.

Signed-off-by: Dave Jones <davej@redhat.com>
18 years ago[PATCH] libata: make ata_sg_setup_one() trim zero length sg
Tejun Heo [Mon, 20 Feb 2006 14:48:38 +0000 (23:48 +0900)]
[PATCH] libata: make ata_sg_setup_one() trim zero length sg

This patch makes ata_sg_setup_one() trim sg entry (thus making
qc->n_elem zero) if padding results in zero length sg entry.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
18 years ago[PATCH] libata: fix qc->n_elem == 0 case handling in ata_qc_next_sg
Tejun Heo [Mon, 20 Feb 2006 14:48:38 +0000 (23:48 +0900)]
[PATCH] libata: fix qc->n_elem == 0 case handling in ata_qc_next_sg

This patch makes ata_for_each_sg() start with pad_sgent when
qc->n_elem is zero.  Previously, ata_for_each_sg() unconditionally
started with qc->__sg, handling the first sg to fill_sg() routines
even when the entry was invalid.  And while at it, unwind ?: in
ata_qc_next_sg() into if statement.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
18 years ago[PATCH] libata: fix WARN_ON() condition in *_fill_sg()
Tejun Heo [Mon, 20 Feb 2006 14:48:37 +0000 (23:48 +0900)]
[PATCH] libata: fix WARN_ON() condition in *_fill_sg()

For ATAPI commands, padding can reduce qc->n_elem by one and thus to
zero making assert(qc->n_elem > 0)'s in ata_fill_sg() and qs_fill_sg()
fail for legal commands.  This patch fixes the assert()'s to take
qc->pad_len into account.

Although the condition check seems a bit excessive, as this part of
code isn't still stable yet, I think it's worth to keep those.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
18 years ago[NET]: NETFILTER: remove duplicated lines and fix order in skb_clone().
YOSHIFUJI Hideaki [Mon, 20 Feb 2006 06:32:06 +0000 (22:32 -0800)]
[NET]: NETFILTER: remove duplicated lines and fix order in skb_clone().

Some of netfilter-related members are initalized / copied twice in
skb_clone(). Remove one.

Pointed out by Olivier MATZ <olivier.matz@6wind.com>.

And this patch also fixes order of copying / clearing members.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: Fix outgoing redirects to loopback
Patrick McHardy [Mon, 20 Feb 2006 06:29:47 +0000 (22:29 -0800)]
[NETFILTER]: Fix outgoing redirects to loopback

When redirecting an outgoing packet to loopback, it keeps the original
conntrack reference and information from the outgoing path, which
falsely triggers the check for DNAT on input and the dst_entry is
released to trigger rerouting. ip_route_input refuses to route the
packet because it has a local source address and it is dropped.

Look at the packet itself to dermine if it was NATed. Also fix a
missing inversion that causes unneccesary xfrm lookups.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[IRDA]: irda-usb bug fixes
Jean Tourrilhes [Mon, 20 Feb 2006 06:28:25 +0000 (22:28 -0800)]
[IRDA]: irda-usb bug fixes

This patch fixes 2 bugs in the USB-IrDA code.

The first one is a buffer overrun in the RX path. We are now using
IRDA_SKB_MAX_MTU when initializing the Rx URB.

The second one is a potential stack recursion when unplugging the USB
dongle.  It seems that first we get the Rx URB with a generic error
code, and after a while the Rx URB comes again with a "disconnect"
error code.  Since we are resubmitting the Rx URB immediately after
receiving the first error one, we might enter an endless loop.

When getting an error Rx URB, the patch defers the Rx URB resubmitting
so that it gives us a chance to catch the disconnect one, in case the
dongle has juts been unplugged.

Tested against 2.6.16-rc2.

Patch from Jean Tourrilhes

Signed-off-by: Jean Tourrilhes <jt@hpl.hp.com>
Signed-off-by: Samuel Ortiz <samuel.ortiz@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: Fix NAT PMTUD problems
Patrick McHardy [Mon, 20 Feb 2006 06:26:40 +0000 (22:26 -0800)]
[NETFILTER]: Fix NAT PMTUD problems

ICMP errors are only SNATed when their source matches the source of the
connection they are related to, otherwise the source address is not
changed. This creates problems with ICMP frag. required messages
originating from a router behind the NAT, if private IPs are used the
packet has a good change of getting dropped on the path to its destination.

Always NAT ICMP errors similar to the original connection.

Based on report by Al Viro.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[XFRM]: Fix policy double put
Patrick McHardy [Mon, 20 Feb 2006 06:11:50 +0000 (22:11 -0800)]
[XFRM]: Fix policy double put

The policy is put once immediately and once at the error label, which results
in the following Oops:

kernel BUG at net/xfrm/xfrm_policy.c:250!
invalid opcode: 0000 [#2]
PREEMPT
[...]
CPU:    0
EIP:    0060:[<c028caf7>]    Not tainted VLI
EFLAGS: 00210246   (2.6.16-rc3 #39)
EIP is at __xfrm_policy_destroy+0xf/0x46
eax: d49f2000   ebx: d49f2000   ecx: f74bd880   edx: f74bd280
esi: d49f2000   edi: 00000001   ebp: cd506dcc   esp: cd506dc8
ds: 007b   es: 007b   ss: 0068
Process ssh (pid: 31970, threadinfo=cd506000 task=cfb04a70)
Stack: <0>cd506000 cd506e34 c028e92b ebde7280 cd506e58 cd506ec0 f74bd280 00000000
       00000214 0000000a 0000000a 00000000 00000002 f7ae6000 00000000 cd506e58
       cd506e14 c0299e36 f74bd280 e873fe00 c02943fd cd506ec0 ebde7280 f271f440
Call Trace:
 [<c0103a44>] show_stack_log_lvl+0xaa/0xb5
 [<c0103b75>] show_registers+0x126/0x18c
 [<c0103e68>] die+0x14e/0x1db
 [<c02b6809>] do_trap+0x7c/0x96
 [<c0104237>] do_invalid_op+0x89/0x93
 [<c01035af>] error_code+0x4f/0x54
 [<c028e92b>] xfrm_lookup+0x349/0x3c2
 [<c02b0b0d>] ip6_datagram_connect+0x317/0x452
 [<c0281749>] inet_dgram_connect+0x49/0x54
 [<c02404d2>] sys_connect+0x51/0x68
 [<c0240928>] sys_socketcall+0x6f/0x166
 [<c0102aa1>] syscall_call+0x7/0xb

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[PATCH] powerpc: Fix bug in spinup of renumbered secondary threads
Michael Ellerman [Thu, 16 Feb 2006 03:13:53 +0000 (14:13 +1100)]
[PATCH] powerpc: Fix bug in spinup of renumbered secondary threads

If the logical and physical cpu ids of a secondary thread don't match, we will
fail to spin the thread up on pSeries machines due to a bug in pseries/smp.c

We call the RTAS "start-cpu" method with the physical cpu id, the address of
pSeries_secondary_smp_init and the value to pass that function in r3. Currently
we pass "lcpu", the logical cpu id, but pSeries_secondary_smp_init expects
the physical cpu id in r3.

We should be passing pcpu instead.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Make UP -> SMP kexec work again
Michael Ellerman [Thu, 16 Feb 2006 03:13:51 +0000 (14:13 +1100)]
[PATCH] powerpc: Make UP -> SMP kexec work again

For UP to SMP kexec to work we need to jump into pSeries_secondary_smp_init
event on a UP + KEXEC kernel. The secondary cpus will not find their hw_cpu_id
in the paca and so they'll jump into kexec_wait, ready for a kexec.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Don't start secondary CPUs in a UP && KEXEC kernel
Michael Ellerman [Thu, 16 Feb 2006 03:13:50 +0000 (14:13 +1100)]
[PATCH] powerpc: Don't start secondary CPUs in a UP && KEXEC kernel

Because smp_release_cpus() is built for SMP || KEXEC, it's not safe to
unconditionally call it from setup_system(). On a UP && KEXEC kernel we'll
start up the secondary CPUs which will then go beserk and we die.

Simple fix is to conditionally call smp_release_cpus() in setup_system(). With
that in place we don't need the dummy definition of smp_release_cpus() because
all call sites are #ifdef'ed either SMP or KEXEC.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Fix OOPS in lparcfg on G5
Olof Johansson [Thu, 16 Feb 2006 03:40:44 +0000 (21:40 -0600)]
[PATCH] powerpc: Fix OOPS in lparcfg on G5

Fallback gracefully when reading /proc/ppc64/lparcfg when the /rtas
device node can't be found.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: remove duplicate exports
Olaf Hering [Sat, 11 Feb 2006 17:21:47 +0000 (18:21 +0100)]
[PATCH] powerpc: remove duplicate exports

A few symbols are exported twice, remove them from ppc_ksyms.c
Remove users of sys_ctrler in arch/ppc/

WARNING: vmlinux: duplicate symbol '__delay' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol '__up' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol '__down' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol '__down_interruptible' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'sys_ctrler' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'strncat' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'strncmp' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'strchr' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'strrchr' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'strnlen' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'strpbrk' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'memscan' previous definition was in vmlinux
WARNING: vmlinux: duplicate symbol 'strstr' previous definition was in vmlinux

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years agopowerpc: Keep xtime and gettimeofday in sync
Paul Mackerras [Sun, 19 Feb 2006 23:38:56 +0000 (10:38 +1100)]
powerpc: Keep xtime and gettimeofday in sync

This fixes a regression which was introduced by moving ppc32 to use
the same sort of lockless gettimeofday as ppc64 has been using for
some time.  This involves getting the timebase and performing some
simple arithmetic to convert it to seconds and microseconds.  However,
the factor and offset used there weren't being updated when NTP
varied the tick length using adjtimex.  64-bit didn't notice the
problem because it had a hook in the 32-bit adjtimex compat routine
that attempted to work out what the generic timekeeping code would
do and alter the factor and offset to match.  However, that code
was very complex and it wasn't clear that it still matched what the
generic code would do.

Now we use the generic current_tick_length() routine that was recently
added to check that the current tick will be as long as we expect; if
not we recompute the factor and offset.  This keeps gettimeofday and
xtime in sync.  In addition we check that gettimeofday hasn't got ahead
of xtime on each timer interrupt; if it has, we resync.

Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] iomap_copy fallout (m68k)
Al Viro [Fri, 3 Feb 2006 07:06:42 +0000 (02:06 -0500)]
[PATCH] iomap_copy fallout (m68k)

added __raw_writel(), sanitized include order in iomap_copy.c

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
18 years ago[PATCH] m68k: pm_power_off() breakage
Al Viro [Thu, 19 Jan 2006 00:41:35 +0000 (19:41 -0500)]
[PATCH] m68k: pm_power_off() breakage

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
18 years ago[PATCH] missing ntohs() in ip6_tunnel
Al Viro [Sat, 18 Feb 2006 21:02:18 +0000 (16:02 -0500)]
[PATCH] missing ntohs() in ip6_tunnel

->payload_len is net-endian

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
18 years ago[PATCH] m68k: restore disable_irq_nosync()
Al Viro [Thu, 19 Jan 2006 02:22:55 +0000 (21:22 -0500)]
[PATCH] m68k: restore disable_irq_nosync()

Patch claiming to remove enable_irq_nosync() had left it alive but killed
disable_irq_nosync() instead...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
18 years ago[PATCH] fix handling of st_nlink on procfs root
Al Viro [Wed, 8 Feb 2006 19:37:40 +0000 (14:37 -0500)]
[PATCH] fix handling of st_nlink on procfs root

1) it should use nr_processes(), not nr_threads; otherwise we are getting
very confused find(1) and friends, among other things.
2) better do that at stat() time than at every damn lookup in procfs root.

Patch had been sitting in FC4 kernels for many months now...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
18 years ago[PATCH] don't mangle INQUIRY if cmddt or evpd bits are set
Al Viro [Wed, 8 Feb 2006 19:09:00 +0000 (14:09 -0500)]
[PATCH] don't mangle INQUIRY if cmddt or evpd bits are set

sbp2.c mangles INQUIRY response in a way that only applies to standard
inquiry data (i.e. when both cmddt and evpd bits are 0).  Leave other cases
alone; e.g. when asking for VPD the length of reply is in byte 3, not 4
and byte 4 is the first byte of device serial number.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>