pandora-kernel.git
17 years agoMerge ../linus
Dave Jones [Tue, 5 Sep 2006 21:16:33 +0000 (17:16 -0400)]
Merge ../linus

17 years ago[CPUFREQ] Fix sparse warning in ondemand
Dave Jones [Tue, 5 Sep 2006 21:15:47 +0000 (17:15 -0400)]
[CPUFREQ] Fix sparse warning in ondemand

drivers/cpufreq/cpufreq_ondemand.c:323:2: warning: Using plain integer as NULL pointer

Signed-off-by: Dave Jones <davej@redhat.com>
17 years agoLinux 2.6.18-rc6 v2.6.18-rc6
Linus Torvalds [Mon, 4 Sep 2006 02:19:48 +0000 (19:19 -0700)]
Linux 2.6.18-rc6

17 years ago[PATCH] powerpc: Fix typo in powermac platform functions
Benjamin Herrenschmidt [Mon, 4 Sep 2006 00:36:15 +0000 (10:36 +1000)]
[PATCH] powerpc: Fix typo in powermac platform functions

New sparse caught that typo which could have caused erratic hardware
behaviour on some machines if the platform functions are used by the
firmware to change bits in some FCR registers.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years agoMerge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Sat, 2 Sep 2006 21:52:07 +0000 (14:52 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-serial

* master.kernel.org:/home/rmk/linux-2.6-serial:
  [SERIAL] 8250: constify some serial structs
  [SERIAL] Make uart_match_port() work with all memory mapped UARTs

17 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Sat, 2 Sep 2006 21:51:45 +0000 (14:51 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 3762/1: Fix ptrace cache coherency bug for ARM1136 VIPT nonaliasing Harvard caches
  [ARM] 3765/1: S3C24XX: cleanup include/asm-arm/arch-s3c2410/dma.h
  [ARM] 3764/1: S3C24XX: change type naming to kernel style
  [ARM] 3763/1: add both rtcs to csb337 defconfig
  [ARM] Fix ARM __raw_read_trylock() implementation
  [ARM] 3750/3: Fix double VFP emulation for EABI kernels

17 years ago[PATCH] eligible_child: remove an obsolete ->tgid check
Oleg Nesterov [Sat, 2 Sep 2006 17:22:16 +0000 (21:22 +0400)]
[PATCH] eligible_child: remove an obsolete ->tgid check

It is not possible to find a sub-thread in ->children/->ptrace_children
lists, ptrace_attach() does not allow to attach to sub-threads.

Even if it was possible to ptrace the task from the same thread group,
we can't allow to release ->group_leader while there are others (ptracer)
threads in the same group.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[ARM] 3762/1: Fix ptrace cache coherency bug for ARM1136 VIPT nonaliasing Harvard...
George G. Davis [Sat, 2 Sep 2006 17:43:20 +0000 (18:43 +0100)]
[ARM] 3762/1: Fix ptrace cache coherency bug for ARM1136 VIPT nonaliasing Harvard caches

Patch from George G. Davis

Resolve ARM1136 VIPT non-aliasing cache coherency issues observed when
using ptrace to set breakpoints and cleanup copy_{to,from}_user_page()
while we're here as requested by Russell King because "it's also far
too heavy on non-v6 CPUs".

NOTES:

1. Only access_process_vm() calls copy_{to,from}_user_page().
2. access_process_vm() calls get_user_pages() to pin down the "page".
3. get_user_pages() calls flush_dcache_page(page) which ensures cache
   coherency between kernel and userspace mappings of "page".  However
   flush_dcache_page(page) may not invalidate I-Cache over this range
   for all cases, specifically, I-Cache is not invalidated for the VIPT
   non-aliasing case.  So memory is consistent between kernel and user
   space mappings of "page" but I-Cache may still be hot over this
   range.  IOW, we don't have to worry about flush_cache_page() before
   memcpy().
4. Now, for the copy_to_user_page() case, after memcpy(), we must flush
   the caches so memory is consistent with kernel cache entries and
   invalidate the I-Cache if this mm region is executable.  We don't
   need to do anything after memcpy() for the copy_from_user_page()
   case since kernel cache entries will be invalidated via the same
   process above if we access "page" again.  The flush_ptrace_access()
   function (borrowed from SPARC64 implementation) is added to handle
   cache flushing after memcpy() for the copy_to_user_page() case.

Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
Linus Torvalds [Fri, 1 Sep 2006 18:40:37 +0000 (11:40 -0700)]
Merge /pub/scm/linux/kernel/git/gregkh/usb-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
  uhci-hcd: fix list access bug
  USB: Support for ELECOM LD-USB20 in pegasus
  USB: Add VIA quirk fixup for VT8235 usb2
  USB: rtl8150_disconnect() needs tasklet_kill()
  USB Storage: unusual_devs.h for Sony Ericsson M600i
  USB Storage: Remove the finecam3 unusual_devs entry
  UHCI: don't stop at an Iso error
  usb gadget: g_ether spinlock recursion fix
  USB: add all wacom device to hid-core.c blacklist
  hid-core.c: Adds all GTCO CalComp Digitizers and InterWrite School Products to blacklist
  USB floppy drive SAMSUNG SFD-321U/EP detected 8 times

17 years ago[PATCH] backlight last round of fixes
Benjamin Herrenschmidt [Fri, 1 Sep 2006 04:27:54 +0000 (21:27 -0700)]
[PATCH] backlight last round of fixes

Fix some more problems (inverted use of semaphores in some places).  He
also moved my checks into within the protected section which is better.

Signed-off-by: Michael Hanselmann <linux-kernel@hansmi.ch>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] manage-jbd-its-own-slab fix
Badari Pulavarty [Fri, 1 Sep 2006 04:27:54 +0000 (21:27 -0700)]
[PATCH] manage-jbd-its-own-slab fix

Missed a place where I forgot to convert kfree() to kmem_cache_free() as
part of jbd-manage-its-own-slab changes.

Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] fix NUMA interleaving for huge pages
Nishanth Aravamudan [Fri, 1 Sep 2006 04:27:53 +0000 (21:27 -0700)]
[PATCH] fix NUMA interleaving for huge pages

Since vma->vm_pgoff is in units of smallpages, VMAs for huge pages have the
lower HPAGE_SHIFT - PAGE_SHIFT bits always cleared, which results in badd
offsets to the interleave functions.  Take this difference from small pages
into account when calculating the offset.  This does add a 0-bit shift into
the small-page path (via alloc_page_vma()), but I think that is negligible.
 Also add a BUG_ON to prevent the offset from growing due to a negative
right-shift, which probably shouldn't be allowed anyways.

Tested on an 8-memory node ppc64 NUMA box and got the interleaving I
expected.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Adam Litke <agl@us.ibm.com>
Cc: Andi Kleen <ak@muc.de>
Acked-by: Christoph Lameter <clameter@engr.sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] sgiioc4: fixup use of mmio ops
John Keller [Fri, 1 Sep 2006 04:27:51 +0000 (21:27 -0700)]
[PATCH] sgiioc4: fixup use of mmio ops

