openwrt/staging/blogic.git
18 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Fri, 6 Oct 2006 18:08:57 +0000 (11:08 -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] Fix breakage from irq change

18 years agoInitial blind fixup for arm for irq changes
Linus Torvalds [Fri, 6 Oct 2006 17:53:39 +0000 (10:53 -0700)]
Initial blind fixup for arm for irq changes

Untested, but this should fix up the bulk of the totally mechanical
issues, and should make the actual detail fixing easier.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[IA64] Fix breakage from irq change
Tony Luck [Fri, 6 Oct 2006 17:09:41 +0000 (10:09 -0700)]
[IA64] Fix breakage from irq change

A few missed spots in ia64-land from this gigantic commit:

7d12e780e003f93433d49ce78cfedf4b4c52adc5

Signed-off-by: Tony Luck <tony.luck@intel.com>
18 years agoMerge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
Linus Torvalds [Fri, 6 Oct 2006 16:13:53 +0000 (09:13 -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] Use CONFIG_GENERIC_TIME and define TOD clock source.
  [PATCH] sysrq: irq change build fix.
  [S390] irq change build fixes.
  [S390] cio: 0 is a valid chpid.
  [S390] monwriter buffer limit.
  [S390] ap bus poll thread priority.

18 years ago[PATCH] um: irq changes break build
Pekka Enberg [Fri, 6 Oct 2006 07:44:06 +0000 (00:44 -0700)]
[PATCH] um: irq changes break build

Fixup broken UML build due to 7d12e780e003f93433d49ce78cfedf4b4c52adc5
"IRQ: Maintain regs pointer globally rather than passing to IRQ handlers".

Cc: David Howells <dhowells@redhat.com>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Paolo "Blaisorblade" Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] knfsd: tidy up up meaning of 'buffer size' in nfsd/sunrpc
NeilBrown [Fri, 6 Oct 2006 07:44:05 +0000 (00:44 -0700)]
[PATCH] knfsd: tidy up up meaning of 'buffer size' in nfsd/sunrpc

There is some confusion about the meaning of 'bufsz' for a sunrpc server.
In some cases it is the largest message that can be sent or received.  In
other cases it is the largest 'payload' that can be included in a NFS
message.

In either case, it is not possible for both the request and the reply to be
this large.  One of the request or reply may only be one page long, which
fits nicely with NFS.

So we remove 'bufsz' and replace it with two numbers: 'max_payload' and
'max_mesg'.  Max_payload is the size that the server requests.  It is used
by the server to check the max size allowed on a particular connection:
depending on the protocol a lower limit might be used.

max_mesg is the largest single message that can be sent or received.  It is
calculated as the max_payload, rounded up to a multiple of PAGE_SIZE, and
with PAGE_SIZE added to overhead.  Only one of the request and reply may be
this size.  The other must be at most one page.

Cc: Greg Banks <gnb@sgi.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] md: fix bug where new drives added to an md array sometimes don't sync properly
NeilBrown [Fri, 6 Oct 2006 07:44:04 +0000 (00:44 -0700)]
[PATCH] md: fix bug where new drives added to an md array sometimes don't sync properly

This fixes a bug introduced in 2.6.18.

If a drive is added to a raid1 using older tools (mdadm-1.x or raidtools)
then it will be included in the array without any resync happening.

It has been submitted for 2.6.18.1.

Signed-off-by: Neil Brown <neilb@suse.de>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] mmc: multi sector write transfers
Pierre Ossman [Fri, 6 Oct 2006 07:44:03 +0000 (00:44 -0700)]
[PATCH] mmc: multi sector write transfers

SD cards extend the protocol by allowing the host to query a card how many
blocks were successfully stored on the medium.  This allows us to safely write
chunks of blocks at once.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] swarm: Actually initialize the IDE driver
Maciej W. Rozycki [Fri, 6 Oct 2006 07:44:02 +0000 (00:44 -0700)]
[PATCH] swarm: Actually initialize the IDE driver

This is required for the SWARM GenBus IDE interface to be recognized.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] sched: fix a kerneldoc error on is_init()
Henne [Fri, 6 Oct 2006 07:44:01 +0000 (00:44 -0700)]
[PATCH] sched: fix a kerneldoc error on is_init()

Fix a kerneldoc warning and reorderd the description for is_init().

Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de>
Cc: "Randy.Dunlap" <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] MAINTAINERS: take over scx200-* and pc8736* drivers
Jim Cromie [Fri, 6 Oct 2006 07:43:59 +0000 (00:43 -0700)]
[PATCH] MAINTAINERS: take over scx200-* and pc8736* drivers

Add MAINTAINERS entries for new scx200_hrt and pc8736x_gpio drivers, and
take over maintenance of scx200_gpio, authored by Christer Weinigel (which
I've hacked at), who no longer has the hardware.

Also take over hwmon/pc87360, authored by Jean Delvare, who's dropped
maintenance to dedicate more time to hwmon subsystem.

Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: Christer Weinigel <christer@weinigel.se>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix typo in "syntax error if percpu macros are incorrectly used" patch
Jan Blunck [Fri, 6 Oct 2006 07:43:58 +0000 (00:43 -0700)]
[PATCH] Fix typo in "syntax error if percpu macros are incorrectly used" patch

Trivial typo fix in the "syntax error if percpu macros are incorrectly
used" patch.  I misspelled "identifier" in all places.  D'Oh!

Thanks to Dirk Mueller to point this out.

Signed-off-by: Jan Blunck <jblunck@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: dma_alloc_coherent() has gfp_t as the last argument
Al Viro [Fri, 6 Oct 2006 07:43:58 +0000 (00:43 -0700)]
[PATCH] m68k: dma_alloc_coherent() has gfp_t as the last argument

annotate, fix the bogus argument of vmap() in it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: fix NBPG define
Roman Zippel [Fri, 6 Oct 2006 07:43:57 +0000 (00:43 -0700)]
[PATCH] m68k: fix NBPG define

The recent header cleanup removed PAGE_SIZE from the exported information as
it depends on the configuration.

BTW This has possibly other consequences, as the core dump code is using
PAGE_SIZE directly, which may need fixing as well.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: small system.h cleanup
Roman Zippel [Fri, 6 Oct 2006 07:43:56 +0000 (00:43 -0700)]
[PATCH] m68k: small system.h cleanup

avoid unnecessary xchg() use in set_mb()

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: fix typo in __generic_copy_to_user
Roman Zippel [Fri, 6 Oct 2006 07:43:56 +0000 (00:43 -0700)]
[PATCH] m68k: fix typo in __generic_copy_to_user

Jump to the correct exit label after exception

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] m68k: cleanup string functions
Roman Zippel [Fri, 6 Oct 2006 07:43:55 +0000 (00:43 -0700)]
[PATCH] m68k: cleanup string functions

