linux-2.6
18 years ago[PARISC] Move ioremap EXPORT_SYMBOL from parisc_ksyms.c
Kyle McMartin [Wed, 29 Mar 2006 22:18:32 +0000 (15:18 -0700)] 
[PARISC] Move ioremap EXPORT_SYMBOL from parisc_ksyms.c

Move ioremap/iounmap EXPORT_SYMBOL to ioremap.c where they belong.

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Make local_t use atomic_long_t
Kyle McMartin [Wed, 29 Mar 2006 14:04:49 +0000 (07:04 -0700)] 
[PARISC] Make local_t use atomic_long_t

As done in asm-generic/local.h in mainline. Otherwise local_t was 32-bit
even on a 64-bit kernel.

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Update defconfigs
Helge Deller [Sun, 26 Mar 2006 18:19:46 +0000 (11:19 -0700)] 
[PARISC] Update defconfigs

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Add PREEMPT support
Kyle McMartin [Sat, 25 Mar 2006 04:24:21 +0000 (21:24 -0700)] 
[PARISC] Add PREEMPT support

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] More useful readwrite lock helpers
Kyle McMartin [Sat, 25 Mar 2006 04:22:02 +0000 (21:22 -0700)] 
[PARISC] More useful readwrite lock helpers

spinlock.c needs _can_lock helpers. Rewrite _is_locked helpers to be
_can_lock helpers.

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Convert HIL drivers to use input_allocate_device
Helge Deller [Sun, 26 Mar 2006 14:41:55 +0000 (07:41 -0700)] 
[PARISC] Convert HIL drivers to use input_allocate_device

Convert HIL drivers to use input_allocate_device() - avoids crashes.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Fixup CONFIG_EISA a bit
Helge Deller [Sun, 26 Mar 2006 08:54:16 +0000 (01:54 -0700)] 
[PARISC] Fixup CONFIG_EISA a bit

Fix up some ISA/EISA stuff.

(Note: isa_ accessors have been removed from asm/io.h)

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] getsockopt should be ENTRY_COMP
Kyle McMartin [Sun, 19 Feb 2006 18:02:50 +0000 (11:02 -0700)] 
[PARISC] getsockopt should be ENTRY_COMP

compat_sys_getsockopt exists, so we should use that, instead of directly
using sys_getsockopt on 64-bit compiles.

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Remove obsolete CONFIG_DEBUG_IOREMAP
Helge Deller [Thu, 23 Mar 2006 08:07:00 +0000 (01:07 -0700)] 
[PARISC] Remove obsolete CONFIG_DEBUG_IOREMAP

Remove CONFIG_DEBUG_IOREMAP, it's now obsolete and won't work anyway.
Remove it from lib/KConfig since it was only available on parisc.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Temporary FIXME for ioremapping EISA regions
Helge Deller [Thu, 23 Mar 2006 07:40:10 +0000 (00:40 -0700)] 
[PARISC] Temporary FIXME for ioremapping EISA regions

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Enable ioremap functionality unconditionally
Helge Deller [Thu, 23 Mar 2006 07:32:46 +0000 (00:32 -0700)] 
[PARISC] Enable ioremap functionality unconditionally

Enable CONFIG_HPPA_IOREMAP by default and remove all now unnecessary code.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Fix stifb with IOREMAP and a 64-bit kernel
Helge Deller [Wed, 22 Mar 2006 22:19:46 +0000 (15:19 -0700)] 
[PARISC] Fix stifb with IOREMAP and a 64-bit kernel

Kill various warnings when built using ioremap.
Remove stifb_{read,write} functions, which are now obsolete (and stack abusers!)
Disable stifb mmap() functionality on a 64-bit kernel, it will crash the
machine.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Add CONFIG_HPPA_IOREMAP to conditionally enable ioremap
Helge Deller [Tue, 7 Mar 2006 21:12:13 +0000 (14:12 -0700)] 
[PARISC] Add CONFIG_HPPA_IOREMAP to conditionally enable ioremap

Instead of making it a #define in asm/io.h, allow user to select
to turn on IOREMAP from the config menu.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Add STRICT_MM_TYPECHECKS
Helge Deller [Thu, 23 Mar 2006 22:48:15 +0000 (15:48 -0700)] 
[PARISC] Add STRICT_MM_TYPECHECKS

Add STRICT_MM_TYPECHECKS to page.h as other architectures do.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Fix IOREMAP with a 64-bit kernel
Helge Deller [Tue, 21 Mar 2006 23:01:15 +0000 (16:01 -0700)] 
[PARISC] Fix IOREMAP with a 64-bit kernel

We were only copying 32-bits of the PTE/PFN, not the full 52-bits.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Add parisc implementation of flush_kernel_dcache_page()
James Bottomley [Wed, 22 Mar 2006 16:42:04 +0000 (09:42 -0700)] 
[PARISC] Add parisc implementation of flush_kernel_dcache_page()

We need to do a little renaming of our original syntax because
of the difference in arguments.

Signed-off-by: James Bottomley <jejb@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Add parisc implementation of flush_anon_page()
James Bottomley [Wed, 22 Mar 2006 15:28:59 +0000 (08:28 -0700)] 
[PARISC] Add parisc implementation of flush_anon_page()

This should now allow SG_IO and fuse to function correctly on our
platform.

Signed-off-by: James Bottomley <jejb@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] I/O-Space must be ioremap_nocache()'d
Helge Deller [Mon, 27 Mar 2006 19:52:15 +0000 (12:52 -0700)] 
[PARISC] I/O-Space must be ioremap_nocache()'d

Addresses in F-space must be accessed uncached on most parisc machines.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Enable free_initrd_mem()
Helge Deller [Tue, 7 Mar 2006 20:34:45 +0000 (13:34 -0700)] 
[PARISC] Enable free_initrd_mem()

I think it's time to enable free_initrd_mem() again...

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PARISC] Clarify pdc_stable license terms
Thibaut VARENE [Sat, 4 Feb 2006 01:06:30 +0000 (18:06 -0700)] 
[PARISC] Clarify pdc_stable license terms

pdc_stable.c is explicitly licensed under GPL version 2.

Signed-off-by: Thibaut VARENE <varenet@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
18 years ago[PATCH] ixp2000: fix gcc4 breakage
Lennert Buytenhek [Wed, 29 Mar 2006 13:12:44 +0000 (15:12 +0200)] 
[PATCH] ixp2000: fix gcc4 breakage

