]> git.hungrycats.org Git - linux/log
linux
21 years ago[PATCH] s390: zfcp host adapter
Andreas Herrmann [Mon, 18 Oct 2004 16:06:06 +0000 (09:06 -0700)]
[PATCH] s390: zfcp host adapter

zfcp host adapter change:
 - Return -EIO if wait_event_interruptible_timeout was interrupted.
 - Reduce stack uage of zfcp_cfdc_dev_ioctl.
 - Make zfcp_sg_list_[alloc,free] more consistent.
 - Store driver version to zfcp_data structure.
 - Add missing FSF states and make corresponding log messages consistent.
 - Always wait for completion in zfcp_scsi_command_sync.
 - Add Andreas to authors list.
 - Add timeout for cfdc upload/download.
 - Add support for temporary units (units not registered to the scsi stack).
 - Allow sending of ELS commands to ports by their d_id.
 - Increase port refcount while link test is running.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] uml: readd linux Makefile target
Paolo \'Blaisorblade\' Giarrusso [Mon, 18 Oct 2004 16:05:54 +0000 (09:05 -0700)]
[PATCH] uml: readd linux Makefile target

Since people are used to doing "make linux ARCH=um" and to use "linux" as
the kernel image, make it be an hard link to vmlinux.  This should hurt the
less possible the users (actually nothing) while not slowing down the
build.

Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] m32r: fix a compile error of M32R SIO driver
Hirokazu Takata [Mon, 18 Oct 2004 16:05:42 +0000 (09:05 -0700)]
[PATCH] m32r: fix a compile error of M32R SIO driver

Here is a patch to fix a compile error of m32r-sio.c.

* include/asm-m32r/termbits.h:
- Add CTVB definition.
  This modification is derived from new-serial-flow-control.patch;

  "[Patch] new serial flow control" (Oct. 4, 2004)
  http://www.uwsg.iu.edu/hypermail/linux/kernel/0410.0/0853.html

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>
21 years ago[PATCH] m32r: update arch/m32r/mm/fault.c to fix a compile error
Hirokazu Takata [Mon, 18 Oct 2004 16:05:30 +0000 (09:05 -0700)]
[PATCH] m32r: update arch/m32r/mm/fault.c to fix a  compile error

Here is a patch to update arch/m32r/mm/fault.c in order to fix
a compile error of -mm kernel for m32r.

* arch/m32r/mm/fault.c:
- Add the third parameter of expand_stack().
  This modification is derived from
  enforce-a-gap-between-heap-and-stack.patch;

  "heap-stack-gap for 2.6" (Sep. 25, 2004)
  http://www.uwsg.iu.edu/hypermail/linux/kernel/0409.3/0435.html

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>
21 years ago[PATCH] m32r: fix sys_tas system call for m32r
Hirokazu Takata [Mon, 18 Oct 2004 16:05:18 +0000 (09:05 -0700)]
[PATCH] m32r: fix sys_tas system call for m32r

This patch fixes a sys_tas system call for m32r.

- This patch fixes an Oops at sys_tas() in case CONFIG_SMP && CONFIG_PREEMPT.
  > Unable to handle kernel paging request at virtual address XXXXXXXX

  It is because a page fault happens at the spin_locked region in sys_tas()
  and in_atomic() checks preempt_count, but spin_lock() already counts up
  the preemt_count.

  arch/m32r/kernel/sys_m32r.c:
    32  /*
    33   * sys_tas() - test-and-set
    34   * linuxthreads testing version
    35   */
    36  #ifndef CONFIG_SMP
    37  asmlinkage int sys_tas(int *addr)
    38  {
    39          int oldval;
    40          unsigned long flags;
    41
    42          if (!access_ok(VERIFY_WRITE, addr, sizeof (int)))
    43                  return -EFAULT;
    44          local_irq_save(flags);
    45          oldval = *addr;
    46          *addr = 1;
    47          local_irq_restore(flags);
    48          return oldval;
    49  }
    50  #else /* CONFIG_SMP */
    51  #include <linux/spinlock.h>
    52
    53  static spinlock_t tas_lock = SPIN_LOCK_UNLOCKED;
    54
    55  asmlinkage int sys_tas(int *addr)
    56  {
    57          int oldval;
    58
    59          if (!access_ok(VERIFY_WRITE, addr, sizeof (int)))
    60                  return -EFAULT;
    61
    62          spin_lock(&tas_lock);
    63          oldval = *addr;

/* <<< ATTENTION >>>
 * A page fault may happen here, because "addr" points an
 * user-space area.
 */

    64          *addr = 1;
    65          spin_unlock(&tas_lock);
    66
    67          return oldval;
    68  }
    69  #endif /* CONFIG_SMP */

  arch/mm/fault.c:
   137  /*
   138   * If we're in an interrupt or have no user context or are runni
ng in an
   139   * atomic region then we must not take the fault..
   140   */
   141  if (in_atomic() || !mm)
   142          goto bad_area_nosemaphore;

- sys_tas() is used for user-level mutual exclusion for the m32r,
  which is prepared to implement a linuxthreads library.
  The above problem may be happened in a program, which uses
  pthread_mutex_lock(), calls sys_tas().

  The current m32r instruction set has no user-level locking
  functions for mutual exclusion.
  # I hope it will be fixed in the future...

- This patch fixes the problem by using _raw_spin_lock() instead of
  spin_lock().  spin_lock() increments up preemt_count, on the contrary,
  _raw_sping_lock() does not.

  # I think this fix is just a temporary work around, and
  # it is preferable to be rewrite to make it simpler by using
  # asm() function or something...

* arch/m32r/kernel/sys_m32r.c:
- Fix sys_tas() for CONFIG_SMP && CONFIG_PREEMPT.

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>
21 years ago[PATCH] m32r: SIO driver
Hirokazu Takata [Mon, 18 Oct 2004 16:05:06 +0000 (09:05 -0700)]
[PATCH] m32r: SIO driver

Here is a patch to support the M32R SIO (serial IO) driver.

This driver supports the M32R serial ports.
- Supports two types M32R serial interfaces; M32R_SIO and M32R_PLDSIO.
- With SMP safeness.

Currently the M32R_PLDSIO serial interface, which is implemented on a PLD
on the M3T-M32700UT evaluation board, has slightly different specification
from the integrated peripheral SIO (M32R_SIO).  Now we can select them by
CONFIG_ option.

It is a serial-core based driver, based on drivers/serial/8250.c.  Any
comments or suggestions will be appreciated.

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>
21 years ago[PATCH] m32r: AR camera driver
Hirokazu Takata [Mon, 18 Oct 2004 16:04:53 +0000 (09:04 -0700)]
[PATCH] m32r: AR camera driver