- cleanup asm of string functions
- deinline strncat()/strncmp()
- provide non-inlined strcpy()

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] provide tickadj define
Roman Zippel [Fri, 6 Oct 2006 07:43:54 +0000 (00:43 -0700)]
[PATCH] provide tickadj define

Provide a tickadj compatibility define for archs still using it.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] page fault retry with NOPAGE_REFAULT
Benjamin Herrenschmidt [Fri, 6 Oct 2006 07:43:53 +0000 (00:43 -0700)]
[PATCH] page fault retry with NOPAGE_REFAULT

Add a way for a no_page() handler to request a retry of the faulting
instruction.  It goes back to userland on page faults and just tries again
in get_user_pages().  I added a cond_resched() in the loop in that later
case.

The problem I have with signal and spufs is an actual bug affecting apps and I
don't see other ways of fixing it.

In addition, we are having issues with infiniband and 64k pages (related to
the way the hypervisor deals with some HV cards) that will require us to muck
around with the MMU from within the IB driver's no_page() (it's a pSeries
specific driver) and return to the caller the same way using NOPAGE_REFAULT.

And to add to this, the graphics folks have been following a new approach of
memory management that involves transparently swapping objects between video
ram and main meory.  To do that, they need installing PTEs from a no_page()
handler as well and that also requires returning with NOPAGE_REFAULT.

(For the later, they are currently using io_remap_pfn_range to install one PTE
from no_page() which is a bit racy, we need to add a check for the PTE having
already been installed afer taking the lock, but that's ok, they are only at
the proof-of-concept stage.  I'll send a patch adding a "clean" function to do
that, we can use that from spufs too and get rid of the sparsemem hacks we do
to create struct page for SPEs.  Basically, that provides a generic solution
for being able to have no_page() map hardware devices, which is something that
I think sound driver folks have been asking for some time too).

All of these things depend on having the NOPAGE_REFAULT exit path from
no_page() handlers.

Signed-off-by: Benjamin Herrenchmidt <benh@kernel.crashing.org>
Cc: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] slab: reduce numa text size
Pekka Enberg [Fri, 6 Oct 2006 07:43:52 +0000 (00:43 -0700)]
[PATCH] slab: reduce numa text size

Reduce the NUMA text size of mm/slab.o a little on x86 by using a local
variable to store the result of numa_node_id().

    text    data     bss     dec     hex filename
   16858    2584      16   19458    4c02 mm/slab.o (before)
   16804    2584      16   19404    4bcc mm/slab.o (after)

[akpm@osdl.org: use better names]
[pbadari@us.ibm.com: fix that]
Cc: Christoph Lameter <christoph@lameter.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
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>
18 years ago[PATCH] ohci: don't play with IRQ regs
David Brownell [Fri, 6 Oct 2006 07:43:51 +0000 (00:43 -0700)]
[PATCH] ohci: don't play with IRQ regs

This is a more correct fix for the way the ohci hcd was referencing pt_regs
in the unlink paths.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] irq_reqs: export __irq_regs
Andrew Morton [Fri, 6 Oct 2006 07:43:50 +0000 (00:43 -0700)]
[PATCH] irq_reqs: export __irq_regs

Modules might want this.

Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix WARN_ON / WARN_ON_ONCE regression
Andrew Morton [Fri, 6 Oct 2006 07:43:49 +0000 (00:43 -0700)]
[PATCH] Fix WARN_ON / WARN_ON_ONCE regression

Tim and Ananiev report that the recent WARN_ON_ONCE changes cause increased
cache misses with the tbench workload.  Apparently due to the access to the
newly-added static variable.

Rearrange the code so that we don't touch that variable unless the warning is
going to trigger.

Also rework the logic so that the static variable starts out at zero, so we
can move it into bss.

It would seem logical to mark the static variable as __read_mostly too.  But
it would be wrong, because that would put it back into the vmlinux image, and
the kernel will never read from this variable in normal operation anyway.
Unless the compiler or hardware go and do some prefetching on us?

For some reason this patch shrinks softirq.o text by 40 bytes.

Cc: Tim Chen <tim.c.chen@intel.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: "Ananiev, Leonid I" <leonid.i.ananiev@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] kauditd_thread warning fix
Andrew Morton [Fri, 6 Oct 2006 07:43:48 +0000 (00:43 -0700)]
[PATCH] kauditd_thread warning fix

Squash this warning:

  kernel/audit.c: In function 'kauditd_thread':
  kernel/audit.c:367: warning: no return statement in function returning non-void

We might as test kthread_should_stop(), although it's not very pointful at
present.

The code which starts this thread looks racy - the kernel could start multiple
threads.

Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386: irqs build fix
Andrew Morton [Fri, 6 Oct 2006 07:43:48 +0000 (00:43 -0700)]
[PATCH] i386: irqs build fix

Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[S390] Use CONFIG_GENERIC_TIME and define TOD clock source.
Martin Schwidefsky [Fri, 6 Oct 2006 14:38:48 +0000 (16:38 +0200)]
[S390] Use CONFIG_GENERIC_TIME and define TOD clock source.

Fix too slow clock by using CONFIG_GENERIC_TIME and adding a
clock source for the s390 time-of-day clock. As added benefit
we get rid of the s390 specific definition of do_gettimeofday
and do_settimeofday.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[PATCH] sysrq: irq change build fix.
Heiko Carstens [Fri, 6 Oct 2006 14:38:42 +0000 (16:38 +0200)]
[PATCH] sysrq: irq change build fix.

