safe/jmp/linux-2.6
15 years agoipv6: Fix conflict resolutions during ipv6 binding
Vlad Yasevich [Tue, 24 Mar 2009 16:24:51 +0000 (16:24 +0000)]
ipv6: Fix conflict resolutions during ipv6 binding

The ipv6 version of bind_conflict code calls ipv6_rcv_saddr_equal()
which at times wrongly identified intersections between addresses.
It particularly broke down under a few instances and caused erroneous
bind conflicts.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoipv6: Make v4-mapped bindings consistent with IPv4
Vlad Yasevich [Tue, 24 Mar 2009 16:24:50 +0000 (16:24 +0000)]
ipv6: Make v4-mapped bindings consistent with IPv4

Binding to a v4-mapped address on an AF_INET6 socket should
produce the same result as binding to an IPv4 address on
AF_INET socket.  The two are interchangable as v4-mapped
address is really a portability aid.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoipv6: Allow ipv4 wildcard binds after ipv6 address binds
Vlad Yasevich [Tue, 24 Mar 2009 16:24:49 +0000 (16:24 +0000)]
ipv6: Allow ipv4 wildcard binds after ipv6 address binds

The IPv4 wildcard (0.0.0.0) address does not intersect
in any way with explicit IPv6 addresses.  These two should
be permitted, but the IPv4 conflict code checks the ipv6only
bit as part of the test.  Since binding to an explicit IPv6
address restricts the socket to only that IPv6 address, the
side-effect is that the socket behaves as v6-only.  By
explicitely setting ipv6only in this case, allows the 2 binds
to succeed.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoipv6: Disallow binding to v4-mapped address on v6-only socket.
Vlad Yasevich [Tue, 24 Mar 2009 16:24:48 +0000 (16:24 +0000)]
ipv6: Disallow binding to v4-mapped address on v6-only socket.

A socket marked v6-only, can not receive or send traffic to v4-mapped
addresses.  Thus allowing binding to v4-mapped address on such a
socket makes no sense.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agobe2net: cleanup rx/tx rate calculations
Sathya Perla [Tue, 24 Mar 2009 23:40:13 +0000 (16:40 -0700)]
be2net: cleanup rx/tx rate calculations

Hi, Pls accept this patch to cleanup rx/tx rate calculations as follows:
- check for jiffies wraparound
- remove typecast of a denominator
- do rate calculation only in workqueue context periodically

Signed-off-by: Sathya Perla <sathyap@serverengines.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetlink: add NETLINK_NO_ENOBUFS socket flag
Pablo Neira Ayuso [Tue, 24 Mar 2009 23:37:55 +0000 (16:37 -0700)]
netlink: add NETLINK_NO_ENOBUFS socket flag

This patch adds the NETLINK_NO_ENOBUFS socket flag. This flag can
be used by unicast and broadcast listeners to avoid receiving
ENOBUFS errors.

Generally speaking, ENOBUFS errors are useful to notify two things
to the listener:

a) You may increase the receiver buffer size via setsockopt().
b) You have lost messages, you may be out of sync.

In some cases, ignoring ENOBUFS errors can be useful. For example:

a) nfnetlink_queue: this subsystem does not have any sort of resync
method and you can decide to ignore ENOBUFS once you have set a
given buffer size.

b) ctnetlink: you can use this together with the socket flag
NETLINK_BROADCAST_SEND_ERROR to stop getting ENOBUFS errors as
you do not need to resync (packets whose event are not delivered
are drop to provide reliable logging and state-synchronization).

Moreover, the use of NETLINK_NO_ENOBUFS also reduces a "go up, go down"
effect in terms of performance which is due to the netlink congestion
control when the listener cannot back off. The effect is the following:

1) throughput rate goes up and netlink messages are inserted in the
receiver buffer.
2) Then, netlink buffer fills and overruns (set on nlk->state bit 0).
3) While the listener empties the receiver buffer, netlink keeps
dropping messages. Thus, throughput goes dramatically down.
4) Then, once the listener has emptied the buffer (nlk->state
bit 0 is set off), goto step 1.

