Andrew Morton [Thu, 3 Apr 2003 00:26:28 +0000 (16:26 -0800)]
[PATCH] monotonic clock source for hangcheck timer
From: john stultz <johnstul@us.ibm.com>
This patch, written with the advice of Joel Becker, addresses a problem with
the hangcheck-timer.
The basic problem is that the hangcheck-timer code (Required for Oracle)
needs a accurate hard clock which can be used to detect OS stalls (due to
udelay() or pci bus hangs) that would cause system time to skew (its sort of
a sanity check that insures the system's notion of time is accurate).
However, currently they are using get_cycles() to fetch the cpu's TSC
register, thus this does not work on systems w/o a synced TSC.
As suggested by Andi Kleen (see thread here:
http://www.uwsg.iu.edu/hypermail/linux/kernel/0302.0/1234.html ) I've worked
with Joel and others to implement the monotonic_clock() interface. Some of
the major considerations made when writing this patch were
o Needs to be able to return accurate time in the absence of multiple timer
interrupts
o Needs to be abstracted out from the hardware
o Avoids impacting gettimeofday() performance
This interface returns a unsigned long long representing the number of
nanoseconds that has passed since time_init().
Andrew Morton [Thu, 3 Apr 2003 00:26:20 +0000 (16:26 -0800)]
[PATCH] handle bad inodes in put_inode
From: "J. Bruce Fields" <bfields@fieldses.org>
If the NFS daemon is presented with a filehandle for a file that has
been deleted, it does an iget() in fs/exportfs/expfs.c:export_iget() and
gets a bad inode back. When it subsequently iput()s the inode, the
result is:
Mar 27 12:53:40 snoopy kernel: EXT2-fs error (device ide0(3,3)): ext2_free_blocks: Freeing blocks not in datazone - block = 1802201963, count = 27499
Mar 27 12:53:40 snoopy kernel: Remounting filesystem read-only
The same can happen if ext2_get_inode() returns an error - ext2_read_inode()
will return an uninitialised inode and ext2_put_inode() is not allowed to go
looking inside the bad inode.
Andrew Morton [Thu, 3 Apr 2003 00:26:13 +0000 (16:26 -0800)]
[PATCH] tmpfs blk_congestion_wait fix
From: Hugh Dickins <hugh@veritas.com>
The blk_congestion_waits in shmem_getpage are appropriate when the error is
-ENOMEM, but not when the error is -EEXIST. So add that test in the first
instance, but omit it all in the second instance.
kbuild: Fix dependencies for generated .mod.o files
For some reason which I cannot remember, we didn't use the automatic
dependency generation for the generated .mod.[co] files. However, we do
of course need dependency information for those, too, they need to be updated
when e.g. the kernel version number changes.
This patch fixes two issues:
o The CONFIG_MODVERSIONING=y case broke at compile time since some
functions were not updated with the latest module changes
o Exporting symbols from modules stopped working due to confusion of
mod->num_syms and mod->num_ksyms. Rename mod->num_ksyms to mod->num_syms,
which is more logical since the associated array is called ->syms, and
for the kallsyms member use "num_symtab", since the associated array is
->symtab.
This should have a working w83781d driver updated for 2.5.66-bk4.
Currently sysfs support is working, and are according to the spec
(sensors-sysfs) in the 'lm sensors sysfs file structure' thread.
Thus I used 'temp_input[1-3]', as there was not final decision
on having them temp_input[0-2] as well, for example.
i2c: remove sysctl and proc functions from via686a.c driver
This still needs to be converted to use sysfs files, but due to
lack of hardware, I can not do this. This change is necessary as
the sysctl and proc interface is about to go away.
Fix naming confusion: number of symbol kallsyms is "num_kallsyms",
while number of symbols is "num_syms". It used to be "num_syms" and
"num_ksyms" respectively (ie the "k" was the wrong way around).
The previous naming was not just confusing, it had caused one actual
bug (ie the normal symbol code had used "num_syms", which was wrong
in the old confusing naming scheme).
Dave Jones [Tue, 1 Apr 2003 13:03:30 +0000 (05:03 -0800)]
[PATCH] fix up newer x86 cpuinfo flags.
According to Intel document 24161823.pdf[*] page 18, 'tm2' is misdefined.
Its bit 7 not, bit 8. Also add the missing 'EST' (Enhanced Speedstep Technology)
bit, and use the correct Intel terminology for the context ID bit.
Randy Dunlap [Tue, 1 Apr 2003 12:54:02 +0000 (04:54 -0800)]
[PATCH] reduce stack usage in cdrom/optcd.c
This changes/fixes the optcd.c stack reduction patch from last week.
Alan and Jens objected to the kmalloc() in cdromread(), suggesting that
the read buffer should be allocated one time and held onto, so this
patch does that.
Paul Mackerras [Tue, 1 Apr 2003 12:53:32 +0000 (04:53 -0800)]
[PATCH] update adb driver
This updates the ADB (Apple desktop bus) driver used on macs and
powermacs. The main change, from Ben Herrenschmidt, is that handlers
are called without a lock held now. It also adds a way for userland to
obtain some information about individual ADB devices from the driver.
Rusty Russell [Tue, 1 Apr 2003 12:42:38 +0000 (04:42 -0800)]
[PATCH] Subdivide PCI class for aliases
The previous handling of PCI class masks was too primitive: the
class field is not "all or nothing" but has base class, subclass
and interface fields. This patch changes the alias form from:
pci:vNdNsvNsdNcN to pci:vNdNsvNsdNbcNscNiN.
Rusty Russell [Tue, 1 Apr 2003 12:42:30 +0000 (04:42 -0800)]
[PATCH] Extable list removal
This removes the extable list, and the struct exception_table, in
favour of just iterating through the modules. Now all iteration is
within kernel/module.c, this is a fairly trivial cleanup.
Rusty Russell [Tue, 1 Apr 2003 12:42:22 +0000 (04:42 -0800)]
[PATCH] Symbol list removal
This removes the symbol list, and the concept of kernel symbol groups,
in favour of just iterating through the modules. Now all iteration is
within kernel/module.c, this is a fairly trivial cleanup.
Rusty Russell [Tue, 1 Apr 2003 11:47:14 +0000 (03:47 -0800)]
[PATCH] rio_linux.c misc_register patch
From: Chris Wilson <chris@qwirx.com>
This function did check misc_register's return code, but made no effort to
clean up if it failed, leaving a large amount of potential crud lying
around. I moved the registration to the start of the function, so that the
cleanup is trivial, and made sure the device gets unregistered in the
cases where it would not have been registered at all before.
Douglas Gilbert [Mon, 31 Mar 2003 08:52:21 +0000 (02:52 -0600)]
scsi_debug version 1.69 for lk 2.5.66
As people are using scsi_debug to simulate a large
number of disks to play with the dev_t expansion,
some problems have come to light.
Changelog:
- change num_devs to num_tgts
so now the user can independently modify the
number of hosts (add_host), the number of targets
per host (num_tgts) and the number of luns per
target (max_luns)
- num_tgts sets scsi_host::max_id after allowance is
made for the initiator's target id
- max_luns default changed to 1 and it is sysfs
writeable
- REPORT LUN response cleaned up. Could now possibly
generate a response indicatimg there were up to
16,384 logical units available
- clean up sense buffer generation
David S. Miller [Mon, 31 Mar 2003 07:23:31 +0000 (23:23 -0800)]
[SOFTIRQ]: Define local_softirq_pending, use it in softirq.c
Platforms, such as IA64, have a per-cpu mapping for local cpu
data. When we killed off asm/softirq.h, we removed the usage
of local_softirq_pending IA64 was using. By defining a generic
version we can put the optimization back.
David S. Miller [Mon, 31 Mar 2003 06:32:13 +0000 (22:32 -0800)]
[SOFTIRQ]: Move softirq implementation to common area, add debug check.
1) Every arch implemented local_bh_foo identically, move to
linux/interrupt.h
2) Kill all asm/softirq.h references
3) Kill asm/softirq.h itself
4) Move local_bh_disable() out of line to kernel/softirq.c
5) Add BUG check on irqs_disabled() to local_bh_disable()
This just reformats the goto labels to a more accepted style. Now to
do some more reformatting after ages and then make it aware of the
new modules infrastructure, i.e. kill MOD_{INC,DEC}_USE_COUNT, then
rinse and repeat it with LLC, Appletalk, etc.
Jens Axboe [Mon, 31 Mar 2003 01:52:42 +0000 (17:52 -0800)]
[PATCH] scsi queueing weirdness
The queueing logic in scsi_lib looks really odd right now.
- Defers calling elv_next_request() until we actually think we can queue
something. Always want to do that, request will have been marked
REQ_STARTED after this, so block layer cannot touch it or merge to it.
- Kill the queue empty check. If elv_next_request() returned a req,
there's one to queue.