[netdrvr sis900] don't call pci_find_device from irq context
I realized that I've had this patch in my tree for a while, and forgot
to send it to you and lkml. The patch below fixes bug number 923:
http://bugme.osdl.org/show_bug.cgi?id=923
(basically keeps us from calling pci_find_device from interrupt
context.)
It's been tested by a few people with this device, and they say it works
just fine for them. Please forward it on up the food chain.
François Romieu [Tue, 26 Aug 2003 14:24:15 +0000 (10:24 -0400)]
[netdrvr sis190] remove unneeded alignment code, other small fixes
Driver does not need to enforce 256 byte alignment for data returned
from pci_alloc_consistent().
- {rx/tx}_dma_aligned and {rx/td}_dma_raw are both replaced by {rx/tx}_dma;
- {rx/tx}_desc_raw is replaced by direct use of {Rx/Tx}DescArray;
- SiS190_open()
+ fixup for a lack of kmalloc() failure handling;
+ (return status) there is no need for both retval/rc: merge them;
+ anonymous printk() fixup: the name of the guilty device is printed;
- define {RX/TX}_DESC_TOTAL_SIZE because I am too lazy to read twice the
same lengthy arithmetic expression.
Jeff Garzik [Tue, 26 Aug 2003 12:00:16 +0000 (08:00 -0400)]
[netdrvr sis190] convert TX path to use PCI DMA API
Also, minor changes:
* mark ->hard_start_xmit ETH_ZLEN test as unlikely()
* use cpu_to_le32() and le32_to_cpu() in TX path
* fix two leak in error path, in ->hard_start_xmit
* don't test netif_queue_stopped() in TX completion path,
netif_wake_queue() already does that.
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.
Cleanup the timer code. It works as is, but:
- use timer_ macro's when working with jiffies.
- cleanup the #define's
- make timer run sooner (ie when next entry will expire)
rather than waiting till the next 10 minute quanta.
- print TTL value in seconds not jiffies
- change formatting to linux style in code the area affected.
Better version of my seq_file next operation.
Use current pointer to find next element. Should be more
stable with changing list (no duplicate entries).