drivers/char/sysrq.c: In function `sysrq_handle_crashdump':
drivers/char/sysrq.c:98: warning: implicit declaration of function `get_irq_regs'

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] irq change build fixes.
Heiko Carstens [Fri, 6 Oct 2006 14:38:35 +0000 (16:38 +0200)]
[S390] irq change build fixes.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] cio: 0 is a valid chpid.
Cornelia Huck [Fri, 6 Oct 2006 14:38:29 +0000 (16:38 +0200)]
[S390] cio: 0 is a valid chpid.

In order to determine chpid validity, we need to check whether the
corresponding path is specified in the pim.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] monwriter buffer limit.
Melissa Howland [Fri, 6 Oct 2006 14:38:26 +0000 (16:38 +0200)]
[S390] monwriter buffer limit.

Make max_bufs a global (per linux guest) limit.

Signed-off-by: Melissa Howland <melissah@us.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] ap bus poll thread priority.
Christian Borntraeger [Fri, 6 Oct 2006 14:38:22 +0000 (16:38 +0200)]
[S390] ap bus poll thread priority.

The ap bus is supposed to have a low priority. We must use 19 instead
of -20, which is just the opposite.

Signed-off-by: Christian Borntraeger <cborntra@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[PATCH] powerpc: irq change build breaks
Olof Johansson [Fri, 6 Oct 2006 01:31:10 +0000 (20:31 -0500)]
[PATCH] powerpc: irq change build breaks

Fix up some of the buildbreaks from the irq handler changes.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge git://git.infradead.org/~dhowells/irq-2.6
Linus Torvalds [Thu, 5 Oct 2006 23:32:01 +0000 (16:32 -0700)]
Merge git://git.infradead.org/~dhowells/irq-2.6

* git://git.infradead.org/~dhowells/irq-2.6:
  IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
  IRQ: Typedef the IRQ handler function type
  IRQ: Typedef the IRQ flow handler function type

18 years ago[PATCH] UDF: Fix mounting read-write
Peter Osterlund [Thu, 5 Oct 2006 19:17:50 +0000 (21:17 +0200)]
[PATCH] UDF: Fix mounting read-write

The UDF filesystem can't be mounted in read-write mode any more,
because of forgotten braces.

Signed-off-by: Peter Osterlund <petero2@telia.com>
[ Duh! ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] x86-64: Fix compilation without CONFIG_KALLSYMS
Randy Dunlap [Thu, 5 Oct 2006 17:07:26 +0000 (19:07 +0200)]
[PATCH] x86-64: Fix compilation without CONFIG_KALLSYMS

Include linux/kallsyms.h unconditionally for print_symbol().

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
Linus Torvalds [Thu, 5 Oct 2006 22:51:43 +0000 (15:51 -0700)]
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6

* 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6:
  [PATCH] i386: fix rwsem build bug on CONFIG_M386=y
  [PATCH] x86-64: Annotate interrupt frame backlink in interrupt handlers
  [PATCH] x86-64: Fix FPU corruption
  [PATCH] x86: Terminate the kernel stacks for the unwinder
  [PATCH] i386: Fix PCI BIOS config space access
  [PATCH] x86-64: Calgary IOMMU: print PCI bus numbers in hex
  [PATCH] x86-64: Calgary IOMMU: Update Jon's contact info
  [PATCH] x86-64: Calgary IOMMU: Fix off by one when calculating register space location
  [PATCH] x86-64: Calgary IOMMU: deobfuscate calgary_init
  [PATCH] i386: Update defconfig
  [PATCH] x86-64: Update defconfig

[ Manually skipped commits that incorrectly ignored AC in kernel space.
  The alignment fault is defined to only happen for CPL3 anyway  - Linus ]

18 years ago[PATCH] fix qla{2,4} build error
Frederik Deweerdt [Thu, 5 Oct 2006 20:49:18 +0000 (20:49 +0000)]
[PATCH] fix qla{2,4} build error

commit 0181944fe647cae18d545ac1167df3d15d393701 adds a
'extended_error_logging' global variable to qla2xxx which is defined by
qla4xxx too.

Trying to build both drivers results in the following error:

  LD      drivers/scsi/built-in.o
  drivers/scsi/qla4xxx/built-in.o: In function `qla4xxx_slave_configure':
  drivers/scsi/qla4xxx/ql4_os.c:1433: multiple definition of `extended_error_logging'
  drivers/scsi/qla2xxx/built-in.o:drivers/scsi/qla2xxx/qla_os.c:2166:
  first defined here
  make[2]: *** [drivers/scsi/built-in.o] Error 1
  make[1]: *** [drivers/scsi] Error 2
  make: *** [drivers] Error 2

The following patch simply adds a qla2_ (qla4_ respectively) prefix to
the variable name.

Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] i386: fix rwsem build bug on CONFIG_M386=y
Ingo Molnar [Thu, 5 Oct 2006 16:47:22 +0000 (18:47 +0200)]
[PATCH] i386: fix rwsem build bug on CONFIG_M386=y

CONFIG_M386 turns on spinlock-based generic rwsems - which surprises the
semaphore.S rwsem stubs. Tested both with and without CONFIG_M386.

Reported-by: Klaus Knopper <knopper@knopper.net>
Triaged-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] x86-64: Annotate interrupt frame backlink in interrupt handlers
Andi Kleen [Thu, 5 Oct 2006 16:47:22 +0000 (18:47 +0200)]
[PATCH] x86-64: Annotate interrupt frame backlink in interrupt handlers

Add correct CFI annotation to the backlink on top of the interrupt stack.

Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] x86-64: Fix FPU corruption
Andi Kleen [Thu, 5 Oct 2006 16:47:22 +0000 (18:47 +0200)]
[PATCH] x86-64: Fix FPU corruption

This reverts an earlier patch that was found to cause FPU
state corruption. I think the corruption happens because
unlazy_fpu() can cause FPU exceptions and when it happens
after the current switch some processing would affect
the state in the wrong process.

Thanks to  Douglas Crosher and Tom Hughes for testing.

Cc: jbeulich@novell.com
Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] x86: Terminate the kernel stacks for the unwinder
Andi Kleen [Thu, 5 Oct 2006 16:47:22 +0000 (18:47 +0200)]
[PATCH] x86: Terminate the kernel stacks for the unwinder

