- 05 Nov, 2002 40 commits
-
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/gregkh-2.5
-
Christopher Hoover authored
Dereferencing hcd.pdev will always oops with SA-1111. It has to be treated as a cookie, not a pointer in any common OHCI HCD code. Apparently we need a clean way to go from struct device * to struct ohci_hcd *. I added dev_to_ohci that does the obvious thing and added separate implementations for PCI and SA-1111. Two implementations is ugly but I didn't think it wise (for me) to hack on the PCI/driverfs interface, so I just cut & paste the old code. Two patches. The first is a diff from linux-2.5.44 and linux-2.5.44-rmk1. It is from rmk and adds a struct device pointer to ohci_hcd. The second depends on the first and contains my changes to clean up to the pdev oops problems. (Some fuzz may occur as I have ohci-1024 applied.) With these changes, SA111 OHCI-HC/HCD is showing some signs of life on linux-2.5.44-rmk1. usb-storage is currentl blowing chunks, but I think I saw some patches go by against 2.5.44 that I haven't yet tried.
-
Manfred Spraul authored
Ahm. No. It must be i_version = 1 Otherwise there is a trivial bug: mkdir("dir"); <force the directory out of dcache> dir = open("dir"); lseek(dir,1,SEEK_SET); readdir(); lseek sets f_version to 0, and readdir() trusts f_pos, because i_version is 0, too. This applies to all filesystems. The ext2 patch already sets i_version to 1.
-
Andrew Morton authored
The result of a timer audit in sound/*
-
Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
David S. Miller authored
-
David S. Miller authored
-
David S. Miller authored
into nuts.ninka.net:/home/davem/src/BK/net-2.5
-
David S. Miller authored
-
Art Haas authored
This fixes the new ACL bits in fs/ext3 to use C99 designated initializers.
-
Art Haas authored
This converts the new ACL bits in fs/ext2 to use C99 designated initializers.
-
Andrew Morton authored
Teach DECLARE_WORK about __TIMER_INITIALIZER. So all statically initialised workqueues have valid timers. eg: drivers/char/random.c:batch_work.
-
Randy Dunlap authored
usb-midi requires SOUND, otherwise, when built in-kernel but soundcore is modular, usb-midi can't resolve some sound interfaces.
-
Alan Stern authored
This patch switches from using usb_stor_bulk_msg() to usb_stor_bulk_transfer_buf(), which includes a great deal more logic. This allows for elimination of all sorts of duplicate code (clearing STALLs, etc.). This also eliminates the (now) redundant functions from the ISD-200 driver.
-
Matthew Dharm authored
This patch adds tests for an aborted command to higher-level functions. This allows faster exit from a couple of paths and will allow code consolidation in the lower-level transport functions.
-
Matthew Dharm authored
This patch fixes up some result-code tests that were missed in previous patches.
-
Matthew Dharm authored
This patch moves the initialization of the SCSI residue field to be in just a couple of places, instead of all over the map. It's code consolidation.
-
David Brownell authored
Two changes, one big one not: - check before traversing a null pointer, removing oops - always do bandwidth checks, no point in allowing overcommit That oops possibility has been there for a bit over two months, but something changed recently which made me see it. Maybe sme other folk have seen this one too (in ed_deschedule).
-
David Brownell authored
Minor patches: - resend of the Config.in patch, updated to Kconfig, plus makes 'usbtest' modular when usb is; - hmm, "usbfs" isn't locking here. protect. fix is basically from martin: add/use a semaphore. - that one-liner to make sure get_configuration is called correctly (with funkier test firmware). - new 'realworld' module param can be used to turn off the real-world accomodations and be stricter about what device failures make ch9 tests fail.
-
Anton Blanchard authored
The slab allocator doesnt initialise ->array for all cpus. This means we fail to boot on a machine with boot cpu != 0. I was testing current 2.5 BK. Luckily Rusty was at hand to explain the ins and outs of initialisers to me.
-
Andrew Morton authored
More timer micropatches.
-
David S. Miller authored
into nuts.ninka.net:/home/davem/src/BK/sparc-2.5
-
Linus Torvalds authored
-
Jeff Garzik authored
into redhat.com:/home/jgarzik/repo/net-drivers-2.5
-
Scott Feldman authored
Other locks already cover the areas in question, and additionally this lock was held in areas where it should not have been, triggering error messages in 2.5.x.
-
Jeff Garzik authored
into redhat.com:/home/jgarzik/repo/net-drivers-2.5
-
Andrew Morton authored
Results of a quick pass through everything under drivers/. We're mostly OK in there. I will have missed some.
-
David S. Miller authored
-
Andrew Morton authored
The patches which I needed to avoid the warnings with my build.
-
Andrew Morton authored
Add some infrastructure for statically initialising timers, use that in workqueues.
-
Andrew Morton authored
If two CPUs run mod_timer against the same not-pending timer then they have no locking relationship. They can both see the timer as not-pending and they both add the timer to their cpu-local list. The CPU which gets there second corrupts the first CPU's lists. This was causing Dave Hansen's 8-way to oops after a couple of minutes of specweb testing. I believe that to fix this we need locking which is associated with the timer itself. The easy fix is hashed spinlocking based on the timer's address. The hard fix is a lock inside the timer itself. It is hard because init_timer() becomes compulsory, to initialise that spinlock. An unknown number of code paths in the kernel just wipe the timer to all-zeroes and start using it. I chose the hard way - it is cleaner and more idiomatic. The patch also adds a "magic number" to the timer so we can detect when a timer was not correctly initialised. A warning and stack backtrace is generated and the timer is fixed up. After 16 such warnings the warning mechanism shuts itself up until a reboot. It took six patches to my kernel to stop the warnings from coming out. The uninitialised timers are extremely easy to find and fix. But it will take some time to weed them all out. Maybe we should go for the hashed locking... Note that the new timer->lock means that we can clean up some awkward "oh we raced, let's try again" code in timer.c. But to do that we'd also need to take timer->lock in the commonly-called del_timer(), so I left it as-is. The lock is not needed in add_timer() because concurrent add_timer()/add_timer() and concurrent add_timer()/mod_timer() are illegal.
-
Andrew Morton authored
Final act, from Manfred: The attached patch removes 'event' entirely from the kernel: it's not used anymore. All event users [vfat dentry revalidation; ext2/3 inode generation; readdir() file position revalidation in several filesystems] were converted to local counters.
-
Andrew Morton authored
Patch from Manfred Spraul Several filesystems compare f_version and i_version to validate directory positions in readdir(): The directory position is revalidated if i_version is not equal f_version. Operations that could invalidate the cached position set i_version or f_version to '++event', event is a global variable. Global uniqueness is not needed, 'i_version++' and 'f_version=0' is sufficient to guarantee that the next readdir() will revalidate the directory position, and that avoids the need for an ugly global variable. The attached patch converts all filesystems except ext2, which was converted with a seperate patch.
-
Andrew Morton authored
Patch from Manfred Spraul Use a local counter instead of the global 'event' variable for the readdir() optimization. Depends on patch-event-II Background: The only user of i_version and f_version in ext2 is ext2_readdir(). As an optimization, ext2 performs the validation of the start position for readdir() only if flip->f_version != inode->i_version. If there was no llseek and no directory change since the last readdir() call, then f_pos can be trusted. f_version is set to 0 in get_empty_flip and during llseek. Right now, i_version set to ++event during ext2_read_inode and commit_chunk, i.e. at inode creation and if a directory is changed. Initializing i_version to 1, and updating with i_version++ achieves the same effect, without the need of a global variable. Global uniqueness is not required, there are no other uses of [if]_version in ext2. Change relative to the patch you have right now: i_version is initialized to 1 instead of 0. For ext2 it's doesn't matter [there is always a valid 'len' value at the beginning of a directory data block], but it's cleaner.
-
Andrew Morton authored
Patch from Manfred Spraul f_version and i_version are used by filesystems to check if it can reuse the f_pos position across readdir calls without validation. Right now f_version and i_version are modified by f_version = ++event; i_version = ++event; if (f_version != i_version) goto revalidate and event is a global, exported variable. But that's not needed, f_version = 0; i_version++; if (f_version != i_version) goto revalidate works too, without the ugly 'event' variable. I got an ok from viro, and I had notified the fs maintainers, no complaints either - block_dev.c, block_llseek updates f_version to '++event'. grep showed that no device driver uses f_version, this is dead code copied from the default llseek implementation. - the llseek implementations and get_empty_flip set f_version to '++event' This is not dead code, but filp->f_version = 0 achieves the same effect: f_version is used by the readdir() implementation of several filesystems to skip the revalidation of f_pos at the beginning of a readdir call: If llseek was not called and the filesystem did not change since the last readdir call, then the value in f_pos can be trusted. The implementation (for example in ext2) is inode->i_version = ++event; in all operations that change a directory At the beginning of file_operation->readdir(): if(inode->i_version != flip->f_version) revalidate(); filp->f_version = inode->i_version; There are other users of f_version, but none of them use the default llseek implementation (e.g. fs/pipe.c)
-
Linus Torvalds authored
-
Yokota Hiroshi authored
NinjaSCSI-3R PCMCIA SCSI host adapter driver updated for the latest kernel tree.
-
Christoph Hellwig authored
Intermezzo has some strange, broken code trying to deal with extended attributes and and ACLs. Fortunately the xattr code is hidden under a config option that's never set, but the ACL code is enabled by CONFIG_POSIX_ACL that's se by ext2/ext3 and jfs now. Change it to #if 0 to get intermezzo compiling again.
-
bk://cloos.bkbits.net/sbp2fixLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-