This effect is easy to trigger with netlink broadcast under heavy
load, and it is more noticeable when using a big receiver buffer.
You can find some results in [1] that show this problem.

[1] http://1984.lsi.us.es/linux/netlink/

This patch also includes the use of sk_drop to account the number of
netlink messages drop due to overrun. This value is shown in
/proc/net/netlink.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomyri10ge: update firmware headers to 1.4.41
Brice Goglin [Tue, 24 Mar 2009 23:32:13 +0000 (16:32 -0700)]
myri10ge: update firmware headers to 1.4.41

Update myri10ge firmware headers to firmware version 1.4.41.

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomacb: fix warning "warning: unused variable `dev' "
vibi sreenivasan [Tue, 24 Mar 2009 23:30:20 +0000 (16:30 -0700)]
macb: fix warning "warning: unused variable `dev' "

Removed unused variable dev

Signed-off-by: vibi sreenivasan <vibi_sreenivasan@cms.com>
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoucc_geth: Convert to net_device_ops
Joakim Tjernlund [Fri, 20 Mar 2009 20:09:14 +0000 (21:09 +0100)]
ucc_geth: Convert to net_device_ops

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoclaw: fix minor findings from code analysis tool
Andrew H. Richter [Tue, 24 Mar 2009 03:27:51 +0000 (03:27 +0000)]
claw: fix minor findings from code analysis tool

This patch fixes two problems in the claw driver identified by
static code analysis:
o Change in case differentiation of received sense codes
o Use correct data length in claw hard_start_xmit routine

Signed-off-by: Andrew H. Richter <richtera@us.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoctcm: fix minor findings from code analysis tool
Joel A. Fowler [Tue, 24 Mar 2009 03:27:49 +0000 (03:27 +0000)]
ctcm: fix minor findings from code analysis tool

From: Ursula Braun <ursula.braun@de.ibm.com>

This patch fixes problems in the ctcm driver identified by
static code analysis:
o remove an unnecessary always true condition in ctcm_unpack_skb
o remove duplicate assignment in ctc_mpc_alloc_channel
o remove an unnecessary always true condition in ctcmpc_send_sweep_resp
o remove duplicate initialization in ctcmpc_unpack_skb
o shorten if condition in mpc_action_go_inop
o remove INOP event if mpc group is undefined in mpc_action_doxid7

Signed-off-by: Joel A. Fowler <fowlerja@us.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoctcm: avoid wraparound in length of incoming data
Roel Kluin [Tue, 24 Mar 2009 03:27:48 +0000 (03:27 +0000)]
ctcm: avoid wraparound in length of incoming data

Since the receive code should tolerate any incoming garbage, it
should be protected against a potential wraparound when manipulating
length values within incoming data.
block_len is unsigned, so a too large subtraction will cause a
wraparound.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoctcm: invalid return code from hard_start_xmit
Ursula Braun [Tue, 24 Mar 2009 03:27:47 +0000 (03:27 +0000)]
ctcm: invalid return code from hard_start_xmit

Avoid kernel warning by using the correct hard_start_xmit return
code NETDEV_TX_BUSY for skb requeuing.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoclaw: invalid return codes from hard_start_xmit
Ursula Braun [Tue, 24 Mar 2009 03:27:46 +0000 (03:27 +0000)]
claw: invalid return codes from hard_start_xmit

Avoid kernel warnings by using the correct hard_start_xmit return
code NETDEV_TX_BUSY for skb requeuing.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetiucv: invalid return code from hard_start_xmit
Ursula Braun [Tue, 24 Mar 2009 03:27:45 +0000 (03:27 +0000)]
netiucv: invalid return code from hard_start_xmit

Avoid kernel warning by using the correct hard_start_xmit return
code NETDEV_TX_BUSY for skb requeuing.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agolcs: invalid return codes from hard_start_xmit.
Klaus-Dieter Wacker [Tue, 24 Mar 2009 03:27:44 +0000 (03:27 +0000)]
lcs: invalid return codes from hard_start_xmit.