Always make sure RIP/EIP is 0 in the registers stored on the top
of the stack of a kernel thread. This makes sure the unwinder code
won't try a fallback but knows the stack has ended.

AK: this patch is a bit mysterious. in theory they should be terminated
anyways, but it seems to fix at least one crash. Anyways double termination
probably doesn't hurt.

Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] i386: Fix PCI BIOS config space access
Andi Kleen [Thu, 5 Oct 2006 16:47:22 +0000 (18:47 +0200)]
[PATCH] i386: Fix PCI BIOS config space access

Got broken by a earlier change.

Also add a printk when no pci config method could be found.

Cc: gregkh@suse.de
Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] x86-64: Calgary IOMMU: print PCI bus numbers in hex
Jon Mason [Thu, 5 Oct 2006 16:47:21 +0000 (18:47 +0200)]
[PATCH] x86-64: Calgary IOMMU: print PCI bus numbers in hex

Make the references to the bus number in hex instead of decimal, as
that is the way that lspci prints out the bus numbers.

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] x86-64: Calgary IOMMU: Update Jon's contact info
Jon Mason [Thu, 5 Oct 2006 16:47:21 +0000 (18:47 +0200)]
[PATCH] x86-64: Calgary IOMMU: Update Jon's contact info

Also add copyright for work done after leaving IBM.

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] x86-64: Calgary IOMMU: Fix off by one when calculating register space location
Jon Mason [Thu, 5 Oct 2006 16:47:21 +0000 (18:47 +0200)]
[PATCH] x86-64: Calgary IOMMU: Fix off by one when calculating register space location

The purpose of the code being modified is to determine the location
of the calgary chip address space.  This is done by a magical formula
of FE0MB-8MB*OneBasedChassisNumber+1MB*(RioNodeId-ChassisBase) to
find the offset where BIOS puts it.  In this formula,
OneBasedChassisNumber corresponds to the NUMA node, and rionodeid is
always 2 or 3 depending on which chip in the system it is.  The
problem was that we had an off by one error that caused us to account
some busses to the wrong chip and thus give them the wrong address
space.

Fixes RH bugzilla #203971.

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-bu: Muli Ben-Yehuda <muli@il.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] x86-64: Calgary IOMMU: deobfuscate calgary_init
Jon Mason [Thu, 5 Oct 2006 16:47:21 +0000 (18:47 +0200)]
[PATCH] x86-64: Calgary IOMMU: deobfuscate calgary_init

calgary_init's for loop does not correspond to the actual device being
checked, which makes its upperbound check for array overflow useless.
Changing this to a do-while loop is the correct way of doing this.
There should be no possibility of spinning forever in this loop, as
pci_get_device states that it will go through all iterations, then
return NULL (thus breaking the loop).

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] i386: Update defconfig
Andi Kleen [Thu, 5 Oct 2006 16:47:21 +0000 (18:47 +0200)]
[PATCH] i386: Update defconfig

Signed-off-by: Andi Kleen <ak@suse.de>
18 years ago[PATCH] x86-64: Update defconfig
Andi Kleen [Thu, 5 Oct 2006 16:47:21 +0000 (18:47 +0200)]
[PATCH] x86-64: Update defconfig

Signed-off-by: Andi Kleen <ak@suse.de>
18 years agoIRQ: Maintain regs pointer globally rather than passing to IRQ handlers
David Howells [Thu, 5 Oct 2006 13:55:46 +0000 (14:55 +0100)]
IRQ: Maintain regs pointer globally rather than passing to IRQ handlers

Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
of passing regs around manually through all ~1800 interrupt handlers in the
Linux kernel.

The regs pointer is used in few places, but it potentially costs both stack
space and code to pass it around.  On the FRV arch, removing the regs parameter
from all the genirq function results in a 20% speed up of the IRQ exit path
(ie: from leaving timer_interrupt() to leaving do_IRQ()).

Where appropriate, an arch may override the generic storage facility and do
something different with the variable.  On FRV, for instance, the address is
maintained in GR28 at all times inside the kernel as part of general exception
handling.

Having looked over the code, it appears that the parameter may be handed down
through up to twenty or so layers of functions.  Consider a USB character
device attached to a USB hub, attached to a USB controller that posts its
interrupts through a cascaded auxiliary interrupt controller.  A character
device driver may want to pass regs to the sysrq handler through the input
layer which adds another few layers of parameter passing.

I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
main part of the code on FRV and i386, though I can't test most of the drivers.
I've also done partial conversion for powerpc and MIPS - these at least compile
with minimal configurations.

This will affect all archs.  Mostly the changes should be relatively easy.
Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

struct pt_regs *old_regs = set_irq_regs(regs);

And put the old one back at the end:

set_irq_regs(old_regs);

Don't pass regs through to generic_handle_irq() or __do_IRQ().

In timer_interrupt(), this sort of change will be necessary:

- update_process_times(user_mode(regs));
- profile_tick(CPU_PROFILING, regs);
+ update_process_times(user_mode(get_irq_regs()));
+ profile_tick(CPU_PROFILING);

I'd like to move update_process_times()'s use of get_irq_regs() into itself,
except that i386, alone of the archs, uses something other than user_mode().

Some notes on the interrupt handling in the drivers:

 (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
     the input_dev struct.

 (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
     something different depending on whether it's been supplied with a regs
     pointer or not.

 (*) Various IRQ handler function pointers have been moved to type
     irq_handler_t.

Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

18 years agoIRQ: Typedef the IRQ handler function type
David Howells [Thu, 5 Oct 2006 12:06:34 +0000 (13:06 +0100)]
IRQ: Typedef the IRQ handler function type

Typedef the IRQ handler function type.

Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 1356d1e5fd256997e3d3dce0777ab787d0515c7a commit)

18 years agoIRQ: Typedef the IRQ flow handler function type
David Howells [Thu, 5 Oct 2006 12:06:34 +0000 (13:06 +0100)]
IRQ: Typedef the IRQ flow handler function type

Typedef the IRQ flow handler function type.

Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 8e973fbdf5716b93a0a8c0365be33a31ca0fa351 commit)

