openwrt/staging/blogic.git
19 years ago[PATCH] Remove nested feature sections
David Gibson [Wed, 27 Jul 2005 05:47:23 +0000 (15:47 +1000)]
[PATCH] Remove nested feature sections

The {BEGIN,END}_FTR_SECTION asm macros used in ppc64 to nop out
sections of code at runtime cannot be nested.  However, we do nest
them in hash_low.S.  We get away with it there, because there is
nothing between the BEGIN markers for each section.  However, that's
confusing to someone reading the code.

This patch removes the nested ifset and ifclr feature sections,
replacing them with a single feature section in the full mask/value
form.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: lparconfig.c memory leak
Joel Schopp [Fri, 12 Aug 2005 19:34:58 +0000 (14:34 -0500)]
[PATCH] ppc64: lparconfig.c memory leak

This patch fixes a rare memory leak found by Coverity.

Signed-off-by: Joel Schopp <jschopp@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: of_device.c remove useless code
Joel Schopp [Thu, 11 Aug 2005 22:39:28 +0000 (17:39 -0500)]
[PATCH] ppc64: of_device.c remove useless code

Coverity found more unused code.

Signed-off-by: Joel Schopp <jschopp@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Add CONFIG_HZ
Anton Blanchard [Tue, 23 Aug 2005 22:53:03 +0000 (08:53 +1000)]
[PATCH] ppc64: Add CONFIG_HZ

While ppc64 has the CONFIG_HZ Kconfig option, it wasnt actually being
used.  Connect it up and set all platforms to 250Hz.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] oprofile PVR 970MP
Jake Moilanen [Wed, 24 Aug 2005 20:22:12 +0000 (15:22 -0500)]
[PATCH] oprofile PVR 970MP

Here's the 970MP's PVR (processor version register) entry for oprofile.

Signed-off-by: Jake Moilanen <moilanen@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] PPC64: Don't try to claim memory from OF at 1GB mark
Olof Johansson [Mon, 29 Aug 2005 02:42:10 +0000 (21:42 -0500)]
[PATCH] PPC64: Don't try to claim memory from OF at 1GB mark

Some RS64-based machines (p620, F80, others) have problems with firmware
returning 0xdeadbeef instead of failure to allocations that end at the
1GB mark.

We have two options:
1. Detect the undocumented 0xdeadbeef return value and interpret it as
a failure.
2. Avoid allocating that high.

(2) is really the cleaner solution here. 768MB is plenty of room so use
that as the max alloc_top instead of 1GB.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Move all the very similar files to asm-powerpc
Stephen Rothwell [Mon, 29 Aug 2005 04:08:11 +0000 (14:08 +1000)]
[PATCH] Move all the very similar files to asm-powerpc

They differed in either simple comments or in the protecting ifdefs.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Move the identical files from include/asm-ppc{,64}
Stephen Rothwell [Mon, 29 Aug 2005 04:06:56 +0000 (14:06 +1000)]
[PATCH] Move the identical files from include/asm-ppc{,64}

Move the identical files from include/asm-ppc{,64}/ to
include/asm-powerpc/.  Remove hdreg.h completely as it is unused in
the tree.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Create include/asm-powerpc
Stephen Rothwell [Mon, 29 Aug 2005 03:15:50 +0000 (13:15 +1000)]
[PATCH] Create include/asm-powerpc

The ppc and ppc64 trees are hopefully going to merge over time, so this
patch begins the process by creating a place for the merging of the
header files.

Create include/asm-powerpc (and move linkage.h into it from
asm-{ppc,ppc64} since we don't like empty directories).  Modify the
ppc and ppc64 Makefiles to cope.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Make MODULE_DEVICE_TABLE work for vio devices
Stephen Rothwell [Wed, 17 Aug 2005 06:42:59 +0000 (16:42 +1000)]
[PATCH] Make MODULE_DEVICE_TABLE work for vio devices

Make MODULE_DEVICE_TABLE work for vio devices.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Create vio_bus_ops
Stephen Rothwell [Wed, 17 Aug 2005 06:41:44 +0000 (16:41 +1000)]
[PATCH] Create vio_bus_ops

Create vio_bus_ops so that we just pass a structure to vio_bus_init
instead of three separate function pointers.

Rearrange vio.h to avoid forward references. vio.h only needs
struct device_node from prom.h so remove the include and just
declare it.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Create vio_register_device
Stephen Rothwell [Wed, 17 Aug 2005 06:40:12 +0000 (16:40 +1000)]
[PATCH] Create vio_register_device

Take some assignments out of vio_register_device_common and
rename it to vio_register_device.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Formatting changes to vio.c
Stephen Rothwell [Wed, 17 Aug 2005 06:37:35 +0000 (16:37 +1000)]
[PATCH] Formatting changes to vio.c

Formatting changes to vio.c to bring it closer to the
kernel coding standard.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] fix iSeries build for gcc-3.4
Stephen Rothwell [Mon, 29 Aug 2005 08:26:01 +0000 (18:26 +1000)]
[PATCH] fix iSeries build for gcc-3.4

gcc 3.4 (at least the build we are using) puts the gcc generated .ident
string into a .note section at the end of the files it compiles (gcc
3.3.3-hammer and gcc 4.0.2 Debian puts it in the .text section).  This
means that the lparmap.s file we produce in the iSeries build may end with
a .note section.  When we include it into head.S, the assembler can no
longer resolve some of the conditional branches since the target label
ends up too far away.  This patch just forces us back to the .text section
after including lparmap.s.

The breakage was caused by my patch "iSeries build with newer assemblers
and compilers" (sha1-id: 2ad56496627630ebc99f06af5f81ca23e17e014e).

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Restore lparmap.s include for iSeries
David Gibson [Tue, 30 Aug 2005 02:54:07 +0000 (12:54 +1000)]
[PATCH] Restore lparmap.s include for iSeries