Lcs hard_start_xmit routine issued return codes other than
defined for this interface. Now lcs returns only either
NETDEV_TX_OK or NETDEV_TX_BUSY.

Signed-off-by: Klaus-Dieter Wacker <kdwacker@de.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoUse kthread instead of kernel_thread
Klaus-Dieter Wacker [Tue, 24 Mar 2009 03:27:43 +0000 (03:27 +0000)]
Use kthread instead of kernel_thread

Lcs uses low-level kernel_thread implementation.
All drivers should use <linux/kthread.h> API instead.

Signed-off-by: Klaus-Dieter Wacker <kdwacker@de.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonet: Add dependent headers to trace/skb.h
Josh Stone [Tue, 24 Mar 2009 09:44:28 +0000 (09:44 +0000)]
net: Add dependent headers to trace/skb.h

The tracing header needs to include definitions for the macros used and
the types referenced.  This lets automated tracing tools like SystemTap
make use of the tracepoint without any specific knowledge of its
meaning (leaving that to the user).

Signed-off-by: Josh Stone <jistone@redhat.com>
CC: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoarp_tables: ifname_compare() can assume 16bit alignment
Eric Dumazet [Tue, 24 Mar 2009 21:15:22 +0000 (14:15 -0700)]
arp_tables: ifname_compare() can assume 16bit alignment

Arches without efficient unaligned access can still perform a loop
assuming 16bit alignment in ifname_compare()

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetfilter: trivial Kconfig spelling fixes
Jan Engelhardt [Tue, 24 Mar 2009 20:35:27 +0000 (13:35 -0700)]
netfilter: trivial Kconfig spelling fixes

Supplements commit 67c0d57930ff9a24c6c34abee1b01f7716a9b0e2.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
David S. Miller [Tue, 24 Mar 2009 20:24:36 +0000 (13:24 -0700)]
Merge branch 'master' of git://git./linux/kernel/git/kaber/nf-next-2.6

15 years agoucc_geth: Fix build breakage caused by a merge
Anton Vorontsov [Tue, 24 Mar 2009 19:06:46 +0000 (12:06 -0700)]
ucc_geth: Fix build breakage caused by a merge

This patch fixes following build error:

  CC      ucc_geth.o
ucc_geth.c: In function 'ucc_geth_probe':
ucc_geth.c:3644: error: implicit declaration of function 'uec_mdio_bus_name'
make[2]: *** [ucc_geth.o] Error 1

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetfilter: nf_conntrack: Reduce conntrack count in nf_conntrack_free()
Eric Dumazet [Tue, 24 Mar 2009 13:26:50 +0000 (14:26 +0100)]
netfilter: nf_conntrack: Reduce conntrack count in nf_conntrack_free()

We use RCU to defer freeing of conntrack structures. In DOS situation, RCU might
accumulate about 10.000 elements per CPU in its internal queues. To get accurate
conntrack counts (at the expense of slightly more RAM used), we might consider
conntrack counter not taking into account "about to be freed elements, waiting
in RCU queues". We thus decrement it in nf_conntrack_free(), not in the RCU
callback.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Tested-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Patrick McHardy <kaber@trash.net>
15 years agoucc_geth: Fix merge error.
David S. Miller [Mon, 23 Mar 2009 23:21:16 +0000 (16:21 -0700)]
ucc_geth: Fix merge error.

I left a merge failure unresolved, noticed by Stephen
Rothwell.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agofsl_pq_mdio: Use proper address translation
Anton Vorontsov [Thu, 19 Mar 2009 06:48:08 +0000 (06:48 +0000)]
fsl_pq_mdio: Use proper address translation

Currently the driver just read "reg" property for constructing MDIO
bus IDs, but this won't work when we'll start using "ranges = <>" in
the device tree, so this will pop up:

