Ingo Molnar [Wed, 24 Oct 2007 11:58:57 +0000 (13:58 +0200)]
natsemi: fix oops, link back netdevice from private-struct
* Andrew Nelless <andrew@nelless.net> wrote:
> Hi,
>
> I booted up 2.6.24-rc1 this morning [Real early over a brew ;-)] and
> was having a problems with multiple ~5 second hangs on SATA/drive init
> (Something to do with "EH" something-or-other and resets but I'll
> email in separately about it later unless its fixed by the time I get
> the chance).
>
> Anyway, I went to fire up netconsole to get a decent log dump and hit
> across the following nasty. Netconsole works fine in 2.6.23.1 with a
> similar config and the same kernel parameters.
>
> A shot of the screen is the only method I could come up with to
> capture the log, I hope that is OK, it is pretty readable.
>
>
> The nasty:
> http://andotnet.nfshost.com/linux/2.6.24-rc1-netconsole-nullderef.jpg
the NULL dereference is here:
(gdb) list *0xffffffff804a9504
0xffffffff804a9504 is in natsemi_poll (drivers/net/natsemi.c:717).
712 return count;
713 }
714
715 static inline void __iomem *ns_ioaddr(struct net_device *dev)
716 {
717 return (void __iomem *) dev->base_addr;
718 }
719
which is this code from natsemi.c:
2227 struct net_device *dev = np->dev;
2228 void __iomem * ioaddr = ns_ioaddr(dev);
2229 int work_done = 0;
seems like the NAPI changes in -rc1 added an np->dev field but forgot to
initialize it ...
does the patch below fix the oops for you?
Ingo
-------------------->
Subject: natsemi: fix oops, link back netdevice from private-struct
From: Ingo Molnar <mingo@elte.hu>
this commit:
commit
bea3348eef27e6044b6161fd04c3152215f96411
Author: Stephen Hemminger <shemminger@linux-foundation.org>
Date: Wed Oct 3 16:41:36 2007 -0700
[NET]: Make NAPI polling independent of struct net_device objects.
added np->dev to drivers/net/natsemi.c's struct netdev_private, but
forgot to initialize that new field upon driver init. The result was
a predictable NULL dereference oops the first time the hardware
generated an interrupt.
Reported-by: Andrew Nelless <andrew@nelless.net>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jan-Bernd Themann [Wed, 24 Oct 2007 09:53:34 +0000 (11:53 +0200)]
ehea: fix port_napi_disable/enable
napi_disable / napi_enable must be applied on all ehea queues.
Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Adrian Bunk [Wed, 24 Oct 2007 16:27:43 +0000 (18:27 +0200)]
bonding/bond_main.c: fix cut'n'paste error
This patch fixes a cut'n'paste error in
commit
1b76b31693d4a6088dec104ff6a6ead54081a3c2.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Adrian Bunk [Wed, 24 Oct 2007 16:23:17 +0000 (18:23 +0200)]
make bonding/bond_main.c:bond_deinit() static
bond_deinit() can now become static.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Adrian Bunk [Wed, 24 Oct 2007 16:23:19 +0000 (18:23 +0200)]
drivers/net/ipg.c: cleanups
This patch contains the following cleanups:
- make ipg_nic_get_stats() static
- move DefaultPhyParam[] from ipg.h to ipg.c and make it static
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Adrian Bunk [Wed, 24 Oct 2007 16:25:03 +0000 (18:25 +0200)]
remove Documentation/networking/net-modules.txt
According to git, the only one who touched this file during the last
5 years was me when removing drivers...
modinfo offers less ancient information.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Paul Gortmaker <paul.gortmaker@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
FUJITA Tomonori [Thu, 25 Oct 2007 07:17:03 +0000 (09:17 +0200)]
ub: add sg_init_table for sense and read capacity commands
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
FUJITA Tomonori [Thu, 25 Oct 2007 07:13:32 +0000 (09:13 +0200)]
x86: pci-gart fix
map_sg could copy the last sg element to another position (if merging
some elements). It breaks sg chaining. This copies only
dma_address/length instead of the whole sg element.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Kuan Luo [Thu, 25 Oct 2007 06:14:17 +0000 (02:14 -0400)]
[libata] sata_nv: SWNCQ should not apply to MCP61
The mcp61 has bug with ncq.
Signed-off-by: Kuan Luo <kluo@nvidia.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Alan Cox [Mon, 15 Oct 2007 18:18:27 +0000 (19:18 +0100)]
libata-core: Be a bit more relaxed about early DMA zero devices
I guess Windows didn't care about the command so neither did they
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Tejun Heo [Thu, 25 Oct 2007 05:59:16 +0000 (14:59 +0900)]
ahci: ahci: implement workaround for ASUS P5W-DH Deluxe ahci_broken_hardreset(), take #2
P5W-DH Deluxe has ICH9 which doesn't have PMP support but SIMG 4726
hardwired to the second port of AHCI controller at PCI device 1f.2.
The 4726 doesn't work as PMP but as a storage processor which can do
hardware RAID on downstream ports.
When no device is attached to the downstream port of the 4726, pseudo
ATA device for configuration appears. Unfortunately, ATA emulation on
the device is very lousy and causes long hang during boot.
This patch implements workaround for the board. If the mainboard is
P5W-DH Deluxe (matched using DMI), only hardreset is used on the
second port of AHCI controller @ 1f.2 and the hardreset doesn't depend
on receiving the first FIS and just proceed to IDENTIFY.
This workaround fixes bugzilla #8923.
http://bugzilla.kernel.org/show_bug.cgi?id=8923
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Al Viro [Sun, 14 Oct 2007 00:12:39 +0000 (01:12 +0100)]
Fix pata_icside build for recent libata API changes
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Tejun Heo [Wed, 24 Oct 2007 06:21:26 +0000 (15:21 +0900)]
libata: cosmetic clean up in ata_eh_reset()
Local variable @action usage in ata_eh_reset() is a bit confusing.
It's used only to cache ehc->i.action to test reset masks after
clearing it; however, due to the generic name "action", it's easy to
misinterpret the local variable as containing the selected reset
method later. Also, the reason for caching the original value is easy
to miss.
This patch renames @action to @tmp_action and make it buffer newly
selected value instead to improve readability.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Adrian Bunk [Wed, 24 Oct 2007 16:23:06 +0000 (18:23 +0200)]
libata-core.c: make 2 functions static
strn_pattern_cmp() and ata_port_detach() can become static.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Rusty Russell [Thu, 25 Oct 2007 05:02:50 +0000 (15:02 +1000)]
lguest: documentation update
Went through the documentation doing typo and content fixes. This
patch contains only comment and whitespace changes.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Jeff Garzik [Thu, 25 Oct 2007 04:33:27 +0000 (00:33 -0400)]
[libata] Create internal helper ata_dev_set_feature()
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Rusty Russell [Thu, 25 Oct 2007 04:12:24 +0000 (14:12 +1000)]
lguest: Add to maintainers file.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Jeff Garzik [Thu, 25 Oct 2007 04:15:09 +0000 (14:15 +1000)]
lguest: build fix
Fix this error (i386 !SMP build)
arch/x86/lguest/boot.c: In function ‘lguest_init’:
arch/x86/lguest/boot.c:1059: error: ‘pm_power_off’ undeclared (first use in this function)
by including linux/pm.h.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Thu, 25 Oct 2007 04:12:20 +0000 (14:12 +1000)]
lguest: clean up lguest_launcher.h
Remove now-unused defines.
Fix old idempotent #ifndef _ASM_LGUEST_USER name.
Fix comment on use of lguest_req.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Thu, 25 Oct 2007 04:10:30 +0000 (14:10 +1000)]
lguest: remove unused "wake" element from struct lguest
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Thu, 25 Oct 2007 04:09:53 +0000 (14:09 +1000)]
lguest: use defines from x86 headers instead of magic numbers
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Thu, 25 Oct 2007 04:09:25 +0000 (14:09 +1000)]
lguest: example launcher header cleanup.
Now the kernel headers are clean for userspace export, we don't need
to typedef kernel types before including them. We also don't need
pci_ids.h (that was from an earlier virtio draft).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Ingo Molnar [Wed, 24 Oct 2007 16:23:51 +0000 (18:23 +0200)]
sched: mark CONFIG_FAIR_GROUP_SCHED as !EXPERIMENTAL
mark CONFIG_FAIR_GROUP_SCHED as !EXPERIMENTAL. All bugs have been
fixed and it's perfect ;-)
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Peter Williams [Wed, 24 Oct 2007 16:23:51 +0000 (18:23 +0200)]
sched: isolate SMP balancing code a bit more
At the moment, a lot of load balancing code that is irrelevant to non
SMP systems gets included during non SMP builds.
This patch addresses this issue and reduces the binary size on non
SMP systems:
text data bss dec hex filename
10983 28 1192 12203 2fab sched.o.before
10739 28 1192 11959 2eb7 sched.o.after
Signed-off-by: Peter Williams <pwil3058@bigpond.net.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Peter Williams [Wed, 24 Oct 2007 16:23:51 +0000 (18:23 +0200)]
sched: reduce balance-tasks overhead
At the moment, balance_tasks() provides low level functionality for both
move_tasks() and move_one_task() (indirectly) via the load_balance()
function (in the sched_class interface) which also provides dual
functionality. This dual functionality complicates the interfaces and
internal mechanisms and makes the run time overhead of operations that
are called with two run queue locks held.
This patch addresses this issue and reduces the overhead of these
operations.
Signed-off-by: Peter Williams <pwil3058@bigpond.net.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Adrian Bunk [Wed, 24 Oct 2007 16:23:50 +0000 (18:23 +0200)]
sched: make cpu_shares_{show,store}() static
cpu_shares_{show,store}() can become static.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Paul Menage [Wed, 24 Oct 2007 16:23:50 +0000 (18:23 +0200)]
sched: clean up some control group code
- replace "cont" with "cgrp" in a few places in the CFS cgroup code,
- use write_uint rather than write for cpu.shares write function
Signed-off-by: Paul Menage <menage@google.com>
Acked-by : Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Joe Perches [Wed, 24 Oct 2007 16:23:50 +0000 (18:23 +0200)]
sched: constify sched.h
Add const to some struct task_struct * uses
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Mel Gorman [Wed, 24 Oct 2007 16:23:50 +0000 (18:23 +0200)]
sched: document profile=sleep requiring CONFIG_SCHEDSTATS
profile=sleep only works if CONFIG_SCHEDSTATS is set. This patch notes
the limitation in Documentation/kernel-parameters.txt and prints a
warning at boot-time if profile=sleep is used without CONFIG_SCHEDSTAT.
Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Satyam Sharma [Wed, 24 Oct 2007 16:23:50 +0000 (18:23 +0200)]
sched: use show_regs() to improve __schedule_bug() output
A full register dump along with stack backtrace would make the
"scheduling while atomic" message more helpful. Use show_regs() instead
of dump_stack() for this. We already know we're atomic in here (that is
why this function was called) so show_regs()'s atomicity expectations
are guaranteed.
Also, modify the output of the "BUG: scheduling while atomic:" header a
bit to keep task->comm and task->pid together and preempt_count() after
them.
Signed-off-by: Satyam Sharma <satyam@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 24 Oct 2007 16:23:48 +0000 (18:23 +0200)]
sched: clean up sched_domain_debug()
clean up sched_domain_debug().
this also shrinks the code a bit:
text data bss dec hex filename
50474 4306 480 55260 d7dc sched.o.before
50404 4306 480 55190 d796 sched.o.after
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 24 Oct 2007 16:23:48 +0000 (18:23 +0200)]
sched: fix fastcall mismatch in completion APIs
Jeff Dike noticed that wait_for_completion_interruptible()'s prototype
had a mismatched fastcall.
Fix this by removing the fastcall attributes from all the completion APIs.
Found-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Milton Miller [Wed, 24 Oct 2007 16:23:48 +0000 (18:23 +0200)]
sched: fix sched_domain sysctl registration again
commit
029190c515f15f512ac85de8fc686d4dbd0ae731 (cpuset
sched_load_balance flag) was not tested SCHED_DEBUG enabled as
committed as it dereferences NULL when used and it reordered
the sysctl registration to cause it to never show any domains
or their tunables.
Fixes:
1) restore arch_init_sched_domains ordering
we can't walk the domains before we build them
presently we register cpus with empty directories (no domain
directories or files).
2) make unregister_sched_domain_sysctl do nothing when already unregistered
detach_destroy_domains is now called one set of cpus at a time
unregister_syctl dereferences NULL if called with a null.
While the the function would always dereference null if called
twice, in the previous code it was always called once and then
was followed a register. So only the hidden bug of the
sysctl_root_table not being allocated followed by an attempt to
free it would have shown the error.
3) always call unregister and register in partition_sched_domains
The code is "smart" about unregistering only needed domains.
Since we aren't guaranteed any calls to unregister, always
unregister. Without calling register on the way out we
will not have a table or any sysctl tree.
4) warn if register is called without unregistering
The previous table memory is lost, leaving pointers to the
later freed memory in sysctl and leaking the memory of the
tables.
Before this patch on a 2-core 4-thread box compiled for SMT and NUMA,
the domains appear empty (there are actually 3 levels per cpu). And as
soon as two domains a null pointer is dereferenced (unreliable in this
case is stack garbage):
bu19a:~# ls -R /proc/sys/kernel/sched_domain/
/proc/sys/kernel/sched_domain/:
cpu0 cpu1 cpu2 cpu3
/proc/sys/kernel/sched_domain/cpu0:
/proc/sys/kernel/sched_domain/cpu1:
/proc/sys/kernel/sched_domain/cpu2:
/proc/sys/kernel/sched_domain/cpu3:
bu19a:~# mkdir /dev/cpuset
bu19a:~# mount -tcpuset cpuset /dev/cpuset/
bu19a:~# cd /dev/cpuset/
bu19a:/dev/cpuset# echo 0 > sched_load_balance
bu19a:/dev/cpuset# mkdir one
bu19a:/dev/cpuset# echo 1 > one/cpus
bu19a:/dev/cpuset# echo 0 > one/sched_load_balance
Unable to handle kernel paging request for data at address 0x00000018
Faulting instruction address: 0xc00000000006b608
NIP:
c00000000006b608 LR:
c00000000006b604 CTR:
0000000000000000
REGS:
c000000018d973f0 TRAP: 0300 Not tainted (2.6.23-bml)
MSR:
9000000000009032 <EE,ME,IR,DR> CR:
28242442 XER:
00000000
DAR:
0000000000000018, DSISR:
0000000040000000
TASK =
c00000001912e340[1987] 'bash' THREAD:
c000000018d94000 CPU: 2
..
NIP [
c00000000006b608] .unregister_sysctl_table+0x38/0x110
LR [
c00000000006b604] .unregister_sysctl_table+0x34/0x110
Call Trace:
[
c000000018d97670] [
c000000007017270] 0xc000000007017270 (unreliable)
[
c000000018d97720] [
c000000000058710] .detach_destroy_domains+0x30/0xb0
[
c000000018d977b0] [
c00000000005cf1c] .partition_sched_domains+0x1bc/0x230
[
c000000018d97870] [
c00000000009fdc4] .rebuild_sched_domains+0xb4/0x4c0
[
c000000018d97970] [
c0000000000a02e8] .update_flag+0x118/0x170
[
c000000018d97a80] [
c0000000000a1768] .cpuset_common_file_write+0x568/0x820
[
c000000018d97c00] [
c00000000009d95c] .cgroup_file_write+0x7c/0x180
[
c000000018d97cf0] [
c0000000000e76b8] .vfs_write+0xe8/0x1b0
[
c000000018d97d90] [
c0000000000e810c] .sys_write+0x4c/0x90
[
c000000018d97e30] [
c00000000000852c] syscall_exit+0x0/0x40
Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Gerrit Renker [Wed, 24 Oct 2007 12:53:01 +0000 (10:53 -0200)]
[CCID2/3]: Initialisation assignments of 0 are redundant
Assigning initial values of `0' is redundant when loading a new CCID structure,
since in net/dccp/ccid.c the entire CCID structure is zeroed out prior to
initialisation in ccid_new():
struct ccid {
struct ccid_operations *ccid_ops;
char ccid_priv[0];
};
// ...
if (rx) {
memset(ccid + 1, 0, ccid_ops->ccid_hc_rx_obj_size);
if (ccid->ccid_ops->ccid_hc_rx_init != NULL &&
ccid->ccid_ops->ccid_hc_rx_init(ccid, sk) != 0)
goto out_free_ccid;
} else {
memset(ccid + 1, 0, ccid_ops->ccid_hc_tx_obj_size);
/* analogous to the rx case */
}
This patch therefore removes the redundant assignments. Thanks to Arnaldo for
the inspiration.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Gerrit Renker [Wed, 24 Oct 2007 12:46:58 +0000 (10:46 -0200)]
[DCCP]: Unaligned pointer access
This fixes `unaligned (read) access' errors of the type
Kernel unaligned access at TPC[
100f970c] dccp_parse_options+0x4f4/0x7e0 [dccp]
Kernel unaligned access at TPC[
1011f2e4] ccid3_hc_tx_parse_options+0x1ac/0x380 [dccp_ccid3]
Kernel unaligned access at TPC[
100f9898] dccp_parse_options+0x680/0x880 [dccp]
by using the get_unaligned macro for parsing options.
Commiter note: Preserved the sparse __be{16,32} annotations.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Gerrit Renker [Wed, 24 Oct 2007 12:27:48 +0000 (10:27 -0200)]
[DCCP]: Convert Reset code into socket error number
This adds support for converting the 11 currently defined Reset codes into system
error numbers, which are stored in sk_err for further interpretation.
This makes the externally visible API behaviour similar to TCP, since a client
connecting to a non-existing port will experience ECONNREFUSED.
* Code 0, Unspecified, is interpreted as non-error (0);
* Code 1, Closed (normal termination), also maps into 0;
* Code 2, Aborted, maps into "Connection reset by peer" (ECONNRESET);
* Code 3, No Connection and
Code 7, Connection Refused, map into "Connection refused" (ECONNREFUSED);
* Code 4, Packet Error, maps into "No message of desired type" (ENOMSG);
* Code 5, Option Error, maps into "Illegal byte sequence" (EILSEQ);
* Code 6, Mandatory Error, maps into "Operation not supported on transport endpoint" (EOPNOTSUPP);
* Code 8, Bad Service Code, maps into "Invalid request code" (EBADRQC);
* Code 9, Too Busy, maps into "Too many users" (EUSERS);
* Code 10, Bad Init Cookie, maps into "Invalid request descriptor" (EBADR);
* Code 11, Aggression Penalty, maps into "Quota exceeded" (EDQUOT)
which makes sense in terms of using more than the `fair share' of bandwidth.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Gerrit Renker [Wed, 24 Oct 2007 12:18:06 +0000 (10:18 -0200)]
[DCCP]: One more exemption from full sequence number checks
This fixes the following problem: client connects to peer which has no DCCP
enabled or loaded; ICMP error messages ("Protocol Unavailable") can be seen
on the wire, but the application hangs. Reason: ICMP packets don't get through
to dccp_v4_err.
When reporting errors, a sequence number check is made for the DCCP packet
that had caused an ICMP error to arrive.
Such checks can not be made if the socket is in state LISTEN, RESPOND (which
in the implementation is the same as LISTEN), or REQUEST, since update_gsr()
has not been called in these states, hence the sequence window is 0..0.
This patch fixes the problem by adding the REQUEST state as another exemption
to the window check. The error reporting now works as expected on connecting.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Gerrit Renker [Wed, 24 Oct 2007 12:12:09 +0000 (10:12 -0200)]
[DCCP]: Retrieve packet sequence number for error reporting
This fixes a problem when analysing erroneous packets in dccp_v{4,6}_err:
* dccp_hdr_seq currently takes an skb
* however, the transport headers in the skb are shifted, due to the
preceding IPv4/v6 header.
Fixed for v4 and v6 by changing dccp_hdr_seq to take a struct dccp_hdr as
argument. Verified that the correct sequence number is now reported in the
error handler.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Adrian Bunk [Wed, 24 Oct 2007 12:09:25 +0000 (14:09 +0200)]
blackfin: fix sg fallout
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jens Axboe <axboe@carl.home.kernel.dk>
Jens Axboe [Wed, 24 Oct 2007 11:28:40 +0000 (13:28 +0200)]
xtensa: dma-mapping.h is using linux/scatterlist.h functions, so include it
It's currently using asm/scatterlist.h, but that is not enough.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Wed, 24 Oct 2007 11:25:26 +0000 (13:25 +0200)]
Merge branch 'for-linus' of ssh:///linux/kernel/git/hskinnemoen/avr32-2.6 into sg
Jens Axboe [Wed, 24 Oct 2007 11:21:21 +0000 (13:21 +0200)]
SG: audit of drivers that use blk_rq_map_sg()
They need to properly init the sg table, or blk_rq_map_sg() will
complain if CONFIG_DEBUG_SG is set.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
WANG Cong [Wed, 24 Oct 2007 11:07:11 +0000 (13:07 +0200)]
arch/um/drivers/ubd_kern.c: fix a building error
Fix this uml building error:
arch/um/drivers/ubd_kern.c: In function 'do_ubd_request':
arch/um/drivers/ubd_kern.c:1118: error: implicit declaration of function
'sg_page'
arch/um/drivers/ubd_kern.c:1118: warning: passing argument 6 of
'prepare_request' makes pointer from integer without a cast
make[1]: *** [arch/um/drivers/ubd_kern.o] Error 1
make: *** [arch/um/drivers] Error 2
Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com>
Add sg_init_table() call as well.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Alexey Dobriyan [Wed, 24 Oct 2007 10:58:02 +0000 (12:58 +0200)]
x86: fix bogus KERN_ALERT on oops
fix this:
printing eip:
f881b9f3 *pdpt =
0000000000003001 <1>*pde =
000000000480a067 *pte =
0000000000000000
^^^
[ mingo: added KERN_CONT as suggested by Pekka Enberg ]
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Jeff Garzik [Wed, 24 Oct 2007 10:58:02 +0000 (12:58 +0200)]
x86: lguest build fix
Fix this error (i386 !SMP build):
arch/x86/lguest/boot.c: In function lguest_init:
arch/x86/lguest/boot.c:1059: error: pm_power_off undeclared (first use in this function)
by including linux/pm.h.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Mike Galbraith [Wed, 24 Oct 2007 10:58:01 +0000 (12:58 +0200)]
x86: fix CONFIG_KEXEC build breakage
X86_32 build fix to commit
62a31a03b3d2a9d20e7a073e2cd9b27bfb7d6a3f
Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Jens Axboe [Wed, 24 Oct 2007 09:20:47 +0000 (11:20 +0200)]
SG: Change sg_set_page() to take length and offset argument
Most drivers need to set length and offset as well, so may as well fold
those three lines into one.
Add sg_assign_page() for those two locations that only needed to set
the page, where the offset/length is set outside of the function context.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jeff Garzik [Tue, 23 Oct 2007 22:36:39 +0000 (18:36 -0400)]
ISDN/sc: fix longstanding warning
drivers/isdn/sc/shmem.c: In function 'memcpy_toshmem':
drivers/isdn/sc/shmem.c:54: warning: passing argument 1 of 'memcpy_toio' makes pointer from integer without a cast
Also, remove some unneeded braces, and add some useful whitespace.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Haavard Skinnemoen [Wed, 24 Oct 2007 08:16:02 +0000 (10:16 +0200)]
AVR32: Fix sg_page breakage
The latest sg changes introduce the following build errors on AVR32:
include/asm/dma-mapping.h: In function ‘dma_map_sg’:
include/asm/dma-mapping.h:220: error: implicit declaration of function ‘sg_page’
include/asm/dma-mapping.h:220: error: invalid operands to binary -
include/asm/dma-mapping.h:221: error: implicit declaration of function ‘sg_virt’
include/asm/dma-mapping.h:221: warning: assignment makes pointer from integer without a cast
include/asm/dma-mapping.h: In function ‘dma_sync_sg_for_device’:
include/asm/dma-mapping.h:330: warning: passing argument 2 of ‘dma_cache_sync’ makes pointer from integer without a cast
Fix it by including the correct header file, i.e. linux/scatterlist.h
instead of asm/scatterlist.h.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Jens Axboe [Wed, 24 Oct 2007 07:01:09 +0000 (09:01 +0200)]
mmc: sg fallout
Do a full scan of the directory to try and be a bit more proactive,
instead of waiting for things to break.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Geert Uytterhoeven [Wed, 24 Oct 2007 06:55:40 +0000 (08:55 +0200)]
m68k: sg fallout
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Jens Axboe <axboe@carl.home.kernel.dk>
David Miller [Wed, 24 Oct 2007 06:46:01 +0000 (08:46 +0200)]
More SG build fixes
Signed-off-by: Jens Axboe <axboe@carl.home.kernel.dk>
Heiko Carstens [Wed, 24 Oct 2007 06:45:35 +0000 (08:45 +0200)]
sg: add missing sg_init_table calls to zfcp
kernel BUG at include/linux/scatterlist.h:50!
illegal operation: 0001 [#1]
[...]
Call Trace:
([<
000000000026f184>] zfcp_ns_gid_pn_request+0x4c/0x2a0)
[<
0000000000276dd4>] zfcp_erp_strategy_do_action+0x1410/0x1938
[<
0000000000278412>] zfcp_erp_thread+0x4fa/0x1430
[<
000000000001990a>] kernel_thread_starter+0x6/0xc
[<
0000000000019904>] kernel_thread_starter+0x0/0xc
Cc: Swen Schillig <swen@vnet.ibm.com>
Cc: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Jens Axboe <axboe@carl.home.kernel.dk>
David Miller [Wed, 24 Oct 2007 06:44:21 +0000 (08:44 +0200)]
SG build fix
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jens Axboe <axboe@carl.home.kernel.dk>
Chris Wright [Wed, 24 Oct 2007 03:36:14 +0000 (20:36 -0700)]
[SPARC64]: pass correct addr in get_fb_unmapped_area(MAP_FIXED)
Looks like the MAP_FIXED case is using the wrong address hint. I'd
expect the comment "don't mess with it" means pass the request
straight on through, not change the address requested to -ENOMEM.
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Pavel Emelyanov [Wed, 24 Oct 2007 04:17:27 +0000 (21:17 -0700)]
[IPV4]: Explicitly call fib_get_table() in fib_frontend.c
In case the "multiple tables" config option is y, the ip_fib_local_table
is not a variable, but a macro, that calls fib_get_table(RT_TABLE_LOCAL).
Some code uses this "variable" *3* times in one place, thus implicitly
making 3 calls. Fix it.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Pavel Emelyanov [Wed, 24 Oct 2007 04:15:21 +0000 (21:15 -0700)]
[NET]: Use BUILD_BUG_ON in net/core/flowi.c
Instead of ugly extern not-existing function.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Pavel Emelyanov [Wed, 24 Oct 2007 04:14:45 +0000 (21:14 -0700)]
[NET]: Remove in-code externs for some functions from net/core/dev.c
Inconsistent prototype and real type for functions may have worse
consequences, than those for variables, so move them into a header.
Since they are used privately in net/core, make this file reside in
the same place.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Pavel Emelyanov [Wed, 24 Oct 2007 04:13:53 +0000 (21:13 -0700)]
[NET]: Don't declare extern variables in net/core/sysctl_net_core.c
Some are already declared in include/linux/netdevice.h, while
some others (xfrm ones) need to be declared.
The driver/net/rrunner.c just uses same extern as well, so
cleanup it also.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Chuck Lever [Wed, 24 Oct 2007 04:08:54 +0000 (21:08 -0700)]
[TCP]: Remove unneeded implicit type cast when calling tcp_minshall_update()
The tcp_minshall_update() function is called in exactly one place, and is
passed an unsigned integer for the mss_len argument. Make the sign of the
argument match the sign of the passed variable in order to eliminate an
unneeded implicit type cast and a mixed sign comparison in
tcp_minshall_update().
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Chuck Lever [Wed, 24 Oct 2007 04:07:32 +0000 (21:07 -0700)]
[NET]: Treat the sign of the result of skb_headroom() consistently
In some places, the result of skb_headroom() is compared to an unsigned
integer, and in others, the result is compared to a signed integer. Make
the comparisons consistent and correct.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Roel Kluin [Wed, 24 Oct 2007 03:52:48 +0000 (20:52 -0700)]
[9P]: Fix missing unlock before return in p9_mux_poll_start
Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Signed-off-by: David S. Miller <davem@davemloft.net>
Pavel Emelyanov [Wed, 24 Oct 2007 03:50:58 +0000 (20:50 -0700)]
[PKT_SCHED]: Fix sch_prio.c build with CONFIG_NETDEVICES_MULTIQUEUE
Fix one more user of netiff_subqueue_stopped. To check for the
queue id one must use the __netiff_subqueue_stoped call.
This run out of my sight when I made the:
668f895a85b0c3a62a690425145f13dabebebd7a
[NET]: Hide the queue_mapping field inside netif_subqueue_stopped
commit :(
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Timo Teras [Wed, 24 Oct 2007 03:31:53 +0000 (20:31 -0700)]
[IPV4] ip_gre: sendto/recvfrom NBMA address
When GRE tunnel is in NBMA mode, this patch allows an application to use
a PF_PACKET socket to:
- send a packet to specific NBMA address with sendto()
- use recvfrom() to receive packet and check which NBMA address it came from
This is required to implement properly NHRP over GRE tunnel.
Signed-off-by: Timo Teras <timo.teras@iki.fi>
Acked-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Pavel Emelyanov [Wed, 24 Oct 2007 03:30:25 +0000 (20:30 -0700)]
[SCTP]: Consolidate sctp_ulpq_renege_xxx functions
Both are equal, except for the list to be traversed.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Denis V. Lunev [Wed, 24 Oct 2007 03:29:25 +0000 (20:29 -0700)]
[NETLINK]: Fix ACK processing after netlink_dump_start
Revert to original netlink behavior. Do not reply with ACK if the
netlink dump has bees successfully started.
libnl has been broken by the
cd40b7d3983c708aabe3d3008ec64ffce56d33b0
The following command reproduce the problem:
/nl-route-get 192.168.1.1
Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Patrick McHardy [Wed, 24 Oct 2007 03:26:36 +0000 (20:26 -0700)]
[VLAN]: MAINTAINERS update
Ben stepped down from VLAN maintainership due to a lack of time, add
myself as new maintainer.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Acked-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Arnaldo Carvalho de Melo [Wed, 24 Oct 2007 03:23:30 +0000 (20:23 -0700)]
[DCCP]: Implement SIOCINQ/FIONREAD
Just like UDP.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Leandro Melo de Sales <leandroal@gmail.com>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: David S. Miller <davem@davemloft.net>
Jeff Garzik [Wed, 24 Oct 2007 03:19:37 +0000 (20:19 -0700)]
[NET]: Validate device addr prior to interface-up
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Linus Torvalds [Wed, 24 Oct 2007 03:50:57 +0000 (20:50 -0700)]
Linux 2.6.24-rc1
The patch is big. Really big. You just won't believe how vastly hugely
mindbogglingly big it is. I mean you may think it's a long way down the
road to the chemist, but that's just peanuts to how big the patch from
2.6.23 is.
But it's all good.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:52 +0000 (12:03 +1000)]
add port definition for mcf UART driver
Add a port type definition for the Freescale UART driver ports (mcf.c).
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:04:13 +0000 (12:04 +1000)]
m68knommu: remove unused machdep variable definitions
Remove old definitions of the timer function pointers.
Add definitions of the common hardware timer functions.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:04:08 +0000 (12:04 +1000)]
m68knommu: define DMA channels for ColdFire 532x
Create definition for DMA channels on the ColdFire 532x family.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:56 +0000 (12:03 +1000)]
m68knommu: add platform struct for ColdFire UART driver
Add platform support structure for use with new ColdFire UART driver.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:46 +0000 (12:03 +1000)]
m68knommu: mark mem init functions as __init
Mark the m68knommu memory init functions as __init.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:41 +0000 (12:03 +1000)]
m68knommu: mark setup_arch() as __init
Mark the m68knommu setup_arch() function as __init.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:32 +0000 (12:03 +1000)]
m68knommu: cleanup 68VZ328 init code
Removed header includes not needed.
Remove use of old m68knommu timer function pointers.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:28 +0000 (12:03 +1000)]
m68knommu: cleanup 68EZ328 init code
Clean up 68EZ328 timer support code. Removed header includes not needed.
Remove use of old m68knommu timer function pointers.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:25 +0000 (12:03 +1000)]
m68knommu: cleanup 68360 startup code
Clean up 68360 timer support code. Removed header includes not needed.
Remove use of old m68knommu timer function pointers. Use common function
naming for 68328 timer functions.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:20 +0000 (12:03 +1000)]
m68knommu: cleanup 68328 timer code
Use common function naming for 68328 timer functions to make them
consistent with the various other hardware m68knommu timers.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:16 +0000 (12:03 +1000)]
m68knommu: cleanup 68328 init code
Clean up 68328 timer support code. Removed header includes not needed.
Remove use of old m68knommu timer function pointers.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Greg Ungerer [Wed, 24 Oct 2007 02:03:10 +0000 (12:03 +1000)]
m68knommu: remove unused variables in setup.c
Remove unused variables from setup.c code.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Wed, 24 Oct 2007 01:57:39 +0000 (18:57 -0700)]
Merge branch 'irq-upstream' of /linux/kernel/git/jgarzik/misc-2.6
* 'irq-upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
[SPARC, XEN, NET/CXGB3] use irq_handler_t where appropriate
drivers/char/riscom8: clean up irq handling
isdn/sc: irq handler clean
isdn/act2000: fix major bug. clean irq handler.
char/pcmcia/synclink_cs: trim trailing whitespace
drivers/char/ip2: separate polling and irq-driven work entry points
drivers/char/ip2: split out irq core logic into separate function
[NETDRVR] lib82596, netxen: delete pointless tests from irq handler
Eliminate pointless casts from void* in a few driver irq handlers.
[PARPORT] Remove unused 'irq' argument from parport irq functions
[PARPORT] Kill useful 'irq' arg from parport_{generic_irq,ieee1284_interrupt}
[PARPORT] Consolidate code copies into a single generic irq handler
Linus Torvalds [Wed, 24 Oct 2007 01:57:22 +0000 (18:57 -0700)]
Merge branch 'warnings' of /linux/kernel/git/jgarzik/misc-2.6
* 'warnings' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
ni5010: kill unused variable
eexpress: fix !SMP unused-var warning
cgroup: kill unused variable
Linus Torvalds [Wed, 24 Oct 2007 01:56:54 +0000 (18:56 -0700)]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (39 commits)
Remove Andrew Morton from list of net driver maintainers.
bonding: Acquire correct locks in alb for promisc change
bonding: Convert more locks to _bh, acquire rtnl, for new locking
bonding: Convert locks to _bh, rework alb locking for new locking
bonding: Convert miimon to new locking
bonding: Convert balance-rr transmit to new locking
Convert bonding timers to workqueues
Update MAINTAINERS to reflect my (jgarzik's) current efforts.
pasemi_mac: fix typo
defxx.c: dfx_bus_init() is __devexit not __devinit
s390 MAINTAINERS
remove header_ops bug in qeth driver
sky2: crash on remove
MIPSnet: Delete all the useless debugging printks.
AR7 ethernet: small post-merge cleanups and fixes
mv643xx_eth: Hook up mv643xx_get_sset_count
mv643xx_eth: Remove obsolete checksum offload comment
mv643xx_eth: Merge drivers/net/mv643xx_eth.h into mv643xx_eth.c
mv643xx_eth: Remove unused register defines
mv643xx_eth: Clean up mv643xx_eth.h
...
Linus Torvalds [Wed, 24 Oct 2007 01:56:21 +0000 (18:56 -0700)]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
jmicron: update quirk for JMB361/3/5/6
libata: add HTS542525K9SA00 to NCQ blacklist
libata-core: auditting chk_status v check_status
[libata] checkpatch-inspired cleanups
Jeff Garzik [Tue, 23 Oct 2007 22:36:43 +0000 (18:36 -0400)]
ni5010: kill unused variable
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Jeff Garzik [Tue, 23 Oct 2007 22:36:42 +0000 (18:36 -0400)]
eexpress: fix !SMP unused-var warning
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Jeff Garzik [Tue, 23 Oct 2007 22:36:44 +0000 (18:36 -0400)]
cgroup: kill unused variable
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Tejun Heo [Tue, 23 Oct 2007 06:27:31 +0000 (15:27 +0900)]
jmicron: update quirk for JMB361/3/5/6
Set bits 0, 4, 5 and 7 of PCI configuration register 0x40 in the
quirk. This has the following effects and is recommended by the
vendor.
* Force enable of IDE channels (used to be left alone as BIOS
configured)
* Change initial phase behavior of PIO cycle such that the host pulls
down the bus instead of tristating it. Vendor recommends this
setting.
The above settings are better for the current generation of
controllers and needed for the upcoming next generation.
Tested on JMB363.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Ethan Hsiao <ethanhsiao@jmicron.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Tejun Heo [Tue, 23 Oct 2007 10:07:49 +0000 (19:07 +0900)]
libata: add HTS542525K9SA00 to NCQ blacklist
Another one doing spurious NCQ completions. Blacklist it.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Luca Tettamanti <kronos.it@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Alan Cox [Tue, 23 Oct 2007 15:50:02 +0000 (16:50 +0100)]
libata-core: auditting chk_status v check_status
Did a complete audit of these and found we have another error case.
ata_bus_softreset calls ata_check_status which means that it tries to do
an ioread8 on the port blindly and check versus 0xFF for an error.
It should of course be using the ap->ops method for this via chk_status,
and this bug causes a wrog status call on the NS87415 at least.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jeff Garzik [Fri, 19 Oct 2007 10:42:56 +0000 (06:42 -0400)]
[libata] checkpatch-inspired cleanups
Tackle the relatively sane complaints of checkpatch --file.
The vast majority is indentation and whitespace changes, the rest are
* #include fixes
* printk KERN_xxx prefix addition
* BSS/initializer cleanups
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Jeff Garzik [Wed, 24 Oct 2007 00:56:59 +0000 (20:56 -0400)]
Remove Andrew Morton from list of net driver maintainers.
He now rules the world, not just this tiny tract of land.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Acked-by: Andrew Morton
Jay Vosburgh [Thu, 18 Oct 2007 00:37:51 +0000 (17:37 -0700)]
bonding: Acquire correct locks in alb for promisc change
Update ALB mode monitor to hold correct locks (RTNL and nothing
else) when calling dev_set_promiscuity.
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jay Vosburgh [Thu, 18 Oct 2007 00:37:50 +0000 (17:37 -0700)]
bonding: Convert more locks to _bh, acquire rtnl, for new locking
Convert more lock acquisitions to _bh flavor to avoid deadlock
with workqueue activity and add acquisition of RTNL in appropriate places.
Affects ALB mode, as well as core bonding functions and sysfs.
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jay Vosburgh [Thu, 18 Oct 2007 00:37:49 +0000 (17:37 -0700)]
bonding: Convert locks to _bh, rework alb locking for new locking
Convert locking-related activity to new & improved system.
Convert some lock acquisitions to _bh and rework parts of ALB mode, both
to avoid deadlocks with workqueue activity.
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jay Vosburgh [Thu, 18 Oct 2007 00:37:48 +0000 (17:37 -0700)]
bonding: Convert miimon to new locking
Convert mii (link state) monitor to acquire correct locks for
failover events. In particular, failovers generally require RTNL at a low
level (when manipulating device MAC addresses, for example) and no other
locks. The high level monitor is responsible for acquiring a known set
of locks, RTNL, the bond->lock for read and the slave_lock for write, and
the low level failover processing can then release appropriate locks as
needed. This patch provides the high level portion.
As it is undesirable to acquire RTNL for every monitor pass (which
may occur as often as every 10 ms), the miimon has been converted to
do conditional locking. A first pass inspects all slaves to determine
if any action is required, and if so, a second pass (after acquring RTNL)
is done to perform any actions (doing a complete rescan, as the situation
may have changed when all locks were released).
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jay Vosburgh [Thu, 18 Oct 2007 00:37:47 +0000 (17:37 -0700)]
bonding: Convert balance-rr transmit to new locking
Change locking in balance-rr transmit processing to use a free
running counter to determine which slave to transmit on. Instead, a
free-running counter is maintained, and modulo arithmetic used to select
a slave for transmit.
This removes lock operations from the TX path, and eliminates
a deadlock introduced by the conversion to work queues.
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jay Vosburgh [Thu, 18 Oct 2007 00:37:45 +0000 (17:37 -0700)]
Convert bonding timers to workqueues
Convert bonding timers to workqueues. This converts the various
monitor functions to run in periodic work queues instead of timers. This
patch introduces the framework and convers the calls, but does not resolve
various locking issues, and does not stand alone.
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>