A mistake rebasing the series of ppc64 head.S cleanup patches meant
the #include of lparmap.s, needed for iSeries was lost.  This patch
puts it back again.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: four level pagetables fix
Andrew Morton [Wed, 10 Aug 2005 03:53:41 +0000 (13:53 +1000)]
[PATCH] ppc64: four level pagetables fix

With CONFIG_HUGETLB_PAGE=n:

In file included from kernel/sysctl.c:37:
include/linux/hugetlb.h:104:1: warning: "hugetlb_free_pgd_range" redefined
In file included from include/linux/mm.h:36,
                 from kernel/sysctl.c:23:
include/asm/pgtable.h:492:1: warning: this is the location of the previous definition

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years agoMerge HEAD from master.kernel.org:/pub/scm/linux/kernel/git/paulus/ppc64-2.6
Linus Torvalds [Tue, 30 Aug 2005 00:11:29 +0000 (17:11 -0700)]
Merge HEAD from /linux/kernel/git/paulus/ppc64-2.6

19 years agoMerge refs/heads/upstream from master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Mon, 29 Aug 2005 20:54:35 +0000 (13:54 -0700)]
Merge refs/heads/upstream from /linux/kernel/git/jgarzik/libata-dev

19 years agoMerge /spare/repo/linux-2.6/
Jeff Garzik [Mon, 29 Aug 2005 19:59:42 +0000 (15:59 -0400)]
Merge /spare/repo/linux-2.6/

19 years ago[SPARC64]: More fully work around Spitfire Errata 51.
David S. Miller [Mon, 29 Aug 2005 19:46:22 +0000 (12:46 -0700)]
[SPARC64]: More fully work around Spitfire Errata 51.

It appears that a memory barrier soon after a mispredicted
branch, not just in the delay slot, can cause the hang
condition of this cpu errata.

So move them out-of-line, and explicitly put them into
a "branch always, predict taken" delay slot which should
fully kill this problem.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Make debugging spinlocks usable again.
David S. Miller [Mon, 29 Aug 2005 19:46:07 +0000 (12:46 -0700)]
[SPARC64]: Make debugging spinlocks usable again.

When the spinlock routines were moved out of line into
kernel/spinlock.c this made it so that the debugging
spinlocks record lock acquisition program counts in the
kernel/spinlock.c functions not in their callers.
This makes the debugging info kind of useless.

So record the correct caller's program counter and
now this feature is useful once more.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC]: remove use of asm/segment.h
Kumar Gala [Mon, 29 Aug 2005 19:45:44 +0000 (12:45 -0700)]
[SPARC]: remove use of asm/segment.h

Removed sparc architecture specific users of asm/segment.h and
asm-sparc/segment.h itself

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: remove use of asm/segment.h
Kumar Gala [Mon, 29 Aug 2005 19:45:30 +0000 (12:45 -0700)]
[SPARC64]: remove use of asm/segment.h

Removed sparc64 architecture specific users of asm/segment.h and
asm-sparc64/segment.h itself

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Revamp Spitfire error trap handling.
David S. Miller [Mon, 29 Aug 2005 19:45:11 +0000 (12:45 -0700)]
[SPARC64]: Revamp Spitfire error trap handling.

Current uncorrectable error handling was poor enough
that the processor could just loop taking the same
trap over and over again.  Fix things up so that we
at least get a log message and perhaps even some register
state.

In the process, much consolidation became possible,
particularly with the correctable error handler.

Prefix assembler and C function names with "spitfire"
to indicate that these are for Ultra-I/II/IIi/IIe only.

More work is needed to make these routines robust and
featureful to the level of the Ultra-III error handlers.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Do not call winfix_dax blindly
David S. Miller [Mon, 29 Aug 2005 19:44:57 +0000 (12:44 -0700)]
[SPARC64]: Do not call winfix_dax blindly

Verify we really are taking a data access exception trap, at TL1, from
one of the window spill/fill handlers.

Else call a new function, data_access_exception_tl1, to log the error.

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[SPARC64]: Fix trap state reading for instruction_access_exception.
David S. Miller [Mon, 29 Aug 2005 19:44:40 +0000 (12:44 -0700)]
[SPARC64]: Fix trap state reading for instruction_access_exception.

1) Read ASI_IMMU SFSR not ASI_DMMU.
2) IMMU has no SFAR, read TPC instead
3) Delete old and incorrect comment about the DTLB protection
   trap having a dependency on the SFSR contents in order to
   function correctly

Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[libata sata_nv] NVIDIA ok'd license change from OSL+GPL to GPL
Jeff Garzik [Mon, 29 Aug 2005 19:12:56 +0000 (15:12 -0400)]
[libata sata_nv] NVIDIA ok'd license change from OSL+GPL to GPL

19 years ago[PATCH] missing include in smc-ultra
Al Viro [Sun, 28 Aug 2005 02:52:22 +0000 (03:52 +0100)]
[PATCH] missing include in smc-ultra

Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] missing include in tda80xx
Al Viro [Sun, 28 Aug 2005 02:47:50 +0000 (03:47 +0100)]
[PATCH] missing include in tda80xx

Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] mod_devicetable.h fixes
Al Viro [Sun, 28 Aug 2005 02:19:14 +0000 (03:19 +0100)]
[PATCH] mod_devicetable.h fixes

 * ieee1394_device_id has kernel_ulong_t field after an odd number of
   __u32 ones.  Since mod_devicetable.h is included both from kernel and
   from host build helper, we may be in trouble if we are building on
   32bit host for 64bit target - userland sees unsigned long long,
   kernel sees unsigned long and while their sizes match, alignments
   might not.  Fixed by forcing alignment.  Fortunately, almost nobody
   else needs that - the rest of such fields is naturally aligned as it
   is.

 * of_device_id has void * in it.  Host userland helpers need
   kernel_ulong_t instead, since their void * might have nothing to do
   with the kernel one.  Fixed in the same way it's done for similar
   problems in pcmcia_device_id (ifdef __KERNEL__).

 * pcmcia_device_id has the same problem as ieee1394_device_id.  Fixed
   the same way.

Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] new name for 2.6.14
Benjamin LaHaise [Sun, 28 Aug 2005 22:05:17 +0000 (18:05 -0400)]
[PATCH] new name for 2.6.14