Freescale PowerQUICC MII Bus: probed
sysfs: duplicate filename 'mdio@520' can not be created
------------[ cut here ]------------
Badness at c00cb6b8 [verbose debug info unavailable]
NIP: c00cb6b8 LR: c00cb6b8 CTR: c001271c
REGS: cf82fc10 TRAP: 0700   Not tainted  (2.6.29-rc7-03702-g7ccd10f)
MSR: 00029032 <EE,ME,CE,IR,DR>  CR: 42044022  XER: 20000000
TASK = cf81fbd0[1] 'swapper' THREAD: cf82e000
GPR00: c00cb6b8 cf82fcc0 cf81fbd0 0000003b 00000e42 ffffffff 00004000 00000e42
GPR08: c03cb0fc c03bfbdc 00000e42 c03cac50 22044022 1006a2bc 0ffcb000 00000000
GPR16: 0ffc04b0 0ffc5a40 00000000 0ffc79a8 0f7863a8 00000004 00000000 00000000
GPR24: c033a6a8 d1014520 cf85e840 cf82fd08 cf87cf2c cf82fcd8 cf85dea8 ffffffef
NIP [c00cb6b8] sysfs_add_one+0x4c/0x54
LR [c00cb6b8] sysfs_add_one+0x4c/0x54
Call Trace:
[cf82fcc0] [c00cb6b8] sysfs_add_one+0x4c/0x54 (unreliable)
[cf82fcd0] [c00cbc18] create_dir+0x58/0xc0
[cf82fd00] [c00cbcc0] sysfs_create_dir+0x40/0x70
[cf82fd20] [c0159388] create_dir+0x28/0x78
[cf82fd30] [c0159824] kobject_add_internal+0x98/0x13c
[cf82fd50] [c0159e98] kobject_add+0x60/0x98
[cf82fd80] [c018a480] device_add+0x98/0x2ac
[cf82fda0] [c01a2380] mdiobus_register+0xbc/0x1c0
[cf82fdc0] [c019f31c] fsl_pq_mdio_probe+0x284/0x2a0
[cf82fe00] [c0223814] of_platform_device_probe+0x5c/0x84
...

This patch fixes the issue by translating the "reg" property to a full
address, and thus avoids the duplicate names.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agospider_net: Add missing .ndo_validate_addr
David S. Miller [Mon, 23 Mar 2009 21:42:09 +0000 (14:42 -0700)]
spider_net: Add missing .ndo_validate_addr

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomyri_sbus/sunbmac/sunlance/sunqe: Add missing net_device_ops entries.
David S. Miller [Mon, 23 Mar 2009 21:29:24 +0000 (14:29 -0700)]
myri_sbus/sunbmac/sunlance/sunqe: Add missing net_device_ops entries.

Noticed by Stephen Hemminger.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Mon, 23 Mar 2009 20:35:04 +0000 (13:35 -0700)]
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

Conflicts:
drivers/net/ucc_geth.c

15 years agosunqe: Convert to net_device_ops.
David S. Miller [Mon, 23 Mar 2009 20:33:37 +0000 (13:33 -0700)]
sunqe: Convert to net_device_ops.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosunlance: Convert to net_device_ops.
David S. Miller [Mon, 23 Mar 2009 20:33:28 +0000 (13:33 -0700)]
sunlance: Convert to net_device_ops.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosunbmac: Convert to net_device_ops.
David S. Miller [Mon, 23 Mar 2009 20:33:21 +0000 (13:33 -0700)]
sunbmac: Convert to net_device_ops.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomyri_sbus: Convert to net_device_ops.
David S. Miller [Mon, 23 Mar 2009 20:33:11 +0000 (13:33 -0700)]
myri_sbus: Convert to net_device_ops.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonefilter: nfnetlink: add nfnetlink_set_err and use it in ctnetlink
Pablo Neira Ayuso [Mon, 23 Mar 2009 12:21:06 +0000 (13:21 +0100)]
nefilter: nfnetlink: add nfnetlink_set_err and use it in ctnetlink

This patch adds nfnetlink_set_err() to propagate the error to netlink
broadcast listener in case of memory allocation errors in the
message building.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Patrick McHardy <kaber@trash.net>
15 years agonetfilter: sysctl support of logger choice
Eric Leblond [Mon, 23 Mar 2009 12:16:53 +0000 (13:16 +0100)]
netfilter: sysctl support of logger choice