gcc4 doesn't like us declaring a static function inside another
function.  We can do away with this construct altogether and use
BUILD_BUG_ON() instead (idea from Andi Kleen.)

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] b44: ensure valid mac addr
Gary Zambrano [Tue, 28 Mar 2006 22:57:38 +0000 (14:57 -0800)] 
[PATCH] b44: ensure valid mac addr

Added code to check for invalid MAC address from eeprom or user input.

Signed-off-by: Gary Zambrano <zambrano@broadcom.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] Janitor: drivers/net/pcnet32: fix incorrect comments
Linas Vepstas [Tue, 28 Mar 2006 22:36:23 +0000 (16:36 -0600)] 
[PATCH] Janitor: drivers/net/pcnet32: fix incorrect comments

The comments concerning how the pcnet32 ethernet device driver selects
the MAC addr to use are incorrect. A recent patch (in the last 3 months)
changed how the code worked, but did not change the comments.

Side comment: the new behaviour is good; I've got a pcnet32 card which
powers up with garbage in the CSR's, and a good MAC addr in the PROM.

Signed-off-by: Linas Vepstas <linas@linas.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] net: remove CONFIG_NET_CBUS conditional for NS8390
Arthur Othieno [Tue, 28 Mar 2006 22:09:01 +0000 (14:09 -0800)] 
[PATCH] net: remove CONFIG_NET_CBUS conditional for NS8390

Don't bother testing for CONFIG_NET_CBUS ("NEC PC-9800 C-bus cards"); it went
out with the rest of PC98 subarch.

Signed-off-by: Arthur Othieno <apgo@patchbomb.org>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] natsemi: Support oversized EEPROMs
Mark Brown [Tue, 28 Mar 2006 22:08:55 +0000 (14:08 -0800)] 
[PATCH] natsemi: Support oversized EEPROMs

The natsemi chip can have a larger EEPROM attached than it itself uses for
configuration.  This patch adds support for user space access to such an
EEPROM.

Signed-off-by: Mark Brown <broonie@sirena.org.uk>
Cc: Tim Hockin <thockin@hockin.org>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] spidernet : enable tx checksum offloading by default
Jens Osterkamp [Mon, 27 Mar 2006 15:16:36 +0000 (17:16 +0200)] 
[PATCH] spidernet : enable tx checksum offloading by default

This enables TX checksum offloading for the spidernet driver by default.

Signed-off-by: Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] bonding: support carrier state for master
Jay Vosburgh [Mon, 27 Mar 2006 21:27:43 +0000 (13:27 -0800)] 
[PATCH] bonding: support carrier state for master

Add support for the bonding master to specify its carrier state
based upon the state of the slaves.  For 802.3ad, the bond is up if
there is an active, parterned aggregator.  For other modes, the bond is
up if any slaves are up.  Updates driver version to 3.0.3.

Based on a patch by jamal <hadi@cyberus.ca>.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years agoMerge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/linville...
Jeff Garzik [Wed, 29 Mar 2006 22:30:19 +0000 (17:30 -0500)] 
Merge branch 'upstream' of git://git./linux/kernel/git/linville/wireless-2.6

18 years ago[PATCH] acenic: fix section mismatches
Randy Dunlap [Mon, 27 Mar 2006 20:26:12 +0000 (12:26 -0800)] 
[PATCH] acenic: fix section mismatches

Fix section mismatches in acenic driver:
WARNING: drivers/net/acenic.o - Section mismatch: reference to .init.data:tigon2FwText from .text between 'acenic_probe_one' (at offset 0x2409) and 'ace_interrupt'
WARNING: drivers/net/acenic.o - Section mismatch: reference to .init.data:tigon2FwRodata from .text between 'acenic_probe_one' (at offset 0x2422) and 'ace_interrupt'

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] spidernet : reduce console spam
Jens Osterkamp [Tue, 28 Mar 2006 13:59:55 +0000 (15:59 +0200)] 
[PATCH] spidernet : reduce console spam

This patch reduces the message level of the RX ram full messages
from err to debug to prevent spamming the console leaving it in the
logfiles though.

From: Jens Osterkamp <Jens.Osterkamp@de.ibm.com>

Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] via-rhine: link state fix
Roger Luethi [Tue, 28 Mar 2006 18:53:56 +0000 (20:53 +0200)] 
[PATCH] via-rhine: link state fix

Problems with link state detection have been reported several times in the
past months.

Denis Vlasenko did all the work tracking it down. Jeff Garzik suggested the
proper place for the fix.

When using the mii library, the driver needs to check mii->force_media
and set dev->state accordingly.

Signed-off-by: Roger Luethi <rl@hellgate.ch>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years ago[PATCH] axnet_cs.c : add hardware multicast support
Komuro [Sat, 25 Mar 2006 22:31:55 +0000 (07:31 +0900)] 
[PATCH] axnet_cs.c : add hardware multicast support

Signed-off-by: Jeff Garzik <jeff@garzik.org>
18 years agob44: fix force mac address before ifconfig up
Gary Zambrano [Wed, 29 Mar 2006 22:12:05 +0000 (17:12 -0500)] 
b44: fix force mac address before ifconfig up

Initializing the b44 MAC & PCI functional blocks in the controller must
occur inside init_one(). This will allow access to the MAC registers.
The controller was being powered up in b44_open() which would not allow
access to the registers before ifconfig was up.
Philip Kohlbecher found this bug.

Signed-off-by: Gary Zambrano <zambrano@broadcom.com>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Wed, 29 Mar 2006 19:29:33 +0000 (11:29 -0800)] 
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [NETFILTER]: Rename init functions.
  [TCP]: Fix RFC2465 typo.
  [INET]: Introduce tunnel4/tunnel6
  [NET]: deinline 200+ byte inlines in sock.h
  [ECONET]: Convert away from SOCKOPS_WRAPPED
  [NET]: Fix ipx/econet/appletalk/irda ioctl crashes
  [NET]: Kill Documentation/networking/TODO
  [TG3]: Update version and reldate
  [TG3]: Skip timer code during full lock
  [TG3]: Speed up SRAM access
  [TG3]: Fix PHY loopback on 5700
  [TG3]: Fix bug in 40-bit DMA workaround code
  [TG3]: Fix probe failure due to invalid MAC address

18 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Wed, 29 Mar 2006 19:28:30 +0000 (11:28 -0800)] 
Merge git://git./linux/kernel/git/paulus/powerpc

* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (67 commits)
  [PATCH] powerpc: Remove oprofile spinlock backtrace code
  [PATCH] powerpc: Add oprofile calltrace support to all powerpc cpus
  [PATCH] powerpc: Add oprofile calltrace support
  [PATCH] for_each_possible_cpu: ppc
  [PATCH] for_each_possible_cpu: powerpc
  [PATCH] lock PTE before updating it in 440/BookE page fault handler
  [PATCH] powerpc: Kill _machine and hard-coded platform numbers
  ppc: Fix compile error in arch/ppc/lib/strcase.c
  [PATCH] git-powerpc: WARN was a dumb idea
  [PATCH] powerpc: a couple of trivial compile warning fixes
  powerpc: remove OCP references
  powerpc: Make uImage default build output for MPC8540 ADS
  powerpc: move math-emu over to arch/powerpc
  powerpc: use memparse() for mem= command line parsing
  ppc: fix strncasecmp prototype
  [PATCH] powerpc: make ISA floppies work again
  [PATCH] powerpc: Fix some initcall return values
  [PATCH] powerpc: Workaround for pSeries RTAS bug
  [PATCH] spufs: fix __init/__exit annotations
  [PATCH] powerpc: add hvc backend for rtas
  ...

18 years agoMerge git://oss.sgi.com:8090/oss/git/xfs-2.6
Linus Torvalds [Wed, 29 Mar 2006 16:55:36 +0000 (08:55 -0800)] 
Merge git://oss.sgi.com:8090/oss/git/xfs-2.6

* git://oss.sgi.com:8090/oss/git/xfs-2.6:
  [XFS] Cleanup in XFS after recent get_block_t interface tweaks.
  [XFS] Remove unused/obsoleted function: xfs_bmap_do_search_extents()
  [XFS] A change to inode chunk allocation to try allocating the new chunk
  Fixes a regression from the recent "remove ->get_blocks() support"
  [XFS] Fix compiler warning and small code inconsistencies in compat
  [XFS] We really suck at spulling.  Thanks to Chris Pascoe for fixing all

18 years agoMerge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/scjody/ieee1394
Linus Torvalds [Wed, 29 Mar 2006 02:48:03 +0000 (18:48 -0800)] 
Merge branch 'for-linus' of /linux/kernel/git/scjody/ieee1394

* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/scjody/ieee1394:
  ohci1394: cleanup the "Unexpected PCI resource length" warning.
  sbp2: misc debug logging cleanups
  sbp2: proper treatment of DID_OK
  ieee1394: set read permission for parameter disable_irm
  sbp2: check for ARM failure
  ohci1394: clean up asynchronous and physical request filters programming
  ieee1394: remove amdtp remains from ieee1394_core.h
  ieee1394: remove devfs support
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
  sbp2: prevent unloading of 1394 low-level driver

18 years ago[PATCH] powerpc: Remove oprofile spinlock backtrace code
Anton Blanchard [Mon, 27 Mar 2006 01:00:45 +0000 (12:00 +1100)] 
[PATCH] powerpc: Remove oprofile spinlock backtrace code

Remove oprofile spinlock backtrace code now we have proper calltrace
support. Also make MMCRA sihv and sipr bits a variable since they may
change in future cpus. Finally, MMCRA should be a 64bit quantity.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add oprofile calltrace support to all powerpc cpus
Anton Blanchard [Mon, 27 Mar 2006 01:03:17 +0000 (12:03 +1100)] 
[PATCH] powerpc: Add oprofile calltrace support to all powerpc cpus

Add calltrace support for other powerpc cpus. Tested on 7450.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] powerpc: Add oprofile calltrace support
Brian Rogan [Mon, 27 Mar 2006 00:57:01 +0000 (11:57 +1100)] 
[PATCH] powerpc: Add oprofile calltrace support

Add oprofile calltrace support to powerpc. Disable spinlock backtracing
now we can use calltrace info.

(Updated to work on both 32bit and 64bit by me).

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] for_each_possible_cpu: ppc
KAMEZAWA Hiroyuki [Tue, 28 Mar 2006 22:50:52 +0000 (14:50 -0800)] 
[PATCH] for_each_possible_cpu: ppc

for_each_cpu() actually iterates across all possible CPUs.  We've had mistakes
in the past where people were using for_each_cpu() where they should have been
iterating across only online or present CPUs.  This is inefficient and
possibly buggy.

We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the
future.

This patch replaces for_each_cpu with for_each_possible_cpu.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] for_each_possible_cpu: powerpc
KAMEZAWA Hiroyuki [Tue, 28 Mar 2006 22:50:51 +0000 (14:50 -0800)] 
[PATCH] for_each_possible_cpu: powerpc

for_each_cpu() actually iterates across all possible CPUs.  We've had mistakes
in the past where people were using for_each_cpu() where they should have been
iterating across only online or present CPUs.  This is inefficient and
possibly buggy.

We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the
future.

This patch replaces for_each_cpu with for_each_possible_cpu.

Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] lock PTE before updating it in 440/BookE page fault handler
Eugene Surovegin [Tue, 28 Mar 2006 18:13:12 +0000 (10:13 -0800)] 
[PATCH] lock PTE before updating it in 440/BookE page fault handler

Fix 44x and BookE page fault handler to correctly lock PTE before
trying to pte_update() it, otherwise this PTE might be swapped out
after pte_present() check but before pte_uptdate() call, resulting in
corrupted PTE. This can happen with enabled preemption and low memory
condition.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[PATCH] send_sigqueue: simplify and fix the race
Oleg Nesterov [Wed, 29 Mar 2006 00:11:30 +0000 (16:11 -0800)] 
[PATCH] send_sigqueue: simplify and fix the race

send_sigqueue() checks PF_EXITING, then locks p->sighand->siglock.  This is
unsafe: 'p' can exit in between and set ->sighand = NULL.  The race is
theoretical, the window is tiny and irqs are disabled by the caller, so I
don't think we need the fix for -stable tree.

Convert send_sigqueue() to use lock_task_sighand() helper.

Also, delete 'p->flags & PF_EXITING' re-check, it is unneeded and the
comment is wrong.

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>
18 years ago[PATCH] do_notify_parent_cldstop: remove 'to_self' param
Oleg Nesterov [Wed, 29 Mar 2006 00:11:29 +0000 (16:11 -0800)] 
[PATCH] do_notify_parent_cldstop: remove 'to_self' param