Here is a patch for the Renesas AR camera driver for m32r.

  - AR (artificial retina) camera is newly supported.
    AR camera module: Renesas M64278E-800, VGA(640x480 pixcels)
    http://www.renesas.com/avs/resource/japan/jpn/pdf/assp/rjj01f0005_psmobile.pdf

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>
21 years ago[PATCH] m32r: update include/asm-m32r/m32102.h
Hirokazu Takata [Mon, 18 Oct 2004 16:04:40 +0000 (09:04 -0700)]
[PATCH] m32r: update include/asm-m32r/m32102.h

Here is a patch to update include/asm-m32r/m32102.h.

     * include/asm-m32r/m32102.h:
     - Add macro definitions for DMA controller.
     - Cosmetics; rearrange indentations.

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>
21 years ago[PATCH] m32r: new CF/PCMCIA driver for m32r
Hirokazu Takata [Mon, 18 Oct 2004 16:04:28 +0000 (09:04 -0700)]
[PATCH] m32r: new CF/PCMCIA driver for m32r

This patch is for the new M32R CF/PCMCIA drivers.  It is moved from
arch/m32r/drivers/ and some part are updated for 2.6 kernel.

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>
21 years ago[PATCH] m32r: ds1302 driver
Hirokazu Takata [Mon, 18 Oct 2004 16:04:16 +0000 (09:04 -0700)]
[PATCH] m32r: ds1302 driver

This is a DS1302 real-time clock driver.

It is moved from arch/m32r/drivers/, has been originally taken from
arch/cris/arch-v10/drivers/ds1302.c.

Currently, this driver supports only m32r target boards.  Maybe some work will
be required to support other target.

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>
21 years ago[PATCH] Mac swsusp driver fixes
Guido Guenther [Mon, 18 Oct 2004 16:04:03 +0000 (09:04 -0700)]
[PATCH] Mac swsusp driver fixes

Allow swsusp work with macintosh's own thermal sensor drivers enabled.

Contributions from Nathan Hand <nathanh@manu.com.au>

Signed-Of-By: Guido Guenther <agx@sigcpu.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] S3 suspend/resume with noexec v2
Venkatesh Pallipadi [Mon, 18 Oct 2004 16:03:51 +0000 (09:03 -0700)]
[PATCH] S3 suspend/resume with noexec v2

This patch is required for S3 suspend-resume on noexec capable systems.  On
these systems, we need to save and restore MSR_EFER during S3
suspend-resume.

Signed-off-by: "Venkatesh Pallipadi" <venkatesh.pallipadi@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] additional documentation for power management
Oliver Neukum [Mon, 18 Oct 2004 16:03:39 +0000 (09:03 -0700)]
[PATCH] additional documentation for power management

This is additional documentation for power management.  Pavel Machek has
given his acknowledgement.

Signed-Off-By: Oliver Neukum <oliver@neukum.name>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] swsusp: Documentation update
Pavel Machek [Mon, 18 Oct 2004 16:03:26 +0000 (09:03 -0700)]
[PATCH] swsusp: Documentation update

Documentation update.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] swsusp: add comments at critical places
Pavel Machek [Mon, 18 Oct 2004 16:03:14 +0000 (09:03 -0700)]
[PATCH] swsusp: add comments at critical places

apm.c needs save_processor_state and friends.  Add a comment to keep people
from removing it.  Describe a way to make swsusp work on non-PSE machines.
Document purpose of acpi_restore_state.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] swsusp: fix process start times after resume
Pavel Machek [Mon, 18 Oct 2004 16:03:02 +0000 (09:03 -0700)]
[PATCH] swsusp: fix process start times after resume

Currently, process start times change after swsusp (because they are
derived from jiffies and current time, oops).  This should fix it.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] i386/io_apic init section fixups
Randy Dunlap [Mon, 18 Oct 2004 16:02:50 +0000 (09:02 -0700)]
[PATCH] i386/io_apic init section fixups

Code section errors in i386/io_apic.c found by scripts/reference_init.pl.
Looks like they could cause problems for a few drivers or in a real hotplug
environment.

Error: ./arch/i386/kernel/io_apic.o .text refers to 000018ff R_386_PC32        .init.text

call chain:
  snd_mpu401_acpi_resource
    acpi_register_gsi
      mp_register_gsi
io_apic_set_pci_routing
{A}   ioapic_register_intr
    IO_APIC_irq_trigger
      find_irq_entry

Error: ./arch/i386/kernel/io_apic.o .text refers to 00001967 R_386_PC32        .init.text

(as above thru {A}, then:)
  IO_APIC_irq_trigger
    irq_trigger
      MPBIOS_trigger >> removing __init from this led to
   needing to remove __init from
   EISA_ELCR also.

Signed-off-by: Randy Dunlap <rddunlap@osdl.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] fix nosmp & pcibios_fixup_irqs() interaction
Ingo Molnar [Mon, 18 Oct 2004 16:02:38 +0000 (09:02 -0700)]
[PATCH] fix nosmp & pcibios_fixup_irqs() interaction

Fix interaction between nosmp and pcibios_fixup_irqs().

When we boot with nosmp we dont have all the mptable info, so
IO_APIC_get_PCI_irq_vector() doesnt work and devices just end up getting a
wrong interrupt.

From: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] Disable SW irqbalance/irqaffinity for E7520/E7320/E7525 v2
Suresh B. Siddha [Mon, 18 Oct 2004 16:02:26 +0000 (09:02 -0700)]
[PATCH] Disable SW irqbalance/irqaffinity for E7520/E7320/E7525 v2

As part of the workaround for the "Interrupt message re-ordering across hub
interface" errata (page #16 in
http://developer.intel.com/design/chipsets/specupdt/30288402.pdf), BIOS may
enable hardware IRQ balancing for E7520/E7320/E7525(revision ID 0x9 and
below) based platforms.

Add pci quirks to disable SW irqbalance/affinity on those platforms.  Move
balanced_irq_init() to late_initcall so that kirqd will be started after
pci quirks.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] Fix show_trace() in irq context with CONFIG_4KSTACKS
Oleg Nesterov [Mon, 18 Oct 2004 16:02:14 +0000 (09:02 -0700)]
[PATCH] Fix show_trace() in irq context with CONFIG_4KSTACKS

- valid_stack_ptr() erroneously assumes that stack always lives in
  task_struct->thread_info.

- the main loop in show_trace() does not recalc ebp after stack
  switching.  With CONFIG_FRAME_POINTER every call to print_context_stack()
  will produce the same output.

With this patch, show_trace() does not use task argument in the main loop.
Instead, it converts stack to thread_info* context, and passes it to
print_context_stack() and (implicitly) to valid_stack_ptr().

valid_stack_ptr() now does bounds checking against proper context.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] share i386/x86_64 intel cache descriptors table
Suresh B. Siddha [Mon, 18 Oct 2004 16:02:02 +0000 (09:02 -0700)]
[PATCH] share i386/x86_64 intel cache descriptors table