This patchs adds support of modification of the used logger via sysctl.
It can be used to change the logger to module that can not use the bind
operation (ipt_LOG and ipt_ULOG). For this purpose, it creates a
directory /proc/sys/net/netfilter/nf_log which contains a file
per-protocol. The content of the file is the name current logger (NONE if
not set) and a logger can be setup by simply echoing its name to the file.
By echoing "NONE" to a /proc/sys/net/netfilter/nf_log/PROTO file, the
logger corresponding to this PROTO is set to NULL.

Signed-off-by: Eric Leblond <eric@inl.fr>
Signed-off-by: Patrick McHardy <kaber@trash.net>
15 years agoatl1c: remove duplicated #include
Huang Weiyi [Mon, 23 Mar 2009 08:18:58 +0000 (01:18 -0700)]
atl1c: remove duplicated #include

Remove duplicated #include in drivers/net/atl1c/atl1c.h.

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agospider_net: Fix build.
David S. Miller [Mon, 23 Mar 2009 08:03:04 +0000 (01:03 -0700)]
spider_net: Fix build.

Based upon a report by Stephen Rothwell.

Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agotcp: Discard segments that ack data not yet sent
John Dykstra [Mon, 23 Mar 2009 04:49:57 +0000 (21:49 -0700)]
tcp: Discard segments that ack data not yet sent

Discard incoming packets whose ack field iincludes data not yet sent.
This is consistent with RFC 793 Section 3.9.

Change tcp_ack() to distinguish between too-small and too-large ack
field values.  Keep segments with too-large ack fields out of the fast
path, and change slow path to discard them.

Reported-by: Oliver Zheng <mailinglists+netdev@oliverzheng.com>
Signed-off-by: John Dykstra <john.dykstra1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoucc_geth: Fix oops when using fixed-link support
Anton Vorontsov [Mon, 23 Mar 2009 04:30:52 +0000 (21:30 -0700)]
ucc_geth: Fix oops when using fixed-link support

commit b1c4a9dddf09fe99b8f88252718ac5b357363dc4 ("ucc_geth: Change
uec phy id to the same format as gianfar's") introduced a regression
in the ucc_geth driver that causes this oops when fixed-link is used:

Unable to handle kernel paging request for data at address 0x00000000
Faulting instruction address: 0xc0151270
Oops: Kernel access of bad area, sig: 11 [#1]
TMCUTU
NIP: c0151270 LR: c0151270 CTR: c0017760
REGS: cf81fa60 TRAP: 0300   Not tainted  (2.6.29-rc8)
MSR: 00009032 <EE,ME,IR,DR>  CR: 24024042  XER: 20000000
DAR: 00000000, DSISR: 20000000
TASK = cf81cba0[1] 'swapper' THREAD: cf81e000
GPR00: c0151270 cf81fb10 cf81cba0 00000000 c0272e20 c025f354 00001e80
cf86b08c
GPR08: d1068200 cffffb74 06000000 d106c200 42024042 10085148 0fffd000
0ffc81a0
GPR16: 00000001 00000001 00000000 007ffeb0 00000000 0000c000 cf83f36c
cf83f000
GPR24: 00000030 cf83f360 cf81fb20 00000000 d106c200 20000000 00001e80
cf83f360
NIP [c0151270] ucc_geth_open+0x330/0x1efc
LR [c0151270] ucc_geth_open+0x330/0x1efc
Call Trace:
[cf81fb10] [c0151270] ucc_geth_open+0x330/0x1efc (unreliable)
[cf81fba0] [c0187638] dev_open+0xbc/0x12c
[cf81fbc0] [c0187e38] dev_change_flags+0x8c/0x1b0

This patch fixes the issue by removing offending (and somewhat
duplicate) code from init_phy() routine, and changes _probe()
function to use uec_mdio_bus_name().

Also, since we fully construct phy_bus_id in the _probe() routine,
we no longer need ->phy_address and ->mdio_bus fields in
ucc_geth_info structure.

I wish the patch would be a bit shorter, but it seems like the only
way to fix the issue in a sane way. Luckily, the patch has been
tested with real PHYs and fixed-link, so no further regressions
expected.

Reported-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Tested-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agodm9000: locking bugfix
David Brownell [Mon, 23 Mar 2009 04:28:39 +0000 (21:28 -0700)]
dm9000: locking bugfix

This fixes a locking bug in the dm9000 driver.  It calls
request_irq() without setting IRQF_DISABLED ... which is
correct for handlers that support IRQ sharing, since that
behavior is not guaranteed for shared IRQs.  However, its
IRQ handler then wrongly assumes that IRQs are blocked.
So the fix just uses the right spinlock primitives in the
IRQ handler.

NOTE:  this is a classic example of the type of bug which
lockdep currently masks by forcibly setting IRQF_DISABLED
on IRQ handlers that did not request that flag.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agobnx2x: Adding licensing to bnx2x_init_values.h
Eilon Greenstein [Mon, 23 Mar 2009 04:24:19 +0000 (21:24 -0700)]
bnx2x: Adding licensing to bnx2x_init_values.h

Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonet: update dnet.c for bus_id removal
Stephen Rothwell [Mon, 23 Mar 2009 04:22:48 +0000 (21:22 -0700)]
net: update dnet.c for bus_id removal

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetdev: expose net_device_ops compat as config option
Stephen Hemminger [Fri, 20 Mar 2009 19:36:44 +0000 (19:36 +0000)]
netdev: expose net_device_ops compat as config option

Now that most network device drivers in (all but one in x86_64 allmodconfig)
support net_device_ops. Expose it as a configuration parameter. Still
need to address even older 32 bit drivers, and other arch before
compatiablity can be scheduled for removal in some future release.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agohostap: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:43 +0000 (19:36 +0000)]
hostap: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agohostap: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:42 +0000 (19:36 +0000)]
hostap: convert to internal net_device_stats

