Matthew Wilcox [Wed, 3 Sep 2003 12:34:05 +0000 (07:34 -0500)]
[PATCH] sym2 patchset
A big pile of sym2-related changes. I have most of them split apart in
CVS, so I can submit them as individual patches if anyone's interested.
Changelog:
- Use pci_set_mwi() instead of trying to do it ourselves.
- Rename PCI_ID_LSI53C1010 to 1010_33 and PCI_ID_LSI53C1010_2 to 1010_66.
- Turn sym_udelay and sym_mdelay into macros.
- Move the definition of sym53c8xx_lock near the functions that call it
and remove the macros that wrapper it.
- SYM_LINUX_DYNAMIC_DMA_MAPPING is always defined. (Christoph Hellwig)
- Remove first_host (Christoph Hellwig)
- Support for hp C3000 (Grant Grundler)
- Switch to using pci_name()
- Remove the #if 0'd code from the pci_driver conversion.
- Remove the sym_chip typedef.
- Remove the pcifix option.
- Remove a redundant printk on driver initialisation.
- Use rmb() for __READ_BARRIER and wmb() for __WRITE_BARRIER
- Increment the version to 2.1.17a.
Marc Zyngier [Wed, 3 Sep 2003 09:39:27 +0000 (05:39 -0400)]
[netdrvr de4x5] big modernization / cleanup
The enclosed patch tries to clean the tulip de4x5 driver, and update
it to some of the 2.6 APIs :
- Use PCI and EISA probing APIs
- Use generic DMA API
- Fix DE425 init on the Jensen
- Remove de4x5 from Space.c
It's been tested on x86 and Alpha, with a DE425 (21040, EISA), a DE435
(21040, PCI) and a quad DLink (4*21143, PCI).
The major problem with this patch is that, because of the Space.c
removal, interfaces get potentially renumbered. This has been
discussed to death on lkml, without any obvious solution. IMHO, we'd
better remove as many drivers as we can from Space.c before
2.6.0-final ships...
From Benjamin Herrenschmidt <benh@kernel.crashing.org>:
This adds the Kconfig option for the PowerMac IDE driver "LED" feature
(using the laptop's front LED as a disk activity indicator). It also
adds a small bit to ide-probe.c that was missing from Jens patch when he
added the activity function infrastructure. He did add the hwif field,
but not the code to actually enable it.
Paul Mackerras [Thu, 4 Sep 2003 08:16:47 +0000 (18:16 +1000)]
PPC32: Add support for the PPC 440 family of embedded processors.
This has three main parts: (1) support for the 440GP and 440GX processors,
(2) support for the "Ebony" and "Ocotea" reference boards for those processors,
and (3) support for 64-bit physical addresses. The 440GP and 440GX are "Book E"
processors, and this introduces a CONFIG_BOOKE and some definitions that apply
to all Book E processors.
Having 64-bit physical addresses means that PTEs are now 64 bits. The PTE pages
stay at 4kB, and the pgdir expands to 8kB.
includes these changes from viro
* switched ethertap to dynamic allocation
* ethertap: embedded ->priv
* ethertap: fixed resource leaks on failure exits
and from me
* get it out of the static device list completely.
* add dependency on NETLINK_DEV
* not really obsolete yet
* configurable number of interfaces
David Brownell [Tue, 2 Sep 2003 04:09:09 +0000 (21:09 -0700)]
[PATCH] USB: usb hcd states
AFAICT this is ready for your next merge with Linus.
Ben's ohci stuff was not cooked yet, seemed like the
pm stuff wasn't yet supporting the hook(s) he needed.
RMK had similar issues w.r.t. PM on ARM too.
This patch includes:
- updates from Benjamin Herrenschmidt to make usbcore
behave a bit better during PM suspend (setting and
checking hcd state).
- related updates from me, making more paths into hcds
fail when the driver is suspended.
- updates based on some feedback from Alan Stern,
notably including getting rid of a state we don't
really need (most of the patch, by volume).
- an experiment that tries to give a warning in the
sadly common case of ACPI or APIC (etc) settings
that need to change before USB works.
Net effect is that some of the PM issues start to get
resolved, maybe IRQ problems will be diagnosed quicker,
and some overdue cleanup gets started.
Alan Stern [Tue, 2 Sep 2003 03:49:49 +0000 (20:49 -0700)]
[PATCH] USB: storage: Revised update to isd200 I/O buffer patch
This is a minor revision to the previous patch as83. It changes the name
of the various struct hd_driveid variables from 'drive' to 'id', per
Andries Brouwer's request.
- Don't do DMA into the middle of a structure (info->drive).
- Don't use I/O buffers for two different purposes simultaneously
(info->ATARegs, regs, us->iobuf).
- Rename info->drive to info->id.
Pat LaVarre [Tue, 2 Sep 2003 03:47:33 +0000 (20:47 -0700)]
[PATCH] USB: storage: cbw/csw trace in order
Via this patch ...
We change only when CONFIG_USB_STORAGE_DEBUG=y.
To /proc/kmsg etc. we now trace the fields of
the cbw as we order those fields in ram and as
we order those fields in time on the bus, to
avoid disorientating those of us who view those
canonical orders often.
Also we no longer print "S" or "Sig" to
"Signature", instead we always print "S". We
chose "S" over "Sig" because it is the "T"
signature (aka "Tag") that actually makes each
cbw/csw pair distinct, whereas the so-called
Signatures only distinguish cbw from csw by
flipping one bit.
Also in the trace we uppercase a 'C' and an 'S'
to keep cbw from csw typographically distinct.
For example, what was:
<7>usb-storage: Command INQUIRY (6 bytes)
<7>usb-storage: 12 00 00 00 24 00
<7>usb-storage: Bulk command S 0x43425355 T 0x1f13 Trg 0 LUN 0 L 36 F 128 CL 6
...
<7>usb-storage: Bulk status Sig 0x53425355 T 0x1f13 R 0 Stat 0x0
becomes:
<7>usb-storage: Command INQUIRY (6 bytes)
<7>usb-storage: 12 00 00 00 24 00
<7>usb-storage: Bulk Command S 0x43425355 T 0x1f3b L 36 F 128 Trg 0 LUN 0 CL 6
...
<7>usb-storage: Bulk Status S 0x53425355 T 0x1f3b R 0 Stat 0x0
From Andries Brouwer <aebr@win.tue.nl>: we discard the double
release keypress, but we did it without clearing the "last byte
was E0" flag. So the next byte in the input stream would get
corrupted.
Adrian Bunk [Tue, 2 Sep 2003 02:22:52 +0000 (19:22 -0700)]
[PATCH] Mark more drivers BROKEN{,ON_SMP}
- let more drivers that don't compile depend on BROKEN
- MTD_BLKMTD is fixed, remove the dependency on BROKEN
- let all drivers that don't compile on SMP (due to cli/sti usage)
depend on a BROKEN_ON_SMP that is only defined if !SMP || BROKEN
- #include interrupt.h for dummy cli/sti/... in two files to fix the
UP compilation of these files
I marked only drivers that are broken for a long time and where I don't
know about existing fixes with BROKEN or BROKEN_ON_SMP.
[PATCH] ide: fix ide_unregister() vs. driver model
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This patch seem to have been lost, so here it is again. It fixes an Ooops
on unregistering hwifs due to the device model now having mandatory
release() functions. It also close the possible race we had on release if
the entry was in use (by or /sys typically) by using a semaphore waiting
for the release() to be called after doing an unregister.
As far as I verified this also fixes a bug when doing the
table lookup for IMM_EPP_32, that would result in "Unknown"
as IMM_EPP_32 is equal to 6 and there is the #ifdef...
ChangeSet@1.1386, 2003-09-02 00:11:07-03:00, acme@allegro.kerneljanitors.org
o scsi/*.h: remove not needed #define NULL
ChangeSet@1.1385, 2003-09-02 00:05:16-03:00, acme@allegro.kerneljanitors.org
o scsi/3w-xxx.h: use c99 style init
Rusty Russell [Mon, 1 Sep 2003 21:38:35 +0000 (14:38 -0700)]
[NET]: Use MODULE_ALIAS() in network families.
Previously, default aliases were hardwired into modutils. Now they
should be inside the modules, using MODULE_ALIAS() (they will be overridden
by any user alias).
Be a lot more careful about TS_USEDFPU and preemption
We had some races where we testecd (or set) TS_USEDFPU together
with sequences that depended on the setting (like clearing or
setting the TS flag in %cr0) and we could be preempted in between,
which screws up the FPU state, since preemption will itself change
USEDFPU and the TS flag.
This makes it a lot more explicit: the "internal" low-level FPU
functions ("__xxxx_fpu()") all require preemption to be disabled,
and the exported "real" functions will make sure that is the case.
One case - in __switch_to() - was switched to the non-preempt-safe
internal version, since the scheduler itself has already disabled
preemption.
From Tejun's posting:
>
> This patch fixes a race between del_timer_sync and recursive timers.
> Current implementation allows the value of timer->base that is used
> for timer_pending test to be fetched before finishing running_timer
> test, so it's possible for a recursive time to be pending after
> del_timer_sync. Adding smp_rmb before timer_pending removes the race.
Ben Collins [Mon, 1 Sep 2003 13:16:27 +0000 (06:16 -0700)]
[PATCH] Update IEEE1394 (r1047)
subsys : - Added hpsb_make_streampacket() helper
- Fix re-probe of bus after reset, when node's generation
changes
- Missing spinlock.h include for csr.c
general : - Fix a few warnings from size mismatches in printk's
raw1394 : - Added RAW1394_REQ_ASYNC_STREAM
- Use vmalloc/vfree for larger buffer support
ohci1394 : - Fix a few endianess bugs in ISO routines
Matthew Dharm [Mon, 1 Sep 2003 10:37:10 +0000 (03:37 -0700)]
[PATCH] sr.c should issue TEST_UNIT_READY
The linux/drivers/scsi/sr.c code will issue a MODE_SENSE[_10] command to
a device as the first command sent to the device. If the device has
just come out of reset, it will likely respond with a UNIT_ATTENTION /
NOT_READY status, which causes the MODE_SENSE to fail. In fact, the
device may have several UNIT_ATTENTION conditions queued up (power-up
reset, media change, etc.)
This results in the mode page 0x2a data not being properly read and
interpreted. As an end-effect, things like packet-writing don't work
(because the writeable bit is not set).
The solution to this is to issue one or more TEST_UNIT_READY commands to
the device to clear any pending UNIT_ATTENTION conditions. This is the
technique used by sd.c -- in fact, this code was lifted directly from
sd.c
At some point in the future, abstraction of this initial TEST_UNIT_READY
code between all high-level SCSI drivers may be apropriate. For now,
this patch makes sr.c issue TEST_UNIT_READY to clear the UNIT_ATTENTION,
thus allowing the mode page 0x2a code to work properly. Given the
approaching 2.6.0-final release, I urge that this patch be accepted.
Don't claim exclusive ownership of the device when doing
the SG_IO and SCSI_IOCTL_SEND_COMMAND ioctl's. That just
screws things up when the drive is mounted.
If somebody wants exclusive access, he should indicate that
at open time.
I've been trying to remove these, but apparently new ones crop up. Lets
just call it io scheduler, none of the ones in the kernel are using the
classic elevator algorithm.
Jeff Garzik [Mon, 1 Sep 2003 07:31:03 +0000 (03:31 -0400)]
[tokenring lanstreamer] clean up MWI / PCI_CACHE_LINE_SIZE usage
* remove PCI_CACHE_LINE_SIZE workaround, PCI core already does
this for us. (main change)
* propagate pci_set_dma_mask return value
* add 'ULL' suffix to pci_set_dma_mask arg
* propagate pci_enable_device return value
* call pci_set_mwi, check and propagate its return value
* call pci_clear_mwi and pci_disable_device on close, and probe error
* call iounmap when cleaning up
This adds support for software controlled hard drive LED activity.
This is really nice on such machines as Apple Powerbooks, where there is
no such LED in the first place and the sleep/suspend LED isn't used for
anything when the machine is running.
[IPV6]: Fix timer handling in ip6_flowlabel.c
- Use time_{before,after}() macros.
- Use mod_timer instead of del_timer/add_timer
- Properly synchronize timer resetting using ip6_fl_lock.