The previous patch has changed callsites of do_notify_parent_cldstop() so that
to_self == (->ptrace & PT_PTRACED) always (as it should be).  We can remove
this parameter now.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] finish_stop: don't check stop_count < 0
Oleg Nesterov [Wed, 29 Mar 2006 00:11:28 +0000 (16:11 -0800)] 
[PATCH] finish_stop: don't check stop_count < 0

Remove an obscure 'stop_count < 0' check in finish_stop().  The previous patch
made this case impossible.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] simplify do_signal_stop()
Oleg Nesterov [Wed, 29 Mar 2006 00:11:28 +0000 (16:11 -0800)] 
[PATCH] simplify do_signal_stop()

do_signal_stop() considers 'thread_group_empty()' as a special case.
This was needed to avoid taking tasklist_lock. Since this lock is
unneeded any longer, we can remove this special case and simplify
the code even more.

Also, before this patch, finish_stop() was called with stop_count == -1
for 'thread_group_empty()' case. This is not strictly wrong, but confusing
and unneeded.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: john stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cleanup __exit_signal->cleanup_sighand path
Oleg Nesterov [Wed, 29 Mar 2006 00:11:27 +0000 (16:11 -0800)] 
[PATCH] cleanup __exit_signal->cleanup_sighand path

Move 'tsk->sighand = NULL' from cleanup_sighand() to __exit_signal().  This
makes the exit path more understandable and allows us to do
cleanup_sighand() outside of ->siglock protected section.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] make fork() atomic wrt pgrp/session signals
Oleg Nesterov [Wed, 29 Mar 2006 00:11:26 +0000 (16:11 -0800)] 
[PATCH] make fork() atomic wrt pgrp/session signals

Eric W. Biederman wrote:
>
> Ok. SUSV3/Posix is clear, fork is atomic with respect
> to signals.  Either a signal comes before or after a
> fork but not during. (See the rationale section).
> http://www.opengroup.org/onlinepubs/000095399/functions/fork.html
>
> The tasklist_lock does not stop forks from adding to a process
> group. The forks stall while the tasklist_lock is held, but a fork
> that began before we grabbed the tasklist_lock simply completes
> afterwards, and the child does not receive the signal.

This also means that SIGSTOP or sig_kernel_coredump() signal can't
be delivered to pgrp/session reliably.

With this patch copy_process() returns -ERESTARTNOINTR when it
detects a pending signal, fork() will be restarted transparently
after handling the signals.

This patch also deletes now unneeded "group_stop_count > 0" check,
copy_process() can no longer succeed while group stop in progress.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-By: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pids: kill PIDTYPE_TGID
Oleg Nesterov [Wed, 29 Mar 2006 00:11:25 +0000 (16:11 -0800)] 
[PATCH] pids: kill PIDTYPE_TGID

This patch kills PIDTYPE_TGID pid_type thus saving one hash table in
kernel/pid.c and speeding up subthreads create/destroy a bit.  It is also a
preparation for the further tref/pids rework.

This patch adds 'struct list_head thread_group' to 'struct task_struct'
instead.

We don't detach group leader from PIDTYPE_PID namespace until another
thread inherits it's ->pid == ->tgid, so we are safe wrt premature
free_pidmap(->tgid) call.

Currently there are no users of find_task_by_pid_type(PIDTYPE_TGID).
Should the need arise, we can use find_task_by_pid()->group_leader.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-By: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] do_sigaction: don't take tasklist_lock
Oleg Nesterov [Wed, 29 Mar 2006 00:11:24 +0000 (16:11 -0800)] 
[PATCH] do_sigaction: don't take tasklist_lock

do_sigaction() does not need tasklist_lock anymore, we can simplify the code.

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>
18 years ago[PATCH] do_group_exit: don't take tasklist_lock
Oleg Nesterov [Wed, 29 Mar 2006 00:11:23 +0000 (16:11 -0800)] 
[PATCH] do_group_exit: don't take tasklist_lock

do_group_exit() takes tasklist_lock for zap_other_threads(), this is unneeded
now.

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>
18 years ago[PATCH] do_signal_stop: don't take tasklist_lock
Oleg Nesterov [Wed, 29 Mar 2006 00:11:22 +0000 (16:11 -0800)] 
[PATCH] do_signal_stop: don't take tasklist_lock

do_signal_stop() does not need tasklist_lock anymore.  So it does not need to
do misc re-checks, and we can simplify the code.

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>
18 years ago[PATCH] relax sig_needs_tasklist()
Oleg Nesterov [Wed, 29 Mar 2006 00:11:22 +0000 (16:11 -0800)] 
[PATCH] relax sig_needs_tasklist()

handle_stop_signal() does not need tasklist_lock for SIG_KERNEL_STOP_MASK
signals anymore.

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>
18 years ago[PATCH] sys_times: don't take tasklist_lock
Oleg Nesterov [Wed, 29 Mar 2006 00:11:21 +0000 (16:11 -0800)] 
[PATCH] sys_times: don't take tasklist_lock

sys_times: don't take tasklist_lock

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>
18 years ago[PATCH] do __unhash_process() under ->siglock
Oleg Nesterov [Wed, 29 Mar 2006 00:11:20 +0000 (16:11 -0800)] 
[PATCH] do __unhash_process() under ->siglock

This patch moves __unhash_process() call from realease_task() to
__exit_signal(), so __detach_pid() is called with ->siglock held.

This means we don't need tasklist_lock to iterate over thread group anymore:

copy_process() was already changed to do attach_pid()
under ->siglock.

Eric's "pidhash-kill-switch_exec_pids.patch" from -mm
changed de_thread() so it doesn't touch PIDTYPE_TGID.

NOTE: de_thread() still needs some attention.  It still changes task->pid
lockless.  Taking ->sighand.siglock here allows to do more tasklist_lock
removals.

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>
18 years ago[PATCH] revert "Optimize sys_times for a single thread process"
Oleg Nesterov [Wed, 29 Mar 2006 00:11:19 +0000 (16:11 -0800)] 
[PATCH] revert "Optimize sys_times for a single thread process"

This patch reverts 'CONFIG_SMP && thread_group_empty()' optimization in
sys_times().  The reason is that the next patch breaks memory ordering which
is needed for that optimization.

tasklist_lock in sys_times() will be eliminated completely by further patch.

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>
18 years ago[PATCH] move __exit_signal() to kernel/exit.c
Oleg Nesterov [Wed, 29 Mar 2006 00:11:18 +0000 (16:11 -0800)] 
[PATCH] move __exit_signal() to kernel/exit.c