Use pre-existing net_device_stats in network_device struct.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoipw2200: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:41 +0000 (19:36 +0000)]
ipw2200: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoipw2100: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:40 +0000 (19:36 +0000)]
ipw2100: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoipw2x00: convert infrastructure for use by net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:39 +0000 (19:36 +0000)]
ipw2x00: convert infrastructure for use by net_device_ops

Expose routines so drivers can hook. Only set ptrs in netdev
if using old compat code.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoipw2x00: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:38 +0000 (19:36 +0000)]
ipw2x00: convert to internal net_device_stats

Replace struct in ieee with current net_device_stats, so no longer
need get_stats hook

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agolibertas: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:37 +0000 (19:36 +0000)]
libertas: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agolibertas: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:36 +0000 (19:36 +0000)]
libertas: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoprism54: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:35 +0000 (19:36 +0000)]
prism54: convert to internal net_device_stats

Also, make ethtool_ops const as it should be, and get rid
of useless cast.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoprism54: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:34 +0000 (19:36 +0000)]
prism54: convert to net_device_ops

Also, make ethtool_ops const as it should be, and get rid
of useless cast.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomac80211_hwsim: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:33 +0000 (19:36 +0000)]
mac80211_hwsim: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agozd1201: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:32 +0000 (19:36 +0000)]
zd1201: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agozd1201: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:31 +0000 (19:36 +0000)]
zd1201: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agowl3501: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:30 +0000 (19:36 +0000)]
wl3501: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agowl3501: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:29 +0000 (19:36 +0000)]
wl3501: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoraylan: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:28 +0000 (19:36 +0000)]
raylan: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoatmel: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:27 +0000 (19:36 +0000)]
atmel: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoairo: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:26 +0000 (19:36 +0000)]
airo: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agowavelan: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:25 +0000 (19:36 +0000)]
wavelan: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agowavelan: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:24 +0000 (19:36 +0000)]
wavelan: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agostrip: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:23 +0000 (19:36 +0000)]
strip: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetwave: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:22 +0000 (19:36 +0000)]
netwave: convert to net_device_ops