We've had Woozy Numbat for a while now.  Here's an updated name care of
Jeff Garzik and myself.

Signed-off-by: Benjamin LaHaise <bcrl@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge HEAD from master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git
Linus Torvalds [Mon, 29 Aug 2005 17:36:48 +0000 (10:36 -0700)]
Merge HEAD from /linux/kernel/git/roland/infiniband.git

19 years agoMerge HEAD from master.kernel.org:/home/rmk/linux-2.6-arm.git
Linus Torvalds [Mon, 29 Aug 2005 17:35:43 +0000 (10:35 -0700)]
Merge HEAD from /home/rmk/linux-2.6-arm.git

19 years agoMerge HEAD from master.kernel.org:/home/rmk/linux-2.6-mmc.git
Linus Torvalds [Mon, 29 Aug 2005 17:35:21 +0000 (10:35 -0700)]
Merge HEAD from /home/rmk/linux-2.6-mmc.git

19 years agoMerge HEAD from master.kernel.org:/home/rmk/linux-2.6-serial.git
Linus Torvalds [Mon, 29 Aug 2005 17:34:59 +0000 (10:34 -0700)]
Merge HEAD from /home/rmk/linux-2.6-serial.git

19 years agoMerge HEAD from master.kernel.org:/home/rmk/linux-2.6-ucb.git
Linus Torvalds [Mon, 29 Aug 2005 17:34:31 +0000 (10:34 -0700)]
Merge HEAD from /home/rmk/linux-2.6-ucb.git

19 years agoMerge refs/heads/upstream from master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Mon, 29 Aug 2005 17:04:37 +0000 (10:04 -0700)]
Merge refs/heads/upstream from /linux/kernel/git/jgarzik/netdev-2.6

19 years agoMerge refs/heads/upstream from master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Mon, 29 Aug 2005 17:03:46 +0000 (10:03 -0700)]
Merge refs/heads/upstream from /linux/kernel/git/jgarzik/libata-dev

19 years ago[PATCH] convert signal handling of NODEFER to act like other Unix boxes.
Steven Rostedt [Mon, 29 Aug 2005 15:44:09 +0000 (11:44 -0400)]
[PATCH] convert signal handling of NODEFER to act like other Unix boxes.

It has been reported that the way Linux handles NODEFER for signals is
not consistent with the way other Unix boxes handle it.  I've written a
program to test the behavior of how this flag affects signals and had
several reports from people who ran this on various Unix boxes,
confirming that Linux seems to be unique on the way this is handled.

The way NODEFER affects signals on other Unix boxes is as follows:

1) If NODEFER is set, other signals in sa_mask are still blocked.

2) If NODEFER is set and the signal is in sa_mask, then the signal is
still blocked. (Note: this is the behavior of all tested but Linux _and_
NetBSD 2.0 *).

The way NODEFER affects signals on Linux:

1) If NODEFER is set, other signals are _not_ blocked regardless of
sa_mask (Even NetBSD doesn't do this).

2) If NODEFER is set and the signal is in sa_mask, then the signal being
handled is not blocked.

The patch converts signal handling in all current Linux architectures to
the way most Unix boxes work.

Unix boxes that were tested:  DU4, AIX 5.2, Irix 6.5, NetBSD 2.0, SFU
3.5 on WinXP, AIX 5.3, Mac OSX, and of course Linux 2.6.13-rcX.

* NetBSD was the only other Unix to behave like Linux on point #2. The
main concern was brought up by point #1 which even NetBSD isn't like
Linux.  So with this patch, we leave NetBSD as the lonely one that
behaves differently here with #2.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Dynamic hugepage addresses for ppc64
David Gibson [Thu, 11 Aug 2005 06:55:21 +0000 (16:55 +1000)]
[PATCH] Dynamic hugepage addresses for ppc64

Paulus, I think this is now a reasonable candidate for the post-2.6.13
queue.

Relax address restrictions for hugepages on ppc64

Presently, 64-bit applications on ppc64 may only use hugepages in the
address region from 1-1.5T.  Furthermore, if hugepages are enabled in
the kernel config, they may only use hugepages and never normal pages
in this area.  This patch relaxes this restriction, allowing any
address to be used with hugepages, but with a 1TB granularity.  That
is if you map a hugepage anywhere in the region 1TB-2TB, that entire
area will be reserved exclusively for hugepages for the remainder of
the process's lifetime.  This works analagously to hugepages in 32-bit
applications, where hugepages can be mapped anywhere, but with 256MB
(mmu segment) granularity.