Fix some bugs in the patch that converted the IOC4 driver from port IO ops to
memio ops.

http://marc.theaimsgroup.com/?l=linux-ide&m=114895892231438&w=2

  Problems fixed are:
   - Call to default_hwif_mmiops() was not being done until _after_
     first IO operation, resulting in the first IO operation being
     done as a port IO op, instead of memio.
   - request_region() calls needed to be request_mem_region()
   - Incomplete error case handling.
   - Non-usage of ioremap() and __iomem.

Signed-off-by: John Keller <jpk@sgi.com>
Signed-off-by: Jeremy Higdon <jeremy@sgi.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] ALSA: ac97: correct some Mic mixer elements
Takashi Iwai [Fri, 1 Sep 2006 04:27:50 +0000 (21:27 -0700)]
[PATCH] ALSA: ac97: correct some Mic mixer elements

Revert the mixer element names of some Mic controls to the state of
2.6.17.  This should fix the name mismatch in alsactl.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: Jaroslav Kysela <perex@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] powerpc: Fix PowerMac IRQ handling bug
Benjamin Herrenschmidt [Fri, 1 Sep 2006 04:27:50 +0000 (21:27 -0700)]
[PATCH] powerpc: Fix PowerMac IRQ handling bug

The port to genirq & the new powerpc interrupt model in 2.6.18 introduced a
bug in the legacy PowerMac PIC code (used on older machines) because of a
typo potentially causing hangs due to interrupt storms.  This fixes it,
along with a performance issue causing us to do spurrious retriggers after
masking an interrupt.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] powerpc: More via-pmu backlight fixes
Benjamin Herrenschmidt [Fri, 1 Sep 2006 04:27:49 +0000 (21:27 -0700)]
[PATCH] powerpc: More via-pmu backlight fixes

The via-pmu backlight code (introduced in 2.6.18) has various design issues
causing crashes on machines using it like the old Wallstreet powerbook
(Michael, the author, never managed to test on these and I just got my hand
on one of those old beasts).

This fixes them by no longer trying to hijack the backlight device of the
frontmost framebuffer (causing that framebuffer to crash) but having it's
own local bits instead.  Might look weird but it's better that way on those
old machines, at least as a last-minute fix for 2.6.18.  We might rework
the whole thing later.  This patch also changes the way it gets notified of
sleep and wakeup in order to properly shut the backlight down on sleep and
bring it back on wakeup.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] dm: work around mempool_alloc, bio_alloc_bioset deadlocks
Pavel Mironchik [Fri, 1 Sep 2006 04:27:47 +0000 (21:27 -0700)]
[PATCH] dm: work around mempool_alloc, bio_alloc_bioset deadlocks

This patch works around a complex dm-related deadlock/livelock down in the
mempool allocator.

Alasdair said:

  Several dm targets suffer from this.

  Mempools are not yet used correctly everywhere in device-mapper: they can
  get shared when devices are stacked, and some targets share them across
  multiple instances.  I made fixing this one of the prerequisites for this
  patch:

    md-dm-reduce-stack-usage-with-stacked-block-devices.patch

  which in some cases makes people more likely to hit the problem.

  There's been some progress on this recently with (unfinished) dm-crypt
  patches at:

    http://www.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/
      (dm-crypt-move-io-to-workqueue.patch plus dependencies)

and:

  I've no problems with a temporary workaround like that, but Milan Broz (a
  new Redhat developer in the Czech Republic) has started reviewing all the
  mempool usage in device-mapper so I'm expecting we'll soon have a proper fix
  for this associated problems.  [He's back from holiday at the start of next
  week.]

For now, this sad-but-safe little patch will allow the machine to recover.

[akpm@osdl.org: rewrote changelog]
Cc: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] schedule obsolete OSS drivers for removal, 2nd round
Adrian Bunk [Fri, 1 Sep 2006 04:27:46 +0000 (21:27 -0700)]
[PATCH] schedule obsolete OSS drivers for removal, 2nd round

This patch schedules obsolete OSS drivers (with ALSA drivers that support
the same hardware) for removal.

A rationale of the patch is in
  http://lkml.org/lkml/2006/7/11/186

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] IPMI: fix occasional oops on module unload
Corey Minyard [Fri, 1 Sep 2006 04:27:45 +0000 (21:27 -0700)]
[PATCH] IPMI: fix occasional oops on module unload

Olaf Kirch of SuSE tracked down a problem where module unloads of the IPMI
driver would occasionally result in Oopses.  He tracked that down to a
variable that wasn't always initialized properly in some situations.  This
patch initializes that variable.  Olaf sent a patch that kzalloc-ed the
data, but this structure is large enough that I would perfer to not do
that.  Thanks Olaf!

Signed-off-by: Corey Minyard <minyard@acm.org>
Cc: Olaf Kirch <okir@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] kerneldoc for handle_bad_irq()
Henrik Kretzschmar [Fri, 1 Sep 2006 04:27:44 +0000 (21:27 -0700)]
[PATCH] kerneldoc for handle_bad_irq()

Adds the description of the parameters from handle_bad_irq().

Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] SBC8360: module_param() permission fixes
Ian E. Morgan [Fri, 1 Sep 2006 04:27:42 +0000 (21:27 -0700)]
[PATCH] SBC8360: module_param() permission fixes

The last argument of module_param is permissions, not default value.

Acked-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] exit early in floppy_init when no floppy exists
Olaf Hering [Fri, 1 Sep 2006 04:27:41 +0000 (21:27 -0700)]
[PATCH] exit early in floppy_init when no floppy exists

modprobe -v floppy on a Apple G5 writes incorrect stuff to dmesg:

Floppy drive(s): fd0 is 2.88M

The reason is that the legacy io check happens very late,
when part of the floppy stuff is already initialized.
check_legacy_ioport() returns either -ENODEV right away, or it walks
the device-tree looking for a floppy node.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86: increase MAX_MP_BUSSES on default arch
Andrew Morton [Fri, 1 Sep 2006 04:27:40 +0000 (21:27 -0700)]
[PATCH] x86: increase MAX_MP_BUSSES on default arch

Vitezslav Samel <samel@mail.cz> reports that an HP DL380 g4 fails using the
default arch due to the ISA bus having an ID of 32.

It would have worked OK with the generic arch - for some reason the default
arch doesn't support as many busses.

So bump that up to support 256 busses, but leave it at 32 if we're building a
tiny system to save a bit of memory.

Cc: Vitezslav Samel <samel@mail.cz>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] xtensa: ptrace: EXIT_ZOMBIE fix
Bill Huey (hui [Fri, 1 Sep 2006 04:27:39 +0000 (21:27 -0700)]
[PATCH] xtensa: ptrace: EXIT_ZOMBIE fix

We're testing the wrong task_struct field.

Acked-by: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] task delay accounting fixes
Shailabh Nagar [Fri, 1 Sep 2006 04:27:38 +0000 (21:27 -0700)]
[PATCH] task delay accounting fixes

Cleanup allocation and freeing of tsk->delays used by delay accounting.
This solves two problems reported for delay accounting:

1. oops in __delayacct_blkio_ticks
http://www.uwsg.indiana.edu/hypermail/linux/kernel/0608.2/1844.html

Currently tsk->delays is getting freed too early in task exit which can
cause a NULL tsk->delays to get accessed via reading of /proc/<tgid>/stats.
 The patch fixes this problem by freeing tsk->delays closer to when
task_struct itself is freed up.  As a result, it also eliminates the use of
tsk->delays_lock which was only being used (inadequately) to safeguard
access to tsk->delays while a task was exiting.

2. Possible memory leak in kernel/delayacct.c
http://www.uwsg.indiana.edu/hypermail/linux/kernel/0608.2/1389.html

The patch cleans up tsk->delays allocations after a bad fork which was
missing earlier.

The patch has been tested to fix the problems listed above and stress
tested with rapid calls to delay accounting's taskstats command interface
(which is the other path that can access the same data, besides the /proc
interface causing the oops above).

Signed-off-by: Shailabh Nagar <nagar@watson.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] Fix faulty HPET clocksource usage (fix for bug #7062)
john stultz [Fri, 1 Sep 2006 04:27:37 +0000 (21:27 -0700)]
[PATCH] Fix faulty HPET clocksource usage (fix for bug #7062)

Apparently some systems export valid HPET addresses, but hpet_enable()
fails.  Then when the HPET clocksource starts up, it only checks for a
valid HPET address, and the result is a system where time does not advance.

See http://bugme.osdl.org/show_bug.cgi?id=7062 for details.

This patch just makes sure we better check that the HPET is functional
before registering the HPET clocksource.

Signed-off-by: John Stultz <johnstul@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] synclink_gt: fix receive tty error handling
Paul Fulghum [Fri, 1 Sep 2006 04:27:36 +0000 (21:27 -0700)]
[PATCH] synclink_gt: fix receive tty error handling

Fix receive tty error handling in synclink_gt driver.  Adrian reported
compiler warning for incorrect bit test against char variable.  I
determined these and other device specific error bits were incorrectly
defined.

Signed-off-by: Paul Fulghum <paulkf@microgate.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] md: Fix issues with referencing rdev in md/raid1
NeilBrown [Fri, 1 Sep 2006 04:27:36 +0000 (21:27 -0700)]
[PATCH] md: Fix issues with referencing rdev in md/raid1

We need to be careful when referencing mirrors[i].rdev.  It can disappear
under us at various times.

So:
  fix a couple of problem places.
  comment a couple of non-problem places
  move an 'atomic_add' which deferences rdev down a little
    way to some where where it is sure to not be NULL.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] ZVC: Scale thresholds depending on the size of the system
Christoph Lameter [Fri, 1 Sep 2006 04:27:35 +0000 (21:27 -0700)]
[PATCH] ZVC: Scale thresholds depending on the size of the system

The ZVC counter update threshold is currently set to a fixed value of 32.
This patch sets up the threshold depending on the number of processors and
the sizes of the zones in the system.

With the current threshold of 32, I was able to observe slight contention
when more than 130-140 processors concurrently updated the counters.  The
contention vanished when I either increased the threshold to 64 or used
Andrew's idea of overstepping the interval (see ZVC overstep patch).

However, we saw contention again at 220-230 processors.  So we need higher
values for larger systems.

But the current default is already a bit of an overkill for smaller
systems.  Some systems have tiny zones where precision matters.  For
example i386 and x86_64 have 16M DMA zones and either 900M ZONE_NORMAL or
ZONE_DMA32.  These are even present on SMP and NUMA systems.

The patch here sets up a threshold based on the number of processors in the
system and the size of the zone that these counters are used for.  The
threshold should grow logarithmically, so we use fls() as an easy
approximation.

Results of tests on a system with 1024 processors (4TB RAM)

The following output is from a test allocating 1GB of memory concurrently
on each processor (Forking the process.  So contention on mmap_sem and the
pte locks is not a factor):

                       X                   MIN
TYPE:               CPUS       WALL       WALL        SYS     USER     TOTCPU
fork                   1      0.552      0.552      0.540    0.012      0.552
fork                   4      0.552      0.548      2.164    0.036      2.200
fork                  16      0.564      0.548      8.812    0.164      8.976
fork                 128      0.580      0.572     72.204    1.208     73.412
fork                 256      1.300      0.660    310.400    2.160    312.560
fork                 512      3.512      0.696   1526.836    4.816   1531.652
fork                1020     20.024      0.700  17243.176    6.688  17249.863

So a threshold of 32 is fine up to 128 processors. At 256 processors contention
becomes a factor.

Overstepping the counter (earlier patch) improves the numbers a bit:

fork                   4      0.552      0.548      2.164    0.040      2.204
fork                  16      0.552      0.548      8.640    0.148      8.788
fork                 128      0.556      0.548     69.676    0.956     70.632
fork                 256      0.876      0.636    212.468    2.108    214.576
fork                 512      2.276      0.672    997.324    4.260   1001.584
fork                1020     13.564      0.680  11586.436    6.088  11592.523

Still contention at 512 and 1020. Contention at 1020 is down by a third.
256 still has a slight bit of contention.

After this patch the counter threshold will be set to 125 which reduces
contention significantly:

fork                 128      0.560      0.548     69.776    0.932     70.708
fork                 256      0.636      0.556    143.460    2.036    145.496
fork                 512      0.640      0.548    284.244    4.236    288.480
fork                1020      1.500      0.588   1326.152    8.892   1335.044

[akpm@osdl.org: !SMP build fix]
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] ZVC: Overstep counters
Christoph Lameter [Fri, 1 Sep 2006 04:27:34 +0000 (21:27 -0700)]
[PATCH] ZVC: Overstep counters

Increments and decrements are usually grouped rather than mixed.  We can
optimize the inc and dec functions for that case.

Increment and decrement the counters by 50% more than the threshold in
those cases and set the differential accordingly.  This decreases the need
to update the atomic counters.

The idea came originally from Andrew Morton.  The overstepping alone was
sufficient to address the contention issue found when updating the global
and the per zone counters from 160 processors.