18 years agoLinux 2.6.19-rc1
Linus Torvalds [Thu, 5 Oct 2006 02:57:05 +0000 (19:57 -0700)]
Linux 2.6.19-rc1

Merge window closed..

18 years ago[PATCH] itmtouch: fix inverted flag to indicate touch location correctly, correct...
Mark Assad [Thu, 5 Oct 2006 02:25:05 +0000 (12:25 +1000)]
[PATCH] itmtouch: fix inverted flag to indicate touch location correctly, correct white space

There is a bug in the current version of the itmtouch USB touchscreen
driver.  The if statment that checks if pressure is being applied to the
touch screen is now missing a ! (not), so events are no longer being
reported correctly.

The original source code for this line was as follows:

#define UCP(x) ((unsigned char*)(x))
#define UCOM(x,y,z) ((UCP((x)->transfer_buffer)[y]) & (z))

...
if (!UCOM(urb, 7, 0x20)) {

And was cleaned to:

unsigned char *data = urb->transfer_buffer;
....
 if (data[7] & 0x20) {

(note the lack of '!')

This has been tested on an LG L1510BF and an LG1510SF touch screen.

Signed-off-by: Mark Assad <massad@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/willy/parisc-2.6
Linus Torvalds [Thu, 5 Oct 2006 02:08:13 +0000 (19:08 -0700)]
Merge /pub/scm/linux/kernel/git/willy/parisc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/willy/parisc-2.6:
  [PA-RISC] Fix time.c for new do_timer() calling convention
  [PA-RISC] Fix must_check warnings in drivers.c
  [PA-RISC] Fix parisc_newuname()
  [PA-RISC] Remove warning from pci.c
  [PA-RISC] Fix filldir warnings
  [PA-RISC] Fix sys32_sysctl
  [PA-RISC] Fix sba_iommu compilation

18 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
Linus Torvalds [Thu, 5 Oct 2006 02:01:28 +0000 (19:01 -0700)]
Merge git://git./linux/kernel/git/paulus/powerpc

* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
  [POWERPC] cell: fix bugs found by sparse
  [POWERPC] spiderpic: enable new style devtree support
  [POWERPC] Update cell_defconfig
  [POWERPC] spufs: add infrastructure for finding elf objects
  [POWERPC] spufs: support new OF device tree format
  [POWERPC] spufs: add support for read/write on cntl
  [POWERPC] spufs: remove support for ancient firmware
  [POWERPC] spufs: make mailbox functions handle multiple elements
  [POWERPC] spufs: use correct pg_prot for mapping SPU local store
  [POWERPC] spufs: Add infrastructure needed for gang scheduling
  [POWERPC] spufs: implement error event delivery to user space
  [POWERPC] spufs: fix context switch during page fault
  [POWERPC] spufs: scheduler support for NUMA.
  [POWERPC] spufs: cell spu problem state mapping updates

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
Linus Torvalds [Thu, 5 Oct 2006 01:57:35 +0000 (18:57 -0700)]
Merge /pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (54 commits)
  [SCSI] Initial Commit of qla4xxx
  [SCSI] raid class: handle component-add errors
  [SCSI] SCSI megaraid_sas: handle thrown errors
  [SCSI] SCSI aic94xx: handle sysfs errors
  [SCSI] SCSI st: fix error handling in module init, sysfs
  [SCSI] SCSI sd: fix module init/exit error handling
  [SCSI] SCSI osst: add error handling to module init, sysfs
  [SCSI] scsi: remove hosts.h
  [SCSI] scsi: Scsi_Cmnd convertion in aic7xxx_old.c
  [SCSI] megaraid_sas: sets ioctl timeout and updates version,changelog
  [SCSI] megaraid_sas: adds tasklet for cmd completion
  [SCSI] megaraid_sas: prints pending cmds before setting hw_crit_error
  [SCSI] megaraid_sas: function pointer for disable interrupt
  [SCSI] megaraid_sas: frame count optimization
  [SCSI] megaraid_sas: FW transition and q size changes
  [SCSI] qla2xxx: Update version number to 8.01.07-k2.
  [SCSI] qla2xxx: Stall mid-layer error handlers while rport is blocked.
  [SCSI] qla2xxx: Add MODULE_FIRMWARE tags.
  [SCSI] qla2xxx: Add support for host port state FC transport attribute.
  [SCSI] qla2xxx: Add support for fabric name FC transport attribute.
  ...

18 years ago[PA-RISC] Fix time.c for new do_timer() calling convention
Matthew Wilcox [Wed, 4 Oct 2006 21:12:52 +0000 (15:12 -0600)]
[PA-RISC] Fix time.c for new do_timer() calling convention

do_timer now wants to know how many ticks have elapsed.  Now that we
have to calculate that, we can eliminate some of the clever code that
avoided having to calculate that.  Also add some more documentation.
I'd like to thank Grant Grundler for helping me with this.

Signed-off-by: Matthew Wilcox <willy@parisc-linux.org>
18 years ago[PA-RISC] Fix must_check warnings in drivers.c
Matthew Wilcox [Wed, 4 Oct 2006 19:37:41 +0000 (13:37 -0600)]
[PA-RISC] Fix must_check warnings in drivers.c

Panic if we can't register the parisc bus or the root parisc device.
There's no way we can boot without them, so let the user know ASAP.

If we can't register a parisc device, handle the failure gracefully.

Signed-off-by: Matthew Wilcox <willy@parisc-linux.org>
18 years ago[PA-RISC] Fix parisc_newuname()
Matthew Wilcox [Wed, 4 Oct 2006 19:33:53 +0000 (13:33 -0600)]
[PA-RISC] Fix parisc_newuname()

The utsname virtualisation broke parisc_newuname compilation.
Rewrite the implementation to call sys_newuname() like sparc64 does.

Signed-off-by: Matthew Wilcox <willy@parisc-linux.org>
18 years ago[PA-RISC] Remove warning from pci.c
Matthew Wilcox [Wed, 4 Oct 2006 19:27:45 +0000 (13:27 -0600)]
[PA-RISC] Remove warning from pci.c

max() doesn't like comparing an unsigned long and a resource_size_t,
so make the local variables resource_size_t too.

Signed-off-by: Matthew Wilcox <willy@parisc-linux.org>
18 years ago[PA-RISC] Fix filldir warnings
Matthew Wilcox [Wed, 4 Oct 2006 19:18:25 +0000 (13:18 -0600)]
[PA-RISC] Fix filldir warnings

filldir_t now takes a u64, not an ino_t.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
18 years ago[PA-RISC] Fix sys32_sysctl
Matthew Wilcox [Wed, 4 Oct 2006 19:16:10 +0000 (13:16 -0600)]
[PA-RISC] Fix sys32_sysctl

When CONFIG_SYSCTL_SYSCALL isn't defined, do_sysctl doesn't exist and
we fail to link.  Fix with an ifdef, the same way sparc64 did.
Also add some minor changes to be more like sparc64.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
18 years ago[PA-RISC] Fix sba_iommu compilation
Matthew Wilcox [Wed, 4 Oct 2006 19:08:33 +0000 (13:08 -0600)]
[PA-RISC] Fix sba_iommu compilation

klist_iter_exit() only takes one parameter.
Also fix warning by adding additional brackets.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
18 years ago[POWERPC] cell: fix bugs found by sparse
Arnd Bergmann [Wed, 4 Oct 2006 15:26:24 +0000 (17:26 +0200)]
[POWERPC] cell: fix bugs found by sparse

- Some long constants should be marked 'ul'.
- When using desc->handler_data to pass an __iomem
  register area, we need to add casts to and from
  __iomem.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spiderpic: enable new style devtree support
Arnd Bergmann [Wed, 4 Oct 2006 15:26:23 +0000 (17:26 +0200)]
[POWERPC] spiderpic: enable new style devtree support

This enables support for new firmware test releases.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] Update cell_defconfig
Arnd Bergmann [Wed, 4 Oct 2006 15:26:22 +0000 (17:26 +0200)]
[POWERPC] Update cell_defconfig

This adds defaults for new configuration options added since
2.6.18 and it enables the option for 64kb pages by default.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: add infrastructure for finding elf objects
Arnd Bergmann [Wed, 4 Oct 2006 15:26:21 +0000 (17:26 +0200)]
[POWERPC] spufs: add infrastructure for finding elf objects

This adds an 'object-id' file that the spe library can
use to store a pointer to its ELF object. This was
originally meant for use by oprofile, but is now
also used by the GNU debugger, if available.

In order for oprofile to find the location in an spu-elf
binary where an event counter triggered, we need a way
to identify the binary in the first place.

Unfortunately, that binary itself can be embedded in a
powerpc ELF binary. Since we can assume it is mapped into
the effective address space of the running process,
have that one write the pointer value into a new spufs
file.

When a context switch occurs, pass the user value to
the profiler so that can look at the mapped file (with
some care).

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: support new OF device tree format
Arnd Bergmann [Wed, 4 Oct 2006 15:26:20 +0000 (17:26 +0200)]
[POWERPC] spufs: support new OF device tree format

The properties we used traditionally in the device tree are somewhat
nonstandard.  This adds support for a more conventional format using
'interrupts' and 'reg' properties.

The interrupts are specified in three cells (class 0, 1 and 2) and
registered at the interrupt-parent.

The reg property contains either three or four register areas in the
order 'local-store', 'problem', 'priv2', and 'priv1', so the priv1 one
can be left out in case of hypervisor driven systems that access these
through hcalls.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: add support for read/write on cntl
Arnd Bergmann [Wed, 4 Oct 2006 15:26:19 +0000 (17:26 +0200)]
[POWERPC] spufs: add support for read/write on cntl

Writing to cntl can be used to stop execution on the
spu and to restart it, reading from cntl gives the
contents of the current status register.

The access is always in ascii, as for most other files.

This was always meant to be there, but we had a little
problem with writing to runctl so it was left out so
far.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: remove support for ancient firmware
Arnd Bergmann [Wed, 4 Oct 2006 15:26:18 +0000 (17:26 +0200)]
[POWERPC] spufs: remove support for ancient firmware

Any firmware that still uses the 'spc' nodes already
stopped running for other reasons, so let's get rid of this.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: make mailbox functions handle multiple elements
Arnd Bergmann [Wed, 4 Oct 2006 15:26:17 +0000 (17:26 +0200)]
[POWERPC] spufs: make mailbox functions handle multiple elements

Since libspe2 will provide a function that can read/write
multiple mailbox elements at once, the kernel should handle
that efficiently.

read/write on the three mailbox files can now access the
spe context multiple times to operate on any number of
mailbox data elements.

If the spu application keeps writing to its outbound
mailbox, the read call will pick up all the data in a
single system call.

Unfortunately, if the user passes an invalid pointer,
we may lose a mailbox element on read, since we can't
put it back. This probably impossible to solve, if the
user also accesses the mailbox through direct register
access.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: use correct pg_prot for mapping SPU local store
Arnd Bergmann [Wed, 4 Oct 2006 15:26:16 +0000 (17:26 +0200)]
[POWERPC] spufs: use correct pg_prot for mapping SPU local store

This hopefully fixes a long-standing bug in the spu file system.
An spu context comes with local memory that can be either saved
in kernel pages or point directly to a physical SPE.

When mapping the physical SPE, that mapping needs to be cache-inhibited.
For simplicity, we used to map the kernel backing memory that way
too, but unfortunately that was not only inefficient, but also incorrect
because the same page could then be accessed simultaneously through
a cacheable and a cache-inhibited mapping, which is not allowed
by the powerpc specification and in our case caused data inconsistency
for which we did a really ugly workaround in user space.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: Add infrastructure needed for gang scheduling
Arnd Bergmann [Wed, 4 Oct 2006 15:26:15 +0000 (17:26 +0200)]
[POWERPC] spufs: Add infrastructure needed for gang scheduling

Add the concept of a gang to spufs as a new type of object.
So far, this has no impact whatsover on scheduling, but makes
it possible to add that later.

A new type of object in spufs is now a spu_gang. It is created
with the spu_create system call with the flags argument set
to SPU_CREATE_GANG (0x2). Inside of a spu_gang, it
is then possible to create spu_context objects, which until
now was only possible at the root of spufs.

There is a new member in struct spu_context pointing to
the spu_gang it belongs to, if any. The spu_gang maintains
a list of spu_context structures that are its children.
This information can then be used in the scheduler in the
future.

There is still a bug that needs to be resolved in this
basic infrastructure regarding the order in which objects
are removed. When the spu_gang file descriptor is closed
before the spu_context descriptors, we leak the dentry
and inode for the gang. Any ideas how to cleanly solve
this are appreciated.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: implement error event delivery to user space
Arnd Bergmann [Wed, 4 Oct 2006 15:26:14 +0000 (17:26 +0200)]
[POWERPC] spufs: implement error event delivery to user space

This tries to fix spufs so we have an interface closer to what is
specified in the man page for events returned in the third argument of
spu_run.

Fortunately, libspe has never been using the returned contents of that
register, as they were the same as the return code of spu_run (duh!).

Unlike the specification that we never implemented correctly, we now
require a SPU_CREATE_EVENTS_ENABLED flag passed to spu_create, in
order to get the new behavior. When this flag is not passed, spu_run
will simply ignore the third argument now.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: fix context switch during page fault
HyeonSeung Jang [Wed, 4 Oct 2006 15:26:13 +0000 (17:26 +0200)]
[POWERPC] spufs: fix context switch during page fault

For better explanation, I break down the page fault handling into steps:

1) There is a page fault caused by DMA operation initiated by SPU and
DMA is suspended.