This patch applies on top of the four level pagetable patch
(http://patchwork.ozlabs.org/linuxppc64/patch?id=1936).

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Check of_chosen in check_for_initrd()
Michael Ellerman [Tue, 9 Aug 2005 05:20:20 +0000 (15:20 +1000)]
[PATCH] ppc64: Check of_chosen in check_for_initrd()

You can't call get_property() on a NULL node, so check if of_chosen is set
in check_for_initrd().

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
 arch/ppc64/kernel/setup.c |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: unflatten_device_tree() should check if lmb_alloc() fails
Michael Ellerman [Tue, 9 Aug 2005 05:20:19 +0000 (15:20 +1000)]
[PATCH] ppc64: unflatten_device_tree() should check if lmb_alloc() fails

unflatten_device_tree() doesn't check if lmb_alloc() succeeds or not, it
should. All it can do is panic, but at least there's an error message
(assuming you have some sort of console at that point).

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
 arch/ppc64/kernel/prom.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Fix a misleading printk in unflatten_dt_node()
Michael Ellerman [Tue, 9 Aug 2005 05:20:18 +0000 (15:20 +1000)]
[PATCH] ppc64: Fix a misleading printk in unflatten_dt_node()

When unflatten_dt_node() fails to find an OF_DT_END_NODE tag it prints
"Weird tag at start of node", this should be "Weird tag at end of node".

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
 arch/ppc64/kernel/prom.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Move ppc64_enable_pmcs() logic into a ppc_md function
Michael Ellerman [Tue, 9 Aug 2005 01:13:36 +0000 (11:13 +1000)]
[PATCH] ppc64: Move ppc64_enable_pmcs() logic into a ppc_md function

This patch moves power4_enable_pmcs() to arch/ppc64/kernel/pmc.c.

I've tested it on P5 LPAR and P4. It does what it used to.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: allow xmon=off
Olaf Hering [Thu, 4 Aug 2005 17:26:42 +0000 (19:26 +0200)]
[PATCH] ppc64: allow xmon=off

If both CONFIG_XMON and CONFIG_XMON_DEFAULT is enabled in the .config,
there is no way to disable xmon again. setup_system calls first xmon_init,
later parse_early_param. So a new 'xmon=off' cmdline option will do the right
thing.

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Remove CONFIG_MSCHUNKS
Michael Ellerman [Wed, 3 Aug 2005 10:21:26 +0000 (20:21 +1000)]
[PATCH] ppc64: Remove CONFIG_MSCHUNKS

We can now remove CONFIG_MSCHUNKS as it doesn't do anything interesting
anymore.

The only macro in abs_addr.h which is called by non-iSeries code is
phys_to_abs(), so remove the other dummy implementations, and we add a
firmware feature check to phys_to_abs().

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Simplify some lmb functions
Michael Ellerman [Wed, 3 Aug 2005 10:21:26 +0000 (20:21 +1000)]
[PATCH] ppc64: Simplify some lmb functions

lmb_phys_mem_size() can always return lmb.memory.size, as long as it's called
after lmb_analyze(), which it is. There's no need to recalculate the size on
every call.

lmb_analyze() was calculating a few things we then threw away, so just don't
calculate them to start with.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Remove physbase from the lmb_property struct
Michael Ellerman [Wed, 3 Aug 2005 10:21:26 +0000 (20:21 +1000)]
[PATCH] ppc64: Remove physbase from the lmb_property struct

We no longer need the lmb code to know about abs and phys addresses, so
remove the physbase variable from the lmb_property struct.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Remove redundant abs_to_phys() macro
Michael Ellerman [Wed, 3 Aug 2005 10:21:25 +0000 (20:21 +1000)]
[PATCH] ppc64: Remove redundant abs_to_phys() macro

abs_to_phys() is a macro that turns out to do nothing, and also has the
unfortunate property that it's not the inverse of phys_to_abs() on iSeries.

The following is for my benefit as much as everyone else.

With CONFIG_MSCHUNKS enabled, the lmb code is changed such that it keeps
a physbase variable for each lmb region. This is used to take the possibly
discontiguous lmb regions and present them as a contiguous address space
beginning from zero.

In this context each lmb region's base address is its "absolute" base
address, and its physbase is it's "physical" address (from Linux's point of
view). The abs_to_phys() macro does the mapping from "absolute" to "physical".

Note: This is not related to the iSeries mapping of physical to absolute
(ie. Hypervisor) addresses which is maintained with the msChunks structure.
And the msChunks structure is not controlled via CONFIG_MSCHUNKS.

Once upon a time you could compile for non-iSeries with CONFIG_MSCHUNKS
enabled. But these days CONFIG_MSCHUNKS depends on CONFIG_PPC_ISERIES, so
for non-iSeries code abs_to_phys() is a no-op.

On iSeries we always have one lmb region which spans from 0 to
systemcfg->physicalMemorySize (arch/ppc64/kernel/iSeries_setup.c line 383).
This region has a base (ie. absolute) address of 0, and a physbase address
of 0 (as calculated in lmb_analyze() (arch/ppc64/kernel/lmb.c line 144)).

