Mike Anderson [Tue, 26 Aug 2003 05:54:36 +0000 (00:54 -0500)]
[PATCH] fix Kernel Panic in scsi_host_dev_release
If a driver calls scsi_register, but then has a problem in there
detect where they need to call scsi_unregister the parent pointer of
the struct device may never be set.
[PATCH] check whether a disk got writeable in sd_open
This is the 2.5 version of a 2.4 patch posted to the list long
ago, the aacraid thread reminded me of it.
The problem is that certain highend arrays allow to mark a r/o
volume writeable on the fly so we have to call check_disk_change
for write-protected devices in sd_open, too.
This is a followup to Doug's comments and older work. It kills
sdev->tagged_queue which wasn't ever set in 2.5/2.6 except through
obscure and broken ioctls (!). As a reason of that tagged queing
didn't work for a lot of drivers, so this does change behaviour.
Be careful..
James, can you review the code in 53c700.c? Calling scsi_activate_tcq
in ->queuecommand rather than ->slave_configure looks rather strange to
me..
The logging level is now controlled by a
/proc/sys/dev/scsi/logging_level sysctl instead of /proc/scsi/scsi.
The format is the same as the logging_level module parameter.
Jamie Lenehan [Mon, 25 Aug 2003 07:29:55 +0000 (02:29 -0500)]
[PATCH] dc395x [3/6] - cleanup adapter init
Cleanup of the adapter initialization sequence. Now it's clear what
is going on and what has been done at any point. It also keeps the
initialization of various things together and not spread out over a
bunch of different functions. This then made it possible to ensure
that appropriate the resources were correctly released in the event
of failure.
Jamie Lenehan [Mon, 25 Aug 2003 07:28:34 +0000 (02:28 -0500)]
[PATCH] dc395x [2/6] - cleanup devices
This cleans up the device management. It makes the init and cleanup
seperate functions that basically do the opposite type things in
reverse order. Makes it clear which functions remove a device and
which ones free a device (or devices.)
Andi Kleen [Mon, 25 Aug 2003 06:50:05 +0000 (01:50 -0500)]
[PATCH] IOMMU overflow handling fix for MPT fusion
Currently mpt fusion does not handle IOMMU overflow (pci_map_sg returning 0)
very gracefully. It gets not reported to the upper layers. This patch fixes this.
As a related note the fusion driver tends to trigger the NMI watchdog as soon
as it goes into any error recovery, because it busy waits for seconds with
interrupts disabled (seems to be still true with the new error handling in 2.6).
This is a big inconvenient because it leads to a forced oops.
I tried to work around it by exporting touch_nmi_watchdog and using it in
the delays, but Linus was opposed to this approach. It would be nice
if someone could fix this. Afaik in 2.6 the error recovery should mostly
run in process context, so it should be possible to use schedule_timeout()
with interrupts on for the delays.
At least on x86-64 the NMI watchdog runs by default and even on i386 it is a
very useful debugging tool.
Paul Mackerras [Sat, 23 Aug 2003 22:15:37 +0000 (08:15 +1000)]
PPC32: Add the fadvise64_64 system call.
On PPC32 we reorder the arguments so they fit into 6 registers. Glibc will
need a two-line stub to change them from the standard order to the ordering
used by the system call: (fd, advice, offset, len).
Erik Andersen [Fri, 22 Aug 2003 11:29:33 +0000 (04:29 -0700)]
[PATCH] Fix cdrom error handling in 2.6
In both 2.4 and in 2.6, error handling for bad cdrom media is
wrong. And it is my fault I'm afraid, since I botched an earlier
fix for the problem by putting the fix in the wrong spot.
My kids have a "Jumpstart Toddlers" cd they have long since
completely killed, which makes a great test disc. Without this
fix, the best time projection I can get for completing a dd type
sector copy is about 2 years... Most of that is spent thrashing
about in kernel space trying to re-read sectors we already know
are not correctable.... After the fix, I was able to rip a copy
the CD (or rather muddle through it getting lots of EIO errors)
in about 15 minutes.
Linus Torvalds [Thu, 21 Aug 2003 15:50:34 +0000 (08:50 -0700)]
The Intel Instruction set manual is wrong on how to test for
a valid SEP bit. The errata has it right: you have to have at
least model 3, stepping 3. Not "model >= 3 or stepping >= 3".
Trond Myklebust [Thu, 21 Aug 2003 11:42:05 +0000 (04:42 -0700)]
A request cannot be used as part of the RTO estimation if it gets
resent since you don't know whether the server is replying to the
first or the second transmission. However we're currently setting
the cutoff point to be the timeout of the first transmission.
This patch moves the cutoff point to the actual start of the
retransmission.
Trond Myklebust [Thu, 21 Aug 2003 11:27:54 +0000 (04:27 -0700)]
If an RPC request has to be resent due to a timeout, it turns out
that call_encode() may cause rq_rcv_buf to be reset despite the fact
that a reply might be delivered at any moment by a softirq.
This typically results in 'NFS: server cheating in read reply'
error messages.
Solve by adding rq_private_buf, which is updated atomically from
rq_rcv_buf.
Fix APIC ID lookup. In the bios_cpu_apicid[] case, it would walk off
the end of bios_cpu_apicid[] and attempt to send APIC INIT messages to
garbage without this patch, and in the NUMA-Q case, it would attempt to
send NMI wakeups to destinations in the broadcast cluster (which is
harmless, but very poor form) without this patch.
David Mosberger [Thu, 21 Aug 2003 08:46:04 +0000 (01:46 -0700)]
ia64: perfmon update.
Here is a ChangeLog for the patch:
- The perfmon core will invoke the sampling module handler
routine once for each overflowed PMD. When multiple PMDs
overflow at the same time (with the same PMU interrupt),
then up to 64 distinct calls can happen. A common timestamp
parameter allows the module to identify this kind of
entries.
- Changed the module ovfl_ctrl arguments to simplify the reset
field. Now it is a simple boolean.
- Updated perfmon.h to convert the "set" field to ushort from
uint. Other structure updates to get better layout.
- Update perfmon_default_smpl.h to reflect the change in
overflow processing mentioned above.
- Cleanup some state checking code to use switch-case instead
of if-then with macros. Make the code more readable and
easier to optmize for gcc. Thanks to David for the
suggestion.
- Added extra safety checks on pfm_context_load() to verify
that the task actually exists.
- The default sampling format module now supports the
fmt_restart_active callbacks. Patch from David.
David S. Miller [Thu, 21 Aug 2003 07:50:53 +0000 (00:50 -0700)]
[IPV6]: Fix dangling multicast device references.
When addrconf_ifdown() calls ipv6_mc_destroy_dev(), it has NULL'd
out dev->ip6_ptr, which means all in6_dev_get() calls will fail.
So pass an explicit idev into ipv6_dev_mc_dec() in this case so
that we don't leak the all-nodes multicast address reference to the
idev.
Patrick Mochel [Thu, 21 Aug 2003 04:56:44 +0000 (21:56 -0700)]
[dmi] Ugh, fixup broken merge once and for all.
- Didn't realize that mount_root_failed_msg() had been removed, so it was
accidentally merged back in. It's gone again now, as well as the entire
(unused) dmi_dump_system() function.