2) The interrupt handler 'spu_irq_class_1()/__spu_trap_data_map()' is
called and it just wakes up the sleeping spe-manager thread.

3) by PPE scheduler, the corresponding bottom half,
spu_irq_class_1_bottom() is called in process context and DMA is
restarted.

There can be a quite large time gap between 2) and 3) and I found
the following problem:

Between 2) and 3) If the context becomes unbound, 3) is not executed
because when the spe-manager thread is awaken, the context is already
saved. (This situation can happen, for example, when a high priority spe
thread newly started in that time gap)

But the actual problem is that the corresponding SPU context does not
work even if it is bound again to a SPU.

Besides I can see the following warning in mambo simulator when the
context becomes
unbound(in save_mfc_cmd()), i.e. when unbind() is called for the
context after step 2) before 3) :

'WARNING: 61392752237: SPE2: MFC_CMD_QUEUE channel count of 15 is
inconsistent with number of available DMA queue entries of 16'

After I go through available documents, I found that the problem is
because the suspended DMA is not restarted when it is bound again.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: scheduler support for NUMA.
Mark Nutter [Wed, 4 Oct 2006 15:26:12 +0000 (17:26 +0200)]
[POWERPC] spufs: scheduler support for NUMA.

This patch adds NUMA support to the the spufs scheduler.