On iSeries, abs_to_phys(aa) is defined as lmb_abs_to_phys(aa), which finds
the lmb region containing aa (and there's only one, ie. 0), and then does:

 return lmb.memory.region[0].physbase + (aa - lmb.memory.region[0].base)

physbase == base == 0, so you're left with "return aa".

So remove abs_to_phys(), and lmb_abs_to_phys() which is the implementation
of abs_to_phys() for iSeries.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Remove redundant use of pointers in lmb code
Michael Ellerman [Wed, 3 Aug 2005 10:21:24 +0000 (20:21 +1000)]
[PATCH] ppc64: Remove redundant use of pointers in lmb code

The lmb code is all written to use a pointer to an lmb struct. But it's always
the same lmb struct, called "lmb". So we take the address of lmb, call it
_lmb and then start using _lmb->foo everywhere, which is silly.

This patch removes the _lmb pointers and replaces them with direct references
to the one "lmb" struct. We do the same for some _mem and _rsv pointers which
point to lmb.memory and lmb.reserved respectively.

This patch looks quite busy, but it's basically just:
s/_lmb->/lmb./g
s/_mem->/lmb.memory./g
s/_rsv->/lmb.reserved./g
s/_rsv/&lmb.reserved/g
s/mem->/lmb.memory./g

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Remove redundant uses of physRpn_to_absRpn
Michael Ellerman [Wed, 3 Aug 2005 10:21:24 +0000 (20:21 +1000)]
[PATCH] ppc64: Remove redundant uses of physRpn_to_absRpn

physRpn_to_absRpn is a no-op on non-iSeries platforms, remove the two
redundant calls.

There's only one caller on iSeries so fold the logic in there so we can get
rid of it completely.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Consolidate some macros
Michael Ellerman [Wed, 3 Aug 2005 10:21:23 +0000 (20:21 +1000)]
[PATCH] ppc64: Consolidate some macros

The only caller of chunk_offset() and abs_chunk() is phys_to_abs(), so
fold the former two into the latter.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Rename msChunks structure
Michael Ellerman [Wed, 3 Aug 2005 10:21:23 +0000 (20:21 +1000)]
[PATCH] ppc64: Rename msChunks structure

Rename the msChunks struct to get rid of the StUdlY caps and make it a bit
clearer what it's for.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: msChunks cleanups
Michael Ellerman [Wed, 3 Aug 2005 10:21:23 +0000 (20:21 +1000)]
[PATCH] ppc64: msChunks cleanups

Chunks are 256KB, so use constants for the size/shift/mask, rather than
getting them from the msChunks struct. The iSeries debugger (??) might still
need access to the values in the msChunks struct, so we keep them around
for now, but set them from the constant values.

Replace msChunks_entry typedef with regular u32.

Simplify msChunks_alloc() to manipulate klimit directly, rather than via
a parameter.

Move msChunks_alloc() and msChunks into iSeries_setup.c, as that's where
they're used.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: Remove PTRRELOC() from msChunks code
Michael Ellerman [Wed, 3 Aug 2005 10:21:23 +0000 (20:21 +1000)]
[PATCH] ppc64: Remove PTRRELOC() from msChunks code

The msChunks code was written to work on pSeries, but now it's only used on
iSeries. This means there's no need to do PTRRELOC anymore, so remove it all.

A few places were getting "extern reloc_offset()" from abs_addr.h, move it
into system.h instead.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: introduce FW_FEATURE_ISERIES
Stephen Rothwell [Wed, 3 Aug 2005 04:43:21 +0000 (14:43 +1000)]
[PATCH] ppc64: introduce FW_FEATURE_ISERIES

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: make firmware_has_feature() stronger
Stephen Rothwell [Wed, 3 Aug 2005 04:40:16 +0000 (14:40 +1000)]
[PATCH] ppc64: make firmware_has_feature() stronger

Make firmware_has_feature() evaluate at compile time for the non pSeries
case and tidy up code where possible.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: create firmware_has_feature()
Stephen Rothwell [Wed, 3 Aug 2005 04:35:25 +0000 (14:35 +1000)]
[PATCH] ppc64: create firmware_has_feature()

Create the firmware_has_feature() inline and move the firmware feature
stuff into its own header file.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: remove firmware features from cpu_spec
Stephen Rothwell [Wed, 3 Aug 2005 04:32:30 +0000 (14:32 +1000)]
[PATCH] ppc64: remove firmware features from cpu_spec

The firmware_features field of struct cpu_spec should really be a separate
variable as the firmware features do not depend on the chip and the
bitmask is constructed independently.  By removing it, we save 112 bytes
from the cpu_specs array and we access the bitmask directly instead of via
the cur_cpu_spec pointer.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Move variables in ppc64 head.S from .data to .bss
David Gibson [Fri, 19 Aug 2005 04:52:32 +0000 (14:52 +1000)]
[PATCH] Move variables in ppc64 head.S from .data to .bss

The ppc64 head.S defines several zero-initialized structures, such as
the empty_zero_page and the kernel top-level pagetable.  Currently
they are defined to be in the data section.  However, they're not used
until after the bss is cleared, so this patch moves them to the bss,
saving two and a half pages from the vmlinux.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Tweak comments in ppc64 head.S
David Gibson [Fri, 19 Aug 2005 04:52:32 +0000 (14:52 +1000)]
[PATCH] Tweak comments in ppc64 head.S

This patch adjust some comments in head.S for accuracy, clarity, and
spelling.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Remove unneeded #defines in head.S
David Gibson [Fri, 19 Aug 2005 04:52:32 +0000 (14:52 +1000)]
[PATCH] Remove unneeded #defines in head.S

arch/ppc64/kernel/head.S #defines SECONDARY_PROCESSORS then has some
#ifdefs based on it.  Whatever purpose this had is long lost, this
patch removes it.

Likewise, head.S defines H_SET_ASR, which is now defined, along with
other hypervisor call numbers in hvcall.h.  This patch deletes it, as
well, from head.S.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Fix apparent code overlap in ppc64 head.S
David Gibson [Fri, 19 Aug 2005 04:52:32 +0000 (14:52 +1000)]
[PATCH] Fix apparent code overlap in ppc64 head.S

An #if/#else construct near the top of ppc64's head.S appears to
create overlapping sections of code for iSeries and pSeries (i.e. one
thing on iSeries and something different in the same place on
pSeries).  In fact, checking the various absolute offsets, it doesn't.
This patch unravels the #ifdefs to make it more obvious what's going
on.  This accomplishes another microstep towards a single kernel image
which can boot both iSeries and pSeries.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Remove general use functions from head.S
David Gibson [Fri, 19 Aug 2005 04:52:31 +0000 (14:52 +1000)]
[PATCH] Remove general use functions from head.S

As well as the interrupt vectors and initialization code, head.S
contains several asm functions which are used during runtime.  This
patch moves these to misc.S, a more sensible location for random asm
support code.  A couple The functions moved are:
disable_kernel_fp
giveup_fpu
disable_kernel_altivec
giveup_altivec
__setup_cpu_power3 (empty function)

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Change address of ppc64 initial segment table
David Gibson [Fri, 19 Aug 2005 04:52:31 +0000 (14:52 +1000)]
[PATCH] Change address of ppc64 initial segment table

On ppc64 machines with segment tables, CPU0's segment table is at a
fixed address, currently 0x9000.  This patch moves it to the free
space at 0x6000, just below the fwnmi data area.  This saves 8k of
space in vmlinux and the runtime kernel image.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Move iSeries and common vectors into unused space in head.S
David Gibson [Fri, 19 Aug 2005 04:52:31 +0000 (14:52 +1000)]
[PATCH] Move iSeries and common vectors into unused space in head.S

In the ppc64 kernel head.S there is currently quite a lot of unused
space between the naca (at fixed address 0x4000) and the fwnmi data
area (at fixed address 0x7000).  This patch moves various exception
vectors and support code into this region to use the wasted space.

The functions load_up_fpu and load_up_altivec are moved down as well,
since they are essentially continuations of the fp_unavailable_common
and altivec_unavailable_common vectors, respectively.

Likewise, the fwnmi vectors themselves are moved down into this area,
because while the location of the fwnmi data area is fixed by the RPA,
the vectors themselves can be anywhere sufficiently low.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Remove NACA fixed address constraint
David Gibson [Fri, 19 Aug 2005 04:52:31 +0000 (14:52 +1000)]
[PATCH] Remove NACA fixed address constraint

Comments in head.S suggest that the iSeries naca has a fixed address,
because tools expect to find it there.  The only tool which appears to
access the naca is addRamDisk, but both the in-kernel version and the
version used in RHEL and SuSE in fact locate the NACA the same way as
the hypervisor does, by following the pointer in the hvReleaseData
structure.

Since the requirement for a fixed address seems to be obsolete, this
patch removes the naca from head.S and replaces it with a normal C
initializer.

For good measure, it removes an old version of addRamDisk.c which was
sitting, unused, in the ppc32 tree.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: split pSeries specific parts out of vio.c
Stephen Rothwell [Tue, 12 Jul 2005 07:50:26 +0000 (17:50 +1000)]
[PATCH] ppc64: split pSeries specific parts out of vio.c

This patch just splits out the pSeries specific parts of vio.c.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: make the bus matching function platform specific
Stephen Rothwell [Tue, 12 Jul 2005 07:45:27 +0000 (17:45 +1000)]
[PATCH] ppc64: make the bus matching function platform specific

This patch allows us to have a different bus if matching function for
each platform.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: move iSeries vio iommu init
Stephen Rothwell [Tue, 12 Jul 2005 07:42:49 +0000 (17:42 +1000)]
[PATCH] ppc64: move iSeries vio iommu init

Since the iSeries vio iommu tables cannot be used until after the vio bus has
been initialised, move the initialisation of the tables to there.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: split iSeries specific parts out of vio.c
Stephen Rothwell [Tue, 12 Jul 2005 07:40:17 +0000 (17:40 +1000)]
[PATCH] ppc64: split iSeries specific parts out of vio.c

This patch splits the iSeries specific parts out of vio.c.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: change duplicate Kconfig menu "General setup" to "Bus Options"
Frank Rowand [Tue, 28 Jun 2005 23:48:04 +0000 (16:48 -0700)]
[PATCH] ppc64: change duplicate Kconfig menu "General setup" to "Bus Options"

arch/ppc64/Kconfig defines a "General setup" menu, but also sources
init/Kconfig which also defines a "General setup" menu.  Both of these
menus appear at the top level of make menuconfig.  Having two menus with
the same name is confusing.  This patch renames the ppc64/Kconfig menu to
be "Bus Options" and moves options in this menu which are not bus related
to the end of the "Platform support" menu.

There are many variations among architectures on the exact naming of the
"Bus Options" menu.  I chose to use the simplest one, which is also used
in arch/ppc/Kconfig.

Signed-off-by: Frank Rowand <frowand@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: PCI device-node failure detection
Jake Moilanen [Thu, 9 Jun 2005 14:31:12 +0000 (09:31 -0500)]
[PATCH] ppc64: PCI device-node failure detection

OpenFirmware marks devices as failed in the device-tree when a hardware
problem is detected.  The kernel needs to fail config reads/writes to
prevent a kernel crash when incorrect data is read.

This patch validates that the device-node is not marked "fail" when
config space reads/writes are attempted.

Signed-off-by: Jake Moilanen <moilanen@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] flattened device tree changes
Benjamin Herrenschmidt [Tue, 9 Aug 2005 08:36:34 +0000 (10:36 +0200)]
[PATCH] flattened device tree changes