Also remove some code in dec_zone_page_state.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
Linus Torvalds [Fri, 1 Sep 2006 04:27:29 +0000 (21:27 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/roland/infiniband

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  IB/mthca: Use IRQ safe locks to protect allocation bitmaps

17 years agouhci-hcd: fix list access bug
Alan Stern [Thu, 31 Aug 2006 18:18:39 +0000 (14:18 -0400)]
uhci-hcd: fix list access bug

When skipping to the last TD of an URB, go to the _last_ entry in the
list instead of the _first_ entry (as780).  This fixes Bugzilla #6747
and possibly others.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: Support for ELECOM LD-USB20 in pegasus
Nobuhiro Iwamatsu [Tue, 29 Aug 2006 07:47:41 +0000 (10:47 +0300)]
USB: Support for ELECOM LD-USB20 in pegasus

This patch is support LD-USB20 of the USB LAN device.
http://www2.elecom.co.jp/products/LD-USB20.html ( Japanese only )

I am using this device.
And, I confirmed work by using this patch.

Signed-off-by: Nobuhiro Iwamatsu <hemamu@t-base.ne.jp>
Acked-by: Petko Manolov <petkan@nucleusys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: Add VIA quirk fixup for VT8235 usb2
Mark Hindley [Mon, 28 Aug 2006 19:43:25 +0000 (20:43 +0100)]
USB: Add VIA quirk fixup for VT8235 usb2

Patch to add VIA PCI quirk for Enhanced/Extended USB on VT8235
southbridge. It is needed in order to use EHCI/USB 2.0 with ACPI.
Without it IRQs are not routed correctly, you get an "Unlink after
no-IRQ?" error and the device is unusable.

I belive this could also be a fix for Bugzilla Bug 5835.

Signed-off-by: Mark Hindley <mark@hindley.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: rtl8150_disconnect() needs tasklet_kill()
Andrew Morton [Tue, 15 Aug 2006 06:11:09 +0000 (23:11 -0700)]
USB: rtl8150_disconnect() needs tasklet_kill()

We need to wait until any currently-running handler has completed.  Fixes an
unplug-time oops reported by "Miles Lane" <miles.lane@gmail.com>.

Cc: "Petko Manolov" <petkan@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB Storage: unusual_devs.h for Sony Ericsson M600i
Phil Dibowitz [Mon, 28 Aug 2006 06:54:37 +0000 (23:54 -0700)]
USB Storage: unusual_devs.h for Sony Ericsson M600i

This entry was sent in by Emmanuel Vasilakis <evas@forthnet.gr>, turned
into a patch by yours truly.

Signed-off-by: Phil Dibowitz <phil@ipom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB Storage: Remove the finecam3 unusual_devs entry
Phil Dibowitz [Thu, 24 Aug 2006 04:11:01 +0000 (21:11 -0700)]
USB Storage: Remove the finecam3 unusual_devs entry

This patch removes the Kyocera Finecam L3 entry in unusual devices
originally submitted by Michael Krauth <michael.krauth@web.de> and
Alessandro Fracchetti <al.fracchetti@tin.it> given that Gerriet
<ger.haw@gmx.de> finds he doesn't need it and Alessandro confirms it
isn't needed anymore as well.

Signed-off-by: Phil Dibowitz <phil@ipom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUHCI: don't stop at an Iso error
Alan Stern [Mon, 21 Aug 2006 15:58:50 +0000 (11:58 -0400)]
UHCI: don't stop at an Iso error

Unlike other sorts of endpoint queues, Isochronous queues don't stop
when an error is encountered.  This patch (as772) fixes the scanning
routine in uhci-hcd, to make it keep on going when it finds an Iso
error.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agousb gadget: g_ether spinlock recursion fix
David Brownell [Mon, 21 Aug 2006 22:26:38 +0000 (15:26 -0700)]
usb gadget: g_ether spinlock recursion fix

The new spinlock debug code turned up a spinlock recursion bug in the
Ethernet gadget driver on a disconnect path; it would show up with any
UDC driver where the cancellation of active requests was synchronous,
rather than e.g. delayed until a controller's completion IRQ.

That recursion is fixed here by creating and using a new spinlock to
protect the relevant lists.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB: add all wacom device to hid-core.c blacklist
Ping Cheng [Fri, 14 Jul 2006 23:50:04 +0000 (16:50 -0700)]
USB: add all wacom device to hid-core.c blacklist

Add all Wacom devices to hid-core.c blacklist

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agohid-core.c: Adds all GTCO CalComp Digitizers and InterWrite School Products to blacklist
Jeremy Roberson [Tue, 29 Aug 2006 02:58:28 +0000 (19:58 -0700)]
hid-core.c: Adds all GTCO CalComp Digitizers and InterWrite School Products to blacklist

Adds all GTCO CalComp Digitizers and InterWrite School Products to
hid-core.c blacklist.

Signed-off-by: Jeremy A. Roberson <jroberson@gtcocalcomp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoUSB floppy drive SAMSUNG SFD-321U/EP detected 8 times
juergen.mell@t-online.de [Mon, 28 Aug 2006 20:53:53 +0000 (13:53 -0700)]
USB floppy drive SAMSUNG SFD-321U/EP detected 8 times

USB floppy drive SAMSUNG SFD-321U/EP detected 8 times

Acked-by: mantel@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
17 years agoIB/mthca: Use IRQ safe locks to protect allocation bitmaps
Roland Dreier [Thu, 31 Aug 2006 23:43:06 +0000 (16:43 -0700)]
IB/mthca: Use IRQ safe locks to protect allocation bitmaps

It is supposed to be OK to call mthca_create_ah() and mthca_destroy_ah()
from any context.  However, for mem-full HCAs, these functions use the
mthca_alloc() and mthca_free() bitmap helpers, and those helpers use
non-IRQ-safe spin_lock() internally.  Lockdep correctly warns that
this could lead to a deadlock.  Fix this by changing mthca_alloc() and
mthca_free() to use spin_lock_irqsave().

Signed-off-by: Roland Dreier <rolandd@cisco.com>
17 years ago[IPV4]: Fix SNMPv2 "ipFragFails" counter error
Wei Dong [Thu, 31 Aug 2006 22:24:48 +0000 (15:24 -0700)]
[IPV4]: Fix SNMPv2 "ipFragFails" counter error

  When I tested Linux kernel 2.6.17.7 about statistics
"ipFragFails",found that this counter couldn't increase correctly. The
criteria is RFC2011:
RFC2011
  ipFragFails OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of IP datagrams that have been discarded because
            they needed to be fragmented at this entity but could not
            be, e.g., because their Don't Fragment flag was set."
    ::= { ip 18 }

When I send big IP packet to a router with DF bit set to 1 which need to
be fragmented, and router just sends an ICMP error message
ICMP_FRAG_NEEDED but no increments for this counter(in the function
ip_fragment).

Signed-off-by: Wei Dong <weid@nanjing-fnst.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NET]: Rate limiting for socket allocation failure messages.
Akinobu Mita [Thu, 31 Aug 2006 22:21:50 +0000 (15:21 -0700)]
[NET]: Rate limiting for socket allocation failure messages.

This patch limits the warning messages when socket allocation failures
happen. It happens under memory pressure.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV6]: Fix kernel OOPs when setting sticky socket options.
YOSHIFUJI Hideaki [Thu, 31 Aug 2006 21:52:17 +0000 (14:52 -0700)]
[IPV6]: Fix kernel OOPs when setting sticky socket options.

Bug noticed by Remi Denis-Courmont <rdenis@simphalempin.com>.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoMerge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
Linus Torvalds [Thu, 31 Aug 2006 21:42:07 +0000 (14:42 -0700)]
Merge branch 'for-linus' of git://git390.osdl.marist.edu/linux-2.6

* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] cio: unsolicited interrupts during sense pgid.
  [S390] cio: no path after machine check.
  [S390] cio: kernel stack overflow.
  [S390] dasd: fix device shutdown process.
  [S390] broken copy_in_user function.