Some cache descriptors are missing from x86_64 table.  So instead of
copying from i386 code, here is a patch to share the table between i386 and
x86_64.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: fix EMBEDDED_RAMDISK with O=
Tom Rini [Mon, 18 Oct 2004 16:01:49 +0000 (09:01 -0700)]
[PATCH] sh: fix EMBEDDED_RAMDISK with O=

The following fixes EMBEDDED_RAMDISK to work with O=.  The problem was that
we couldn't find the linker script, since we needed to specify the patch to
the source tree for it.  I've tested this with the ramdisk set to both
'ramdisk.gz' and '../ramdisk.gz'.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: ST40 updates
Paul Mundt [Mon, 18 Oct 2004 16:01:37 +0000 (09:01 -0700)]
[PATCH] sh: ST40 updates

This includes some ST40 updates from the ST tree.  The most notable change is
the ST40GX1 fixes for INTC2-based interrupts.

Signed-off-by: Alex Bennee <kernel-hacker@bennee.com>
Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: sh-sci updates
Paul Mundt [Mon, 18 Oct 2004 16:01:25 +0000 (09:01 -0700)]
[PATCH] sh: sh-sci updates

sh-sci updates all around the board.  Support for the newly added subtypes,
some compilation cleanups, etc.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: CTP/PCI-SH03 board support
Paul Mundt [Mon, 18 Oct 2004 16:01:13 +0000 (09:01 -0700)]
[PATCH] sh: CTP/PCI-SH03 board support

This adds support for the CTP/PCI-SH03 board from Interface.

Signed-off-by: Saito.K <ksaito@interface.co.jp>
Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: SE73180 board support
Paul Mundt [Mon, 18 Oct 2004 16:01:00 +0000 (09:01 -0700)]
[PATCH] sh: SE73180 board support

This adds support for the SH73180 Solution Engine.

Signed-off-by: Hiroshi DOYU <Hiroshi_DOYU@montavista.co.jp>
Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: Broken-out CPU subtype probing
Paul Mundt [Mon, 18 Oct 2004 16:00:48 +0000 (09:00 -0700)]
[PATCH] sh: Broken-out CPU subtype probing

Previously we could do subtype parsing and cache configuration in the same
location..  but with the introduction of things like the SH7705 where we use
SH-3 style probing with SH-4 style caches, this is no longer the case.  As
such, we move the probe code to a saner place.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: oprofile support for SH7750/SH7750S
Paul Mundt [Mon, 18 Oct 2004 16:00:35 +0000 (09:00 -0700)]
[PATCH] sh: oprofile support for SH7750/SH7750S

The SH7750 and SH7750S have hardware performance counters, this adds an
oprofile driver for those.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: PCI updates
Paul Mundt [Mon, 18 Oct 2004 16:00:22 +0000 (09:00 -0700)]
[PATCH] sh: PCI updates

This updates some of the PCI drivers.  SH7751, the sh03 board-specific PCI
code, and some ST40 PCI updates are grouped in this.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: cleanup + merge
Paul Mundt [Mon, 18 Oct 2004 16:00:10 +0000 (09:00 -0700)]
[PATCH] sh: cleanup + merge

This adds other random bits of sh cleanup.  This includes Kconfig updates,
some exported symbols to satisfy module builds, cleanup of some whitespace
damage, some compile fixes, and some general header and mach-type cleanup.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>
Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: SH4-202 MicroDev board support
Paul Mundt [Mon, 18 Oct 2004 15:59:56 +0000 (08:59 -0700)]
[PATCH] sh: SH4-202 MicroDev board support

This adds support for the SH4-202 MicroDev from SuperH, Inc.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: SH-4 optimized memcpy()
Paul Mundt [Mon, 18 Oct 2004 15:59:44 +0000 (08:59 -0700)]
[PATCH] sh: SH-4 optimized memcpy()

This adds support for an SH-4 optimized memcpy().
Written by Stuart Menefy <stuart.menefy@st.com>.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: EDOSK7705 board support
Paul Mundt [Mon, 18 Oct 2004 15:59:31 +0000 (08:59 -0700)]
[PATCH] sh: EDOSK7705 board support

This adds support for the edosk7705 board from Renesas.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: SCBRR calculation fixes for early printk()
Paul Mundt [Mon, 18 Oct 2004 15:59:19 +0000 (08:59 -0700)]
[PATCH] sh: SCBRR calculation fixes for early printk()

The early printk() code was using a fixed PCLK value that was only sane in the
SH7750 case.  This updates the SCBRR value calculation to use
CONFIG_SH_PCLK_FREQ instead and thus works on other subtypes as well (tested
on SH4-202).

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: DMA API updates
Paul Mundt [Mon, 18 Oct 2004 15:59:07 +0000 (08:59 -0700)]
[PATCH] sh: DMA API updates

This updates some of the sh DMA drivers and core API.  Previously modules had
to register for the channels they were interested in, but now it's dealt with
transparently by the API with only the number of physical channels needing to
be specified by each module.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: defconfig updates
Paul Mundt [Mon, 18 Oct 2004 15:58:55 +0000 (08:58 -0700)]
[PATCH] sh: defconfig updates

Nothing exciting here..  random defconfig updates, as well as a few new ones
for microdev and ctp/pci-sh03.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: consistent API cleanup
Paul Mundt [Mon, 18 Oct 2004 15:58:43 +0000 (08:58 -0700)]
[PATCH] sh: consistent API cleanup

This gets rid of the hardcoded workarounds for the Dreamcast in the
dma-mapping code, and now wraps into the common consistent_alloc() and
consistent_free() routines if the ones in the machvec aren't interested in
handling it.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: Use asm-offsets
Paul Mundt [Mon, 18 Oct 2004 15:58:30 +0000 (08:58 -0700)]
[PATCH] sh: Use asm-offsets

This basically follows the same change as for sh64 and adds asm-offsets to sh.
 Some hardcoded thread_info struct offsets get cleaned up by this.

Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: SH7705 subtype cleanup + 32k cache support
Paul Mundt [Mon, 18 Oct 2004 15:58:17 +0000 (08:58 -0700)]
[PATCH] sh: SH7705 subtype cleanup + 32k cache support

This fixes up the existing SH7705 support and enables the 32k cache mode for
the processor.

Signed-off-by: Alex Song <songqf9@yahoo.ca>
Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] sh: SH73180 subtype support
Paul Mundt [Mon, 18 Oct 2004 15:58:05 +0000 (08:58 -0700)]
[PATCH] sh: SH73180 subtype support

This adds support for the SH73180 subtype (sh4a).

Signed-off-by: Hiroshi DOYU <Hiroshi_DOYU@montavista.co.jp>
Signed-off-by: Paul Mundt <paul.mundt@nokia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] ppc32: fix cpu voltage change delay
Paul Mackerras [Mon, 18 Oct 2004 15:57:51 +0000 (08:57 -0700)]
[PATCH] ppc32: fix cpu voltage change delay