This patch updates the format of the flattened device-tree passed
between the boot trampoline and the kernel to support a more compact
representation, for use by embedded systems mostly.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] Four level pagetables for ppc64
David Gibson [Fri, 5 Aug 2005 09:39:06 +0000 (19:39 +1000)]
[PATCH] Four level pagetables for ppc64

Implement 4-level pagetables for ppc64

This patch implements full four-level page tables for ppc64, thereby
extending the usable user address range to 44 bits (16T).

The patch uses a full page for the tables at the bottom and top level,
and a quarter page for the intermediate levels.  It uses full 64-bit
pointers at every level, thus also increasing the addressable range of
physical memory.  This patch also tweaks the VSID allocation to allow
matching range for user addresses (this halves the number of available
contexts) and adds some #if and BUILD_BUG sanity checks.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] ppc64: make arch/ppc64/boot standalone
Olaf Hering [Mon, 8 Aug 2005 03:24:38 +0000 (13:24 +1000)]
[PATCH] ppc64: make arch/ppc64/boot standalone

Make the bootheader for ppc64 independent from kernel and libc headers.
* add -nostdinc -isystem $gccincludes to not include libc headers
* declare all functions in header files, also the stuff from string.S
* declare some functions static
* use stddef.h to get size_t (hopefully ok)
* remove ppc32-types.h, only elf.h used the __NN types

With further modifications by Paul Mackerras and Stephen Rothwell.

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[PATCH] PHY Layer fixup
Andy Fleming [Wed, 24 Aug 2005 23:46:21 +0000 (18:46 -0500)]
[PATCH] PHY Layer fixup