__exit_signal() is private to release_task() now.  I think it is better to
make it static in kernel/exit.c and export flush_sigqueue() instead - this
function is much more simple and straightforward.

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>
18 years ago[PATCH] rename __exit_sighand to cleanup_sighand
Oleg Nesterov [Wed, 29 Mar 2006 00:11:17 +0000 (16:11 -0800)] 
[PATCH] rename __exit_sighand to cleanup_sighand

Cosmetic, rename __exit_sighand to cleanup_sighand and move it close to
copy_sighand().

This matches copy_signal/cleanup_signal naming, and I think it is easier to
follow.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] cleanup __exit_signal()
Oleg Nesterov [Wed, 29 Mar 2006 00:11:17 +0000 (16:11 -0800)] 
[PATCH] cleanup __exit_signal()

This patch factors out duplicated code under 'if' branches.  Also, BUG_ON()
conversions and whitespace cleanups.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] copy_process: cleanup bad_fork_cleanup_signal
Oleg Nesterov [Wed, 29 Mar 2006 00:11:16 +0000 (16:11 -0800)] 
[PATCH] copy_process: cleanup bad_fork_cleanup_signal

__exit_signal() does important cleanups atomically under ->siglock.  It is
also called from copy_process's error path.  This is not good, for example we
can't move __unhash_process() under ->siglock for that reason.

We should not mix these 2 paths, just look at ugly 'if (p->sighand)' under
'bad_fork_cleanup_sighand:' label.  For copy_process() case it is sufficient
to just backout copy_signal(), nothing more.

Again, nobody can see this task yet.  For CLONE_THREAD case we just decrement
signal->count, otherwise nobody can see this ->signal and we can free it
lockless.

This patch assumes it is safe to do exit_thread_group_keys() without
tasklist_lock.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] copy_process: cleanup bad_fork_cleanup_sighand
Oleg Nesterov [Wed, 29 Mar 2006 00:11:14 +0000 (16:11 -0800)] 
[PATCH] copy_process: cleanup bad_fork_cleanup_sighand

The only caller of exit_sighand(tsk) is copy_process's error path.  We can
call __exit_sighand() directly and kill exit_sighand().

This 'tsk' was not yet registered in pid_hash[] or init_task.tasks, it has no
external references, nobody can see it, and

IF (clone_flags & CLONE_SIGHAND)
At least 'current' has a reference to ->sighand, this
means atomic_dec_and_test(sighand->count) can't be true.

ELSE
Nobody can see this ->sighand, this means we can free it
without any locking.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] introduce sig_needs_tasklist() helper
Oleg Nesterov [Wed, 29 Mar 2006 00:11:14 +0000 (16:11 -0800)] 
[PATCH] introduce sig_needs_tasklist() helper

In my opinion this patch cleans up the code.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] introduce lock_task_sighand() helper
Oleg Nesterov [Wed, 29 Mar 2006 00:11:13 +0000 (16:11 -0800)] 
[PATCH] introduce lock_task_sighand() helper

Add lock_task_sighand() helper and converts group_send_sig_info() to use
it.  Hopefully we will have more users soon.

This patch also removes '!sighand->count' and '!p->usage' checks, I think
they both are bogus, racy and unneeded (but probably it makes sense to
restore them as BUG_ON()s).

->sighand is cleared and it's ->count is decremented in release_task() with
sighand->siglock held, so it is a bug to have '!p->usage || !->count' after
we already locked and verified it is the same.  On the other hand, an
already dead task without ->sighand can have a non-zero ->usage due to
ptrace, for example.

If we read the stale value of ->sighand we must see the change after
spin_lock(), because that change was done while holding that same old
->sighand.siglock.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] convert sighand_cache to use SLAB_DESTROY_BY_RCU
Oleg Nesterov [Wed, 29 Mar 2006 00:11:12 +0000 (16:11 -0800)] 
[PATCH] convert sighand_cache to use SLAB_DESTROY_BY_RCU

This patch borrows a clever Hugh's 'struct anon_vma' trick.

Without tasklist_lock held we can't trust task->sighand until we locked it
and re-checked that it is still the same.

But this means we don't need to defer 'kmem_cache_free(sighand)'.  We can
return the memory to slab immediately, all we need is to be sure that
sighand->siglock can't dissapear inside rcu protected section.

To do so we need to initialize ->siglock inside ctor function,
SLAB_DESTROY_BY_RCU does the rest.

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>
18 years ago[PATCH] release_task: replace open-coded ptrace_unlink()
Oleg Nesterov [Wed, 29 Mar 2006 00:11:11 +0000 (16:11 -0800)] 
[PATCH] release_task: replace open-coded ptrace_unlink()

Use ptrace_unlink() instead of open-coding.  No changes in kernel/exit.o

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] wait_for_helper: trivial style cleanup
Oleg Nesterov [Wed, 29 Mar 2006 00:11:10 +0000 (16:11 -0800)] 
[PATCH] wait_for_helper: trivial style cleanup

Use NULL instead of (... *)0

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>
18 years ago[PATCH] reparent_thread: use remove_parent/add_parent
Oleg Nesterov [Wed, 29 Mar 2006 00:11:09 +0000 (16:11 -0800)] 
[PATCH] reparent_thread: use remove_parent/add_parent

Use remove_parent/add_parent instead of open coding.

No changes in kernel/exit.o

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pidhash: don't use zero pids
Oleg Nesterov [Wed, 29 Mar 2006 00:11:09 +0000 (16:11 -0800)] 
[PATCH] pidhash: don't use zero pids

daemonize() calls set_special_pids(1,1), while init and kernel threads spawned
from init/main.c:init() run with 0,0 special pids.  This patch changes
INIT_SIGNALS() so that that they run with ->pgrp == ->session == 1 also.  This
patch relies on fact that swapper's pid == 1.

Now we have no hashed zero pids in pid_hash[].

User-space visibible change is that now /sbin/init runs with (1,1) special
pids and becomes a session leader.