Also get rid of unneeded cast

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agonetwave: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:21 +0000 (19:36 +0000)]
netwave: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosbni: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:20 +0000 (19:36 +0000)]
sbni: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosbni: use internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:19 +0000 (19:36 +0000)]
sbni: use internal net_device_stats

Convert to use existing net_device_stats.
This driver,
      has bad style,
       of using commas,
   when brackets should be used...

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agolabether: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:18 +0000 (19:36 +0000)]
labether: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agolapbether: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:17 +0000 (19:36 +0000)]
lapbether: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agocycx: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:16 +0000 (19:36 +0000)]
cycx: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agodlci: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:15 +0000 (19:36 +0000)]
dlci: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agodlci: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:14 +0000 (19:36 +0000)]
dlci: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agox25_asy: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:13 +0000 (19:36 +0000)]
x25_asy: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agox25_asy: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:12 +0000 (19:36 +0000)]
x25_asy: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoaxnet: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:11 +0000 (19:36 +0000)]
axnet: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosmc91c92: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:10 +0000 (19:36 +0000)]
smc91c92: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosmc91c92: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:09 +0000 (19:36 +0000)]
smc91c92: convert to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoxirc2ps: convert to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:08 +0000 (19:36 +0000)]
xirc2ps: convert to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoxir2cps: convert to internal net_device stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:07 +0000 (19:36 +0000)]
xir2cps: convert to internal net_device stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agopcnet: convert driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:06 +0000 (19:36 +0000)]
pcnet: convert driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agopcmcia: convert nmclan driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:05 +0000 (19:36 +0000)]
pcmcia: convert nmclan driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agopcmcia: convert fmvj18x driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:04 +0000 (19:36 +0000)]
pcmcia: convert fmvj18x driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agopcmcia: convert fmvj18x driver to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:36:03 +0000 (19:36 +0000)]
pcmcia: convert fmvj18x driver to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agopcmcia: convert 3c574 to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:02 +0000 (19:36 +0000)]
pcmcia: convert 3c574 to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agopcmcia: convert 3c589 to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:01 +0000 (19:36 +0000)]
pcmcia: convert 3c589 to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert rndis driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:36:00 +0000 (19:36 +0000)]
usbnet: convert rndis driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert rndis driver to use dev_get_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:35:59 +0000 (19:35 +0000)]
usbnet: convert rndis driver to use dev_get_stats

dev_get_stats() handles all issues with net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert smsc95xx driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:58 +0000 (19:35 +0000)]
usbnet: convert smsc95xx driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert msc7830 driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:57 +0000 (19:35 +0000)]
usbnet: convert msc7830 driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert dms9601 driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:56 +0000 (19:35 +0000)]
usbnet: convert dms9601 driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert asix driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:55 +0000 (19:35 +0000)]
usbnet: convert asix driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: support net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:54 +0000 (19:35 +0000)]
usbnet: support net_device_ops

Use net_device_ops for usbnet device, and export for use
by other derived drivers.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:35:53 +0000 (19:35 +0000)]
usbnet: convert to internal net_device_stats

Default handler for net_device_stats already does same thing.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert hso driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:52 +0000 (19:35 +0000)]
usbnet: convert hso driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert rtl driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:51 +0000 (19:35 +0000)]
usbnet: convert rtl driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert to internal net_device stats
Stephen Hemminger [Fri, 20 Mar 2009 19:35:50 +0000 (19:35 +0000)]
usbnet: convert to internal net_device stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert catc device to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:49 +0000 (19:35 +0000)]
usbnet: convert catc device to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agousbnet: convert catc to internal net_device_stats
Stephen Hemminger [Fri, 20 Mar 2009 19:35:48 +0000 (19:35 +0000)]
usbnet: convert catc to internal net_device_stats

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoirda: convert ks959 driver to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:47 +0000 (19:35 +0000)]
irda: convert ks959 driver to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoirda: convert ksdazzle device to net_device_ops
Stephen Hemminger [Fri, 20 Mar 2009 19:35:46 +0000 (19:35 +0000)]
irda: convert ksdazzle device to net_device_ops

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>