This patch fixes a problem where my new powerbook would sometimes hang or
crash when changing CPU speed.  We had schedule_timeout(HZ/1000) in there,
intended to provide a delay of one millisecond.  However, even with
HZ=1000, it was (I believe) only waiting for the next jiffy before
proceeding, which could be less than a millisecond.  Changing the code to
use msleep, and specifying a time of 1 jiffy + 1ms has fixed the problem.
(When I looked at the msleep code, it appeared to me that msleep(1) with
HZ=1000 would sleep for between 0 and 1ms.)

Ben also asked me to remove the code that changes the AACK delay enable,
after looking in the Darwin sources and seeing that Darwin does not change
this in its corresponding code.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] ppc32: configure PPC440GX L2 cache based on CPU rev
Matt Porter [Mon, 18 Oct 2004 15:57:39 +0000 (08:57 -0700)]
[PATCH] ppc32: configure PPC440GX L2 cache based on CPU rev

This patch enables/disables the PPC440GX L2 cache based on errata which
prevents reliable operation on certain CPU revisions and speed grades.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] ppc32: add gen550.h
Matt Porter [Mon, 18 Oct 2004 15:57:27 +0000 (08:57 -0700)]
[PATCH] ppc32: add gen550.h

Add a missing include file for gen550.

Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] ppc32: use gen550 for PPC44x progress/ppc-stub
Matt Porter [Mon, 18 Oct 2004 15:57:14 +0000 (08:57 -0700)]
[PATCH] ppc32: use gen550 for PPC44x progress/ppc-stub

Use gen550 for early PPC progress messages and for the in-kernel ppc-stub.c
on PPC44x.

Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] ppc32: Xilinx ML300 board support (very basic)
Andrei Konovalov [Mon, 18 Oct 2004 15:57:02 +0000 (08:57 -0700)]
[PATCH] ppc32: Xilinx ML300 board support (very basic)

Adds minimal Xilinx ML300 board support (enough to boot with ramdisk).  The
only peripheral devices supported are 16x50 compatible UARTs.

Signed-off-by: Andrei Konovalov <akonovalov@ru.mvista.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Matt Porter <mporter@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] invalidate page race fix
Jens Axboe [Mon, 18 Oct 2004 15:56:50 +0000 (08:56 -0700)]
[PATCH] invalidate page race fix

invalidate_inode_pages() and invalidate_inode_pages2() can mark pages not
uptodate while read() is trying to read from them.  This is interpreted as
an I/O error.

Fix that by teaching the invalidate code to leave the page alone if someone
else has a ref on it.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] doc: remove references to hardirq.c
Ingo Molnar [Mon, 18 Oct 2004 15:56:37 +0000 (08:56 -0700)]
[PATCH] doc: remove references to hardirq.c

The patch below removes stale references to kernel/hardirq.c in comments,
remnants of the earlier iterations of the generic irq subsystem code.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] generic irq subsystem: ppc64 port
Ingo Molnar [Mon, 18 Oct 2004 15:56:25 +0000 (08:56 -0700)]
[PATCH] generic irq subsystem: ppc64 port

ppc64 port of generic hardirq handling.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] generic irq subsystem: ppc port
Ingo Molnar [Mon, 18 Oct 2004 15:56:12 +0000 (08:56 -0700)]
[PATCH] generic irq subsystem: ppc port

ppc32 port of generic hardirq handling.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] generic irq subsystem: x86_64 port
Ingo Molnar [Mon, 18 Oct 2004 15:55:59 +0000 (08:55 -0700)]
[PATCH] generic irq subsystem: x86_64 port

x86_64 port of generic hardirq handling.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] generic irq subsystem: x86 port
Ingo Molnar [Mon, 18 Oct 2004 15:55:47 +0000 (08:55 -0700)]
[PATCH] generic irq subsystem: x86 port

x86 port of generic hardirq handling.

akpm: (in response to build errors)

- remove APIC_MISMATCH_DEBUG altogether.  Just make it synonymous with
  CONFIG_X86_IO_APIC

- Move the definition of irq_mis_count over to io_apic.c

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] generic irq subsystem: core
Ingo Molnar [Mon, 18 Oct 2004 15:55:37 +0000 (08:55 -0700)]
[PATCH] generic irq subsystem: core

The main goal of this patch is to consolidate all the different but still
fundamentally similar arch/*/kernel/irq.c code into the kernel/irq/ subsystem.

There are 4 new files in the kernel/irq/ directory:

 - handle.c: core bits: __do_IRQ() and handle_IRQ_event(),
   callable from arch-specific irq.c code.

 - manage.c: the main driver apis

 - spurious.c: the handling of buggy interrupt sources.

 - autoprobe.c: probing of interrupts - older code but still in use.

 - proc.c: /proc/irq/ code.

 - internals.h for irq-core-internal interfaces not visible to drivers
   nor arch PIC code.

An architecture enables the generic hardirq code by defining
CONFIG_GENERIC_HARDIRQS in its arch Kconfig.  People doing this conversion
should check out the x86/x64/ppc/ppc64 patches for details - the conversion is
quite straightforward but every converted function (i.e.  every function
removed from the arch irq.c) _must_ be matched to the generic version and if
there is any detail that the generic code should do it has to be added to the
generic code.  All of the currently converted 4 architectures were converted
like that, and the generic code was extended/fixed along the way.

Other changes related to this patchset:

 - clean up the irq include files (linux/irq.h, linux/interrupt.h,
   linux/hardirq.h) and consolidate asm-*/[hard]irq.h. Note, to keep all
   non-touched architectures in an untouched state this consolidation is
   done carefully and strictly under CONFIG_GENERIC_HARDIRQS.

   Once the consolidation is done we can do a couple of final cleanups
   to reach the following logical splitup of 3 include files:

     linux/interrupt.h: driver-visible APIs and details
     linux/irq.h:       core irq and arch-PIC code, internals
     asm-*/irq.h:       arch PIC and irq delivery details

   the following include files will likely vanish:

     linux/hardirq.h    merges into linux/irq.h
     asm-*/hardirq.h:   merges into asm-*/irq.h
     asm-*/hw_irq.h:    merges into asm-*/irq.h

   Christoph would like to do these once the current wave of
   cleanups gets in.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] fork() bug invalidates file descriptors
Gregory Kurz [Mon, 18 Oct 2004 15:55:24 +0000 (08:55 -0700)]
[PATCH] fork() bug invalidates file descriptors

Take a process P1 that spawns a thread T (aka.  a clone with CLONE_FILES).
If P1 forks another process P2 (aka.  not a clone) while T is blocked in a
open() that should return file descriptor FD, then FD will be unusable in
P2.  This leads to strange behaviors in the context of P2: close(FD)
returns EBADF, while dup2(a_valid_fd, FD) returns EBUSY and of course FD is
never returned again by any syscall...

