openwrt/staging/blogic.git
13 years agofilter: add XOR operation
Jiri Pirko [Sat, 31 Mar 2012 11:01:20 +0000 (11:01 +0000)]
filter: add XOR operation

Add XOR instruction fo BPF machine. Needed for computing packet hashes.

Signed-off-by: Jiri Pirko <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agofilter: Allow to create sk-unattached filters
Jiri Pirko [Sat, 31 Mar 2012 11:01:19 +0000 (11:01 +0000)]
filter: Allow to create sk-unattached filters

Today, BPF filters are bind to sockets. Since BPF machine becomes handy
for other purposes, this patch allows to create unattached filter.

Signed-off-by: Jiri Pirko <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agovxge: Remove unnecessary ; in do {} while (0) macro
Joe Perches [Tue, 3 Apr 2012 11:53:12 +0000 (11:53 +0000)]
vxge: Remove unnecessary ; in do {} while (0) macro

This macro doesn't need a terminating ; so just remove it.

Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/hyperv: Add flow control based on hi/low watermark
Haiyang Zhang [Tue, 27 Mar 2012 13:20:45 +0000 (13:20 +0000)]
net/hyperv: Add flow control based on hi/low watermark

In the existing code, we only stop queue when the ringbuffer is full,
so the current packet has to be dropped or retried from upper layer.

This patch stops the tx queue when available ringbuffer is below
the low watermark. So the ringbuffer still has small amount of space
available for the current packet. This will reduce the overhead of
retries on sending.

Signed-off-by: Haiyang Zhang <[email protected]>
Reviewed-by: K. Y. Srinivasan <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agosky2: fix missing register reset on error path in sky2_test_msi()
Lino Sanfilippo [Fri, 30 Mar 2012 07:36:16 +0000 (07:36 +0000)]
sky2: fix missing register reset on error path in sky2_test_msi()

In sky2_test_msi() the temporarily set SW IRQ in B0 register is not reset in case
that request_irq() fails.
With this patch we only set the interrupt mask if request_irq() was successful.

Signed-off-by: Lino Sanfilippo <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoaf_unix: reduce high order page allocations
Eric Dumazet [Tue, 3 Apr 2012 05:28:28 +0000 (05:28 +0000)]
af_unix: reduce high order page allocations

unix_dgram_sendmsg() currently builds linear skbs, and this can stress
page allocator with high order page allocations. When memory gets
fragmented, this can eventually fail.

We can try to use order-2 allocations for skb head (SKB_MAX_ALLOC) plus
up to 16 page fragments to lower pressure on buddy allocator.

This patch has no effect on messages of less than 16064 bytes.
(on 64bit arches with PAGE_SIZE=4096)

For bigger messages (from 16065 to 81600 bytes), this patch brings
reliability at the expense of performance penalty because of extra pages
allocations.

netperf -t DG_STREAM -T 0,2 -- -m 16064 -s 200000
->4086040 Messages / 10s

netperf -t DG_STREAM -T 0,2 -- -m 16068 -s 200000
->3901747 Messages / 10s

Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: Report dev->promiscuity in netlink reports.
Ben Greear [Thu, 29 Mar 2012 12:51:30 +0000 (12:51 +0000)]
net: Report dev->promiscuity in netlink reports.

The standard ways of probing a device's promiscuity
(ifi_flags, for instance) does not report the actual
state of the device.  This patch adds dev->promiscuity
to the netlink netdevice report so that users can know
for certain if the device is acting PROMISC or not.

Signed-off-by: Ben Greear <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: remove unused icmp_ioctl() definition.
Rami Rosen [Thu, 29 Mar 2012 08:49:01 +0000 (08:49 +0000)]
net: remove unused icmp_ioctl() definition.

The patch removes unused icmp_ioctl() method definition in
include/net/icmp.h.

Signed-off-by: Rami Rosen <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv6/addrconf.c: Checkpatch cleanups
Eldad Zack [Sun, 1 Apr 2012 07:49:08 +0000 (07:49 +0000)]
net/ipv6/addrconf.c: Checkpatch cleanups

