M68k: Remove superfluous whitespace that hurts my eyes with `let
c_space_errors=1' in vim. This includes correcting trailing whitespace and
spaces in front of tabs. `diff -urNbB' shows no difference before/after.
Jeff Garzik [Mon, 10 May 2004 17:51:40 +0000 (13:51 -0400)]
[libata] preparation for writeback caching support
* bug fix: make sure 'nsect' member of struct ata_queued_cmd is
initialized each time a cmd is re-used. Only affects PIO data xfers,
which nobody uses.
* slightly change the way a device's flags are printed out. currently
the only flag is 'lba48', but soon 'wcache' will appear also.
* add WB-cache-related constants and macros to linux/ata.h
Paul Mackerras [Mon, 10 May 2004 09:54:17 +0000 (02:54 -0700)]
[PATCH] ppc64: extra barrier in I/O operations
At the moment, on PPC64, the instruction we use for wmb() doesn't
order cacheable stores vs. non-cacheable stores. (It does order
cacheable vs. cacheable and non-cacheable vs. non-cacheable.) This
causes problems in the sort of driver code that writes stuff into
memory, does a wmb(), then a writel to the device to start a DMA
operation to read the stuff it has just written to memory.
This patch solves the problem by adding a sync instruction before the
store in the write* and out* macros. The sync is a full barrier that
orders all loads and stores, cacheable or not. The patch also moves
the eieio instruction that we had after the store to before the load
in the read* and in* macros. With the sync before the store, we don't
need an eieio as well in a sequence of stores, but we still need an
eieio between a store and a load.
I think it is better to do this than to turn wmb() into a full memory
barrier (a sync instruction) because the full barrier is slow and
isn't needed with the sync in the write*/out* macros. This way,
write*/out* are fully ordered with respect to preceding loads and
stores, which is what driver writers expect, and we avoid penalizing
users of wmb() who are only doing cacheable stores.
Matthew Wilcox [Mon, 10 May 2004 09:30:02 +0000 (02:30 -0700)]
[PATCH] PA-RISC updates for 2.6.6
- Split PA7300LC from PA7100LC (Matthew Wilcox)
- Handle 32-bit firmware and 64-bit kernel at runtime (Ryan Bradetich)
- Fix building in a separate tree (Matthew Wilcox)
- Update defconfigs (Randolph Chung)
- Make WCHAN work (Randolph Chung)
- Initial support for SMP in 2.6 (Grant Grundler)
- Use 8-byte PTEs on 32-bit kernels (James Bottomley)
- Implement L2/L3 hybrid page tables for 64 bit kernels (James Bottomley)
- Support 8TB of physical and virtual address space (James Bottomley)
- Macro'ise the tlb miss handlers (James Bottomley)
- Check the ptrace flags correctly in the syscall return path (Randolph Chung)
- Eliminate many magic numbers (James Bottomley)
- Work around linker bug in vmlinux.lds.S (James Bottomley)
- Many cache flushing fixes (James Bottomley)
- first baby step for PA8800 support (Grant Grundler)
- Self-aligning spinlocks (Randolph Chung)
Alexander Viro [Mon, 10 May 2004 09:13:18 +0000 (02:13 -0700)]
[PATCH] ntfs cleanup
ntfs_fill_super() and ntfs_read_inode_mount() cleaned up. Removed
the kludges around the first iget() on NTFS. Instead of playing with
(re)setting ->s_op we have the MFT_FILE inode set up by explicit new_inode()/
set ->i_ino/insert_inode_hash()/call ntfs_read_inode_mount() directly.
That kills the need of second super_operations and it allows to return
error from ntfs_read_inode_mount() without resorting to ugly "poisoning"
tricks.
Ok, well there aren't too many folks using an QLA2100 in a fabric
topology, if there were, they wouldn't have gotten very far in the
driver load sequence. I've been able to scrape-up a QLA2100, 1Gig
switch, and an JBOD. Upon loading the 8.00.00b12k driver, the
firmware successfully logs into the switch, the driver receives a
LOOP_UP event, but, the kernel panics due to NULL pointer dereference
while trying to perform an RFT_ID -- the attached patch against
current scsi-misc-2.6 fixes that problem.
James Bottomley [Mon, 10 May 2004 11:40:22 +0000 (06:40 -0500)]
[PATCH] fix LLD module refcounting in sr.c
The patch to close all the open/close/hotplug races in sr left the
module refcounting broken so that the ULD housing the CD device now
can't be removed until the device itself is removed.
This patch (structurally identical to the one for sd.c to perform the
same function) fixes the module refcounting.
Andrew Morton [Mon, 10 May 2004 07:25:41 +0000 (00:25 -0700)]
[PATCH] Add SMT setup for domain scheduler on x86-64
From: Andi Kleen <ak@muc.de>
Set up SMT for the domain scheduler on x86-64. This way the scheduling
works better on HyperThreading aware systems; in particular it will use
both physical CPUs before sharing two virtual CPUs on the same package.
This improves performance considerably in some cases.
Based on the i386 code and a previous patch from Suresh B. Siddha.
Andrew Morton [Mon, 10 May 2004 07:12:21 +0000 (00:12 -0700)]
[PATCH] Fix __down Tainting Kernel with CONFIG_MODVERSIONS=y
From: Rusty Russell <rusty@rustcorp.com.au>
PowerPC64 ABI has ".funcname" (the actual function) and "funcname" (the
function descriptor) and we strip off the dots in "dedotify" called from
module_frob_arch_sections(). We need to also de-dotify the corresponding
names in the __version section.
Actually has nothing to do with __down, it's just that we only print the
first symbol whose version is missing.
Andrew Morton [Mon, 10 May 2004 07:12:10 +0000 (00:12 -0700)]
[PATCH] PPC termio fix
From: Paul Mackerras <paulus@samba.org>
It turns out that we are not handling the TABDLY bits of the termios
c_oflag field correctly on PPC, PPC64 and Alpha. These three architectures
have a value for XTABS that is different from the TAB3 value. POSIX
specifies that setting the TABDLY field to TAB3 should result in tabs being
expanded to spaces. In n_tty.c:opost() we check for O_TABDLY(tty) ==
XTABS, which is fine on most architectures because they have XTABS == TAB3.
I think the right thing to do is just to change the definition of XTABS to
be the same as TAB3 on these architectures. The patch below does this for
PPC and PPC64 (and I suggest the Alpha maintainer should do the same). At
the moment, applications using either the XTABS or TAB3 values won't get
the expected behaviour. With this patch, apps that use TAB3 will get the
expected behaviour. Apps that use XTABS will need to be recompiled (but
note that the POSIX-specified name to use is TAB3 not XTABS).
Andrew Morton [Mon, 10 May 2004 07:12:00 +0000 (00:12 -0700)]
[PATCH] remove intermezzo
Peter Braam said:
I would just like to say that I have no difficulties with intermezzo
being rm -rf'd. There are probably only a handful of users.
In the past 4 years nobody has supported InterMezzo sufficiently for
it to become successful. I have been fortunate to get really good support
for the Lustre project. So I have focussed on that. Lustre 1.X has
become really solid.
The disconnected operation, caching and mirroring functionality of
InterMezzo will become available in Lustre as a new feature in version 2.
So I see no point in keeping InterMezzo if it is a nuisance.
The patch removes the references to intermezzo. Please do a `bk rm' of
fs/intermezzo.
Andrew Morton [Mon, 10 May 2004 07:10:03 +0000 (00:10 -0700)]
[PATCH] fix MOD_INC_USE_COUNT usage in mtd
From: Christoph Hellwig <hch@lst.de>
mtd driver need to get another reference if ->probe succeeds (strange design
if you ask me, but what the heck..), and while most drivers have been switched
to __module_get already two are still missing.
Andrew Morton [Mon, 10 May 2004 07:09:53 +0000 (00:09 -0700)]
[PATCH] drivers/video/* MOD_INC_USE_COUNT fixes
From: Christoph Hellwig <hch@lst.de>
A bunch of framebuffer drivers use MOD_INC_USE_COUNT to prevent themselves
from unloading completely - but we have a much easier way to do so, that is
simply removing the module_exit/cleanup_module handler.
Andrew Morton [Mon, 10 May 2004 07:09:10 +0000 (00:09 -0700)]
[PATCH] cpqarray update for 2.6
From: <mikem@beardog.cca.cpqcorp.net>
This patch fixes 2 minor issues that break our Array Configuration utility.
my_io was changed to a pointer so the & had to removed when using it with
copy_to_user().
Sometime in 2.5 SG_MAX got changed to 31. Maybe to copy cciss? Now I'm
changing it back to 32 so our app can work.
This patch addresses the longstanding problem wherein Oracle needs
CAP_IPC_LOCK to allocate SHM_HUGETLB shm memory, but people don't want to run
Oracle as root, and capabilties are busted.
Various ideas with rlimits didn't work out, mainly because these objects live
beyond the lifetime of the user processes which establish them.
What we do is to create root-writeable /proc/sys/vm/hugetlb_shm_group which
specifies a single group ID. Users who belong to that group may allocate
hugepages for SHM_HUGETLB shm segments.
So the sysadmin will greate a new group, say `hugepageusers', will add the
oracle user to that group and will write that group's ID into
/proc/sys/vm/hugetlb_shm_group.
add_to_page_cache() locks the given page if and only if it suceeds. The
hugepage code (every arch), however, does an unlock_page() after
add_to_page_cache() before checking the return code, which could trip the
BUG() in unlock_page() if add_to_page_cache() failed.
In practice we've never hit this bug, because the only ways
add_to_page_cache() can fail are when we fail to allocate a radix tree node
(very rare), or when there is already a page at that offset in the radix
tree, which never happens during prefault, obviously. We should probably
fix it anyway, though.
The analagous bug in some of the patches floating about to
demand-allocation of hugepages is more of a problem, because multiple
processes can race to instantiate a particular page in the radix tree -
that's been hit at least once (which is how I found this).
9. /drivers/pci/hotplug/shpchp_ctrl.c, Line 1575:
err("%s: Failed to disable slot, error code(%d)\n", __FUNCTION__, rc);
Maybe change to:
err("%s: Failed to disable slot, error code(%d)\n", __FUNCTION__,
retval);
I think it is right because at line 1564, the slot is turned off, and in
this line (1575) is checked the status to see if we got an error; if so,
the error number is shown. This number is in 'retval', not in 'rc' ('rc'
does have the return of configure_new_device()).
Andrew Morton [Mon, 10 May 2004 07:08:27 +0000 (00:08 -0700)]
[PATCH] Lindent arch/i386/kernel/cpuid.c
From: Hanna Linder <hannal@us.ibm.com>
Per Greg's request this is a patch of having run Lindent on cpuid.c. The
tabs were not the right number of spaces before. I have verified it still
compiles and boots with this "change".
Andrew Morton [Mon, 10 May 2004 07:08:06 +0000 (00:08 -0700)]
[PATCH] as-iosched barrier fix
From: Jens Axboe <axboe@suse.de>
AS does not correctly account requests inserted with INSERT_FRONT or
INSERT_BACK, barriers for example. In other elevators, requeued requests also
go through the insert path, but AS has its own requeue handler which means the
code has never been tested.
Also, make inserting a barrier with INSERT_SORT imply INSERT_BACK, which is
the logical behaviour. Previously such insertions weren't rigorously defined.
It's kind of redundant that queue_congestion_on/off_threshold gets
calculated on every I/O and they produce the same number over and over
again unless q->nr_requests gets changed (which is probably a very rare
event). We can cache those values in the request_queue structure.
Currently, if a user creates an mqueue and passes an mq_attr, the
info->messages will be created twice (and the extra one is properly freed).
This patch simply delays the allocation so that it only ever happens once.
The relevant mq_attr data is passed to lower levels via the dentry->d_fsdata
fs private data. This also helps isolate the areas we'd need to touch to do
rlimits on mqueues.
Andrew Morton [Mon, 10 May 2004 07:07:02 +0000 (00:07 -0700)]
[PATCH] bfs filesystem read past the end of dir
From: Jakub Jermar <jermar@itbs.cz>
I found out that BFS filesystem will eventually try to read and interpret
garbage past the end of directory in bfs_add_entry(). If the garbage
(interpreted as i-node number) is not set to zero (does it have to be?)
bfs_add_entry() will consider it a regular directory entry.
This causes weird things like this:
# touch a
# rm a
# ls
# touch b
# ls
a
My patch detects an attempt to read past the end of directory and explicitly
clears the garbage that represents i-node number. Thus the correct behaviour
is achieved.
This is ES7000 sub architecture update. It makes ES7000 a part of the
generic architecture, so the single compiled kernel will be able to choose
a correct set of parameters, routines ("genapic"), and a boot path. It
uses criteria provided by the subarch for platform identification. In case
of ES7000, it is a unique product/vendor string in the ACPI/MP OEM table,
and server control registers. The patch is confined to only es7000 subarch
and generic subarch. It was tested on ES7000 as well as generic Intel 8x
Xeon system. Andi Kleen has reviewed the changes.
The calculation of the counter values in drivers/input/misc/pcspkr.c is
incorrectly based on CLOCK_TICK_RATE. This goes unnoticed in i386 because
there the system clock is driven by the same Programmable Interval Timer chip
as the speaker. But this doesn't hold true on other archs, e.g. Alpha.
To solve this problem I made these patches:
1/3: introduce asm-*/8253pit.h, #define PIT_TICK_RATE constant.
It seems this is not always the same value.
2/3: use PIT_TICK_RATE in *spkr.c
3/3: use CLOCK_TICK_RATE where 1193180 was used in general timing
calculations. (optional)
There are still some places where the magic number is used instead of the
#define (vt_ioctl.c, gameport.c) but I left them as-is. I got some responses
from arch maintainers to specifically not touch their respective architectures
so changing these places would mean breakage for them.
Tested on Alpha and i386, ack'ed by Ralf Baechle for MIPS.
Andrew Morton [Mon, 10 May 2004 07:05:18 +0000 (00:05 -0700)]
[PATCH] readahead: keep file->f_ra sane
When two threads are simultaneously pread()ing from the same fd (which is a
legitimate thing to do), the readahead code thinks that a huge amount of
seeking is happening and shrinks the window, damaging performance a lot.
I don't see a sane way to avoid this within the readahead code, so take a
private copy of the readahead state and restore it prior to returning from the
read.
Andrew Morton [Mon, 10 May 2004 07:05:07 +0000 (00:05 -0700)]
[PATCH] jiffies-to-clockt fix
From: john stultz <johnstul@us.ibm.com>
This patch polishes up Tim Schmielau's (tim@physik3.uni-rostock.de) fix for
jiffies_to_clock_t() and jiffies_64_to_clock_t(). The issues observed was
w/ /proc output not matching up to wall time due to accumulated error
caused by HZ not being exactly 1000 on i386 systems. The solution is to
correct that error by using the more accurate TICK_NSEC in our calculation.
Additionally, this patch corrects 3 warnings in the TCP layer uncovered by
this change.
Andrew Morton [Mon, 10 May 2004 07:04:46 +0000 (00:04 -0700)]
[PATCH] fix ramdisk size assembler warning
From: Jorn Engel <joern@wohnheim.fh-wedel.de>
AS arch/i386/boot/setup.o
/usr/src/linux-2.6.5/arch/i386/boot/setup.S: Assembler messages:
/usr/src/linux-2.6.5/arch/i386/boot/setup.S:159: Warning: value 0x37ffffff truncated to 0x37ffffff
The warning is correct, the calculated value for ramdisk_max would be
0xb7ffffff instead of 0x37ffffff. Truncating 0xb7ffffff to 0x37ffffff
is desired behaviour, so we should do it explicitly.
Andrew Morton [Mon, 10 May 2004 07:04:36 +0000 (00:04 -0700)]
[PATCH] ppc64: use generic ipc syscall translation
From: David Gibson <david@gibson.dropbear.id.au>
Currently ppc64 has its own code to convert 32-bit ipc() syscalls to 64-bit,
rather than using the common translation code from ipc/compat.c. This patch,
tweaked slightly from an earlier version of Anton Blanchard's fixes that,
replacing the ppc64 code with calls to the common code.
I've run the LSB IPC tests, and as many of the LTP IPC tests as I could figure
out how to run easily, and it seems to pass them all.
Andrew Morton [Mon, 10 May 2004 07:04:25 +0000 (00:04 -0700)]
[PATCH] gcc-3.4.0 fixes for 2.6.6-rc3 x86_64 kernel
From: Mikael Pettersson <mikpe@csd.uu.se>
Here are some patches to fix compilation warnings from
gcc-3.4.0 in the 2.6.6-rc3 x86_64 kernel.
- puts() type conflict in boot/compressed/misc.c:
rename to putstr(), just like i386 did
- cast-as-lvalue in ia32_copy_siginfo_from_user():
use temporary
- code before declaration in io_apic.c:
move decl up
- code before declaration in ioremap.c:
move existing #ifndef up
- cast-as-lvalue (tons of them) from UP version of per_cpu():
merged asm-generic's version
Andrew Morton [Mon, 10 May 2004 07:04:03 +0000 (00:04 -0700)]
[PATCH] Warn when smp_call_function() is called with interrupts disabled
From: Keith Owens <kaos@sgi.com>
Almost every architecture has a comment above smp_call_function()
* You must not call this function with disabled interrupts or from a
* hardware interrupt handler or from a bottom half handler.
I have not seen any problems with calling smp_call_function() from a bottom
half handler, but calling it with interrupts disabled can definitely
deadlock. This bug is hard to reproduce and even harder to debug.
CPU A CPU B
Disable interrupts
smp_call_function()
Take call_lock
Send IPIs
Wait for all cpus to acknowledge IPI
CPU A has not responded, spin waiting
for cpu A to respond, holding call_lock
smp_call_function()
Spin waiting for call_lock
Deadlock Deadlock
Change all smp_call_function() to WARN_ON(irqs_disabled()). It should be
BUG_ON() but some buggy code like SCSI sg will break with BUG_ON, so just
warn for now. Change it to BUG_ON after the buggy code has been fixed.
Andrew Morton [Mon, 10 May 2004 07:03:31 +0000 (00:03 -0700)]
[PATCH] throttle P4 thermal warnings
From: Zwane Mwaikambo <zwane@linuxpower.ca>
In really bad conditions this can keep printing for a while, throttle the
output somewhat. Also change the "CPU%d" formatting to better match the
other boot output.
Andrew Morton [Mon, 10 May 2004 07:03:20 +0000 (00:03 -0700)]
[PATCH] fix deadlock in create_workqueue()
Fix bug identified by Srivatsa Vaddagiri <vatsa@in.ibm.com>:
There's a deadlock in __create_workqueue when CONFIG_HOTPLUG_CPU is set. This
can happen when create_workqueue_thread fails to create a worker thread. In
that case, we call destroy_workqueue with cpu hotplug lock held.
destroy_workqueue however also attempts to take the same lock.
Andrew Morton [Mon, 10 May 2004 07:03:10 +0000 (00:03 -0700)]
[PATCH] remove blk_queue_bounce() printks
From: Matt Domsch <Matt_Domsch@dell.com>
Jens Axboe wrote:
It should just be deleted. As you note, it is a debug message. I
originally added it so we would have some clues as to dma capability for
bug reports. There never was any, the check can go :)
Andrew Morton [Mon, 10 May 2004 07:02:49 +0000 (00:02 -0700)]
[PATCH] dentry and inode cache hash algorithm performance changes.
From: "Jose R. Santos" <jrsantos@austin.ibm.com>
It alleviates some issues seen with Linux when accessing millions of files on
machines with large amounts of RAM (+32GB). Both algorithms are base on some
studies that Dominique Heger was doing on hash table efficiencies in Linux.
The dentry hash table has been tested in small systems with one internal IDE
hard disk as well as in large SMP with many fiberchanel disks. Dominique
claims that in all the testing done, they did not see one case were this has
function provided worst performance and that in most test they were seeing
better performance.
The inode hash function was done by me base on Dominique's original work and
has only been stress tested with SpecSFS. It provided a 3% improvement over
the default algorithm in the SpecSFS results and speed ups in the response
time of almost all filesystem operations the benchmark stress. With the
better distribution is as also possible to reduce the number of inode buckets
for 32 million to 16 million and still get a slightly better results.
Anton was nice enough to provide some graphs that show the distribution
before and after the patch at http://samba.org/~anton/linux/sfs/1/
For the dentry hash function, some of my other coorkers had put this hash
function through various testing and have concluded that the hash function was
equal or better than the default hash function. These runs were done with a
(hopefully to be Open Source soon) benchmark called FFSB which can simulate
various io patters across many filesystems and variable file sizes.
SpecSFS fileset is basically a lot of small file which varies depending on the
size of the run. For a not so big SMP system the number of file is in the +20
Million files range. Of those 20 million files only 10% are access randomly
by the client. The purpose of this is that the benchmark tries to stress not
only the NFS layer but, VM and Filesystems layers as well. The filesets are
also hundreds of gigabytes in size in order to promote disk head movement by
guaranteeing cache misses in memory. SFS 27% of the workload are lookups
__d_lookup has showing high in my profiles.
For the inode hash the problem that I see is that when running a benchmark
with this huge fileset we end up trying to free a lot of inode entries during
the run while trying to put new entries in cache. We end up calling
ifind_fast() which calls find_inodes_fast() held under inode_lock. In order
to avoid holding the inode_lock we needed to avoid having long chains in that
hash function.
When I took a look at the original hash function, I found it to be a bit to
simple for any workload. My solution (which I took advantage of Dominique's
work) was to create a hash that function that could generate completely
different hashes depending on the hashval and the superblock in order to have
the hash scale as we added more filesystems to the machine.
Both of these problems can be somewhat tuned out by increasing the number of
buckets of both d and i cache but it got to a point were I had 256MB of inode
and 128MB in dentry hash buckets on a not so large SMP. With the hash changes
I have been able to reduce the number of buckets to 128MB for inode cache and
to 32MB for dentry cache and still get better performance.
If it help my case... I haven't been running this benchmark for long, so I
haven't been able to find a way to cheat. I need to come up with generic
solutions until I can find a cheat for the benchmark. :)
SDET results:
Steve Pratt seem to have a SDET setup already and he did me the favor of
running SDET with a reduce dentry entry hash table size. I belive that
his table suggest that less than 3% change is acceptable variability, but
overall he got a 5% better number using the new hash algorith.
A) x4408way1.sdet.2.6.5100000-8p.04-05-05_12.08.44 vs
B) x4408way1.sdet.2.6.5+hash-100000-8p.04-05-05_11.48.02
Andrew Morton [Mon, 10 May 2004 07:02:27 +0000 (00:02 -0700)]
[PATCH] EDD: follow sysfs convention, MODULE_VERSION, remove dead SCSI symlink
From: Matt Domsch <Matt_Domsch@dell.com>
Clean up the edd.c driver.
* use kobject_set_name() instead of snprintf() per GregKH's recommendation.
* Add MODULE_VERSION()
* s/driverfs/sysfs/ in Kconfig
* Remove report URL message, as there have been too many BIOSs reported,
virtually none of which are EDD-capable. This may return if/when I
develop a better reporting method and database to capture/store the
data from users.
* Remove the unused code for creating a symlink to the scsi_device.
This never worked right, and I'm going to show the relationship from
a userspace tool which uses libsysfs instead.
Andrew Morton [Mon, 10 May 2004 07:01:55 +0000 (00:01 -0700)]
[PATCH] Un-inline spinlocks on ppc64
From: Paul Mackerras <paulus@samba.org>
The patch below moves the ppc64 spinlocks and rwlocks out of line and into
arch/ppc64/lib/locks.c, and implements _raw_spin_lock_flags for ppc64.
Part of the motivation for moving the spinlocks and rwlocks out of line was
that I needed to add code to the slow paths to yield the processor to the
hypervisor on systems with shared processors. On these systems, a cpu as
seen by the kernel is a virtual processor that is not necessarily running
full-time on a real physical cpu. If we are spinning on a lock which is
held by another virtual processor which is not running at the moment, we
are just wasting time. In such a situation it is better to do a hypervisor
call to ask it to give the rest of our time slice to the lock holder so
that forward progress can be made.
The one problem with out-of-line spinlock routines is that lock contention
will show up in profiles in the spin_lock etc. routines rather than in the
callers, as it does with inline spinlocks. I have added a CONFIG_SPINLINE
config option for people that want to do profiling. In the longer term, Anton
is talking about teaching the profiling code to attribute samples in the spin
lock routines to the routine's caller.
This patch reduces the kernel by about 80kB on my G5. With inline
spinlocks selected, the kernel gets about 4kB bigger than without the
patch, because _raw_spin_lock_flags is slightly bigger than _raw_spin_lock.
This patch depends on the patch from Keith Owens to add
_raw_spin_lock_flags.
Andrew Morton [Mon, 10 May 2004 07:01:44 +0000 (00:01 -0700)]
[PATCH] Allow architectures to reenable interrupts on contended spinlocks
From: Keith Owens <kaos@sgi.com>
As requested by Linus, update all architectures to add the common
infrastructure. Tested on ia64 and i386.
Enable interrupts while waiting for a disabled spinlock, but only if
interrupts were enabled before issuing spin_lock_irqsave().
This patch consists of three sections :-
* An architecture independent change to call _raw_spin_lock_flags()
instead of _raw_spin_lock() when the flags are available.
* An ia64 specific change to implement _raw_spin_lock_flags() and to
define _raw_spin_lock(lock) as _raw_spin_lock_flags(lock, 0) for the
ASM_SUPPORTED case.
* Patches for all other architectures and for ia64 with !ASM_SUPPORTED
to map _raw_spin_lock_flags(lock, flags) to _raw_spin_lock(lock).
Architecture maintainers can define _raw_spin_lock_flags() to do
something useful if they want to enable interrupts while waiting for
a disabled spinlock.
Andrew Morton [Mon, 10 May 2004 07:01:22 +0000 (00:01 -0700)]
[PATCH] Kill a warning while making pdfdocs.
From: Alexey Dobriyan <adobriyan@mail.ru>
DOCPROC Documentation/DocBook/parportbook.sgml
Warning(drivers/parport/share.c:188): No description found for parameter 'drv'
(kernel-doc parameter name is incorrect.)
Andrew Morton [Mon, 10 May 2004 07:01:03 +0000 (00:01 -0700)]
[PATCH] Improve laptop mode's block_dump output
From: "Theodore Ts'o" <tytso@mit.edu>
This patch versus improves the output produced by "echo 1 >
/proc/sys/vm/block_dump", in the following ways:
1) The messages are printed with KERN_DEBUG, so that even if sysklogd is
running, if configured appropriately, it will not need to write to log
files.
2) The inode which is dirtied by a process is now identified more
precisely by inode number and filesystem ID, and by a dcache name if
present.
3) In the generic filesystem sget function, the superblock id (s_id) is
filled in with the filesystem type by default. Filesystems which are
block-device based will override s_id, but this allows pseudo
filesystems such as tmpfs, procfs, etc. to be identified in (2).
Andrew Morton [Mon, 10 May 2004 07:00:52 +0000 (00:00 -0700)]
[PATCH] find_user locking and leak fix
find_user() is being called from set/get_priority(), but it doesn't take the
needed lock, and those callers were forgetting to drop the refcount which
find_user() took.