Quoting Eric W. Biederman:
>
> daemonize consuming pids (1,1) then consumes pgrp 1.  So that when
> /sbin/init calls setsid() it thinks /sbin/init is a process group
> leader and setsid() fails.  So /sbin/init wants pgrp 1 session 1
> but doesn't get it.  I am pretty certain daemonize did not exist so
> /sbin/init got pgrp 1 session 1 in 2.4.
>
> That is the bug that is being fixed.
>
> This patch takes things one step farther and essentially calls
> setsid() for pid == 1 before init is execed.  That is new behavior
> but it cleans up the kernel as we now do not need to support the
> case of a process without a process group or a session.
>
> The only process that could have possibly cared was /sbin/init
> and it already calls setsid() because it doesn't want that.
>
> If this was going to break anything noticeable the change in behavior
> from 2.4 to 2.6 would have already done that.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pidhash: don't count idle threads
Oleg Nesterov [Wed, 29 Mar 2006 00:11:07 +0000 (16:11 -0800)] 
[PATCH] pidhash: don't count idle threads

fork_idle() does unhash_process() just after copy_process().  Contrary,
boot_cpu's idle thread explicitely registers itself for each pid_type with nr
= 0.

copy_process() already checks p->pid != 0 before process_counts++, I think we
can just skip attach_pid() calls and job control inits for idle threads and
kill unhash_process().  We don't need to cleanup ->proc_dentry in fork_idle()
because with this patch idle threads are never hashed in
kernel/pid.c:pid_hash[].

We don't need to hash pid == 0 in pidmap_init().  free_pidmap() is never
called with pid == 0 arg, so it will never be reused.  So it is still possible
to use pid == 0 in any PIDTYPE_xxx namespace from kernel/pid.c's POV.

However with this patch we don't hash pid == 0 for PIDTYPE_PID case.  We still
have have PIDTYPE_PGID/PIDTYPE_SID entries with pid == 0: /sbin/init and
kernel threads which don't call daemonize().

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] kill SET_LINKS/REMOVE_LINKS
Oleg Nesterov [Wed, 29 Mar 2006 00:11:06 +0000 (16:11 -0800)] 
[PATCH] kill SET_LINKS/REMOVE_LINKS

Both SET_LINKS() and SET_LINKS/REMOVE_LINKS() have exactly one caller, and
these callers already check thread_group_leader().

This patch kills theese macros, they mix two different things: setting
process's parent and registering it in init_task.tasks list.  Callers are
updated to do these actions by hand.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] don't use REMOVE_LINKS/SET_LINKS for reparenting
Oleg Nesterov [Wed, 29 Mar 2006 00:11:05 +0000 (16:11 -0800)] 
[PATCH] don't use REMOVE_LINKS/SET_LINKS for reparenting

There are places where kernel uses REMOVE_LINKS/SET_LINKS while changing
process's ->parent.  Use add_parent/remove_parent instead, they don't abuse
of global process list.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] remove add_parent()'s parent argument
Oleg Nesterov [Wed, 29 Mar 2006 00:11:05 +0000 (16:11 -0800)] 
[PATCH] remove add_parent()'s parent argument

add_parent(p, parent) is always called with parent == p->parent, and it makes
no sense to do it differently.  This patch removes this argument.

No changes in affected .o files.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] choose_new_parent: remove unused arg, sanitize exit_state check
Oleg Nesterov [Wed, 29 Mar 2006 00:11:04 +0000 (16:11 -0800)] 
[PATCH] choose_new_parent: remove unused arg, sanitize exit_state check

'child_reaper' arg is not used in choose_new_parent().

"->exit_state >= EXIT_ZOMBIE" check is a leftover, was
valid when EXIT_ZOMBIE lived in ->state var.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] pidhash: kill switch_exec_pids
Eric W. Biederman [Wed, 29 Mar 2006 00:11:03 +0000 (16:11 -0800)] 
[PATCH] pidhash: kill switch_exec_pids

switch_exec_pids is only called from de_thread by way of exec, and it is
only called when we are exec'ing from a non thread group leader.

Currently switch_exec_pids gives the leader the pid of the thread and
unhashes and rehashes all of the process groups.  The leader is already in
the EXIT_DEAD state so no one cares about it's pids.  The only concern for
the leader is that __unhash_process called from release_task will function
correctly.  If we don't touch the leader at all we know that
__unhash_process will work fine so there is no need to touch the leader.

For the task becomming the thread group leader, we just need to give it the
pid of the old thread group leader, add it to the task list, and attach it
to the session and the process group of the thread group.

Currently de_thread is also adding the task to the task list which is just
silly.

Currently the only leader of __detach_pid besides detach_pid is
switch_exec_pids because of the ugly extra work that was being
performed.

So this patch removes switch_exec_pids because it is doing too much, it is
creating an unnecessary special case in pid.c, duing work duplicated in
de_thread, and generally obscuring what it is going on.

The necessary work is added to de_thread, and it seems to be a little
clearer there what is going on.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Kirill Korotaev <dev@sw.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] do_SAK: don't depend on session ID 0
Eric W. Biederman [Wed, 29 Mar 2006 00:11:02 +0000 (16:11 -0800)] 
[PATCH] do_SAK: don't depend on session ID 0

I'm not really certain what the thinking was but the code obviously wanted to
walk processes other than just those in it's session, for purposes of do_SAK.
Just walking those tasks that don't have a session assigned sounds at the very
least incomplete.

So modify the code to kill everything in the session and anything else that
might have the tty open.  Hopefully this helps if the do_SAK functionality is
ever finished.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] do_tty_hangup: use group_send_sig_info not send_group_sig_info
Eric W. Biederman [Wed, 29 Mar 2006 00:11:01 +0000 (16:11 -0800)] 
[PATCH] do_tty_hangup: use group_send_sig_info not send_group_sig_info

We already have the tasklist_lock so there is no need for us to reacquire it
with send_group_sig_info.  reader/writer locks allow multiple readers and thus
recursion so the old code was ok just wastful.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Remove dead kill_sl prototype from sched.h
Eric W. Biederman [Wed, 29 Mar 2006 00:11:00 +0000 (16:11 -0800)] 
[PATCH] Remove dead kill_sl prototype from sched.h

The kill_sl function doesn't exist in the kernel so a prototype is completely
unnecessary.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] simplify exec from init's subthread
Oleg Nesterov [Wed, 29 Mar 2006 00:10:59 +0000 (16:10 -0800)] 
[PATCH] simplify exec from init's subthread

I think it is enough to take tasklist_lock for reading while changing
child_reaper:

Reparenting needs write_lock(tasklist_lock)

Only one thread in a thread group can do exec()

sighand->siglock garantees that get_signal_to_deliver()
will not see a stale value of child_reaper.

This means that we can change child_reaper earlier, without calling
zap_other_threads() twice.