17 years ago[PATCH] i386: rwlock.h fix smp alternatives fix
Chris Wright [Thu, 31 Aug 2006 07:53:22 +0000 (00:53 -0700)]
[PATCH] i386: rwlock.h fix smp alternatives fix

Commit 8c74932779fc6f61b4c30145863a17125c1a296c ("i386: Remove
alternative_smp") did not actually compile on x86 with CONFIG_SMP.

This fixes the __build_read/write_lock helpers.  I've boot tested on
SMP.

[ Andi: "Oops, I think that was a quilt unrefreshed patch.  Sorry.  I
  fixed those before testing, but then still send out the old patch." ]

Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Cc: Gerd Hoffmann <kraxel@suse.de>
Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[ARM] 3765/1: S3C24XX: cleanup include/asm-arm/arch-s3c2410/dma.h
Ben Dooks [Thu, 31 Aug 2006 14:26:41 +0000 (15:26 +0100)]
[ARM] 3765/1: S3C24XX: cleanup include/asm-arm/arch-s3c2410/dma.h

Patch from Ben Dooks

Cleanup for include/asm-arma/arch-s3c2410/dma.h,
by using tab characters to indent items, remove the
now un-necessary changelog, and update the copyright
information.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 3764/1: S3C24XX: change type naming to kernel style
Ben Dooks [Thu, 31 Aug 2006 14:26:37 +0000 (15:26 +0100)]
[ARM] 3764/1: S3C24XX: change type naming to kernel style

Patch from Ben Dooks

The type naming in the s3c24xx dma code is riddled with
typedefs creating _t types, from the code import from 2.4
which is contrary to the current Kernel coding style.

This patch cleans this up, removing the typedefs and
and fixing up the resultant code changes.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] 3763/1: add both rtcs to csb337 defconfig
David Brownell [Thu, 31 Aug 2006 14:26:35 +0000 (15:26 +0100)]
[ARM] 3763/1: add both rtcs to csb337 defconfig

Patch from David Brownell

This adds RTC support to the csb337 default config.  Both the AT91
and the ds1307 RTCs are enabled (rtc0 and rtc1 respectively).

The ds1307 is used to initialize the system time, since it's battery-backed.

From then on the AT91 RTC is used, since it's more capable (with both
alarm and update irqs, and system wakeup capability) even though it
needs manual initialization (symlink /dev/rtc to /dev/rtc0 for older
versions of hwclock, then "hwclock --systohc") in an rc script or
from inittab.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[ARM] Fix ARM __raw_read_trylock() implementation
Russell King [Thu, 31 Aug 2006 14:09:30 +0000 (15:09 +0100)]
[ARM] Fix ARM __raw_read_trylock() implementation

Matthew Wilcox pointed out that the generic implementation
of this is unfit for use.  Here's an ARM optimised version
instead.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years agoMerge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Thu, 31 Aug 2006 04:44:06 +0000 (21:44 -0700)]
Merge branch 'merge' of git://git./linux/kernel/git/paulus/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
  [POWERPC] Fix return value from memcpy
  [POWERPC] iseries: Define insw et al. so libata/ide will compile
  [POWERPC] Fix irq enable/disable in smp_generic_take_timebase
  [POWERPC] Fix problem with time not advancing on 32-bit platforms
  [POWERPC] Restore copyright notice in arch/powerpc/kernel/fpu.S
  [POWERPC] Fix up ibm_architecture_vec definition
  [POWERPC] Make OF irq map code detect more error cases
  [POWERPC] Support for "weird" MPICs and fixup mpc7448_hpc2
  [POWERPC] Fix MPIC sense codes in documentation
  [POWERPC] Fix performance regression in IRQ radix tree locking
  [POWERPC] Add mpc7448hpc2 device tree source file
  [POWERPC] Add MPC8349E MDS device tree source file to arch/powerpc/boot/dts
  [POWERPC] modify mpc83xx platforms to use new IRQ layer
  [POWERPC] Adapt ipic driver to new host_ops interface, add set_irq_type to set IRQ sense
  [POWERPC] back up old school ipic.[hc] to arch/ppc
  [POWERPC] Use mpc8641hpcn PIC base address from dev tree.
  [POWERPC] Allow MPC8641 HPCN to build with CONFIG_PCI disabled too.
  [POWERPC] Fix powerpc 44x_mmu build
  [POWERPC] Remove flush_dcache_all export

17 years ago[PATCH] ppc32: fix last_jiffy time comparison
Paul Mackerras [Wed, 30 Aug 2006 06:13:16 +0000 (16:13 +1000)]
[PATCH] ppc32: fix last_jiffy time comparison

This fixes a hang on ppc32.

The problem was that I was comparing a 32-bit quantity with a 64-bit
quantity, and consequently time wasn't advancing.  This makes us use a
64-bit quantity on all platforms, which ends up simplifying the code
since we can now get rid of the tb_last_stamp variable (which actually
fixes another bug that Ben H and I noticed while going carefully through
the code).

This works fine on my G4 tibook.  Let me know how it goes on your
machines.

Acked-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] fbdev: Fix crashes in various fbdev's blank routines
Benjamin Herrenschmidt [Thu, 31 Aug 2006 04:04:34 +0000 (14:04 +1000)]
[PATCH] fbdev: Fix crashes in various fbdev's blank routines

The backlight changes that went in had a bug where they could cause the
kernel to access an unitialized pointer when blanking if there is no
backlight control on a machine.

The bug affects atyfb, aty128fb, nvidiafb and rivafb.  radeonfb seems to
be ok.  This fixes it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[POWERPC] Fix return value from memcpy
Paul Mackerras [Thu, 31 Aug 2006 03:22:58 +0000 (13:22 +1000)]
[POWERPC] Fix return value from memcpy

As pointed out by Herbert Xu <herbert@gondor.apana.org.au>, our
memcpy implementation didn't return the destination pointer as its
return value, and there is code in the kernel that expects that.
This fixes it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Thu, 31 Aug 2006 00:12:11 +0000 (17:12 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] Increase default nodes shift to 10, nr_cpus to 1024
  [IA64] remove redundant local_irq_save() calls from sn_sal.h
  [IA64] panic if topology_init kzalloc fails
  [IA64-SGI] Silent data corruption caused by XPC V2.

17 years ago[PATCH] drm: radeon flush TCL VAP for vertex program enable/disable
Roland Scheidegger [Wed, 30 Aug 2006 22:17:55 +0000 (23:17 +0100)]
[PATCH] drm: radeon flush TCL VAP for vertex program enable/disable

The radeon requires a VAP state flush when enabling/disabling
vertex programs on the r200 cards.

Signed-off-by: Dave Airlie <airlied@linux.ie>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] Missing PCI id update for VIA IDE
Alan Cox [Wed, 30 Aug 2006 18:14:25 +0000 (19:14 +0100)]
[PATCH] Missing PCI id update for VIA IDE