net/ipv6/addrconf.c:340: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable
net/ipv6/addrconf.c:342: ERROR: "foo * bar" should be "foo *bar"
net/ipv6/addrconf.c:444: ERROR: "foo * bar" should be "foo *bar"
net/ipv6/addrconf.c:1337: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable
net/ipv6/addrconf.c:1526: ERROR: "(foo*)" should be "(foo *)"
net/ipv6/addrconf.c:1671: ERROR: open brace '{' following function declarations go on the next line
net/ipv6/addrconf.c:1914: ERROR: "foo * bar" should be "foo *bar"
net/ipv6/addrconf.c:2368: ERROR: "foo * bar" should be "foo *bar"
net/ipv6/addrconf.c:2370: ERROR: "foo * bar" should be "foo *bar"
net/ipv6/addrconf.c:2416: ERROR: "foo * bar" should be "foo *bar"
net/ipv6/addrconf.c:2437: ERROR: "foo    * bar" should be "foo    *bar"
net/ipv6/addrconf.c:2573: ERROR: "foo * bar" should be "foo *bar"
net/ipv6/addrconf.c:3797: ERROR: "foo* bar" should be "foo *bar"

Signed-off-by: Eldad Zack <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv6/icmp.c: Checkpatch cleanups
Eldad Zack [Sun, 1 Apr 2012 07:49:07 +0000 (07:49 +0000)]
net/ipv6/icmp.c: Checkpatch cleanups

icmp.c:501: ERROR: "(foo*)" should be "(foo *)"
icmp.c:582: ERROR: "(foo*)" should be "(foo *)"
icmp.c:954: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable

Signed-off-by: Eldad Zack <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv6/fib6_rules.c: Checkpatch cleanup
Eldad Zack [Sun, 1 Apr 2012 07:49:06 +0000 (07:49 +0000)]
net/ipv6/fib6_rules.c: Checkpatch cleanup

fib6_rules.c:26: ERROR: open brace '{' following struct go on the same line

Signed-off-by: Eldad Zack <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv6/exthdrs_core.c: Checkpatch cleanups
Eldad Zack [Sun, 1 Apr 2012 07:49:05 +0000 (07:49 +0000)]
net/ipv6/exthdrs_core.c: Checkpatch cleanups

exthdrs_core.c:113: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable
exthdrs_core.c:114: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable

Signed-off-by: Eldad Zack <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv6/exthdrs.c: Checkpatch cleanups
Eldad Zack [Sun, 1 Apr 2012 07:49:04 +0000 (07:49 +0000)]
net/ipv6/exthdrs.c: Checkpatch cleanups

exthdrs.c:726: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable
exthdrs.c:741: ERROR: "(foo*)" should be "(foo *)"
exthdrs.c:741: ERROR: "(foo*)" should be "(foo *)"
exthdrs.c:744: ERROR: "(foo**)" should be "(foo **)"
exthdrs.c:746: ERROR: "(foo**)" should be "(foo **)"
exthdrs.c:748: ERROR: "(foo**)" should be "(foo **)"
exthdrs.c:750: ERROR: "(foo**)" should be "(foo **)"
exthdrs.c:755: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable
exthdrs.c:896: WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable

Signed-off-by: Eldad Zack <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv6/datagram.c: Checkpatch cleanups
Eldad Zack [Sun, 1 Apr 2012 07:49:03 +0000 (07:49 +0000)]
net/ipv6/datagram.c: Checkpatch cleanups

datagram.c:101: ERROR: "(foo*)" should be "(foo *)"
datagram.c:521: ERROR: space required before the open parenthesis '('
datagram.c:830: WARNING: braces {} are not necessary for single statement blocks
datagram.c:849: WARNING: braces {} are not necessary for single statement blocks

Signed-off-by: Eldad Zack <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv6/addrconf_core.c: Checkpatch cleanup
Eldad Zack [Sun, 1 Apr 2012 07:49:02 +0000 (07:49 +0000)]
net/ipv6/addrconf_core.c: Checkpatch cleanup

addrconf_core.c:13: ERROR: space required before the open parenthesis '('