testcase:

#include <errno.h>
#include <fcntl.h>
#include <sched.h>
#include <signal.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <asm/page.h>

#define FIFO "/tmp/bug_fifo"
#define FD   0

/*
 * This program is meant to show that calling fork() while a clone spawned
 * with CLONE_FILES is blocked in open() makes a fd number unusable in the
 * child.
 *
 *
 *     Parent               Clone                Child
 *        |
 *   clone(CLONE_FILES)-

21 years ago[PATCH] fix the prof=schedule feature
Ingo Molnar [Mon, 18 Oct 2004 15:55:12 +0000 (08:55 -0700)]
[PATCH] fix the prof=schedule feature

Fix mismerge of the "prof=schedule" feature.  Without this patch the output
is a boring empty profile.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] reiserfs: small filesystem fix
Chris Mason [Mon, 18 Oct 2004 15:55:00 +0000 (08:55 -0700)]
[PATCH] reiserfs: small filesystem fix

On small filesystems (<128M), make sure not to reference bitmap blocks that
don't exist.

Thanks to Jan Kara for finding this bug.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] __set_page_dirty_nobuffers mappings
Hugh Dickins [Mon, 18 Oct 2004 15:54:48 +0000 (08:54 -0700)]
[PATCH] __set_page_dirty_nobuffers mappings

Marcelo noticed that the BUG_ON in __set_page_dirty_nobuffers doesn't make
much sense: it lost its way in 2.6.7, amidst so many page_mappings!

It's supposed to be checking that, although page->mapping may suddenly go NULL
from truncation, and although tmpfs swizzles page_mapping(page) between tmpfs
inode address_space and swapper_space, there's sufficient stabilization while
here in __set_page_dirty_nobuffers that the mapping after we locked
mapping->tree_lock is the same as the mapping before we locked
mapping->tree_lock i.e.  the lock we hold is the right one.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] exec: fix posix-timers leak and pending signal loss
Roland McGrath [Mon, 18 Oct 2004 15:54:38 +0000 (08:54 -0700)]
[PATCH] exec: fix posix-timers leak and pending signal loss

I've found some problems with exec and fixed them with this patch to
de_thread.

The second problem is that a multithreaded exec loses all pending signals.
This is violation of POSIX rules.  But a moment's thought will show it's
also just not desireable: if you send a process a SIGTERM while it's in the
middle of calling exec, you expect either the original program in that
process or the new program being exec'd to handle that signal or be killed
by it.  As it stands now, you can try to kill a process and have that
signal just evaporate if it's multithreaded and calls exec just then.  I
really don't know what the rationale was behind the de_thread code that
allocates a new signal_struct.  It doesn't make any sense now.  The other
code there ensures that the old signal_struct is no longer shared.  Except
for posix-timers, all the state there is stuff you want to keep.  So my
changes just keep the old structs when they are no longer shared, and all
the right state is retained (after clearing out posix-timers).

The final bug is that the cumulative statistics of dead threads and dead
child processes are lost in the abandoned signal_struct.  This is also
fixed by holding on to it instead of replacing it.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] show aggregate per-process counters in /proc/PID/stat 2
Lev Makhlis [Mon, 18 Oct 2004 15:54:26 +0000 (08:54 -0700)]
[PATCH] show aggregate per-process counters in /proc/PID/stat 2

Add up resource usage counters for live and dead threads to show aggregate
per-process usage in /proc/<pid>/stat.  This mirrors the new getrusage()
semantics.  /proc/<pid>/task/<tid>/stat still has the per-thread usage.

After moving the counter aggregation loop inside a task->sighand lock to
avoid nasty race conditions, it has survived stress-testing with '(while
true; do sleep 1 & done) & top -d 0.1'

Signed-off-by: Lev Makhlis <mlev@despammed.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] distinct tgid/tid CPU usage
Albert Cahalan [Mon, 18 Oct 2004 15:54:14 +0000 (08:54 -0700)]
[PATCH] distinct tgid/tid CPU usage

This patch adjusts /proc/*/stat to have distinct per-process and per-thread
CPU usage, faults, and wchan.

Signed-off-by: Albert Cahalan <albert@users.sf.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] add missing linux/syscalls.h includes
Arnd Bergmann [Mon, 18 Oct 2004 15:54:02 +0000 (08:54 -0700)]
[PATCH] add missing linux/syscalls.h includes

I found that the prototypes for sys_waitid and sys_fcntl in
<linux/syscalls.h> don't match the implementation.  In order to keep all
prototypes in sync in the future, now include the header from each file
implementing any syscall.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] softirqs: fix latency of softirq processing
Ingo Molnar [Mon, 18 Oct 2004 15:53:48 +0000 (08:53 -0700)]
[PATCH] softirqs: fix latency of softirq processing

The attached patch fixes a local_bh_enable() buglet: we first enabled
softirqs then did we do local_softirq_pending() - often this is preemptible
code.  So this task could be preempted and there's no guarantee that
softirq processing will occur (except the periodic timer tick).

The race window is small but existent.  This could result in packet
processing latencies or timer expiration latencies - hard to detect and
annoying bugs.

The fix is to invoke softirqs with softirqs enabled but preemption still
disabled.  Patch is against 2.6.9-rc2-mm1.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] fix PTRACE_ATTACH race with real parent's wait calls
Roland McGrath [Mon, 18 Oct 2004 15:53:35 +0000 (08:53 -0700)]
[PATCH] fix PTRACE_ATTACH race with real parent's wait calls

There is a race between PTRACE_ATTACH and the real parent calling wait.
For a moment, the task is put in PT_PTRACED but with its parent still
pointing to its real_parent.  In this circumstance, if the real parent
calls wait without the WUNTRACED flag, he can see a stopped child status,
which wait should never return without WUNTRACED when the caller is not
using ptrace.  Here it is not the caller that is using ptrace, but some
third party.

This patch avoids this race condition by adding the PT_ATTACHED flag to
distinguish a real parent from a ptrace_attach parent when PT_PTRACED is
set, and then having wait use this flag to confirm that things are in order
and not consider the child ptraced when its ->ptrace flags are set but its
parent links have not yet been switched.  (ptrace_check_attach also uses it
similarly to rule out a possible race with a bogus ptrace call by the real
parent during ptrace_attach.)

While looking into this, I noticed that every arch's sys_execve has:

current->ptrace &= ~PT_DTRACE;

with no locking at all.  So, if an exec happens in a race with
PTRACE_ATTACH, you could wind up with ->ptrace not having PT_PTRACED set
because this store clobbered it.  That will cause later BUG hits because
the parent links indicate ptracedness but the flag is not set.  The patch
corrects all the places I found to use task_lock around diddling ->ptrace
when it's possible to be racing with ptrace_attach.  (The ptrace operation
code itself doesn't have this issue because it already excludes anyone else
being in ptrace_attach.)

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] add WCONTINUED support to wait4 syscall
Roland McGrath [Mon, 18 Oct 2004 15:53:22 +0000 (08:53 -0700)]
[PATCH] add WCONTINUED support to wait4 syscall