The following change from -mm is important to 2.6.18 (actually to 2.6.17
but its too late for that). This was contributed over three months ago
by VIA to Bartlomiej and nothing happened. As a result the new chipset
is now out and Linux won't run on it. By the time 2.6.18 is finalised
this will be the defacto standard VIA chipset so support would be a good
plan.

Tested in -mm for a while, its essentially a PCI ident update but for
the bridge chip because VIA do things in weird ways.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86_64: Don't write out segments from vsyscall32 DSO if it is not mapped
Suleiman Souhlal [Wed, 30 Aug 2006 17:37:20 +0000 (19:37 +0200)]
[PATCH] x86_64: Don't write out segments from vsyscall32 DSO if it is not mapped

It's possible to get an invalid page fault in kernel mode when we try to
write out segments from vsyscall32 when dumping core for a 32bit process if
the vsyscall32 DSO is not mapped in its address space (which can happen if,
for example, ulimit -v 100 is run).

Signed-off-by: Suleiman Souhlal <suleiman@google.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86_64: Save original IST values for checking stack addresses
Keith Owens [Wed, 30 Aug 2006 17:37:19 +0000 (19:37 +0200)]
[PATCH] x86_64: Save original IST values for checking stack addresses

The values in init_tss.ist[] can change when an IST event occurs.  Save
the original IST values for checking stack addresses when debugging or
doing stack traces.

Signed-off-by: Keith Owens <kaos@ocs.com.au>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] i386: Remove __KERNEL__ ifdef around _syscall*()
Andi Kleen [Wed, 30 Aug 2006 17:37:18 +0000 (19:37 +0200)]
[PATCH] i386: Remove __KERNEL__ ifdef around _syscall*()

After all their only point is having them in user space.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] i386: Fix stack switching in do_IRQ
Andi Kleen [Wed, 30 Aug 2006 17:37:17 +0000 (19:37 +0200)]
[PATCH] i386: Fix stack switching in do_IRQ

There was a bogus hunk from the genirq merge that essentially
broke stack switching for hard interrupts. Remove it since it isn't
needed.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86_64: Remove __KERNEL__ ifdef around _syscall*()
Andi Kleen [Wed, 30 Aug 2006 17:37:16 +0000 (19:37 +0200)]
[PATCH] x86_64: Remove __KERNEL__ ifdef around _syscall*()

After all their only point is having them in user space. On x86-64
they don't even work in kernel space.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86: Disable MMCONFIG on Intel SDV using DMI blacklist
Andi Kleen [Wed, 30 Aug 2006 17:37:15 +0000 (19:37 +0200)]
[PATCH] x86: Disable MMCONFIG on Intel SDV using DMI blacklist

As a replacement for the earlier removal of the e820 MCFG check
we blacklist the Intel SDV with the original BIOS bug that
motivated that check. On those machines don't use MMCONFIG.

This also adds a new pci=mmconf parameter to override the blacklist.

Cc: Greg KH <gregkh@suse.de>
Cc: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] i386: Remove alternative_smp
Andi Kleen [Wed, 30 Aug 2006 17:37:14 +0000 (19:37 +0200)]
[PATCH] i386: Remove alternative_smp

The .fill causes miscompilations with some binutils version.

Instead just patch the lock prefix in the lock constructs. That is the
majority of the cost and should be good enough.

Cc: Gerd Hoffmann <kraxel@suse.de>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86_64: Remove alternative_smp
Andi Kleen [Wed, 30 Aug 2006 17:37:13 +0000 (19:37 +0200)]
[PATCH] x86_64: Remove alternative_smp

The .fill causes miscompilations with some binutils version.

Instead just patch the lock prefix in the lock constructs. That is the
majority of the cost and should be good enough.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86_64: Recover 1MB of kernel memory
Andi Kleen [Wed, 30 Aug 2006 17:37:12 +0000 (19:37 +0200)]
[PATCH] x86_64: Recover 1MB of kernel memory

Noticed by Jan Beulich.

When the kernel was moved from 1MB to 2MB in 2.6.17 the kernel reservation
code wasn't adjusted and it still reserved starting with 1MB. This means 1MB always
were lost.

This patch fixes this by reserving only starting with _text.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86: Make backtracer fallback logic more bullet-proof
Jan Beulich [Wed, 30 Aug 2006 17:37:11 +0000 (19:37 +0200)]
[PATCH] x86: Make backtracer fallback logic more bullet-proof

The unwinder fallback logic still had potential for falling through to
the legacy stack trace code without printing an indication (at once
serving as a separator) of this.

Further, the stack pointer retrieval for the fallback should be as
restrictive as possible (in order to avoid having the legacy stack
tracer try to access invalid memory). The patch tightens that, but
this could certainly be further improved.

Also making the call_trace command line option now conditional upon
CONFIG_STACK_UNWIND (as it's meaningless otherwise).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86: fix x86 cpuid keys used in alternative_smp()
Jan Beulich [Wed, 30 Aug 2006 17:37:10 +0000 (19:37 +0200)]
[PATCH] x86: fix x86 cpuid keys used in alternative_smp()

By hard-coding the cpuid keys for alternative_smp() rather than using
the symbolic constant it turned out that incorrect values were used on
both i386 (0x68 instead of 0x69) and x86-64 (0x66 instead of 0x68).

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] i386: Add kernel thread stack frame termination for properly stopping stack...
Andi Kleen [Wed, 30 Aug 2006 17:37:09 +0000 (19:37 +0200)]
[PATCH] i386: Add kernel thread stack frame termination for properly stopping stack unwinds.

One open question: Should this added push perhaps be made conditional
upon CONFIG_STACK_UNWIND or CONFIG_UNWIND_INFO?
[AK: not needed, these are all very slow paths]

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86_64: Add kernel thread stack frame termination for properly stopping stack...
Andi Kleen [Wed, 30 Aug 2006 17:37:08 +0000 (19:37 +0200)]
[PATCH] x86_64: Add kernel thread stack frame termination for properly stopping stack unwinds.

One open question: Should these added pushes perhaps be made
conditional upon CONFIG_STACK_UNWIND or CONFIG_UNWIND_INFO?
[AK: Not needed -- these are all very slow paths]

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86: Revert e820 MCFG heuristics
Andi Kleen [Wed, 30 Aug 2006 17:37:06 +0000 (19:37 +0200)]
[PATCH] x86: Revert e820 MCFG heuristics

The check for the MCFG table being reserved in the e820 map was originally
added to detect a broken BIOS in a preproduction Intel SDV. However it also
breaks the Apple x86 Macs, which can't supply this properly, but need
a working MCFG. With this patch they wouldn't use the MCFG and not work.

After some discussion I think it's best to remove the heuristic again.
It also failed on some other boxes (although it didn't cause much
problems there because old style port access for PCI config space
still works as fallback), but the preproduction SDVs can just use
pci=nommcfg. Supporting production machines properly is more
important.

Edgar Hucek did all the debugging work.

Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Edgar Hucek <hostmaster@ed-soft.at>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years ago[PATCH] x86_64: Update defconfig
Andi Kleen [Wed, 30 Aug 2006 17:37:05 +0000 (19:37 +0200)]
[PATCH] x86_64: Update defconfig

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Wed, 30 Aug 2006 22:54:55 +0000 (15:54 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SUNLANCE]: Fix probing problem.
  [SPARC64]: Fix X server hangs due to large pages.