Signed-off-by: Eldad Zack <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv6/sit.c: Checkpatch cleanup
Eldad Zack [Sun, 1 Apr 2012 07:49:01 +0000 (07:49 +0000)]
net/ipv6/sit.c: Checkpatch cleanup

sit.c:118: ERROR: "foo * bar" should be "foo *bar"
sit.c:694: ERROR: "(foo*)" should be "(foo *)"
sit.c:724: ERROR: "(foo*)" should be "(foo *)"

Signed-off-by: Eldad Zack <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonetlink: Delete all NLA_PUT*() macros.
David S. Miller [Mon, 2 Apr 2012 01:09:34 +0000 (21:09 -0400)]
netlink: Delete all NLA_PUT*() macros.

They were error prone due to an embedded goto, and the entire tree has
been converted away from using them.

Signed-off-by: David S. Miller <[email protected]>
13 years agoxfrm: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 01:04:21 +0000 (21:04 -0400)]
xfrm: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agowl12xx: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 01:03:44 +0000 (21:03 -0400)]
wl12xx: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agomac80211_hwsim: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 01:03:30 +0000 (21:03 -0400)]
mac80211_hwsim: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoiwlwifi: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 01:03:10 +0000 (21:03 -0400)]
iwlwifi: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoath6kl: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 01:02:53 +0000 (21:02 -0400)]
ath6kl: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agovlan: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:50:45 +0000 (20:50 -0400)]
vlan: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agobridge: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:49:54 +0000 (20:49 -0400)]
bridge: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agocaif: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:48:13 +0000 (20:48 -0400)]
caif: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agogen_stats: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:47:35 +0000 (20:47 -0400)]
gen_stats: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agofib_rules: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:47:01 +0000 (20:47 -0400)]
fib_rules: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoieee802154: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:45:25 +0000 (20:45 -0400)]
ieee802154: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonetfilter: ipv4: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:40:20 +0000 (20:40 -0400)]
netfilter: ipv4: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoipv4: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:39:02 +0000 (20:39 -0400)]
ipv4: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonetfilter: ipv6: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:28:52 +0000 (20:28 -0400)]
netfilter: ipv6: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoipv6: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:27:33 +0000 (20:27 -0400)]
ipv6: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoteam: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:25:18 +0000 (20:25 -0400)]
team: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agomacvlan: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:23:06 +0000 (20:23 -0400)]
macvlan: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoenic: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:22:22 +0000 (20:22 -0400)]
enic: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agocan: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:21:11 +0000 (20:21 -0400)]
can: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoinfiniband: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:19:38 +0000 (20:19 -0400)]
infiniband: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agocrypto: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:19:05 +0000 (20:19 -0400)]
crypto: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agodecnet: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:15:14 +0000 (20:15 -0400)]
decnet: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonetlink: Add nla_put_le{16,32,64}() helpers.
David S. Miller [Mon, 2 Apr 2012 00:14:27 +0000 (20:14 -0400)]
netlink: Add nla_put_le{16,32,64}() helpers.

Signed-off-by: David S. Miller <[email protected]>
13 years agortnetlink: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:12:00 +0000 (20:12 -0400)]
rtnetlink: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoneighbour: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:06:28 +0000 (20:06 -0400)]
neighbour: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agodcbnl: Stop using NLA_PUT*().
David S. Miller [Mon, 2 Apr 2012 00:03:01 +0000 (20:03 -0400)]
dcbnl: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agol2tp: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 23:59:31 +0000 (19:59 -0400)]
l2tp: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoipset: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 23:54:46 +0000 (19:54 -0400)]
ipset: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonetlink: Add nla_put_net{16,32,64}() helpers.
David S. Miller [Sun, 1 Apr 2012 23:11:31 +0000 (19:11 -0400)]
netlink: Add nla_put_net{16,32,64}() helpers.