The new arch/powerpc/platforms/cell/spufs/sched.c is greatly
simplified, in an attempt to reduce complexity while adding
support for NUMA scheduler domains.  SPUs are allocated starting
from the calling thread's node, moving to others as supported by
current->cpus_allowed.  Preemption is gone as it was buggy, but
should be re-enabled in another patch when stable.

The new arch/powerpc/platforms/cell/spu_base.c maintains idle
lists on a per-node basis, and allows caller to specify which
node(s) an SPU should be allocated from, while passing -1 tells
spu_alloc() that any node is allowed.

Since the patch removes the currently implemented preemptive
scheduling, it is technically a regression, but practically
all users have since migrated to this version, as it is
part of the IBM SDK and the yellowdog distribution, so there
is not much point holding it back while the new preemptive
scheduling patch gets delayed further.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[POWERPC] spufs: cell spu problem state mapping updates
Benjamin Herrenschmidt [Wed, 4 Oct 2006 15:26:11 +0000 (17:26 +0200)]
[POWERPC] spufs: cell spu problem state mapping updates

This patch adds a new "psmap" file to spufs that allows mmap of all of
the problem state mapping of SPEs. It is compatible with 64k pages. In
addition, it removes mmap ability of individual files when using 64k
pages, with the exception of signal1 and signal2 which will both map the
entire 64k page holding both registers. It also removes
CONFIG_SPUFS_MMAP as there is no point in not building mmap support in
spufs.

It goes along a separate patch to libspe implementing usage of that new
file to access problem state registers.

Another patch will follow up to fix races opened up by accessing
the 'runcntl' register directly, which is made possible with this
patch.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
18 years ago[SCSI] Initial Commit of qla4xxx
David Somayajulu [Tue, 19 Sep 2006 17:28:00 +0000 (10:28 -0700)]
[SCSI] Initial Commit of qla4xxx

open-iSCSI driver for Qlogic Corporation's iSCSI HBAs

Signed-off-by: Ravi Anand <ravi.anand@qlogic.com>
Signed-off-by: David Somayajulu <david.somayajulu@qlogic.com>
Signed-off-by: Doug Maxey <dwm@bubba.enoyolf.org>
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] raid class: handle component-add errors
Jeff Garzik [Wed, 4 Oct 2006 11:05:11 +0000 (07:05 -0400)]
[SCSI] raid class: handle component-add errors

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] SCSI megaraid_sas: handle thrown errors
Jeff Garzik [Wed, 4 Oct 2006 10:34:03 +0000 (06:34 -0400)]
[SCSI] SCSI megaraid_sas: handle thrown errors

- handle clear_user() error

- handle and properly unwind from sysfs errors thrown during mod init

- adjust order of calls in megasas_exit() to precisely match
  registration order in megasas_init()

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Updated for extra attribute and
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] SCSI aic94xx: handle sysfs errors
Jeff Garzik [Wed, 4 Oct 2006 10:19:18 +0000 (06:19 -0400)]
[SCSI] SCSI aic94xx: handle sysfs errors

Handle and unwind from errors returned by driver model functions.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] SCSI st: fix error handling in module init, sysfs
Jeff Garzik [Wed, 4 Oct 2006 10:00:38 +0000 (06:00 -0400)]
[SCSI] SCSI st: fix error handling in module init, sysfs

- Notice and handle sysfs errors in module init, tape init

- Properly unwind errors in module init

- Remove bogus st_sysfs_class==NULL test, it is guaranteed !NULL at that point

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] SCSI sd: fix module init/exit error handling
Jeff Garzik [Wed, 4 Oct 2006 09:32:54 +0000 (05:32 -0400)]
[SCSI] SCSI sd: fix module init/exit error handling