POSIX specifies the new WCONTINUED flag for waitpid, not just for waitid.
I overlooked this addition when I implemented waitid.  The real work was
already done to support waitid, but waitpid needs to report the results

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] make rlimit settings per-process instead of per-thread
Roland McGrath [Mon, 18 Oct 2004 15:53:09 +0000 (08:53 -0700)]
[PATCH] make rlimit settings per-process instead of per-thread

POSIX specifies that the limit settings provided by getrlimit/setrlimit are
shared by the whole process, not specific to individual threads.  This
patch changes the behavior of those calls to comply with POSIX.

I've moved the struct rlimit array from task_struct to signal_struct, as it
has the correct sharing properties.  (This reduces kernel memory usage per
thread in multithreaded processes by around 100/200 bytes for 32/64
machines respectively.)  I took a fairly minimal approach to the locking
issues with the newly shared struct rlimit array.  It turns out that all
the code that is checking limits really just needs to look at one word at a
time (one rlim_cur field, usually).  It's only the few places like
getrlimit itself (and fork), that require atomicity in accessing a whole
struct rlimit, so I just used a spin lock for them and no locking for most
of the checks.  If it turns out that readers of struct rlimit need more
atomicity where they are now cheap, or less overhead where they are now
atomic (e.g. fork), then seqcount is certainly the right thing to use for
them instead of readers using the spin lock.  Though it's in signal_struct,
I didn't use siglock since the access to rlimits never needs to disable
irqs and doesn't overlap with other siglock uses.  Instead of adding
something new, I overloaded task_lock(task->group_leader) for this; it is
used for other things that are not likely to happen simultaneously with
limit tweaking.  To me that seems preferable to adding a word, but it would
be trivial (and arguably cleaner) to add a separate lock for these users
(or e.g. just use seqlock, which adds two words but is optimal for readers).

Most of the changes here are just the trivial s/->rlim/->signal->rlim/.

I stumbled across what must be a long-standing bug, in reparent_to_init.
It does:
memcpy(current->rlim, init_task.rlim, sizeof(*(current->rlim)));
when surely it was intended to be:
memcpy(current->rlim, init_task.rlim, sizeof(current->rlim));
As rlim is an array, the * in the sizeof expression gets the size of the
first element, so this just changes the first limit (RLIMIT_CPU).  This is
for kernel threads, where it's clear that resetting all the rlimits is what
you want.  With that fixed, the setting of RLIMIT_FSIZE in nfsd is
superfluous since it will now already have been reset to RLIM_INFINITY.

The other subtlety is removing:
tsk->rlim[RLIMIT_CPU].rlim_cur = RLIM_INFINITY;
in exit_notify, which was to avoid a race signalling during self-reaping
exit.  As the limit is now shared, a dying thread should not change it for
others.  Instead, I avoid that race by checking current->state before the
RLIMIT_CPU check.  (Adding one new conditional in that path is now required
one way or another, since if not for this check there would also be a new
race with self-reaping exit later on clearing current->signal that would
have to be checked for.)

The one loose end left by this patch is with process accounting.
do_acct_process temporarily resets the RLIMIT_FSIZE limit while writing the
accounting record.  I left this as it was, but it is now changing a limit
that might be shared by other threads still running.  I left this in a
dubious state because it seems to me that processing accounting may already
be more generally a dubious state when it comes to NPTL threads.  I would
think you would want one record per process, with aggregate data about all
threads that ever lived in it, not a separate record for each thread.
I don't use process accounting myself, but if anyone is interested in
testing it out I could provide a patch to change it this way.

One final note, this is not 100% to POSIX compliance in regards to rlimits.
POSIX specifies that RLIMIT_CPU refers to a whole process in aggregate, not
to each individual thread.  I will provide patches later on to achieve that
change, assuming this patch goes in first.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] i386 entry.S cleanups
Ingo Molnar [Mon, 18 Oct 2004 15:52:55 +0000 (08:52 -0700)]
[PATCH] i386 entry.S cleanups

Remove the unused lcall7/lcall27 code.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] acpi proc: error handling
Pavel Machek [Mon, 18 Oct 2004 15:52:43 +0000 (08:52 -0700)]
[PATCH] acpi proc: error handling

Propagate the software_suspend() return value.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] swsusp: progress in percent
Pavel Machek [Mon, 18 Oct 2004 15:52:31 +0000 (08:52 -0700)]
[PATCH] swsusp: progress in percent

swsusp currently has very poor progress indication.  Thanks to Erik Rigtorp
<erik@rigtorp.com>, we have percentages there, so people know how long wait
to expect.  Please apply,

From: Erik Rigtorp <erik@rigtorp.com>
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] parport_pc superio chip fixes
Andrea Arcangeli [Mon, 18 Oct 2004 15:52:19 +0000 (08:52 -0700)]
[PATCH] parport_pc superio chip fixes

This patch fixes some troubles that somebody reported me with the superio
chips.

In short rmmod parport_pc && cat /proc/iomem was good enough for crashing
the box hard on some machine (and hwscan --printer was doing just that).
The way the oops triggers is that iomem tries to vsprintf the p->name, but
the p->name was a static string in the module address (now unloaded).

The reason is that the superio chip scanning leaves up to two persistent
ranges claimed.  But the second (legacy) pass has no way to notice the
resources are already reclaimed.  Plus if the superio->io was different
than the "io" variable (the range to scan for superio chips) the "io" range
would generate a leak of the original "io" range too.

I simply make sure to always release the requested space during the superio
scan, and I make sure not to istantiate new ranges in the p->base that
would cause the later parport scan to fail too (plus leaving up to leaked
resources).

The previous code that was returning values and was leaving garbage in
there made no sense to me.  My best guess (assuming I didn't misread it ;)
is that probably somebody added the request_region without realizing
they're pointing to the very same address that would be requested later
(and nobody does accesses on those ranges until later, so it was very safe
to claim it later).

Disclaimer: I don't have the specs of the winbond and smsc at hand, I just
guessed what they do from the code (nothing checks superio->io except
get_superio_dma get_superio_irq, which made the thing enough self
explainatory to fix it without specs)

Signed-off-by: Andrea Arcangeli <andrea@novell.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] add sys_setaltroot()
Seth Rohit [Mon, 18 Oct 2004 15:52:07 +0000 (08:52 -0700)]
[PATCH] add sys_setaltroot()

Add a new system call setaltroot(2).

Currently, using the altroot feature is accessible only via the
set_personality() system call.  It is accessible to user space only if there
is more than one exec domain in the system.  This patch allows using the
altroot feature on systems where there is only one exec domain.