Signed-off-by: David S. Miller <[email protected]>
13 years agoipvs: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 23:03:15 +0000 (19:03 -0400)]
ipvs: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
Acked-by: Simon Horman <[email protected]>
13 years agonf_conntrack_core: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:58:28 +0000 (18:58 -0400)]
nf_conntrack_core: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonf_conntrack_netlink: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:57:48 +0000 (18:57 -0400)]
nf_conntrack_netlink: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonf_conntrack_proto_dccp: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:53:24 +0000 (18:53 -0400)]
nf_conntrack_proto_dccp: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonf_conntrack_proto_generic: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:52:31 +0000 (18:52 -0400)]
nf_conntrack_proto_generic: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonf_conntrack_proto_gre: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:52:03 +0000 (18:52 -0400)]
nf_conntrack_proto_gre: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonf_conntrack_proto_sctp: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:51:07 +0000 (18:51 -0400)]
nf_conntrack_proto_sctp: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonf_conntrack_proto_tcp: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:50:08 +0000 (18:50 -0400)]
nf_conntrack_proto_tcp: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonf_conntrack_proto_udp{,lite}: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:48:06 +0000 (18:48 -0400)]
nf_conntrack_proto_udp{,lite}: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonfnetlink_acct: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:46:29 +0000 (18:46 -0400)]
nfnetlink_acct: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonfnetlink_cttimeout: Stop using NLA_PUT*().
David S. Miller [Sun, 1 Apr 2012 22:46:00 +0000 (18:46 -0400)]
nfnetlink_cttimeout: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonfnetlink_log: Stop using NLA_PUT*().
David S. Miller [Fri, 30 Mar 2012 03:31:16 +0000 (23:31 -0400)]
nfnetlink_log: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonfnetlink_queue: Stop using NLA_PUT*().
David S. Miller [Fri, 30 Mar 2012 03:27:38 +0000 (23:27 -0400)]
nfnetlink_queue: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agogenetlink: Stop using NLA_PUT*().
David S. Miller [Fri, 30 Mar 2012 03:25:11 +0000 (23:25 -0400)]
genetlink: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonfc: Stop using NLA_PUT*().
David S. Miller [Fri, 30 Mar 2012 03:23:57 +0000 (23:23 -0400)]
nfc: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoopenvswitch: Stop using NLA_PUT*().
David S. Miller [Fri, 30 Mar 2012 03:20:48 +0000 (23:20 -0400)]
openvswitch: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agonetlink: Add nla_put_be{16,32,64}() helpers.
David S. Miller [Fri, 30 Mar 2012 03:18:53 +0000 (23:18 -0400)]
netlink: Add nla_put_be{16,32,64}() helpers.

Signed-off-by: David S. Miller <[email protected]>
13 years agophonet: Stop using NLA_PUT*().
David S. Miller [Fri, 30 Mar 2012 03:15:10 +0000 (23:15 -0400)]
phonet: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agopkt_sched: Stop using NLA_PUT*().
David S. Miller [Thu, 29 Mar 2012 09:11:39 +0000 (05:11 -0400)]
pkt_sched: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agowireless: Stop using NLA_PUT*().
David S. Miller [Thu, 29 Mar 2012 08:41:26 +0000 (04:41 -0400)]
wireless: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoxfrm_user: Stop using NLA_PUT*().
David S. Miller [Thu, 29 Mar 2012 08:02:26 +0000 (04:02 -0400)]
xfrm_user: Stop using NLA_PUT*().

These macros contain a hidden goto, and are thus extremely error
prone and make code hard to audit.

Signed-off-by: David S. Miller <[email protected]>
13 years agoipv6: Fix RTM_GETROUTE's interpretation of RTA_IIF to be consistent with ipv4
Shmulik Ladkani [Sun, 1 Apr 2012 04:03:45 +0000 (04:03 +0000)]
ipv6: Fix RTM_GETROUTE's interpretation of RTA_IIF to be consistent with ipv4

In IPv4, if an RTA_IIF attribute is specified within an RTM_GETROUTE
message, then a route is searched as if a packet was received on the
specified 'iif' interface.

However in IPv6, RTA_IIF is not interpreted in the same way:
'inet6_rtm_getroute()' always calls 'ip6_route_output()', regardless the
RTA_IIF attribute.

As a result, in IPv6 there's no way to use RTM_GETROUTE in order to look
for a route as if a packet was received on a specific interface.

Fix 'inet6_rtm_getroute()' so that RTA_IIF is interpreted as "lookup a
route as if a packet was received on the specified interface", similar
to IPv4's 'inet_rtm_getroute()' interpretation.