"child_reaper = current" is a NOOP when init does exec from main thread, we
don't care.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] exec: allow init to exec from any thread.
Eric W. Biederman [Wed, 29 Mar 2006 00:10:58 +0000 (16:10 -0800)] 
[PATCH] exec: allow init to exec from any thread.

After looking at the problem of init calling exec some more I figured out
an easy way to make the code work.

The actual symptom without out this patch is that all threads will die
except pid == 1, and the thread calling exec.  The thread calling exec will
wait forever for pid == 1 to die.

Since pid == 1 does not install a handler for SIGKILL it will never die.

This modifies the tests for init from current->pid == 1 to the equivalent
current == child_reaper.  And then it causes exec in the ugly case to
modify child_reaper.

The only weird symptom is that you wind up with an init process that
doesn't have the oldest start time on the box.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge ../linux-2.6
Paul Mackerras [Wed, 29 Mar 2006 02:24:50 +0000 (13:24 +1100)] 
Merge ../linux-2.6

18 years agoMerge with git+ssh://master.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2...
Jody McIntyre [Wed, 29 Mar 2006 01:24:39 +0000 (20:24 -0500)] 
Merge ... git+ssh:///linux/kernel/git/torvalds/linux-2.6.git

18 years agoohci1394: cleanup the "Unexpected PCI resource length" warning.
Jody McIntyre [Wed, 29 Mar 2006 01:04:04 +0000 (20:04 -0500)] 
ohci1394: cleanup the "Unexpected PCI resource length" warning.

This warning happens in practice because the resource length reported by
the chipset is too large.  This is not actually a problem, so don't warn
about it.  If it happens to be too small, warn about that, but with
a different message so people who are used to ignoring the old message
don't.

Signed-off-by: Jody McIntyre <scjody@modernduck.com>
18 years agosbp2: misc debug logging cleanups
Stefan Richter [Wed, 29 Mar 2006 01:03:55 +0000 (20:03 -0500)] 
sbp2: misc debug logging cleanups

 - move call of scsi_print_command from sbp2_send_command to the beginning of
   sbp2_queue_command to show also commands which are not sent
 - put sbp2's name into scsi_print_sense
 - use __FUNCTION__ in log messages
 - remove a few less useful log messages and comments

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
18 years agosbp2: proper treatment of DID_OK
Stefan Richter [Wed, 29 Mar 2006 01:03:45 +0000 (20:03 -0500)] 
sbp2: proper treatment of DID_OK

Sbp2 relied on DID_OK to be defined as 0. Always shift DID_OK into the right
position anyway, and explicitly return DID_OK together with CHECK_CONDITION.
Also comment on some #if 0 code. The patch does not change current behaviour.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
18 years agoieee1394: set read permission for parameter disable_irm
Stefan Richter [Wed, 29 Mar 2006 01:03:34 +0000 (20:03 -0500)] 
ieee1394: set read permission for parameter disable_irm
No need to hide it from /sys/module/ieee1394/parameters/.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>
18 years ago[NETFILTER]: Rename init functions.
Andrew Morton [Wed, 29 Mar 2006 00:37:06 +0000 (16:37 -0800)] 
[NETFILTER]: Rename init functions.

Every netfilter module uses `init' for its module_init() function and
`fini' or `cleanup' for its module_exit() function.

Problem is, this creates uninformative initcall_debug output and makes
ctags rather useless.

So go through and rename them all to $(filename)_init and
$(filename)_fini.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TCP]: Fix RFC2465 typo.
S P [Wed, 29 Mar 2006 00:35:46 +0000 (16:35 -0800)] 
[TCP]: Fix RFC2465 typo.

Signed-off-by: S P <speattle@yahoo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[INET]: Introduce tunnel4/tunnel6
Herbert Xu [Tue, 28 Mar 2006 09:12:13 +0000 (01:12 -0800)] 
[INET]: Introduce tunnel4/tunnel6

Basically this patch moves the generic tunnel protocol stuff out of
xfrm4_tunnel/xfrm6_tunnel and moves it into the new files of tunnel4.c
and tunnel6 respectively.

The reason for this is that the problem that Hugo uncovered is only
the tip of the iceberg.  The real problem is that when we removed the
dependency of ipip on xfrm4_tunnel we didn't really consider the module
case at all.

For instance, as it is it's possible to build both ipip and xfrm4_tunnel
as modules and if the latter is loaded then ipip simply won't load.

After considering the alternatives I've decided that the best way out of
this is to restore the dependency of ipip on the non-xfrm-specific part
of xfrm4_tunnel.  This is acceptable IMHO because the intention of the
removal was really to be able to use ipip without the xfrm subsystem.
This is still preserved by this patch.

So now both ipip/xfrm4_tunnel depend on the new tunnel4.c which handles
the arbitration between the two.  The order of processing is determined
by a simple integer which ensures that ipip gets processed before
xfrm4_tunnel.

The situation for ICMP handling is a little bit more complicated since
we may not have enough information to determine who it's for.  It's not
a big deal at the moment since the xfrm ICMP handlers are basically
no-ops.  In future we can deal with this when we look at ICMP caching
in general.

The user-visible change to this is the removal of the TUNNEL Kconfig
prompts.  This makes sense because it can only be used through IPCOMP
as it stands.

The addition of the new modules shouldn't introduce any problems since
module dependency will cause them to be loaded.

Oh and I also turned some unnecessary pskb's in IPv6 related to this
patch to skb's.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: deinline 200+ byte inlines in sock.h
Denis Vlasenko [Tue, 28 Mar 2006 09:08:21 +0000 (01:08 -0800)] 
[NET]: deinline 200+ byte inlines in sock.h

Sizes in bytes (allyesconfig, i386) and files where those inlines
are used:

