Josh Myer [Tue, 25 Feb 2003 05:50:42 +0000 (21:50 -0800)]
[PATCH] USB: KB Gear USB Tablet Drivers
Attached are drivers for the KB Gear JamStudio Tablet. There are two
files, one is against 2.4.20, the other against 2.5.62. I'm hoping this
isn't too late in the 2.4.21-pre stages to get included (or the 2.5, for
that matter =). This driver Works For Me, on both 2.4.20 and 2.5.62.
Anyway, as usual, comments, complaints, and patches are more than
welcome.
David Brownell [Tue, 25 Feb 2003 03:32:55 +0000 (19:32 -0800)]
[PATCH] USB: ehci-hcd, partial VIA workaround
This patch resolves a FIXME, which happens to make many of
the VIA problems act significantly less severe. The change
defers unlinking any QH that just became idle, since it's not
unlikely it'll be used again before many milliseconds pass.
It reduces the number of unlink interrupts (IAA), and means
fewer re-activation issues. Like: newly queued TDs being
all or partially processed before the QH gets de-activated.
The VIA hardware seems to have some problems in those cases.
(Which are extremely common on 2.4 kernels, and less so on
2.5 because usb-storage streams data much better now.)
It also starts tracking the "lost IAA" errors that I see on
at least one VT8235 motherboard. It shows in the "registers"
sysfs file. It'd be good to know if it's just my hardware
that has this problem, or if other folk also see it.
David Brownell [Tue, 25 Feb 2003 03:32:31 +0000 (19:32 -0800)]
[PATCH] USB ohci: "registers" sysfs file
This is a slightly cleaned up version of Kevin's patch to
add a "registers" sysfs debug file. Minor style and whitespace
fixups, prints the other register, resolved config/build
issues (minor).
It also has two minor tweaks: a fix for a potential assertion
violation on a "dead-hc" cleanup path (rare), and wasting less
time blocking irqs when they're already blocked.
Andrew Morton [Thu, 20 Feb 2003 05:45:35 +0000 (21:45 -0800)]
[PATCH] Don't call mmdrop under a spinlock
We're calling mmdrop() under spin_lock_irq(&rq->lock). But mmdrop
calls vfree(), which calls smp_call_function().
It is not legal to call smp_call_function() with irq's off. Because
another CPU may be running smp_call_function() against _this_ CPU, which
deadlocks.
So the patch arranges for mmdrop() to not be called under
spin_lock_irq(&rq->lock).
Andrew Morton [Thu, 20 Feb 2003 05:19:00 +0000 (21:19 -0800)]
[PATCH] Keep interrupts enabled in exit path
We are leaving local interrupts disabled coming out of exit_notify().
But we are about to call wait_task_inactive() which spins, waiting for
another CPU to end a task. If that CPU has issued smp_call_function() to
this CPU, deadlock.
So the patch enables interrupts again before returning from exit_notify().
Also, exit_notify() returns with preemption disabled, so there is no
need to perform another preempt_disable() in do_exit().
David Brownell [Thu, 20 Feb 2003 02:18:03 +0000 (18:18 -0800)]
[PATCH] USB: usbtest checks for in-order completions
This makes "test 10" verify that completions are returned in-order,
resolving a FIXME. OHCI and EHCI do, but UHCI doesn't. (*) That
simplified a cleanup of the queue fault tests to make it easier
to handle optional faults (with one or more failure modes).
It also returns a "lost subcase" that accidentally was not getting
run. And in a case of pure paranoia, the unlink tests handle the
EBUSY return from an async urb unlink ... if that ever shows up I'd
expect it to be on an SMP box.
(*) I'd suspected as much given the first round of tests with UHCI;
the diagnostics from "usbtest" made no sense otherwise. This
is just repeatable confirmation of the earlier bug report. This
could cause trouble in the usb_sg_*() I/O calls.
In this case, "testusb -at10 -g4" reported that subcase 1 completed
out of order (before subcase 0) ... without looking at details, I'd
guess a list_add() vs list_add_tail() issue.
Then after trying the queue cleanup code, I got diagnostics from
uhci_destroy_urb_priv; then a kmalloc poisoning oops in uhci_irq,
or "uhci_remove_pending_qhs+0x7c/0x1b0" in more detail. Those
looks to be the same "can't unlink from completions" errors that
was also reported before in that code.
Note that "testusb -at10" (like "testusb -at9") can be made to
work with any USB device, using "usbtest" module options.
David Brownell [Thu, 20 Feb 2003 02:17:46 +0000 (18:17 -0800)]
[PATCH] USB: ohci-hcd fewer diagnostics
This gets rid of some potentially scarey messages I've recently
seen on disconnect, "bad hash" for a TD ... it's really a "no hash"
case, and this prevents the message in some cases where that's
not an issue. Likely this is what Gary Gorgen noticed, but even
he had a different problem, this message shouldn't always appear.
It also slims down one other message, preventing it from appearing
in the routine "protocol stall" case (and cluttering logfiles).
David Brownell [Thu, 20 Feb 2003 02:17:28 +0000 (18:17 -0800)]
[PATCH] USB: ohci-hcd, more portable diagnostics
This is the rest of the work to make the driver not care which
version of the OS it's using, so the difference between the 2.5
and 2.5 versions can just be a small patch with stuff that has
a real need to be different.
David Brownell [Thu, 20 Feb 2003 02:17:07 +0000 (18:17 -0800)]
[PATCH] USB: sync with some 2.4 ohci fixes, prepare for backport
The 2.5 version branched from 2.4.5 or so, and since then
a couple hardware-specific tweaks were merged to 2.4; this
teaches 2.5 about NatSemi SUPERIO and PA-RISC quirks.
This also uses os/version neutral HCD calls to register the root
hub and find the HCD's bus. It also adds os/version neutral
macros for its diagnostic macros. Most of those changes have
been split out separately, but the macros and a few uses of them
weren't naturally splittable.
Also a couple minor cleanups, like removing CVS ids, having
only one copy of a routine used with the debug files, and
getting rid of some inline #ifdefs.
Linus Torvalds [Wed, 19 Feb 2003 09:48:59 +0000 (01:48 -0800)]
Add doublefault handling with a task gate.
This potentially helps debugging, since otherwise a double fault
would generate a triple fault and then reboot the machine. Now
instead it can print out a note about where the problem happened,
unless all the kernel data structures are truly buggered.
This patch removes the devfs interface code in mtrr that has been
stubbed out by an ifdef forever. It's one of the few remaining users
of regular files on devfs so there's some urge for me to get rid of it :)
small updates to bring us nearer the lm_Sensors CVS (docs, comments,
missing statics, named initializers). I still need to review their
actual code changes before submitting those..
[XFS] Under heavy load, there are not enough hash buckets to deal with
the number of metadata buffers. Use the same techniques as the
regular linux buffer cache here.
use more hash buckets for holding xfs metadata, and use the same
hash algorithm as the regular buffer cache.
Glen Overby [Wed, 19 Feb 2003 19:26:14 +0000 (20:26 +0100)]
[XFS] fix one more set of transaction callback ordering issues,
this was always there, but exposed by the last change in
this area and made much more likely.
Nathan Scott [Wed, 19 Feb 2003 19:19:52 +0000 (20:19 +0100)]
[XFS] Extra check on the mount path - ensure we don't attempt to mount XFS fs's
with sector sizes smaller than those the device supports. Tripped a BUG
in pagebuf, should now be resolved.
Greg Ungerer [Tue, 18 Feb 2003 13:47:55 +0000 (05:47 -0800)]
[PATCH] create an architecture specific flat header for m68knommu
Add a per-architecture flat.h flat format executable header. The idea is
to support the different options required in a clean way. For starters
we need to be able to configure the initial stack layout, and this
differs for different CPU types.
This first patch adds the header for the m68knommu architecture.
Greg Ungerer [Tue, 18 Feb 2003 13:47:47 +0000 (05:47 -0800)]
[PATCH] fix text and data sizing in MMUless task_nommu.c
This patch does a couple of things to the MMUless proc support:
1. change current->sig to current->sighand
2. initialize vsize var in task_vsize() function
3. correctly set *text and *data values in task_vsize() function
Greg Ungerer [Tue, 18 Feb 2003 13:47:26 +0000 (05:47 -0800)]
[PATCH] use local RODATA setup for m68knommu linker script
This patch removes the use of the common RODATA define in the m68knommu
architecture. It cannot be used the same way for the m68knommu target.
For starters just inserting it here is syntactically wrong. All the read
only parts are grouped into a single "text" segment, and this is the root
cause of the problem. So for the m68knommu arch it makes sense to not
use the generic RODATA setup, but to list them locally.
This patch reformats the 68360 crt_ram.S file to make it consistent
with the other m68knommu assembler files, and generally to good
style standards :-)
Greg Ungerer [Tue, 18 Feb 2003 13:47:11 +0000 (05:47 -0800)]
[PATCH] inline unsued functions for MMUless configuration
This patch adds inline versions of init_emergency_isa_pool() and
blk_queue_bounce() for MMUless builds. This patch was originally
from Christoph Hellwig, as part of the MMUless merge.
Greg Ungerer [Tue, 18 Feb 2003 13:47:03 +0000 (05:47 -0800)]
[PATCH] include the architecture flat file header in common flat header
This patch adds support into the common flat.h header to include
the architecture specific flat.h header. This is modelled on the
same scheme as the elf include header file support.
Greg Ungerer [Tue, 18 Feb 2003 13:46:56 +0000 (05:46 -0800)]
[PATCH] create an architecture specific flat header for v850
This patch adds a v850 architecture specific flat file header.
It supports the stack layout define needed by the flat format
load binfmt_flat.c (for MMUless CPU's).
Greg Ungerer [Tue, 18 Feb 2003 13:46:48 +0000 (05:46 -0800)]
[PATCH] reformat m68knommu 68328/pilot crt0_rom.S
This patch reformats the 68328/pilot crt_rom.S file to make it consistent
with the other m68knommu assembler files, and generally to good style
standards :-)
Greg Ungerer [Tue, 18 Feb 2003 13:46:41 +0000 (05:46 -0800)]
[PATCH] create common vector setup code for m68knommu/ColdFire
This patch creates a common set of vector code for the ColdFire
sub-architecture of the m68knommu architecture. The basic setup
code for all ColdFire CPU's is the same. Some more patches will
follow this that remove theis common code from each of the
ColdFire CPU configs.
This patch reformats the 68360 crt_rom.S file to make it consistent
with the other m68knommu assembler files, and generally to good
style standards :-)
Greg Ungerer [Tue, 18 Feb 2003 13:45:56 +0000 (05:45 -0800)]
[PATCH] bounds check and no argv/envp support for binfmt_flat load
This patch to the MMUless flat loader does 2 important things:
1. Allow for architectures that do not want argv and envp on
the initial process stack (v850 is an example of this)
2. Does some bounds checking on the zipped flat header when
processing it.
Greg Ungerer [Tue, 18 Feb 2003 13:45:41 +0000 (05:45 -0800)]
[PATCH] m68knommu cacheflush.h cleanup
This patch overhauls the cache support routines for the m68knommu
architecture. It removes depricated functions, and fixes those required
to operate as per Documentation/cachetlb.txt.