Reported-by: Ami Koren <[email protected]>
Signed-off-by: Shmulik Ladkani <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: lpc_eth: Fix rename of dev_hw_addr_random
[email protected] [Wed, 28 Mar 2012 12:36:26 +0000 (12:36 +0000)]
net: lpc_eth: Fix rename of dev_hw_addr_random

In parallel to the integration of lpc_eth.c, dev_hw_addr_random() has been
renamed to eth_hw_addr_random(). This patch fixes it also in the new driver
lpc_eth.c.

Signed-off-by: Roland Stigge <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/netfilter/nfnetlink_acct.c: use linux/atomic.h
Andrew Morton [Wed, 28 Mar 2012 12:10:57 +0000 (12:10 +0000)]
net/netfilter/nfnetlink_acct.c: use linux/atomic.h

There's no known problem here, but this is one of only two non-arch files
in the kernel which use asm/atomic.h instead of linux/atomic.h.

Acked-by: Pablo Neira Ayuso <[email protected]>
Cc: Patrick McHardy <[email protected]>
Cc: "David S. Miller" <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agorose_dev: fix memcpy-bug in rose_set_mac_address
[email protected] [Tue, 27 Mar 2012 22:47:43 +0000 (22:47 +0000)]
rose_dev: fix memcpy-bug in rose_set_mac_address

If both addresses equal, nothing needs to be done. If the device is down,
then we simply copy the new address to dev->dev_addr. If the device is up,
then we add another loopback device with the new address, and if that does
not fail, we remove the loopback device with the old address. And only
then, we update the dev->dev_addr.

Signed-off-by: Daniel Borkmann <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoFix non TBI PHY access; a bad merge undid bug fix in a previous commit.
Kenth Eriksson [Tue, 27 Mar 2012 22:05:54 +0000 (22:05 +0000)]
Fix non TBI PHY access; a bad merge undid bug fix in a previous commit.

The merge done in commit b26e478f undid bug fix in commit c3e072f8
("net: fsl_pq_mdio: fix non tbi phy access"), with the result that non
TBI (e.g. MDIO) PHYs cannot be accessed.

Signed-off-by: Kenth Eriksson <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/garp: avoid infinite loop if attribute already exists
David Ward [Tue, 27 Mar 2012 09:01:52 +0000 (09:01 +0000)]
net/garp: avoid infinite loop if attribute already exists

An infinite loop occurred if garp_attr_create was called with the values
of an existing attribute. This might happen if a previous leave request
for the attribute has not yet been followed by a PDU transmission (or,
if the application previously issued a join request for the attribute
and is now issuing another one, without having issued a leave request).

If garp_attr_create finds an existing attribute having the same values,
return the address to it. Its state will then get updated (i.e., if it
was in a leaving state, it will move into a non-leaving state and not
get deleted during the next PDU transmission).

To accomplish this fix, collapse garp_attr_insert into garp_attr_create
(which is its only caller).

Thanks to Jorge Boncompte [DTI2] <[email protected]> for contributing to
this fix.

Signed-off-by: David Ward <[email protected]>
Acked-by: Jorge Boncompte [DTI2] <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
David S. Miller [Sun, 1 Apr 2012 20:47:08 +0000 (16:47 -0400)]
Merge branch 'master' of git://git./linux/kernel/git/linville/wireless

13 years agox86 bpf_jit: fix a bug in emitting the 16-bit immediate operand of AND
[email protected] [Wed, 28 Mar 2012 23:27:00 +0000 (23:27 +0000)]
x86 bpf_jit: fix a bug in emitting the 16-bit immediate operand of AND

When K >= 0xFFFF0000, AND needs the two least significant bytes of K as
its operand, but EMIT2() gives it the least significant byte of K and
0x2. EMIT() should be used here to replace EMIT2().

Signed-off-by: Feiran Zhuang <[email protected]>
Acked-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agobonding: emit event when bonding changes MAC
Weiping Pan [Tue, 27 Mar 2012 19:18:24 +0000 (19:18 +0000)]
bonding: emit event when bonding changes MAC

