This gets rid of the port semaphore, and the serialization caused by
that, and replaces it with the proper reference counting logic for
the usb serial object.
[PATCH] USB: add "present" flag to usb_device structure.
This solves lots of races when drivers hold a reference to the usb_device
after the device is physically removed from the system (like when a user
has a open handle.) This now prevents any new urbs being submitted or
canceled for the device.
George Anzinger [Tue, 18 Feb 2003 06:41:13 +0000 (22:41 -0800)]
[PATCH] POSIX clocks & timers
This is version 23 or so of the POSIX timer code.
Internal changelog:
- Changed the signals code to match the new order of things. Also the
new xtime_lock code needed to be picked up. It made some things a lot
simpler.
- Fixed a spin lock hand off problem in locking timers (thanks
to Randy).
- Fixed nanosleep to test for out of bound nanoseconds
(thanks to Julie).
- Fixed a couple of id deallocation bugs that left old ids
laying around (hey I get this one).
- This version has a new timer id manager. Andrew Morton
suggested elimination of recursion (done) and I added code
to allow it to release unused nodes. The prior version only
released the leaf nodes. (The id manager uses radix tree
type nodes.) Also added is a reuse count so ids will not
repeat for at least 256 alloc/ free cycles.
- The changes for the new sys_call restart now allow one
restart function to handle both nanosleep and clock_nanosleep.
Saves a bit of code, nice.
- All the requested changes and Lindent too :).
- I also broke clock_nanosleep() apart much the same way
nanosleep() was with the 2.5.50-bk5 changes.
TIMER STORMS
The POSIX clocks and timers code prevents "timer storms" by
not putting repeating timers back in the timer list until
the signal is delivered for the prior expiry. Timer events
missed by this delay are accounted for in the timer overrun
count. The net result is MUCH lower system overhead while
presenting the same info to the user as would be the case if
an interrupt and timer processing were required for each
increment in the overrun count.
Alan Cox [Tue, 18 Feb 2003 03:43:37 +0000 (19:43 -0800)]
[PATCH] ide-proc - fix crash on identify
We cannot do an identify on a drive with no driver loaded. The kernel
has a ton of half backed "if no driver" cases but they dont cover all
cases and its a mess.
For now we rely on the probe time identify unless a driver is loaded. A
proper fix (an 'ide-unassigned' driver) will follow later
Alan Cox [Tue, 18 Feb 2003 03:43:22 +0000 (19:43 -0800)]
[PATCH] ide-probe updates
Fix crash with slave and no master
Fix crash with hdb=noprobe hdb=cdrom
Fix crash with pre ATA devices refusing IDENTIFY
Fix flash slave making master disappear
Add interfaces that the PPC uses to do disk spin up when the BIOS has not
Add framework to allow hdparm -d1 on a box built with IDE_DMA_ONLYDISK
Fix identify framework so we can fix the proc identify crash too
Duncan Sands [Tue, 18 Feb 2003 00:43:30 +0000 (16:43 -0800)]
[PATCH] USB speedtouch: replace speedtouch crc routines
Use the kernel CRC routines rather than a do-it-yourself version.
By the way, I created a common USB Makefile.lib, rather than having
one for the class drivers, and one for speedtouch.
From the maintainer, Elmer Joandi(sp?):
aironet4500 is superseded by cisco340 drivers (airo.c) by Ben Reed
and the only strenght of my driver is that it allows to access absolutely
all registers on card. Which is useful for developers only. Besides there
is no normal interface to configure crypto in my driver, as the general
interface is not userfriendly at all. So in fact, I use Bens driver for my
ISP bussiness in general cases and my driver for troubleshooting.
Neil Brown [Mon, 17 Feb 2003 11:17:51 +0000 (03:17 -0800)]
[PATCH] Provide a 'safe-mode' for soft raid.
When a raid1 or raid5 array is in 'safe-mode', then the array
is marked clean whenever there are no outstanding write requests,
and is marked dirty again before allowing any write request to
proceed.
This means than an unclean shutdown while no write activity is happening
will NOT cause a resync to be required. However it does mean extra
updates to the superblock.
Currently safe-mode is turned on by sending SIGKILL to the raid thread
as would happen at a normal shutdown. This should mean that the
reboot notifier is no longer needed.
After looking more at performance issues I may make safemode be on
all the time. I will almost certainly make it on when RAID5 is degraded
as an unclean shutdown of a degraded RAID5 means data loss.
This code was provided by Angus Sawyer <angus.sawyer@dsl.pipex.com>
Neil Brown [Mon, 17 Feb 2003 11:17:16 +0000 (03:17 -0800)]
[PATCH] Fix bug in md superblock sanity checking.
This call the super_90_load is meant to make sure that the new
superblock is consistant with a pre-exisitnig one (on rdev0)... but
rdev0 was not passed :-(
Neil Brown [Mon, 17 Feb 2003 11:17:07 +0000 (03:17 -0800)]
[PATCH] Convert fs/nfsctl.c to use C99 named initiailzers
From Art Haas <ahaas@airmail.net>:
This converts the file to use C99 named initializers. These change make
the file compile with fewer warnings if '-W' is added to the compile
flags, and may enhance code readability. Let me know if you think this
should be sent to Linus.
Neil Brown [Mon, 17 Feb 2003 11:17:00 +0000 (03:17 -0800)]
[PATCH] Make kNFSd pre/post_[acm]time use struct timespec
From Trond:
When the nanosecond resolution on [acm]time was introduced to 2.5.x,
the knfsd GETATTR responses were converted to make use of the
nanosecond field, but the pre/post WCC attributes were not. This will
lead to a lot of unnecessary cache invalidations on the clients.
The following trivial patch should fix up knfsd so that it stores and
encodes the full 'struct timespec' in both pre and post attribute
fields.
Neil Brown [Mon, 17 Feb 2003 11:16:52 +0000 (03:16 -0800)]
[PATCH] Fix problem where knfsd wouldn't release filesystem on unexport.
Problem was that the cache was being updated inplace, rather
than swapping in a new entry, so old filesystem pointers
were overwritten without being released.
Neil Brown [Mon, 17 Feb 2003 11:16:29 +0000 (03:16 -0800)]
[PATCH] Bounds checking for NFSv3 readdirplus
From Ted Phelps <phelps@dstc.edu.au>
The NFSv3 readdirplus path doesn't check to see if maxcount is less
than the size of a page before it fills it up, possibly overwriting
random bits of memory. At least, it makes my Solaris NFSv3 client
work.
The attached patch, against 2.5.58, adds this check in a way which is
consistent with the way readdir does under both NFSv2 andNFSv3.
Sam Ravnborg [Mon, 17 Feb 2003 06:15:45 +0000 (22:15 -0800)]
[PATCH] char/drivers/random.c - fix warning
When compiling random.c without SYSCTL defined a warning is
issued about free_entropy_store being defined but not used.
Put ifdef's around the functions.
I could have moved the whole function, but it logically belongs
to this part of the file.
Marc Zyngier [Mon, 17 Feb 2003 05:35:00 +0000 (21:35 -0800)]
[PATCH] EISA/sysfs updates
This is an update to the EISA/sysfs code :
- Separate bus root code from generic code.
- Add driver for PCI/EISA bridge.
- Hacked parisc eisa driver so it can act as a root device.
- Add driver for so-called virtual root (for bridge-less systems).
- Allow multiple roots.
- Moved quirk_eisa_bridge from alpha to generic code, since
the EISA code needs it now (on x86, for example...).
- 3c59x :
Prevent driver from returning ENODEV in case it has registered with
the EISA framework, but no device has been found yet (it happends
when the driver is built into the kernel, and the EISA bus root has
not been discovered yet).
It's been discussed on lkml, and all suggestions (mainly from Ivan
Kokshaysky <ink@jurassic.park.msu.ru>) have been taken into account.
Dave Kleikamp [Mon, 17 Feb 2003 06:09:10 +0000 (00:09 -0600)]
JFS: Fix jfs_sync_fs
jfs_sync_fs was implemented using the same code as the unmount code to flush
the journal and wait for the journal to quiesce. Since jfs_sync_fs may be
called while the volume is under heavy use, we can end up waiting
indefinately. Code in jfs_flush_journal meant to detect a hang at unmount
time may be triggered in this case causing a trap. This patch changes
jfs_sync_fs to only wait until the most recent transaction has been
commited to disk, rather than waiting until the commit queue is empty.
Linus Torvalds [Mon, 17 Feb 2003 03:51:37 +0000 (19:51 -0800)]
Fix locking for "send_sig_info()", to avoid possible races with signal
state changes due to execve() and exit(). We need to hold the tasklist
lock to guarantee stability of "task->sighand".
This patch updates the 2.5 ov511 driver to version 1.64. This fixes some
longstanding bugs and cleans the code up a bit.
Changes:
- Eliminate remaining uses of sleep_on()
- Remove unnecessary (and racy) calls to waitqueue_active()
- Fix a memory leak in the open() error path
- Remove some redundant and unused variables
- Documentation fixes
David Brownell [Mon, 17 Feb 2003 02:40:43 +0000 (18:40 -0800)]
[PATCH] USB: USB keyboard works after reboot (ehci-hcd)
This resolves a problem caused by "reboot" not actually
doing a clean shutdown of drivers. It uses a reboot
notifier to make sure that typical BIOS code (using the
USB 1.1 companion controllers) will see keyboards even
without an EHCI driver being active.