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>
Dave Hansen [Fri, 27 Aug 2004 09:35:06 +0000 (02:35 -0700)]
[AF_PACKET]: Use void * for virtual addresses.
I've been auditing code, cleaning up warning where code passes
unsigned long's to functions and macros that really take pointers.
Here's some explanation as to why I think these types were coded up
this way originally:
http://marc.theaimsgroup.com/?l=linux-mm&m=109155379124628&w=2
The attached patch make packet_opt->pg_vec a pointer to an array of
char*'s instead of a pointer to an array of unsigned
David S. Miller [Fri, 27 Aug 2004 09:12:23 +0000 (02:12 -0700)]
[SPARC64]: Fix delay with HZ==1000.
When I moved sparc64 over to HZ==1000 this added some
problems to the udelay() handling. Specifically, with
slower cpus we could now get underflows to zero for
things like udelay(1) due to the order of multiplies
and shifts.
Fix this, and move it out to arch/sparc64/lib/delay.c
so it is easier to tinker with this in the future and
also to optimize away one of the multiplies for the
constant delay case just like other platforms do.
Signed-off-by: David S. Miller <davem@davemloft.net>