This patch adds back the code that was taken out, thus re-enabling:

* The PHY Layer to initialize without crashing
* Drivers to actually connect to PHYs
* The entire PHY Control Layer

This patch is used by the gianfar driver, and other drivers which are in
development.

Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[libata] license change, other bits
Jeff Garzik [Mon, 29 Aug 2005 00:18:39 +0000 (20:18 -0400)]
[libata] license change, other bits

- changes license of all code from OSL+GPL to plain ole GPL
  - except for NVIDIA, who hasn't yet responded about sata_nv
  - copyright holders were already contacted privately

- adds info in each driver about where hardware/protocol docs may be
  obtained

- where I have made major contributions, updated copyright dates

19 years agoLinux v2.6.13
Linus Torvalds [Sun, 28 Aug 2005 23:41:01 +0000 (16:41 -0700)]
Linux v2.6.13

19 years ago[ARM] drop i386-isms from arm Kconfig
Pavel Machek [Sun, 28 Aug 2005 21:39:08 +0000 (22:39 +0100)]
[ARM] drop i386-isms from arm Kconfig

This kills i386-specific stuff from arm Kconfig. Please apply,

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[PATCH] zfcp: bugfix and compile fixes
Heiko Carstens [Sun, 28 Aug 2005 20:22:37 +0000 (13:22 -0700)]
[PATCH] zfcp: bugfix and compile fixes

Bugfix (usage of uninitialized pointer in zfcp_port_dequeue) and compile
fixes for the zfcp device driver.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] zfcp: fix compilation due to rports changes
Alexey Dobriyan [Sun, 28 Aug 2005 11:33:53 +0000 (15:33 +0400)]
[PATCH] zfcp: fix compilation due to rports changes

struct zfcp_port::scsi_id was removed by commit
  3859f6a248cbdfbe7b41663f3a2b51f48e30b281

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years agoMerge refs/heads/upstream-fixes from master.kernel.org:/pub/scm/linux/kernel/git...
Linus Torvalds [Sun, 28 Aug 2005 01:05:14 +0000 (18:05 -0700)]
Merge refs/heads/upstream-fixes from /linux/kernel/git/jgarzik/netdev-2.6

19 years ago[PATCH] Remove race between con_open and con_close
Paul Mackerras [Sat, 27 Aug 2005 23:40:01 +0000 (09:40 +1000)]
[PATCH] Remove race between con_open and con_close

[ Same race and same patch also by Steven Rostedt <rostedt@goodmis.org> ]

I have a laptop (G3 powerbook) which will pretty reliably hit a race
between con_open and con_close late in the boot process and oops in
vt_ioctl due to tty->driver_data being NULL.

What happens is this: process A opens /dev/tty6; it comes into
con_open() (drivers/char/vt.c) and assign a non-NULL value to
tty->driver_data.  Then process A closes that and concurrently process
B opens /dev/tty6.  Process A gets through con_close() and clears
tty->driver_data, since tty->count == 1.  However, before process A
can decrement tty->count, we switch to process B (e.g. at the
down(&tty_sem) call at drivers/char/tty_io.c line 1626).

So process B gets to run and comes into con_open with tty->count == 2,
as tty->count is incremented (in init_dev) before con_open is called.
Because tty->count != 1, we don't set tty->driver_data.  Then when the
process tries to do anything with that fd, it oopses.

The simple and effective fix for this is to test tty->driver_data
rather than tty->count in con_open.  The testing and setting of
tty->driver_data is serialized with respect to the clearing of
tty->driver_data in con_close by the console_sem.  We can't get a
situation where con_open sees tty->driver_data != NULL and then
con_close on a different fd clears tty->driver_data, because
tty->count is incremented before con_open is called.  Thus this patch
eliminates the race, and in fact with this patch my laptop doesn't
oops.

Signed-off-by: Paul Mackerras <paulus@samba.org>
[ Same patch
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
  in http://marc.theaimsgroup.com/?l=linux-kernel&m=112450820432121&w=2 ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] zfcp: add rports to enable scsi_add_device to work again
Andreas Herrmann [Sat, 27 Aug 2005 18:07:54 +0000 (11:07 -0700)]
[PATCH] zfcp: add rports to enable scsi_add_device to work again

This patch fixes a severe problem with 2.6.13-rc7.

Due to recent SCSI changes it is not possible to add any LUNs to the zfcp
device driver anymore.  With registration of remote ports this is fixed.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Acked-by: James Bottomley <jejb@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] sg.c: fix a memory leak in devices seq_file implementation
Jan Blunck [Sat, 27 Aug 2005 18:07:52 +0000 (11:07 -0700)]
[PATCH] sg.c: fix a memory leak in devices seq_file implementation

I know that scsi procfs is legacy code but this is a fix for a memory leak.

While reading through sg.c I realized that the implementation of
/proc/scsi/sg/devices with seq_file is leaking memory due to freeing the
pointer returned by the next() iterator method.  Since next() might return
NULL or an error this is wrong.  This patch fixes it through using the
seq_files private field for holding the reference to the iterator object.

Here is a small bash script to trigger the leak. Use slabtop to watch
the size-32 usage grow and grow.

#!/bin/sh

while true; do
cat /proc/scsi/sg/devices > /dev/null
done

Signed-off-by: Jan Blunck <j.blunck@tu-harburg.de>
Acked-by: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] fix for race problem in DVB USB drivers (dibusb)
Patrick Boettcher [Sat, 27 Aug 2005 17:30:30 +0000 (19:30 +0200)]
[PATCH] fix for race problem in DVB USB drivers (dibusb)

Fixed race between submitting streaming URBs in the driver and starting
the actual transfer in hardware (demodulator and USB controller) which
sometimes lead to garbled data transfers. URBs are now submitted first,
then the transfer is enabled. Dibusb devices and clones are now fully
functional again.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Fix capifs bug in initialization error path.
James Morris [Sat, 27 Aug 2005 11:47:06 +0000 (13:47 +0200)]
[PATCH] Fix capifs bug in initialization error path.