17 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Wed, 30 Aug 2006 22:54:35 +0000 (15:54 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [STRIP]: Fix neighbour table refcount leak.
  [IPV6]: ipv6_add_addr should install dstentry earlier
  [NETLINK]: Call panic if nl_table allocation fails
  [TCP]: Two RFC3465 Appropriate Byte Count fixes.
  [IPV6]: SNMPv2 "ipv6IfStatsInAddrErrors" counter error
  [E100]: Add module option to ignore bad EEPROM checksums.
  [SCTP]: Fix sctp_primitive_ABORT() call in sctp_close().

17 years ago[ARM] 3750/3: Fix double VFP emulation for EABI kernels
Daniel Jacobowitz [Wed, 30 Aug 2006 14:06:39 +0000 (15:06 +0100)]
[ARM] 3750/3: Fix double VFP emulation for EABI kernels

Patch from Daniel Jacobowitz

vfp_put_double didn't work in a CONFIG_AEABI kernel.  By swapping
the arguments, we arrange for them to be in the same place regardless
of ABI.  I made the same change to vfp_put_float for consistency.

Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[S390] cio: unsolicited interrupts during sense pgid.
Stefan Bader [Wed, 30 Aug 2006 12:33:39 +0000 (14:33 +0200)]
[S390] cio: unsolicited interrupts during sense pgid.

Calls to set a device online with path grouping may get stuck in
some cases because certain device conditions where discarded after
unsolicited interrupts.
Check subchannel activity after unsolicited interrupts and retry
the operation if the subchannel is idle.

Signed-off-by: Stefan Bader <shbader@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] cio: no path after machine check.
Peter Oberparleiter [Wed, 30 Aug 2006 12:33:37 +0000 (14:33 +0200)]
[S390] cio: no path after machine check.

Devices enter no-path state after disabling a channel path
via the SE even though another path has been reenabled at the SE.
The devices are set into no-path state before triggering path
verification even though other paths may have become available.
To fix this trigger path verification before setting a device into
no-path state.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] cio: kernel stack overflow.
Heiko Carstens [Wed, 30 Aug 2006 12:33:35 +0000 (14:33 +0200)]
[S390] cio: kernel stack overflow.

Use different kind of assignment to make sure gcc doesn't create code
that creates temp variables on the stack, assigns values to it and
copies the content of the whole temp variable to the destination.
This reduces stack usage of e.g. ccwgroup_driver_register from 976
to 48 bytes instead.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] dasd: fix device shutdown process.
Horst Hummel [Wed, 30 Aug 2006 12:33:33 +0000 (14:33 +0200)]
[S390] dasd: fix device shutdown process.

Fix clear_IO handling (need to wait for interrupt) and
introduced error-handling in shutdown processing.

Signed-off-by: Horst Hummel <horst.hummel@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[S390] broken copy_in_user function.
Martin Schwidefsky [Wed, 30 Aug 2006 12:33:30 +0000 (14:33 +0200)]
[S390] broken copy_in_user function.

The copy_in_user primitive does not work as advertised. If the source
and target area are available copy_in_user copies one byte too much.
If one of the memory areas is not available it does not copy as much
data as it can, but up to 257 bytes less.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
17 years ago[POWERPC] iseries: Define insw et al. so libata/ide will compile
Stephen Rothwell [Wed, 30 Aug 2006 07:11:34 +0000 (17:11 +1000)]
[POWERPC] iseries: Define insw et al. so libata/ide will compile

These are build fixes that enable (for example) libata and the ide
code to actually build on iSeries.  The associated hardware will never
be supported on legacy iSeries, so the code paths don't actually need
to work, but it is useful (especially for a combined kernel) if the
code can build.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[SERIAL] 8250: constify some serial structs
Helge Deller [Tue, 29 Aug 2006 19:57:29 +0000 (21:57 +0200)]
[SERIAL] 8250: constify some serial structs

- some const- ification and usage of ARRAY_SIZE() in serial drivers

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[SERIAL] Make uart_match_port() work with all memory mapped UARTs
Sergei Shtylyov [Mon, 28 Aug 2006 15:49:03 +0000 (19:49 +0400)]
[SERIAL] Make uart_match_port() work with all memory mapped UARTs

uart_match_port() always fails with UPIO_MEM32, UPIO_AU, and UPIO_TSI cases.
Since they match to the memory mapped UARTs, they should be handled just like
UPIO_MEM case.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
17 years ago[POWERPC] Fix irq enable/disable in smp_generic_take_timebase
Paul Mackerras [Wed, 30 Aug 2006 06:10:47 +0000 (16:10 +1000)]
[POWERPC] Fix irq enable/disable in smp_generic_take_timebase

Eran Ben-Avi <eranpublic@yahoo.com> pointed out that the arch/ppc version
of smp_generic_take_timebase disables interrupts on entry but exits without
restoring them.  However, both it and the arch/powerpc version have another
problem, which is that they use local_irq_disable/enable rather than
local_irq_save/restore, and they are called with interrupts disabled.

This fixes both problems; it changes a return to a break in the arch/ppc
version, and changes both versions to use local_irq_save/restore.

Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Fix problem with time not advancing on 32-bit platforms
Paul Mackerras [Wed, 30 Aug 2006 05:55:32 +0000 (15:55 +1000)]
[POWERPC] Fix problem with time not advancing on 32-bit platforms

This fixes a problem introduced in 5db9fa9593e2ff69f2b95f9d59229dc4faaa564d.
The last_jiffy per-cpu variable is only 32 bits on 32-bit machines, but it
was being compared with a 64-bit quantity (tb_next_jiffy), which resulted in
time not advancing.

This fixes it by changing last_jiffy to be 64 bits on all platforms.  With
this, we no longer need tb_last_stamp as a 32-bit version of tb_last_jiffy,
so this gets rid of tb_last_stamp and we just use tb_last_jiffy instead.
This also fixes a bug when the boot cpu is not online, because using
tb_last_stamp could have caused the wrong timebase origin value to be used
when calculating the time of day.

Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Restore copyright notice in arch/powerpc/kernel/fpu.S
Paul Mackerras [Wed, 30 Aug 2006 04:45:35 +0000 (14:45 +1000)]
[POWERPC] Restore copyright notice in arch/powerpc/kernel/fpu.S

This code got moved from head.S but the copyright notice on head.S didn't
get transferred with it.  Noticed by Cort Dougan <cort@fsmlabs.com>.

Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Fix up ibm_architecture_vec definition
Will Schmidt [Fri, 25 Aug 2006 20:46:59 +0000 (15:46 -0500)]
[POWERPC] Fix up ibm_architecture_vec definition

This problem was noticed by one of the Phyp firmware folks.
Our ibm,client-architecture-support call was failing.
This corrects the vector length parameters being passed in.