It is possible to work around the issue by adding a dummy exec domain, but it
was rejected for not being very elegant.

If this feature is implemented in userspace, it adds a 16% overhead on a test
case which greps for a single word in the kernel source tree.

Signed-off-by: Zou Nanhai <nanhai.zou@intel.com>
Signed-off-by: Gordon Jin <gordon.jin@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years agoWrap <linux/compiler.h> inside '#ifndef __ASSEMBLY__'
Linus Torvalds [Mon, 18 Oct 2004 15:43:26 +0000 (08:43 -0700)]
Wrap <linux/compiler.h> inside '#ifndef __ASSEMBLY__'

None of the compatibility defines make sense for assembly
files, and gcc has trouble with vararg macros when using
"-traditional" (which is used for asm), to the point of
ICE'ing.

21 years agoAdd copyright notice on ppc64 iomap files.
Linus Torvalds [Mon, 18 Oct 2004 15:27:41 +0000 (08:27 -0700)]
Add copyright notice on ppc64 iomap files.

Paul cares. I think there's something in the water at IBM
that makes people sticklers ;)

21 years ago[PATCH] ppc64: Fix iSeries build (ouch !)
Benjamin Herrenschmidt [Mon, 18 Oct 2004 15:23:22 +0000 (08:23 -0700)]
[PATCH] ppc64: Fix iSeries build (ouch !)

The move of iomap out of eeh inadvertently broke iSeries ...

Fixed like this.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] ppc32/64: FPU/vector register restore after signal
Benjamin Herrenschmidt [Mon, 18 Oct 2004 15:23:09 +0000 (08:23 -0700)]
[PATCH] ppc32/64: FPU/vector register restore after signal

This fixes some issues with restoring the altivec and/or FPU registers
upon return from a signal or when setting a context.  It also add a
proper stack backlink to the signal frames created for 64 bits
applications.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years agoOlder gcc's ICE on missing (unused) varags macro name.
Linus Torvalds [Mon, 18 Oct 2004 15:16:52 +0000 (08:16 -0700)]
Older gcc's ICE on missing (unused) varags macro name.

21 years agoMerge bk://gkernel.bkbits.net/net-drivers-2.6
Linus Torvalds [Mon, 18 Oct 2004 15:01:20 +0000 (08:01 -0700)]
Merge bk://gkernel.bkbits.net/net-drivers-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

21 years agoMerge bk://gkernel.bkbits.net/libata-2.6
Linus Torvalds [Mon, 18 Oct 2004 09:41:51 +0000 (02:41 -0700)]
Merge bk://gkernel.bkbits.net/libata-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

21 years agoMerge pobox.com:/spare/repo/linux-2.6
Jeff Garzik [Mon, 18 Oct 2004 13:37:54 +0000 (09:37 -0400)]
Merge pobox.com:/spare/repo/linux-2.6
into pobox.com:/spare/repo/libata-2.6

21 years agoAdd fake '__builtin_warning()' for the gcc case.
Linus Torvalds [Mon, 18 Oct 2004 08:50:44 +0000 (01:50 -0700)]
Add fake '__builtin_warning()' for the gcc case.

Allows us to do compile-time sparse warnings of our own.

21 years agoMerge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6
Linus Torvalds [Mon, 18 Oct 2004 08:45:15 +0000 (01:45 -0700)]
Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux

21 years agoMerge titanic.il.steeleye.com:/home/jejb/BK/scsi-target-2.6
James Bottomley [Mon, 18 Oct 2004 11:48:22 +0000 (06:48 -0500)]
Merge titanic.il.steeleye.com:/home/jejb/BK/scsi-target-2.6
into titanic.il.steeleye.com:/home/jejb/BK/scsi-for-linus-2.6

21 years agoaic7xxx and aic79xx: fix sleeping while holding a lock
James Bottomley [Mon, 18 Oct 2004 10:57:44 +0000 (05:57 -0500)]
aic7xxx and aic79xx: fix sleeping while holding a lock

From: Luben Tuikov <luben_tuikov@adaptec.com>

Fix sleeping while holding a lock on host removal and on
killing the DV thread.

Signed-off-by: Luben Tuikov <luben_tuikov@adaptec.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
21 years agoSCSI: fix Suspend I/O block/unblock path
James Bottomley [Mon, 18 Oct 2004 10:43:05 +0000 (05:43 -0500)]
SCSI: fix Suspend I/O block/unblock path

From: James.Smart@Emulex.Com

urther testing is showing that we are having some i/o threads
prematurely die with the following message: "rejecting I/O to device
being removed"

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
21 years ago[PATCH] cciss: fixes for clustering
Mike Miller [Mon, 18 Oct 2004 09:52:20 +0000 (04:52 -0500)]
[PATCH] cciss: fixes for clustering

This patch changes our open specifically for clustering software. We must
allow root to access any volume or device with a LUN ID. We also modified
our revalidate function for this reason.
If a logical is reserved, we must register it with the OS with size=0. Then
the backup system can call BLKRRPART after breaking the reservation to
set the device to the correct size.
We also must register a controller with no logical volumes for the online
utilities to function. This is the way we've done it since the 2.2 kernel.
Which doesn't neccesarily make it right, but we have legacy apps to consider.

Signed off by: Mike Miller <mike.miller@hp.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
21 years agoMerge bk://bk.arm.linux.org.uk/linux-2.6-rmk
Linus Torvalds [Mon, 18 Oct 2004 08:41:42 +0000 (01:41 -0700)]
Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk
into ppc970.osdl.org:/home/torvalds/v2.6/linux

21 years ago[ARM PATCH] 2145/1: S3C2410 - GPIO ID register update
Ben Dooks [Tue, 19 Oct 2004 00:02:02 +0000 (01:02 +0100)]
[ARM PATCH] 2145/1: S3C2410 - GPIO ID register update

Patch from Ben Dooks

Update the include/asm-arm/arch-s3c2410/regs-gpio.h with
GSTATUS1 register information

Signed-off-by: Ben Dooks
21 years ago[ARM PATCH] 2144/1: S3C2410 - s3c2440 fixes and clock updates
Ben Dooks [Mon, 18 Oct 2004 23:56:50 +0000 (00:56 +0100)]
[ARM PATCH] 2144/1: S3C2410 - s3c2440 fixes and clock updates

Patch from Ben Dooks

Fixes the following problems and ommisions:

 - added variable for base crystal rate
 - moved clock variables into clock.c
 - fixed bug in identifying s3c2440 cpus
 - added initial support for new uart registration
 - removed base blocks from include/asm/arch/hardware.h

Signed-off-by: Ben Dooks
21 years ago[ARM PATCH] 2131/1: Add _iomem to the IO string functions
Ben Dooks [Mon, 18 Oct 2004 23:48:44 +0000 (00:48 +0100)]
[ARM PATCH] 2131/1: Add _iomem to the IO string functions

