Ben Collins [Tue, 4 Mar 2003 08:25:16 +0000 (00:25 -0800)]
[PATCH] More IEEE1394 updates
- Cleanup Makefile.
- Fix potentional crash in dv1394 module unload.
- Why does ARM's memcpy not return void*? Oh well, work around it in
eth1394 by not expecting standard behavior.
Linus Torvalds [Tue, 4 Mar 2003 06:30:19 +0000 (22:30 -0800)]
Merge penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/hlist
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
Andi Kleen [Tue, 4 Mar 2003 06:28:32 +0000 (22:28 -0800)]
[PATCH] dcache/inode hlist patchkit
- Inode and dcache Hash table only needs half the memory/cache because
of using hlists.
- Simplify dcache-rcu code. With NULL end markers in the hlists
is_bucket is not needed anymore. Also the list walking code
generates better code on x86 now because it doesn't need to dedicate
a register for the list head.
- Reorganize struct dentry to be more cache friendly. All the state
accessed for the hash walk is in one chunk now together with the
inline name (all at the end)
- Add prefetching for all the list walks. Old hash lookup code didn't
use it.
- Some other minor cleanup.
Ben Collins [Tue, 4 Mar 2003 02:55:45 +0000 (18:55 -0800)]
[PATCH] IEEE1394 updates
- Add ioctl32 compat function registration for video1394, dv1394 and
amdtp.
- Convert SBP-2 driver to new SCSI hotplug host/device interfaces.
- Initial Async ISO (GASP) support.
Patrick Mochel [Mon, 3 Mar 2003 06:48:38 +0000 (00:48 -0600)]
driver model: fix device interfaces.
- Remove struct intf_data.
It was silly, and gave us an unbalanced interface.
Instead, when removing a device_interface, all of a class's devices are
iterated over, and intf->remove_device() is called for each. (Instead
of the device's list of interfaces it belongs to).
Interfaces are expected to tell if they support the device being removed.
- Remove struct device::intf_list.
- Protect classes' device list access with devclass_sem, which is taken
when a device or interface is added or removed. This allows access to the
list w/o taking the class's lock, which allows subordinate objects to be
registered (e.g. the interface itself, or objects the interfaces create
for a device).
- This should fix a deadlock when devices are added to interfaces, which
calls intf->add_device(), then interface_add_data(), which call
kobject_register() and hangs, since it tries to take the class's lock
again.
Patrick Mochel [Mon, 3 Mar 2003 03:43:37 +0000 (21:43 -0600)]
sysfs: fix oops in directory removal.
If a file that doesn't exist was looked up in a directory, and that
directory is later removed, sysfs would reap the negative dentrys along
with the valid ones.
Fix is to manually remove the dentrys from the parent's list under the
dcache_lock, then check if they're valid with dget_locked().
This ensures all the dentrys are removed, valid and invalid, and we don't
reap anything we shouldn't.
Steven Cole [Mon, 3 Mar 2003 00:34:23 +0000 (16:34 -0800)]
[PATCH] Spelling fixes from spell-fix.pl
This patch contains the first fruits of the automatic spell checking and
correcting scripts written by Dan Kegel and Matthias Schniedermeyer.
Those scripts are available here: http://www.kegel.com/kerspell/
This patch fixes these six words from the first five lines of
spell-fix.txt. 280 lines remaining.
We had a dummy dependency on include/linux/compile.h, but it really caused
more trouble than benefits. It's not actually needed for the module
postprocessing, it was only put there to make sure we recognize when
gcc changed under us. However, we really can only do so much, and
the rest of kbuild won't notice a changed gcc either, so if the user replaces
gcc during a build, he just can't rely on the build doing the right thing.
The common cases are still covered, anyway. When the command to invoke
gcc changes ("CC=gcc32") we notice, and when the path to
Sam Ravnborg [Sun, 2 Mar 2003 16:36:48 +0000 (10:36 -0600)]
[PATCH] kbuild: do not run split-include for all compilations
When a rule in the top-level Makefile includes scripts as one
of the prerequisites it inherits FORCE, and thus is always build.
include/linux/autoconf.h recently included scripts hereby forcing
split-include to be run for each compilation.
Fix all rules that lists scripts as a prerequisite but did not list FORCE.
Fixed by listing the executable needed direct.
Andrew Morton [Sun, 2 Mar 2003 12:38:23 +0000 (04:38 -0800)]
[PATCH] cciss: add CCISS_GETLUNINFO ioctl
Patch from Stephen Cameron <steve.cameron@hp.com>
Add CCISS_GETLUNINFO ioctl.
This ioctl returns the LUNID, number of partitions, and current number of
opens on a logical volume. Used by the array config utility or any app that
needs to send passthrough commands to a particular logical disk.
Andrew Morton [Sun, 2 Mar 2003 12:38:09 +0000 (04:38 -0800)]
[PATCH] cciss: retry bus resets
Patch from Stephen Cameron <steve.cameron@hp.com>
Make cciss driver retry 3rd party bus reset aborted commands up to 3 times.
(ported to 2.5 by me, original patch by Charles White)
This is needed for a multi port storage box that can have multiple hosts
connected to it, or be used in a multipath configuration. In certain
configurations SCSI bus resets initiated by one host may affect another host.
Andrew Morton [Sun, 2 Mar 2003 12:38:02 +0000 (04:38 -0800)]
[PATCH] cciss: fix unlikely startup problem
Patch from Stephen Cameron <steve.cameron@hp.com>
* Make cciss driver wait longer for board to enter simple mode to
handle an unlikely corner case. (Hot replace of failed 144GB
drive in RAID 5 set at just the wrong time prior to driver loading
can make the board take a longer than usual time to go into "simple
mode". Without the patch, the driver gives up too early, and consequently
doesn't work. (A reboot will generally "fix" it.) This patch avoids
the problem.
* Fix a couple ioctls to return EAGAIN instead of inappropriate EFAULT.
Andrew Morton [Sun, 2 Mar 2003 12:37:19 +0000 (04:37 -0800)]
[PATCH] ext2: clear ext3 htree flag on directories
Forward port of a change which Ted made to 2.4's ext2.
HTREE backwards compatibility patch.
"I thought (and assumed) this patch had been applied to both the ext2 and
ext3 filesystems in the 2.4 kernel. It turns out it had only made it into
the ext3 filesystem code. This means that if an HTREE-enabled filesystem is
mounted using ext2, it will corrupt the filesystem as far as e2fsck and an
ext3 htree-enabled kernel is concerned. (The corruption won't cause any
data loss, but it will cause e2fsck and an ext3-htree kernel to omit a lot
of warning messages.)"
Andrew Morton [Sun, 2 Mar 2003 12:36:44 +0000 (04:36 -0800)]
[PATCH] loop: Fix OOM and oops
The loop driver takes a copy of the data which it is writing. When this
happens on the try_to_free_pages() path, loop can easily consume ALL memory
and bio_copy() will fail to allocate a page.
Loop forgets to check the bio_copy() return value and oopses.
Fix this by dropping PF_MEMALLOC and throttling to the block writeout speed.
The patch exports blk_congestion_wait() to modules for this. This is a
needed export: several filesystems have a "try to allocate and yield if it
failed" loop and blk_congestion_wait() is a more appropriate way of
implementing the sleep in this situation.
Russell King [Sun, 2 Mar 2003 20:56:17 +0000 (20:56 +0000)]
[ARM] SA11x0 PCMCIA 7
Request PCMCIA socket resources without marking them busy - this
allows future modifications to pcmcia to allow it to claim the
CIS resources for statically mapped sockets.
Russell King [Sun, 2 Mar 2003 20:16:48 +0000 (20:16 +0000)]
[ARM] SA11x0 PCMCIA 5
Remove get_irq_info method, passing the information via the init
method instead. The IRQ allocated to a socket never changes on
these platforms, so the extra code was just bloat.
Russell King [Sun, 2 Mar 2003 19:51:33 +0000 (19:51 +0000)]
[ARM] SA11x0 PCMCIA 3
Make low level socket_status() method take the socket index as an
argument in the same way that our other methods do. socket_status()
now only returns the status of the requested socket, not all sockets.
Russell King [Sun, 2 Mar 2003 19:32:19 +0000 (19:32 +0000)]
[ARM] SA11x0 PCMCIA 1
Make SA11x0 generic pcmcia implementation fit better with Dominik's
work - pass around our socket structure rather than the socket number
itself. Reference socket operations using the socket structure
rather than a static variable.
Alan Stern [Sun, 2 Mar 2003 01:48:38 +0000 (17:48 -0800)]
[PATCH] Fix USB address setting
You wouldn't expect that an innocent two-line patch would practically
destroy the entire functionality of the USB subsystem. But that's what my
last patch did. I didn't realize until I saw it in Greg's list of patches
forwarded to Linus; that patch includes a mistakenly unreverted prior
change. This explains the problems I was having yesterday, and probably
also the problems a great many people are having today.
Anyway, here's the correction -- it puts things back to what they should
have been in the first place. Greg, please apply this and send it to
Linus for his tree as soon as reasonably possible.
Russell King [Sat, 1 Mar 2003 10:24:05 +0000 (02:24 -0800)]
[PATCH] Fix cardbus build problem
This is a temporary patch which should get cardbus working again.
In order to use pci_remove_behind_bridge(), we need to separately
allocate the pci_dev structures.