Signed-off-by: Will Schmidt <will_schmidt@vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Make OF irq map code detect more error cases
Benjamin Herrenschmidt [Fri, 25 Aug 2006 04:46:23 +0000 (14:46 +1000)]
[POWERPC] Make OF irq map code detect more error cases

Device-tree bugs on js20 with some versions of SLOF were causing the
interrupt for IDE to not be parsed correctly and fail to boot. This
patch adds a bit more sanity checking to the parser to detect some of
those errors and fail instead of returning bogus information.  The
powerpc PCI code can then trigger a fallback that works on those
machines.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[POWERPC] Support for "weird" MPICs and fixup mpc7448_hpc2
Zang Roy-r61911 [Fri, 25 Aug 2006 04:16:30 +0000 (14:16 +1000)]
[POWERPC] Support for "weird" MPICs and fixup mpc7448_hpc2

This adds a new hardware information table for mpic. This enables
the mpic code to deal with mpic controllers with different register
layouts and hardware behaviours.

This introduces CONFIG_MPIC_WEIRD.  For boards with non standard mpic
controllers, select CONFIG_MPIC_WEIRD and add its hardware information
in the mpic_infos[] array.

TSI108/109 PIC takes the first index of weird hardware information
table.  :)  The table can be extended. The Tsi108/109 PIC looks like
standard OpenPIC but, in fact, is different in register mapping and
behavior.

The patch does not affect the behavior of standard mpic.  If
CONFIG_MPIC_WEIRD is not defined, the code is essentially identical to
the current code.

[benh@kernel.crashing.org:
This patch is a slightly cleaned up version of Zang Roy's support for
the TSI108 MPIC variant. It also fixes up MPC7448_hpc2 to use the new
version of the type macros and changes the way MPIC is selected in
Kconfig to better match what is done for other system devices.
]

Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
17 years ago[SUNLANCE]: Fix probing problem.
Krzysztof Helt [Tue, 29 Aug 2006 06:28:16 +0000 (23:28 -0700)]
[SUNLANCE]: Fix probing problem.

The current probe table causes ledma and lebuffer
"le" devices to get probed twice which is not what
we want.

Match just "le" and look directly at the parent to get the correct
top-level node information.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SPARC64]: Fix X server hangs due to large pages.
David S. Miller [Mon, 28 Aug 2006 07:33:03 +0000 (00:33 -0700)]
[SPARC64]: Fix X server hangs due to large pages.

This problem was introduced by changeset
14778d9072e53d2171f66ffd9657daff41acfaed

Unlike the hugetlb code paths, the normal fault code is not setup to
propagate PTE changes for large page sizes correctly like the ones we
make for I/O mappings in io_remap_pfn_range().

It is absolutely necessary to update all sub-ptes of a largepage
mapping on a fault.  Adding special handling for this would add
considerably complexity to tlb_batch_add().  So let's just side-step
the issue and forcefully dirty any writable PTEs created by
io_remap_pfn_range().

The only other real option would be to disable to large PTE code of
io_remap_pfn_range() and we really don't want to do that.

Much thanks to Mikael Pettersson for tracking down this problem and
testing debug patches.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[STRIP]: Fix neighbour table refcount leak.
Stephen Hemminger [Wed, 30 Aug 2006 04:18:45 +0000 (21:18 -0700)]
[STRIP]: Fix neighbour table refcount leak.

Found by inspection. The STRIP driver does neigh_lookup() but never
releases.  This driver shouldn't being doing gratuitous arp anyway.

Untested, obviously, because of lack of hardware.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV6]: ipv6_add_addr should install dstentry earlier
Keir Fraser [Tue, 29 Aug 2006 09:43:49 +0000 (02:43 -0700)]
[IPV6]: ipv6_add_addr should install dstentry earlier

ipv6_add_addr allocates a struct inet6_ifaddr and a dstentry, but it
doesn't install the dstentry in ifa->rt until after it releases the
addrconf_hash_lock. This means other CPUs will be able to see the new
address while it hasn't been initialized completely yet.

One possible fix would be to grab the ifp->lock spinlock when
creating the address struct; a simpler fix is to just move the
assignment.

Acked-by: jbeulich@novell.com
Acked-by: okir@suse.de
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[NETLINK]: Call panic if nl_table allocation fails
Akinobu Mita [Tue, 29 Aug 2006 09:15:24 +0000 (02:15 -0700)]
[NETLINK]: Call panic if nl_table allocation fails

This patch makes crash happen if initialization of nl_table fails
in initcalls. It is better than getting use after free crash later.

Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[TCP]: Two RFC3465 Appropriate Byte Count fixes.
Daikichi Osuga [Tue, 29 Aug 2006 09:01:44 +0000 (02:01 -0700)]
[TCP]: Two RFC3465 Appropriate Byte Count fixes.

1) fix slow start after retransmit timeout
2) fix case of L=2*SMSS acked bytes comparison

Signed-off-by: Daikichi Osuga <osugad@s1.nttdocomo.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[IPV6]: SNMPv2 "ipv6IfStatsInAddrErrors" counter error
Lv Liangying [Tue, 29 Aug 2006 07:00:47 +0000 (00:00 -0700)]
[IPV6]: SNMPv2 "ipv6IfStatsInAddrErrors" counter error

   When I tested Linux kernel 2.6.17.7 about statistics
"ipv6IfStatsInAddrErrors", found that this counter couldn't increase
correctly. The criteria is RFC2465:
 ipv6IfStatsInAddrErrors OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The number of input datagrams discarded because
         the IPv6 address in their IPv6 header's destination
         field was not a valid address to be received at
         this entity.  This count includes invalid
         addresses (e.g., ::0) and unsupported addresses
         (e.g., addresses with unallocated prefixes).  For
         entities which are not IPv6 routers and therefore
         do not forward datagrams, this counter includes
         datagrams discarded because the destination address
         was not a local address."
      ::= { ipv6IfStatsEntry 5 }

When I send packet to host with destination that is ether invalid
address(::0) or unsupported addresses(1::1), the Linux kernel just
discard the packet, and the counter doesn't increase(in the function
ip6_pkt_discard).

Signed-off-by: Lv Liangying <lvly@nanjing-fnst.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[E100]: Add module option to ignore bad EEPROM checksums.
David S. Miller [Tue, 29 Aug 2006 05:12:54 +0000 (22:12 -0700)]
[E100]: Add module option to ignore bad EEPROM checksums.

Several people run into the situation where the E100
EEPROM contents are fine, but the checksum hasn't been
set properly.  This renders the device useless for
them even though it would function correctly.

The default is off, which retains the current behavior.

Signed-off-by: David S. Miller <davem@davemloft.net>
17 years ago[SCTP]: Fix sctp_primitive_ABORT() call in sctp_close().
Sridhar Samudrala [Mon, 28 Aug 2006 20:53:01 +0000 (13:53 -0700)]
[SCTP]: Fix sctp_primitive_ABORT() call in sctp_close().

With the recent fix, the callers of sctp_primitive_ABORT()
need to create an ABORT chunk and pass it as an argument rather
than msghdr that was passed earlier.

Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>