This fixes a bug in the capifs initialization code, where the
filesystem is not unregistered if kern_mount() fails.

Signed-off-by: James Morris <jmorris@namei.org>
Signed-off-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] acpi_shutdown: Only prepare for power off on power_off
Eric W. Biederman [Sat, 27 Aug 2005 06:56:18 +0000 (00:56 -0600)]
[PATCH] acpi_shutdown: Only prepare for power off on power_off

When acpi_sleep_prepare was moved into a shutdown method we
started calling it for all shutdowns.

It appears this triggers some systems to power off on reboot.

Avoid this by only calling acpi_sleep_prepare if we are going to power
off the system.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] mmaper_kern.c fixes [buffer overruns]
Al Viro [Sat, 27 Aug 2005 05:48:15 +0000 (06:48 +0100)]
[PATCH] mmaper_kern.c fixes [buffer overruns]

 - copy_from_user() can fail; ->write() must check its return value.

 - severe buffer overruns both in ->read() and ->write() - lseek to the
   end (i.e.  to mmapper_size) and

if (count + *ppos > mmapper_size)
count = count + *ppos - mmapper_size;

   will do absolutely nothing.  Then it will call

copy_to_user(buf,&v_buf[*ppos],count);

   with obvious results (similar for ->write()).

   Fixed by turning read to simple_read_from_buffer() and by doing
   normal limiting of count in ->write().

 - gratitious lock_kernel() in ->mmap() - it's useless there.

 - lots of gratuitous includes.

Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] r8169: avoid conflict between revisions 2 and 3 of the Linksys EG1032
Francois Romieu [Tue, 23 Aug 2005 23:14:23 +0000 (01:14 +0200)]
[PATCH] r8169: avoid conflict between revisions 2 and 3 of the Linksys EG1032

Both revisions share the same PCI device ID and vendor ID but revision 2
of the device uses SysKonnect's chipset whereas revision 3 of the device
uses Realtek's 8169 chipset.

Credit goes to Christiaan Lutzer <mythtv.lutzer@gmail.com> for reporting
the issue and giving the actual value for the different revisions.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] SMP rewrite of mkiss
Ralf Baechle [Wed, 24 Aug 2005 17:06:36 +0000 (18:06 +0100)]
[PATCH] SMP rewrite of mkiss

Rewrite the mkiss driver to make it SMP-proof following the example of
6pack.c.

Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] Fix 6pack setting of MAC address
Ralf Baechle [Wed, 24 Aug 2005 17:01:33 +0000 (18:01 +0100)]
[PATCH] Fix 6pack setting of MAC address

Don't check type of sax25_family; dev_set_mac_address has already done
that before and anyway, the type to check against would have been
ARPHRD_AX25.  We only got away because AF_AX25 and ARPHRD_AX25 both happen
to be defined to the same value.

Don't check sax25_ndigis either; it's value is insignificant for the
purpose of setting the MAC address and the check has shown to break
some application software for no good reason.

Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[PATCH] 6pack Timer initialization
Ralf Baechle [Thu, 25 Aug 2005 18:38:30 +0000 (19:38 +0100)]
[PATCH] 6pack Timer initialization

I dropped the timer initialization bits by accident when sending the
p-persistence fix.  This patch gets the driver to work again on halfduplex
links.

Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
19 years ago[libata scsi] fix read/write translation edge cases
Jeff Garzik [Sat, 27 Aug 2005 08:20:12 +0000 (04:20 -0400)]
[libata scsi] fix read/write translation edge cases

Fix bugs for unlikely edge cases noticed by Douglas Gilbert:

- When READ(6)/WRITE(6) sector count == 0, treat it as 256 sectors

- For other READ(x)/WRITE(x), when sector count == 0, error.
  We don't support successfully completing zero-length transfers at
  this time.

19 years agolibata: fix a few alan-isms
Jeff Garzik [Sat, 27 Aug 2005 08:13:52 +0000 (04:13 -0400)]
libata: fix a few alan-isms

19 years ago[PATCH] IB: move include files to include/rdma
Roland Dreier [Thu, 25 Aug 2005 20:40:04 +0000 (13:40 -0700)]
[PATCH] IB: move include files to include/rdma

Move the InfiniBand headers from drivers/infiniband/include to include/rdma.
This allows InfiniBand-using code to live elsewhere, and lets us remove the
ugly EXTRA_CFLAGS include path from the InfiniBand Makefiles.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
19 years ago[PATCH] IPoIB: Fix device removal race
Michael S. Tsirkin [Wed, 24 Aug 2005 21:41:51 +0000 (14:41 -0700)]
[PATCH] IPoIB: Fix device removal race

Currently we may have work scheduled in default kernel workqueue when
the device is going down.  The device could get freed before this
workqueue gets serviced.  I am actually seeing this causing system
hangs.

The following patch fixes this by using ipoib_workqueue which gets
flushed when the device is going down.

Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
19 years ago[PATCH] IB: Add handling for ABORT and STOP RMPP MADs.
Sean Hefty [Fri, 19 Aug 2005 20:50:33 +0000 (13:50 -0700)]
[PATCH] IB: Add handling for ABORT and STOP RMPP MADs.

Add handling for ABORT / STOP RMPP MADs.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
19 years ago[PATCH] IB: fix userspace CM deadlock
Sean Hefty [Fri, 19 Aug 2005 20:46:34 +0000 (13:46 -0700)]
[PATCH] IB: fix userspace CM deadlock

Fix deadlock condition resulting from trying to destroy a cm_id
from the context of a CM thread.  The synchronization around the
ucm context structure is simplified as a result, and some simple
code cleanup is included.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>