Paul Mackerras [Tue, 31 Aug 2004 03:33:11 +0000 (20:33 -0700)]
[PATCH] ppc64: rework PPC64 cpu map setup
Move all cpu map initializations to one place (except for the online map --
cpus mark themselves online as they come up). This sets up
cpu_possible_map early enough that we can use num_possible_cpus for
allocating irqstacks instead of NR_CPUS. Hopefully this should also help
set the stage for kexec.
Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Paul Mackerras [Tue, 31 Aug 2004 03:32:58 +0000 (20:32 -0700)]
[PATCH] Update PPC MAINTAINERS & CREDITS
David Engebretsen has moved on to other things and is no longer maintaining
ppc64. This patch adds an entry in CREDITS to note his contribution in
leading the team that did the PPC64 port originally and updates various
PPC-related MAINTAINERS entries.
Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Takashi Iwai [Tue, 31 Aug 2004 03:32:46 +0000 (20:32 -0700)]
[PATCH] Fix the unnecessary entropy call in the irq handler
Currently add_interrupt_randomness() is called at each interrupt when one
of the handlers has SA_SAMPLE_RANDOM flag, regardless whether the interrupt
is processed by that handler or not. This results in the higher latency
and perfomance loss.
The patch fixes this behavior to avoid the unnecessary call by checking the
return value from each handler.
[PATCH] Jumper Probes to provide function arguments
A special kprobe type which can be placed on function entry points, and
employs a simple mirroring principle to allow seamless access to the
arguments of a function being probed. The probe handler routine should
have the same prototype as the function being probed. Currently
implemented for x86.
The way it works is that when the probe is hit, the breakpoint handler
simply irets to the probe handler's eip while retaining register and stack
state corresponding to the function entry. After it is done, the probe
handler calls jprobe_return() which traps again to restore processor state
and switch back to the probed function. Linus noted correctly at KS that
we need to be careful as gcc assumes that the callee owns arguments. We
save and restore enough stack bytes to cover argument space.
Sample Usage:
static int jip_queue_xmit(struct sk_buff *skb, int ipfragok)
{
... whatever ...
jprobe_return();
return 0;
}
This patch helps developers to trap at almost any kernel code address,
specifying a handler routine to be invoked when the breakpoint is hit.
Useful for analysing the Linux kernel by collecting debugging information
non-disruptively. Employs single-stepping out-of-line to avoid probe
misses on SMP and may be especially useful in aiding debugging elusive
races and problems on live systems. More elaborate dynamic tracing tools
such as DProbes can be built over the kprobes interface.
Helps developers to trap at almost any kernel code address, specifying a
handler routine to be invoked when the breakpoint is hit. Useful for
analysing the Linux kernel by collecting debugging information
non-disruptively. Employs single-stepping out-of-line to avoid probe
misses on SMP and may be especially useful in aiding debugging elusive
races and problems on live systems. More elaborate dynamic tracing tools
such as DProbes can be built over the kprobes interface.
Sample usage:
To place a probe on __blockdev_direct_IO:
static int probe_handler(struct kprobe *p, struct pt_regs *)
{
... whatever ...
}
struct kprobe kp = {
.addr = __blockdev_direct_IO,
.pre_handler = probe_handler
};
register_kprobe(&kp);
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jason Davis [Tue, 31 Aug 2004 03:31:43 +0000 (20:31 -0700)]
[PATCH] platform update for ES7000
This update only applies to Unisys' ES7000 server machines. The patch adds
a OEM id check to verify the current machine running is actually a Unisys
type box before executing the Unisys OEM parser routine. It also increases
the MAX_MP_BUSSES definition from 32 to 256. On the ES7000s, bus ID
numbering can range from 0 to 255. Without the patch, the system panics if
booted with acpi=off.
This patch has been tested and verified on an authentic ES7000 machine.
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Anton Blanchard [Tue, 31 Aug 2004 03:31:19 +0000 (20:31 -0700)]
[PATCH] prio-tree: remove function prototype inside function
I had a problem when compiling a 2.6 kernel with gcc 3.5 CVS. The
prototype for prio_tree_remove in mm/prio_tree.c is inside another
function. gcc 3.5 gets upset and removes the function completely.
Apparently this isnt valid C, so lets fix it up.
Details can be found here:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17205
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David S. Miller [Mon, 30 Aug 2004 08:46:01 +0000 (01:46 -0700)]
[TG3]: Fix clock control programming on 5705/5750.
Need to clear one bit at a time, so if we are
clearing both 625_CORE_CLOCK and ALTCLOCK
we first clear the latter then the final
write will clear the former.
Signed-off-by: David S. Miller <davem@davemloft.net>
"[libata] transfer mode cleanup" introduced bug in ata_piix.c:
previously PIO number (not mode) was passed to piix_set_piomode().
Fortunately this function is only used for (disabled) PATA support.
I bet that this is the reason why MWDMA didn't work for PATA.
Linus Torvalds [Sun, 29 Aug 2004 08:05:32 +0000 (01:05 -0700)]
Undo UML mis-merge of jiffies initialization.
Paolo Giarrusso points out that the UML merge incorrectly
caused INITIAL_JIFFIES to be reset back to zero, instead
of the debug value for getting an early jiffies wrap.
Andrew Chew [Sat, 28 Aug 2004 15:29:32 +0000 (11:29 -0400)]
[PATCH] sata_nv: fix CK804 support
This patch fixes a problem introduced when CK804 support was added. mmio_base can only be set in the CK804 case,
else libata will attempt to iounmap mmio_base, which isn't iomapped for the non-CK804 case. Still need the bar 5
address, so steal from host_set->ports[0]->ioaddr.scr_addr. Jeff, let me know if this is a bad thing to do.
Armin Schindler [Sat, 28 Aug 2004 15:04:26 +0000 (08:04 -0700)]
[PATCH] ISDN Eicon driver: maint/trace fix and update
Fix of the debug/trace driver and removal of irq locks.
- Only spinlocks[bh] are used now.
- Removed obsolete direct debug /proc interface.
- Update of internal trace features and its API.
- Use common definition of MAX_DESCRIPTORS.
Matt Porter [Sat, 28 Aug 2004 15:22:26 +0000 (11:22 -0400)]
[PATCH] ibm_emac driver updates
Optimizes transmit windows for improved performance and to prevent
TX underruns. Fixes driver registration error handling. Fixes ZMII
and RGMII thinkos. Fixes for MDIO handling issues from Ralph
Siemsen. Please apply.
Signed-off-by: Matt Porter <mporter@kernel.crashing.org>
Jeremy Higdon [Sat, 28 Aug 2004 15:02:49 +0000 (11:02 -0400)]
[PATCH] Fix DMA boundary overflow bug
We seem to have found an overflow problem in libata-core.c.
We were trying to DMA to the address range 0xffff8000-0xffffbfff.
In the original version of the code, given that address and
count (0xffff8000 and 0x4000), the variable "boundary" would be
set to 0, causing len to be set to 0x8000 (which is greater than
sg_len). Then at the bottom of the loop, sg_len would be set
to 0xffffc000 (0x4000 - 0x8000), which would then cause the
loop never to terminate (until much of memory was scribbled
over or the kernel died).
The code below should be functionally identical, but not be
subject to the same overflow problem (boundary needs to be a
u33).
Signed-off-by: jeremy@sgi.com
===== drivers/scsi/libata-core.c 1.94 vs edited =====
[PATCH] ide: identify non decoded master/slave by serial and model
From: Alan Cox <alan@redhat.com>
Some interfaces (notably PCMCIA ones) don't decode the master/slave select so
you get two copies of a device appearing and bad things happening if a user
accidentally uses both.
This checks for the model/serial matching but also knows about non ATA drives
ide=noprobe and a Maxtor problem that was found in Andrew's testing of an
earlier patch. Although M00000.. drives should be RMA'd to Maxtor (and with
info on where they were obtained...) we don't want to break anyone who has
them.
If you get invalid geometry (eg a failed drive) the box hangs on boot because
we try and unregister the registered driver and end up in a locking mess.
We change the behaviour to simply leave the device unattached which avoids
the mess.
This was put in for PPC specifically and defined in the 2.4 tree to be
paranoid about breaking stuff. The actual wait for hwif spin up is however
perfectly correct for all drives. In the normal PC case the PC BIOS has done
this but with other embedded boxes and with things like LinuxBIOS it may not
have done. Thus it should always be done.
"It doesn't work now so it clearly isnt being used 8). We hold the lock
because its a proc function and we then replace the proc functions in the
attach method -> deadlock. It is also incredibly hard to fix without a
major rewrite."
The same is true for HDIO_SET_IDE_SCSI ioctl.
Both were broken 18 months ago in 2.5.63 as a side-effect of locking fixes.
[XFS] Rework parts of the write path so that when a direct write
needs to fallback to buffered in the generic code, we are able to
relock the XFS inode correctly.
Linus Torvalds [Sat, 28 Aug 2004 03:04:12 +0000 (20:04 -0700)]
Remove QIC-02 tape from Kconfig.
Let's leave the code for a while yet, and see if somebody screams.
But both Red Hat and SuSE claim it is unused, so it probably is. The
driver hasn't gotten updated in years, and google doesn't seem to
show any usage either.
Alexander Viro [Fri, 27 Aug 2004 13:59:05 +0000 (06:59 -0700)]
[PATCH] misc alpha bits
* long constant in a.out.h
* missing cast to pointer in pgtable.h
* removed useless __chk_user_ptr() in get_user() and put_user() - with fixed
typeof handling in sparse we are getting the check from
__typeof__(*(ptr)) __user *__pu_addr = (ptr); \
anyway, so __chk_user_ptr() is redundant there.
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Fri, 27 Aug 2004 12:29:11 +0000 (05:29 -0700)]
Fix "insert_resource()" nesting bug
It used to create totally impossible resource trees in some
circumstances where it was asked to insert a conflicting
resource. We never noticed, because it wasn't used that much.
Alexander Viro [Fri, 27 Aug 2004 12:13:20 +0000 (05:13 -0700)]
[PATCH] 64bit cleanup in bt878 and btaudio
~0x0UL passed in u32 argument will do what the authors wanted, but it's
a hell of a silly way to spell ~0U on 32bit boxen and it generates warnings on
64bit boxen (we get correct value after truncation, but compiler doesn't
know that ;-)
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Alexander Viro [Fri, 27 Aug 2004 12:12:55 +0000 (05:12 -0700)]
[PATCH] mpu401 check_region() removal
mpu401 ports are claimed by callers now
probe_mpu401() gets pointer to resulting struct resource
callers updated, a bunch of check_region() calls eliminated
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Alexander Viro [Fri, 27 Aug 2004 12:12:19 +0000 (05:12 -0700)]
[PATCH] ad1848 check_region() removal
* ports for ad1848 are now claimed by callers
* ad1848_detect() gets pointer to struct resource in question
* ad1848_init() gets the same pointer and consumes it
* ports for mss are now claimed by callers (both config and ad1848 ones)
* probe_ms_sound() gets pointer to ad1848 ports
* attach_ms_sound() gets the same pointer and consumes both regions.
* callers updated. That had killed a *lot* of check_region() and closed
corresponding races.
Signed-off-by: Al Viro <viro@parcelfarce.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>