238 sock_queue_rcv_skb 2.6.16/net/x25/x25_in.o
238 sock_queue_rcv_skb 2.6.16/net/rose/rose_in.o
238 sock_queue_rcv_skb 2.6.16/net/packet/af_packet.o
238 sock_queue_rcv_skb 2.6.16/net/netrom/nr_in.o
238 sock_queue_rcv_skb 2.6.16/net/llc/llc_sap.o
238 sock_queue_rcv_skb 2.6.16/net/llc/llc_conn.o
238 sock_queue_rcv_skb 2.6.16/net/irda/af_irda.o
238 sock_queue_rcv_skb 2.6.16/net/ipx/af_ipx.o
238 sock_queue_rcv_skb 2.6.16/net/ipv6/udp.o
238 sock_queue_rcv_skb 2.6.16/net/ipv6/raw.o
238 sock_queue_rcv_skb 2.6.16/net/ipv4/udp.o
238 sock_queue_rcv_skb 2.6.16/net/ipv4/raw.o
238 sock_queue_rcv_skb 2.6.16/net/ipv4/ipmr.o
238 sock_queue_rcv_skb 2.6.16/net/econet/econet.o
238 sock_queue_rcv_skb 2.6.16/net/econet/af_econet.o
238 sock_queue_rcv_skb 2.6.16/net/bluetooth/sco.o
238 sock_queue_rcv_skb 2.6.16/net/bluetooth/l2cap.o
238 sock_queue_rcv_skb 2.6.16/net/bluetooth/hci_sock.o
238 sock_queue_rcv_skb 2.6.16/net/ax25/ax25_in.o
238 sock_queue_rcv_skb 2.6.16/net/ax25/af_ax25.o
238 sock_queue_rcv_skb 2.6.16/net/appletalk/ddp.o
238 sock_queue_rcv_skb 2.6.16/drivers/net/pppoe.o

276 sk_receive_skb 2.6.16/net/decnet/dn_nsp_in.o
276 sk_receive_skb 2.6.16/net/dccp/ipv6.o
276 sk_receive_skb 2.6.16/net/dccp/ipv4.o
276 sk_receive_skb 2.6.16/net/dccp/dccp_ipv6.o
276 sk_receive_skb 2.6.16/drivers/net/pppoe.o

209 sk_dst_check 2.6.16/net/ipv6/ip6_output.o
209 sk_dst_check 2.6.16/net/ipv4/udp.o
209 sk_dst_check 2.6.16/net/decnet/dn_nsp_out.o

Large inlines with multiple callers:
Size  Uses Wasted Name and definition
===== ==== ====== ================================================
  238   21   4360 sock_queue_rcv_skb    include/net/sock.h
  109   10    801 sock_recv_timestamp   include/net/sock.h
  276    4    768 sk_receive_skb        include/net/sock.h
   94    8    518 __sk_dst_check        include/net/sock.h
  209    3    378 sk_dst_check  include/net/sock.h
  131    4    333 sk_setup_caps include/net/sock.h
  152    2    132 sk_stream_alloc_pskb  include/net/sock.h
  125    2    105 sk_stream_writequeue_purge    include/net/sock.h

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[ECONET]: Convert away from SOCKOPS_WRAPPED
David S. Miller [Tue, 28 Mar 2006 08:01:55 +0000 (00:01 -0800)] 
[ECONET]: Convert away from SOCKOPS_WRAPPED

Just use a local econet_mutex instead.

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: Fix ipx/econet/appletalk/irda ioctl crashes
Petr Vandrovec [Tue, 28 Mar 2006 07:39:31 +0000 (23:39 -0800)] 
[NET]: Fix ipx/econet/appletalk/irda ioctl crashes

Fix kernel oopses whenever somebody issues compatible ioctl on AppleTalk,
Econet, IPX or IRDA socket.  For AppleTalk/Econet/IRDA it restores state
in which these sockets were before compat_ioctl was introduced to the socket
ops, for IPX it implements support for 4 ioctls which were not implemented
before - as these ioctls use structures which match between 32bit and 64bit
userspace, no special code is needed, just call 64bit ioctl handler.

Signed-off-by: Petr Vandrovec <petr@vandrovec.name>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: Kill Documentation/networking/TODO
David S. Miller [Tue, 28 Mar 2006 07:28:44 +0000 (23:28 -0800)] 
[NET]: Kill Documentation/networking/TODO

Sorely out of date.  Add the linux-net wiki web site to
the NETWORKING maintainers entry, on which we maintain
the current networking TODO list.

Noticed by Randy Dunlap.

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TG3]: Update version and reldate
Michael Chan [Tue, 28 Mar 2006 07:21:07 +0000 (23:21 -0800)] 
[TG3]: Update version and reldate

Update version to 3.55.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TG3]: Skip timer code during full lock
Michael Chan [Tue, 28 Mar 2006 07:20:14 +0000 (23:20 -0800)] 
[TG3]: Skip timer code during full lock

Skip the main timer code if interrupts are disabled in the full lock
state.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TG3]: Speed up SRAM access
Michael Chan [Tue, 28 Mar 2006 07:19:00 +0000 (23:19 -0800)] 
[TG3]: Speed up SRAM access

Speed up SRAM read and write functions if possible by using MMIO
instead of config. cycles. With this change, the post reset signature
done at the end of D3 power change must now be moved before the D3
power change.

IBM reported a problem on powerpc blades during ethtool self test
that was caused by the memory test taking excessively long. Config.
cycles are very slow on powerpc and the memory test can take more
than 10 seconds to complete using config. cycles. As a result, NETDEV
WATCHDOG can be triggered during self test and the chip can end up in
a funny state.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TG3]: Fix PHY loopback on 5700
Michael Chan [Tue, 28 Mar 2006 07:17:27 +0000 (23:17 -0800)] 
[TG3]: Fix PHY loopback on 5700

Fix PHY loopback failure on some 5700 devices.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TG3]: Fix bug in 40-bit DMA workaround code
Michael Chan [Tue, 28 Mar 2006 07:16:49 +0000 (23:16 -0800)] 
[TG3]: Fix bug in 40-bit DMA workaround code

Need to check the TG3_FLAG_40BIT_DMA_BUG flag in the workaround code
path instead of device flags.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[TG3]: Fix probe failure due to invalid MAC address
Michael Chan [Tue, 28 Mar 2006 07:14:53 +0000 (23:14 -0800)] 
[TG3]: Fix probe failure due to invalid MAC address

Some older bootcode in some devices may report 0 MAC address in
SRAM when booting up from low power state. This patch fixes the
problem by checking for a valid MAC address in SRAM and falling back
to NVRAM if necessary.

Thanks to walt <wa1ter@myrealbox.com> for reporting the problem
and helping to debug it.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years agosbp2: check for ARM failure
Stefan Richter [Wed, 29 Mar 2006 00:59:42 +0000 (19:59 -0500)] 
sbp2: check for ARM failure

Sbp2 did not check for successful registration of the lower address range
when CONFIG_IEEE1394_SBP2_PHYS_DMA was set. If hpsb_register_addrspace
failed, a "login timed-out" would occur which is misleading. Now sbp2 logs
a sensible error message.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Jody McIntyre <scjody@modernduck.com>