Russell King [Sun, 16 Mar 2003 21:33:30 +0000 (21:33 +0000)]
[PCI] pci-6 - Fix scanning of non-zero functions
Fix breakage in pci-3 - we scanned all functions if function 0 was not
present. This causes some host bridges to lock up when scanning devfn
255 on PPC machines.
Randy Dunlap [Sat, 15 Mar 2003 09:19:32 +0000 (01:19 -0800)]
[PATCH] update filesystems config. menu
This is Robert PJ Day's patch that updates the filesystems
config menu. It had become a bit ad hoc (jumbled:) and this
patch attempts to arrange it more logically.
Russell King [Sat, 15 Mar 2003 10:37:42 +0000 (10:37 +0000)]
[TTY] Register tty devclass before use.
Register the tty devclass with sysfs before tty drivers initialise -
sysfs requires structures to be registered before use. This is
required for the previous serial csets, as well as any drivers which
are initialising using __initcall() or module_init().
Neil Brown [Fri, 14 Mar 2003 10:12:01 +0000 (02:12 -0800)]
[PATCH] kNFSd: Introduce CROSSMNT flag for knfsd
Now that we have working up-calls to userspace,
CROSSMNT makes sense.
If CROSSMNT is set for an export, and we too a
LOOKUP which crosses a mountpoint, we initiate an
upcall to find out if and how that filesystem
is exported.
Neil Brown [Fri, 14 Mar 2003 10:11:42 +0000 (02:11 -0800)]
[PATCH] kNFSd: Fix deadlock problem in lockd.
nlmsvc_lock calls nlmsvc_create_block with file->f_sema
held.
nlmsvc_create_block calls nlmclnt_lookup_host which might
call nlm_gc_hosts which might, eventually, try to claim
file->f_sema for the same file -> deadlock.
nlmsvc_create_block does not need any protection under
any lock as lockd is single-threaded and _create_block
only plays with internal data structures.
So we release the f_sema before calling in, and make sure
it gets claimed again afterwards.
knfsd needs to disable soft interrupts when calling
csum_partial_copy_to_xdr().
At the moment there's a nasty conflict between the RPC server and
client. The problem arises when you get to xdr_partial_copy_from_skb()
(and the kmap_atomic()); the RPC client can end up calling the same
function from a ->data_ready() soft interrupt, and corrupt any data
the knfsd process may have copied.
Neil Brown [Fri, 14 Mar 2003 10:09:26 +0000 (02:09 -0800)]
[PATCH] md: Add new superblock format for md
Superblock format '1' resolves a number of issues with
superblock format '0'.
It is more dense and can support many more sub-devices.
It does not contains un-needed redundancy.
It adds a few new useful fields
Neil Brown [Fri, 14 Mar 2003 10:09:20 +0000 (02:09 -0800)]
[PATCH] md: Allow md to select between superblock formats
The code to understand a specific superblock format is
already highly localised in md. This patch defines a
user-space interface for selecting which superblock format
to use, and obeys that selection.
Md currently has a concept of 3 version numbers:
A major version number
A minor version number
A patch version number
There historically seems to be some confusion about whether
these refer to a version of the superblock layout,
or a version of the software.
We will now define that:
the "major_version" defines the superblock handler.
'0' is the current superblock format. All new formats
will need new numbers.
the "minor_version" can specify minor variations in the
superblock, such as different location on the device
the "patch_version" will be used to indicate new extenstions
to the software.. patch_version=1 will mean multiple superblock
support.
A superblock version number is selected by specifing major_version
in SET_ARRAY_INFO ioctl.
This patch:
Updates Documentation/md.txt with details of new interface.
Generalises desc_nr handling and makes sure that an array never
has two devices with the same desc_nr.
makes sure mddev->major_version is always valid and is 0 by default.
uses mddev->major_version to select superblock handlers.
Modifies set_array_info to just record version number if raid_disks==0
Makes sure max_disks is always set correctly.
Determines device size when reading superblock, or a hot-add/add-new.
Neil Brown [Fri, 14 Mar 2003 10:09:13 +0000 (02:09 -0800)]
[PATCH] md: Allow components of MD raid array to have data start at offset from start of device.
Normally the data stored on a component of a RAID array is stored
from the start of the device. This patch allows a per-device
data_offset so the data can start elsewhere. This will allow
RAID arrays where the metadata is at the head of the device
rather than the tail.
Neil Brown [Fri, 14 Mar 2003 10:09:06 +0000 (02:09 -0800)]
[PATCH] md: Fix bad interaction between sync checkpointing and recovery
Md devices (raid1/raid5) can resync or recover.
There are similar but importantly different.
resync happens after an unclean shutdown
recovery happens when a failed drive is being replaced by a hot spare.
The sync-checkpoint code confused the two somewhat and this causes
problems.
This patch makes sure "recovery_cp" only relates to resync,
not recovery.
It also fixes a small problem with recording spares in
the superblock.
Neil Brown [Fri, 14 Mar 2003 10:09:01 +0000 (02:09 -0800)]
[PATCH] md: Fulltime delayed 'safe_mode' for md
From: Angus Sawyer <angus.sawyer@dsl.pipex.com>
If there are no writes for 20 milliseconds, write out superblock
to mark array as clean. Write out superblock with
dirty flag before allowing any further write to succeed.
If an md thread gets signaled with SIGKILL, reduce the
delay to 0.
Also tidy up some printk's and make sure writing the
superblock isn't noisy.
Neil Brown [Fri, 14 Mar 2003 10:08:54 +0000 (02:08 -0800)]
[PATCH] md: Remove md_recoveryd thread for md
The md_recoveryd thread is responsible for initiating and cleaning
up resync threads.
This job can be equally well done by the per-array threads
for those arrays which might need it.
So the mdrecoveryd thread is gone and the core code that
it ran is now run by raid5d, raid1d or multipathd.
We add an MD_RECOVERY_NEEDED flag so those daemon don't have
to bother trying to lock the md array unless it is likely
that something needs to be done.
Also modify the names of all threads to have the number of
md device.
Neil Brown [Fri, 14 Mar 2003 10:08:21 +0000 (02:08 -0800)]
[PATCH] md: Convert /proc/mdstat to use seq_file
From: Angus Sawyer <angus.sawyer@dsl.pipex.com>
Mainly straightforward convert of sprintf -> seq_printf. seq_start and
seq_next modelled on /proc/partitions. locking/ref counting as for
ITERATE_MDDEV.
Neil Brown [Fri, 14 Mar 2003 10:08:13 +0000 (02:08 -0800)]
[PATCH] md: Missing mddev_put in md resync code
Whenever a ITERATE_MDDEV loop is exitted abnormally
we need to mddev_put the current mddev. There was
one point in md_do_sync where we didn't so use counts
became wrong.
Jeff Garzik [Thu, 13 Mar 2003 13:51:25 +0000 (08:51 -0500)]
[hw_random] fixes and cleanups
* s/Via/VIA/
* allow multiple simultaneous open(2)s of the chrdev. This allows
us to eliminate some code, without modifying the core code (rng_dev_read)
at all.
* s/__exit// in ->cleanup ops, to eliminate link error
Jeff Garzik [Thu, 13 Mar 2003 13:47:27 +0000 (08:47 -0500)]
[ia32] cpu capabilities cleanups and additions
* Add support for new Centaur(VIA) and Intel cpuid feature bits,
expanding the x86_capability array by two.
* (cleanup) Move cpu setup for newer Via C3 cpus into its own
function, init_c3()
* Add support for RNG control msr on VIA Nehemiah
* export X86_FEATURE_XSTORE and cpu_has_xstore macros so that
kernel code may easily test for cpu support of the new
"xstore" instruction.
Jeff Garzik [Thu, 13 Mar 2003 13:24:13 +0000 (08:24 -0500)]
[hw_random] update amd768_rng driver to be modular; add Intel support
Take Alan's amd768_rng driver, recently renamed to hw_random.c,
and convert it's very-simple structure to support multiple
types of hardware RNG. Integrate Intel i8xx (ICH) RNG support.
Paul Mackerras [Thu, 13 Mar 2003 09:28:56 +0000 (20:28 +1100)]
PPC32: Add a thread-pointer argument to the clone syscall, make a prepare_to_copy().
The thread-pointer argument gets copied to R2 in the child in copy_thread() if
the CLONE_SETTLS flag is set. Adding a prepare_to_copy simplifies the copy_thread
logic since we don't have to do the extra copy of fpu/altivec state to the child.
Gerd Knorr [Tue, 11 Mar 2003 23:25:48 +0000 (15:25 -0800)]
[PATCH] v4l: create include/media
This patch creates a new include directory include/media, populates
it with a few files header files and fixups the affected drivers to
compile with the new directory layout.
The directory is intented to be used for (kernel-internal) header files
of the media drivers (which are sitting below drivers/media). For now
the video-buf.h (mm helper), tuner.h (tv/radio tuner) and audiochip.h
(tv sound decoder drivers) header files are moved. Some more header
files from the dvb folks will likely follow.
Dave Jones [Tue, 11 Mar 2003 23:21:03 +0000 (22:21 -0100)]
[CPUFREQ] Drop FSB scaling from VIA longhaul driver.
This was incomplete, and never worked 100% on every system, and is
better off dead than half-baked, as it makes the driver a lot simpler,
and removes the possibility of someone being confused why it doesn't
work on their particular hardware.
Russell King [Tue, 11 Mar 2003 14:18:36 +0000 (14:18 +0000)]
[SERIAL] Add new device model based power management infrastructure.
Add uart_suspend_port(), uart_resume_port() which are responsible
for suspending/resuming one UART port. Low level drivers are
expected to call this from their device model suspend and resume
methods.
Andrew Morton [Tue, 11 Mar 2003 11:13:16 +0000 (03:13 -0800)]
[PATCH] unplugging fix
Patch from Neil Brown <neilb@cse.unsw.edu.au>
Allow auto-unplugging to work for devices that do it themselves.
Auto-unplugging - and blk_unplug_work in particular - assumes that the device
uses "generic_unplug_device" for unplugging, but some devices don't. md
crashes.
Steven Cole [Tue, 11 Mar 2003 09:47:56 +0000 (01:47 -0800)]
[PATCH] Documentation spelling cleanup
This patch fixes spelling errors in the Documentation directory and was
extensively reviewed by the following people: Dan Kegel, David
Woodhouse, Joe Perches, Jared Daniel J. Smith, Michael Hayes, and
Steven Cole