When a bonding device is configured with fail_over_mac=active,
we expect to see the MAC address of the new active slave as the source MAC
address after failover. But we see that the source MAC address is the MAC
address of previous active slave.

Emit NETDEV_CHANGEADDR event when bonding changes its MAC address, in order
to let arp_netdev_event flush neighbour cache and route cache.

How to reproduce this bug ?

                       -----------hostB----------------
hostA ----- switch ---|-- eth0--bond0(192.168.100.2/24)|
(192.168.100.1/24  \--|-- eth1-/                       |
                       --------------------------------

1 on hostB,
modprobe bonding mode=1 miimon=500 fail_over_mac=active downdelay=1000
num_grat_arp=1
ifconfig bond0 192.168.100.2/24 up
ifenslave bond0 eth0
ifenslave bond0 eth1

then eth0 is the active slave, and MAC of bond0 is MAC of eth0.

2 on hostA, ping 192.168.100.2

3 on hostB,
tcpdump -i bond0 -p icmp -XXX
you will see bond0 uses MAC of eth0 as source MAC in icmp reply.

4 on hostB,
ifconfig eth0 down
tcpdump -i bond0 -p icmp -XXX (just keep it running in step 3)
you will see first bond0 uses MAC of eth1 as source MAC in icmp
reply, then it will use MAC of eth0 as source MAC.

Signed-off-by: Weiping Pan <[email protected]>
Signed-off-by: Jay Vosburgh <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agomac80211: fix oper channel timestamp updation
Rajkumar Manoharan [Tue, 27 Mar 2012 05:31:06 +0000 (11:01 +0530)]
mac80211: fix oper channel timestamp updation

Whenever the station informs the AP that it is about to leave the
operating channel, the timestamp should be recorded. It is handled
in scan resume but not in scan start. Fix that.

Signed-off-by: Rajkumar Manoharan <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
13 years agoath9k: Use HW HT capabilites properly
Sujith Manoharan [Tue, 27 Mar 2012 04:38:55 +0000 (10:08 +0530)]
ath9k: Use HW HT capabilites properly

The commit "ath9k: Remove aggregation flags" changed how
nodes were being initialized. Use the HW HT cap bits
to initialize/de-initialize nodes, else we would be
accessing an uninitialized entry during a suspend/resume cycle,
resulting in a panic.

Reported-by: Justin P. Mattock <[email protected]>
Signed-off-by: Sujith Manoharan <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
13 years agoMAINTAINERS: adding maintainer for ipw2x00
Stanislav Yakovlev [Sat, 24 Mar 2012 07:41:01 +0000 (03:41 -0400)]
MAINTAINERS: adding maintainer for ipw2x00

Add myself as maintainer as suggested by Stanislaw Gruszka.

Signed-off-by: Stanislav Yakovlev <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
13 years agonet: orinoco: add error handling for failed kmalloc().
Santosh Nayak [Thu, 22 Mar 2012 07:12:41 +0000 (12:42 +0530)]
net: orinoco: add error handling for failed kmalloc().

With flag 'GFP_ATOMIC', probability of allocation failure is more.
Add error handling after kmalloc() call to avoid null dereference.

Signed-off-by: Santosh Nayak <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
13 years agonet/wireless: ipw2x00: fix a typo in wiphy struct initilization
Stanislav Yakovlev [Tue, 20 Mar 2012 21:52:57 +0000 (17:52 -0400)]
net/wireless: ipw2x00: fix a typo in wiphy struct initilization

Fix comment as well.

Signed-off-by: Stanislav Yakovlev <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
13 years agonet/core: dev_forward_skb() should clear skb_iif
Benjamin LaHaise [Tue, 27 Mar 2012 15:55:44 +0000 (15:55 +0000)]
net/core: dev_forward_skb() should clear skb_iif

While investigating another bug, I found that the code on the incoming path
in __netif_receive_skb will only set skb->skb_iif if it is already 0.  When
dev_forward_skb() is used in the case of interfaces like veth, skb_iif may
already have been set.  Making dev_forward_skb() cause the packet to look
like a newly received packet would seem to the the correct behaviour here,
as otherwise the wrong incoming interface can be reported for such a packet.

Signed-off-by: Benjamin LaHaise <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet/ipv4: fix IPv4 multicast over network namespaces
Benjamin LaHaise [Tue, 27 Mar 2012 15:55:32 +0000 (15:55 +0000)]
net/ipv4: fix IPv4 multicast over network namespaces

When using multicast over a local bridge feeding a number of LXC guests
using veth, the LXC guests are unable to get a response from other guests
when pinging 224.0.0.1.  Multicast packets did not appear to be getting
delivered to the network namespaces of the guest hosts, and further
inspection showed that the incoming route was pointing to the loopback
device of the host, not the guest.  This lead to the wrong network namespace
being picked up by sockets (like ICMP).  Fix this by using the correct
network namespace when creating the inbound route entry.

Signed-off-by: Benjamin LaHaise <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agovirtio_net: do not rate limit counter increments
Rick Jones [Tue, 27 Mar 2012 07:28:09 +0000 (07:28 +0000)]
virtio_net: do not rate limit counter increments

While it is desirable to rate limit certain messages, it is not
desirable to rate limit the incrementing of counters associated
with those messages.

Signed-off-by: Rick Jones <[email protected]>
Acked-by: Rusty Russell <[email protected]>
Acked-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net
David S. Miller [Wed, 28 Mar 2012 07:01:48 +0000 (03:01 -0400)]
Merge branch 'master' of git://git./linux/kernel/git/jkirsher/net

13 years agoixgbe: update version number
Don Skidmore [Fri, 16 Mar 2012 05:41:48 +0000 (05:41 +0000)]
ixgbe: update version number

Update the driver version number to better match version of out of tree
driver that has similar functionality.

Signed-off-by: Don Skidmore <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
13 years agoixgbe: fix typo in enumeration name
Don Skidmore [Thu, 15 Mar 2012 04:55:59 +0000 (04:55 +0000)]
ixgbe: fix typo in enumeration name

This was pointed out to me by Xiaojun Zhang on Source Forge.

CC: Xiaojun Zhang <[email protected]>
Signed-off-by: Don Skidmore <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
13 years agointel: make wired ethernet driver message level consistent (rev2)
stephen hemminger [Tue, 13 Mar 2012 06:04:20 +0000 (06:04 +0000)]
intel: make wired ethernet driver message level consistent (rev2)

Dan Carpenter noticed that ixgbevf initial default was different than
the rest. But the problem is broader than that, only one Intel driver (ixgb)
was doing it almost right.

The convention for default debug level should be consistent among
Intel drivers and follow established convention.

Signed-off-by: Stephen Hemminger <[email protected]>
Tested-by: Aaron Brown <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
13 years agocdc-phonet: fix skb truesize underestimation
Eric Dumazet [Tue, 27 Mar 2012 03:17:26 +0000 (03:17 +0000)]
cdc-phonet: fix skb truesize underestimation

Now skb_add_rx_frag() has a truesize parameter, we can fix cdc-phonet to
properly account truesize of each fragment : a full page.

Signed-off-by: Eric Dumazet <[email protected]>
Cc: Felipe Balbi <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Rémi Denis-Courmont <[email protected]>
Acked-by: Rémi Denis-Courmont <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agof_phonet: fix skb truesize underestimation
Eric Dumazet [Tue, 27 Mar 2012 03:04:02 +0000 (03:04 +0000)]
f_phonet: fix skb truesize underestimation

Now skb_add_rx_frag() has a truesize parameter, we can fix f_phonet to
properly account truesize of each fragment : a full page.

Signed-off-by: Eric Dumazet <[email protected]>
Cc: Felipe Balbi <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Rémi Denis-Courmont <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoeql: dont rely on HZ=100
Eric Dumazet [Mon, 26 Mar 2012 22:52:00 +0000 (22:52 +0000)]
eql: dont rely on HZ=100

HZ is more likely to be 1000 these days.

timer handlers are run from softirq, no need to disable bh

skb priority 1 is TC_PRIO_FILLER

Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agomISDN: array underflow in open_bchannel()
Dan Carpenter [Mon, 26 Mar 2012 21:20:48 +0000 (21:20 +0000)]
mISDN: array underflow in open_bchannel()

There are two channels here.  User space starts counting channels at one
but in the kernel we start at zero.  If the user passes in a zero
channel that's invalid and could lead to memory corruption.

Signed-off-by: Dan Carpenter <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agobnx2x: fix vector traveling while looking for an empty entry
Dmitry Kravkov [Mon, 26 Mar 2012 21:08:55 +0000 (21:08 +0000)]
bnx2x: fix vector traveling while looking for an empty entry

Fixes the bug that may prevent from mac to be configured,
while there is an empty slot for it.

Reported-by: Maciej Żenczykowski <[email protected]>
Signed-off-by: Dmitry Kravkov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agobnx2x: previous driver unload revised
Yuval Mintz [Mon, 26 Mar 2012 20:47:07 +0000 (20:47 +0000)]
bnx2x: previous driver unload revised

The flow in which the bnx2x driver starts after a previous driver
has been terminated in an 'unclean' manner has several bugs and
FW risks, which makes it possible for the driver to fail after
boot-from-SAN or kdump.
This patch contains a revised flow which performs a safer
initialization, solving the possible crash scenarios.
Notice this patch contains lines with over 80 characters, as it
keeps print-strings in a single line.

Signed-off-by: Yuval Mintz <[email protected]>
Signed-off-by: Eilon Greenstein <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoUSB: Add Motorola Rokr E6 Id to the USBNet driver "zaurus"
Guan Xin [Mon, 26 Mar 2012 04:11:46 +0000 (04:11 +0000)]
USB: Add Motorola Rokr E6 Id to the USBNet driver "zaurus"

Added Vendor/Device Id of Motorola Rokr E6 (22b8:6027) so it can be
recognized by the "zaurus" USBNet driver.
Applies to Linux 3.2.13 and 2.6.39.4.
Signed-off-by: Guan Xin <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agonet: sh_eth: Add support SH7734
Nobuhiro Iwamatsu [Sun, 25 Mar 2012 18:59:51 +0000 (18:59 +0000)]
net: sh_eth: Add support SH7734

Add define of SH7734 register and sh_eth_reset_hw_crc function.

V3: Rebase net/HEAD.
V2: Do not split line of #if defined.

Signed-off-by: Nobuhiro Iwamatsu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agowimax: i2400m-usb - use a private struct ethtool_ops
Phil Sutter [Mon, 26 Mar 2012 09:01:31 +0000 (09:01 +0000)]
wimax: i2400m-usb - use a private struct ethtool_ops

This way the USB variant of the driver uses usb_make_path in order to
provide bus-info compatible to other USB drivers (like e.g. asix.c).

Signed-off-by: Phil Sutter <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agowimax: i2400m - prevent a possible kernel bug due to missing fw_name string
Phil Sutter [Mon, 26 Mar 2012 09:01:30 +0000 (09:01 +0000)]
wimax: i2400m - prevent a possible kernel bug due to missing fw_name string

This happened on a machine with a custom hotplug script calling nameif,
probably due to slow firmware loading. At the time nameif uses ethtool
to gather interface information, i2400m->fw_name is zero and so a null
pointer dereference occurs from within i2400m_get_drvinfo().

Signed-off-by: Phil Sutter <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
13 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
David S. Miller [Wed, 28 Mar 2012 02:15:01 +0000 (22:15 -0400)]
Merge branch 'master' of git://git./linux/kernel/git/linville/wireless

13 years agoe1000: fix vlan processing regression
Jiri Pirko [Tue, 20 Mar 2012 18:10:01 +0000 (18:10 +0000)]
e1000: fix vlan processing regression

This patch fixes a regression introduced by commit "e1000: do vlan
cleanup (799d531)".

Apparently some e1000 chips (not mine) are sensitive about the order of
setting vlan filter and vlan stripping/inserting functionality. So this
patch changes the order so it's the same as before vlan cleanup.

Reported-by: Ben Greear <[email protected]>
Signed-off-by: Jiri Pirko <[email protected]>
Tested-by: Ben Greear <[email protected]>
Tested-by: Aaron Brown <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>