- Properly handle and unwind errors in init_sd().  Fixes leaks on error,
  if class_register() or scsi_register_driver() failed.

- Ensure that exit_sd() execution order is the perfect inverse of
  initialization order.

FIXME:  If some-but-not-all register_blkdev() calls fail, we wind up
calling unregister_blkdev() for block devices we did not register.
This was a pre-existing bug.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] SCSI osst: add error handling to module init, sysfs
Jeff Garzik [Wed, 4 Oct 2006 09:23:04 +0000 (05:23 -0400)]
[SCSI] SCSI osst: add error handling to module init, sysfs

- check all sysfs-related return codes, and propagate them back to callers

- properly unwind errors in osst_probe(), init_osst().  This fixes a
  leak that occured if scsi driver registration failed, and fixes an
  oops if sysfs creation returned an error.

(unrelated)
- kzalloc() cleanup in new_tape_buf()

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] scsi: remove hosts.h
Henne [Wed, 4 Oct 2006 08:22:09 +0000 (10:22 +0200)]
[SCSI] scsi: remove hosts.h

Remove the obsolete hosts.h file under drivers/scsi.

Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] scsi: Scsi_Cmnd convertion in aic7xxx_old.c
Henne [Wed, 4 Oct 2006 07:33:47 +0000 (09:33 +0200)]
[SCSI] scsi: Scsi_Cmnd convertion in aic7xxx_old.c

Changes the obsolete Scsi_Cmnd to struct scsi_cmnd in aic7xxx_old.c.
Also replacing lots of whitespaces with tabs in structures and functions
which have been changed.

Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[S390] cio: improve unit check handling for internal operations
Peter Oberparleiter [Wed, 4 Oct 2006 18:02:30 +0000 (20:02 +0200)]
[S390] cio: improve unit check handling for internal operations

Retry internal operation after unit check instead of aborting them.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] cio: add timeout handler for internal operations.
Peter Oberparleiter [Wed, 4 Oct 2006 18:02:26 +0000 (20:02 +0200)]
[S390] cio: add timeout handler for internal operations.

Add timeout handler for common-I/O-layer-internal I/O operations.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] Remove open-coded mem_map usage.
Heiko Carstens [Wed, 4 Oct 2006 18:02:23 +0000 (20:02 +0200)]
[S390] Remove open-coded mem_map usage.

Use page_to_phys and pfn_to_page to avoid open-coded mem_map usage.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
18 years ago[S390] Have s390 use add_active_range() and free_area_init_nodes.
Heiko Carstens [Wed, 4 Oct 2006 18:02:19 +0000 (20:02 +0200)]
[S390] Have s390 use add_active_range() and free_area_init_nodes.

Size zones and holes in an architecture independent manner for s390.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
18 years ago[S390] Remove crept in whitespace from head*.S again.
Heiko Carstens [Wed, 4 Oct 2006 18:02:15 +0000 (20:02 +0200)]
[S390] Remove crept in whitespace from head*.S again.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
18 years ago[S390] incorrect placement of include.
Martin Schwidefsky [Wed, 4 Oct 2006 18:02:12 +0000 (20:02 +0200)]
[S390] incorrect placement of include.

The include of linux/smp.h needs to be done before the #if that
checks for the compiler version. Seems like fallout from the
inline assembly cleanup patch vs. the directed yield patch.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] Wire up sys_getcpu system call.
Heiko Carstens [Wed, 4 Oct 2006 18:02:09 +0000 (20:02 +0200)]
[S390] Wire up sys_getcpu system call.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
18 years ago[S390] zcrypt device registration/unregistration race.
Ralph Wuerthner [Wed, 4 Oct 2006 18:02:05 +0000 (20:02 +0200)]
[S390] zcrypt device registration/unregistration race.

Fix a race condition during AP device registration and unregistration.

Signed-off-by: Ralph Wuerthner <rwuerthn@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] Add timeouts during sense PGID, path verification and disband PGID.
Cornelia Huck [Wed, 4 Oct 2006 18:02:02 +0000 (20:02 +0200)]
[S390] Add timeouts during sense PGID, path verification and disband PGID.

While the machine owns us an interrupt in these cases (and we should get
one), reality isn't always like that...

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] user-copy optimization fallout.
Martin Schwidefsky [Wed, 4 Oct 2006 18:01:58 +0000 (20:01 +0200)]
[S390] user-copy optimization fallout.

Fix new restore_sigregs function. It copies the user space copy of the
old psw without correcting the psw.mask and the psw.addr high order bit.
While we are at it, simplify save_sigregs a bit.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[S390] update default configuration
Martin Schwidefsky [Wed, 4 Oct 2006 18:01:52 +0000 (20:01 +0200)]
[S390] update default configuration

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
18 years ago[SCSI] megaraid_sas: sets ioctl timeout and updates version,changelog
Sumant Patro [Tue, 3 Oct 2006 20:19:21 +0000 (13:19 -0700)]
[SCSI] megaraid_sas: sets ioctl timeout and updates version,changelog

This patch sets timeout of max 180 seconds for ioctl completion.
It also updates the Changelog and hikes the version to 3.05.

Signed-off-by: Sumant Patro <Sumant.Patro@lsil.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] megaraid_sas: adds tasklet for cmd completion
Sumant Patro [Tue, 3 Oct 2006 20:13:18 +0000 (13:13 -0700)]
[SCSI] megaraid_sas: adds tasklet for cmd completion

This patch adds a tasklet for command completion.

Signed-off-by: Sumant Patro <Sumant.Patro@lsil.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
18 years ago[SCSI] megaraid_sas: prints pending cmds before setting hw_crit_error
Sumant Patro [Tue, 3 Oct 2006 20:09:14 +0000 (13:09 -0700)]
[SCSI] megaraid_sas: prints pending cmds before setting hw_crit_error

This patch adds function to print the pending frame details before returning
failure from the reset routine. It also exposes a new variable megasas_dbg_lvl
that allows the user to set the debug level for logging.

Signed-off-by: Sumant Patro <Sumant.Patro@lsil.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>