Patch from Ben Dooks

This patch stops mtd from generating problems of
casting pointers to ints, due to the memcpy_fromio
and related functions all taking `unsigned long`
for their IO addresses.

Replace `unsigned long` with `void __iomem *`

Compiled clean on arch-s3c2410

Signed-off-by: Ben Dooks
21 years ago[PATCH] sparse __iomem annotations for qla2xxx
Christoph Hellwig [Mon, 18 Oct 2004 06:12:19 +0000 (01:12 -0500)]
[PATCH] sparse __iomem annotations for qla2xxx

this also found a real bug, qla2xxx isn't iounmapping at host removal at
all currently - and if the right cpp macro would have been set it'd be
too late.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
21 years agoLinux 2.6.9 v2.6.9
Linus Torvalds [Mon, 18 Oct 2004 04:50:06 +0000 (21:50 -0700)]
Linux 2.6.9

21 years ago[PATCH] USB: handle NAK packets in input devices.
Greg Kroah-Hartman [Mon, 18 Oct 2004 04:46:50 +0000 (21:46 -0700)]
[PATCH] USB: handle NAK packets in input devices.

Andrew requested this fix go in before 2.6.9 was out, to keep people's
syslog quiet for a lot of different USB input devices.

Fixes bug bugzilla.kernel.org bug #3564

Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] Duh. _Really_ unbalanced locking in MTD Intel chip driver
Nicolas Pitre [Mon, 18 Oct 2004 04:46:38 +0000 (21:46 -0700)]
[PATCH] Duh. _Really_ unbalanced locking in MTD Intel chip driver

I apparently can't copy simple obvious fixes by hand.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] unbalanced locking in MTD Intel chip driver
Nicolas Pitre [Mon, 18 Oct 2004 02:00:40 +0000 (19:00 -0700)]
[PATCH] unbalanced locking in MTD Intel chip driver

This obvious missing unlock is screwing the preemption count.
Fix was applied to MTD CVS already.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] security issue in firmware system
Oliver Neukum [Mon, 18 Oct 2004 01:22:09 +0000 (18:22 -0700)]
[PATCH] security issue in firmware system

The firmware loader has a security issue.  Firmware on some devices can
write to all memory through DMA.  Therefore the ability to feed firmware
to the kernel is equivalent to writing to /dev/kmem.  CAP_SYS_RAWIO is
needed to protect itself.

[ Editors note: the firmware file is 0644, and owned by root, so this
  "security issue" is really only an issue for people who use
  capabilities explicitly, rather than the regular Unix permissions.
  This patch makes it do the same checks we do for /dev/mem etc.  ]

Signed-Off-By: Oliver Neukum <oliver@neukum.name>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] Fix NFS3 krb5 clients on x86-64
Mark Goodman [Mon, 18 Oct 2004 01:21:57 +0000 (18:21 -0700)]
[PATCH] Fix NFS3 krb5 clients on x86-64

This patch is necessary to make NFS3 krb5 clients work on x86-64.

ACK'ed by Trond

Signed-off-by: Mark Goodman <mgoodman@csua.berkeley.edu>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] cciss: SCSI API updates
Mike Miller [Sun, 17 Oct 2004 04:21:31 +0000 (23:21 -0500)]
[PATCH] cciss: SCSI API updates

This patch updates our SCSI support to no longer use deprecated APIs.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
21 years ago[PATCH] ppc64: fix smp_startup_cpu for cpu hotplug
Nathan Lynch [Sun, 17 Oct 2004 02:21:08 +0000 (19:21 -0700)]
[PATCH] ppc64:  fix smp_startup_cpu for cpu hotplug

This change is needed in order to allow cpus to be onlined after
boot.  This used to work but the declaration of
pseries_secondary_smp_init in this file was changed in Ben's big
cleanup patch a while back, so the cpu would start at a bad address.

Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] kswapd lockup fix
Nick Piggin [Sun, 17 Oct 2004 02:20:56 +0000 (19:20 -0700)]
[PATCH] kswapd lockup fix

Fix some bugs in the kswapd logic which can cause kswapd lockups.

The balance_pgdat() logic is supposed to cause kswapd to loop across all zones
in the node until each zone either

a) has enough pages free or

b) is deemed to be in an "all pages unreclaimable" state.

In the latter case, we just give the zone a light scan on each balance_pgdat()
scan and wait for the zone to come back to life again.

But the zone->all_unreclaimable logic is broken - if the zone has no pages on
the LRU at all, we perform no scanning of that zone (of course).  So the
zone->pages_scanned is not incremented and the expression

if (zone->pages_scanned > zone->present_pages * 2)
zone->all_unreclaimable = 1;

never is satisfied.

The patch changes that logic to

if (zone->pages_scanned >= (zone->nr_active +
zone->nr_inactive) * 4)
zone->all_unreclaimable = 1;

so if the zone has no LRU pages it will still enter the all_unreclaimable
state.

Another problem is that if the zone has no LRU pages we will tell
shrink_slab() that we scanned zero LRU pages.  This causes shrink_slab() to
scan zero slab objects, which is obviously wrong.  So change shrink_slab() to
perform a decent chunk of slab scanning in this situation.

And put a cond_resched() into the balance_pgdat() outer loop.  Probably
unnecessary, but that's what Jeff had in place when he confirmed that this
patch fixed the lockup :(

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] swsusp: fix x86-64 - do not use memory in copy loop
Pavel Machek [Sun, 17 Oct 2004 02:20:42 +0000 (19:20 -0700)]
[PATCH] swsusp: fix x86-64 - do not use memory in copy loop

In assembly code, there are some problems with "nosave" section (linker was
doing something stupid, like duplicating the section).  We attempted to fix
it, but fix was worse then first problem.  This fixes is for good: We no
longer use any memory in the copy loop.  (Plus it fixes indentation and
uses meaningful labels.)

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] tailcall prevention in sys_wait4() and sys_waitid()
Ingo Molnar [Sun, 17 Oct 2004 02:20:30 +0000 (19:20 -0700)]
[PATCH] tailcall prevention in sys_wait4() and sys_waitid()

A hack to prevent the compiler from generatin tailcalls in these two
functions.

With CONFIG_REGPARM=y, the tailcalled code ends up stomping on the
syscall's argument frame which corrupts userspace's registers.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 years ago[PATCH] intel_agp: dangling devexit reference
Randy Dunlap [Sun, 17 Oct 2004 02:20:18 +0000 (19:20 -0700)]
[PATCH] intel_agp: dangling devexit reference

Fix error found by 'scripts/reference_discarded.pl':
Error: ./drivers/char/agp/intel-agp.o .data refers to 00000914 R_386_32          .exit.text

Signed-off-by: Randy Dunlap <rddunlap@osdl.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>