]> git.karo-electronics.de Git - linux-beck.git/log
linux-beck.git
10 years agosch_dsmark: use correct func name in print messages
Yang Yingliang [Mon, 23 Dec 2013 09:39:00 +0000 (17:39 +0800)]
sch_dsmark: use correct func name in print messages

In dsmark_drop(), the function name printed by pr_debug
is "dsmark_reset", correct it to "dsmark_drop" by using
__func__ .

BTW, replace the other function names with __func__ .

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosch_htb: use /* comments
Yang Yingliang [Mon, 23 Dec 2013 09:38:59 +0000 (17:38 +0800)]
sch_htb: use /* comments

Do not use C99 // comments and correct a spelling typo.

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet_sched: replace pr_warning with pr_warn
Yang Yingliang [Mon, 23 Dec 2013 09:38:58 +0000 (17:38 +0800)]
net_sched: replace pr_warning with pr_warn

Prefer pr_warn(... to pr_warning(...

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agopacket: fix "foo * bar" and "(foo*)" problems
Weilong Chen [Mon, 23 Dec 2013 03:31:38 +0000 (11:31 +0800)]
packet: fix "foo * bar" and "(foo*)" problems

Cleanup checkpatch errors.Specially,the second changed line
is exactly 80 columns long.

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv6: unneccessary to get address prefix in addrconf_get_prefix_route
Li RongQing [Mon, 23 Dec 2013 01:32:38 +0000 (09:32 +0800)]
ipv6: unneccessary to get address prefix in addrconf_get_prefix_route

Since addrconf_get_prefix_route inputs the address prefix to fib6_locate,
which does not uses the data which is out of the prefix_len length,
so do not need to use ipv6_addr_prefix to get address prefix.

Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoMerge branch 'tun_rfs'
David S. Miller [Tue, 31 Dec 2013 18:31:42 +0000 (13:31 -0500)]
Merge branch 'tun_rfs'

Zhi Yong Wu says:

====================
tun: add the RFS support

Since Tom Herbert's hash related patchset was modified and got merged,
his pachset about adding support for RFS on tun flows also need to get
adjusted accordingly. I tried to update them, and before i will start
to do some perf tests, i hope to get one correct code base, so it's time
to post them out now. Any constructive comments are welcome, thanks.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agotun: Add support for RFS on tun flows
Tom Herbert [Sun, 22 Dec 2013 10:54:32 +0000 (18:54 +0800)]
tun: Add support for RFS on tun flows

This patch adds support so that the rps_flow_tables (RFS) can be
programmed using the tun flows which are already set up to track flows
for the purposes of queue selection.

On the receive path (corresponding to select_queue and tun_net_xmit) the
rxhash is saved in the flow_entry.  The original code only does flow
lookup in select_queue, so this patch adds a flow lookup in tun_net_xmit
if num_queues == 1 (select_queue is not called from
dev_queue_xmit->netdev_pick_tx in that case).

The flow is recorded (processing CPU) in tun_flow_update (TX path), and
reset when flow is deleted.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet: Allow setting sock flow hash without a sock
Tom Herbert [Sun, 22 Dec 2013 10:54:31 +0000 (18:54 +0800)]
net: Allow setting sock flow hash without a sock

This patch adds sock_rps_record_flow_hash and sock_rps_reset_flow_hash
which take a hash value as an argument and sets the sock_flow_table
accordingly.  This allows the table to be populated in cases where flow
is being tracked outside of a sock structure.

sock_rps_record_flow and sock_rps_reset_flow call this function
where the hash is taken from sk_rxhash.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobonding: update Documentation/networking/bonding.txt for option lp_interval
dingtianhong [Sat, 21 Dec 2013 06:40:22 +0000 (14:40 +0800)]
bonding: update Documentation/networking/bonding.txt for option lp_interval

Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobonding: ust micro BOND_NO_USE_ARP to simplify the mode check
dingtianhong [Sat, 21 Dec 2013 06:40:17 +0000 (14:40 +0800)]
bonding: ust micro BOND_NO_USE_ARP to simplify the mode check

The bond 3ad and TLB/ALB has the same check path, so combine them.

Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobonding: add option lp_interval for loading module
dingtianhong [Sat, 21 Dec 2013 06:40:12 +0000 (14:40 +0800)]
bonding: add option lp_interval for loading module

The bond driver could set the lp_interval when loading module.

Suggested-by: Scott Feldman <sfeldma@cumulusnetworks.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agolro: remove dead code
stephen hemminger [Sun, 29 Dec 2013 19:43:35 +0000 (11:43 -0800)]
lro: remove dead code

Remove leftover code that is not used anywhere in current tree.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobonding: make local function static
stephen hemminger [Sun, 29 Dec 2013 19:41:25 +0000 (11:41 -0800)]
bonding: make local function static

bond_xmit_slave_id is only used in main.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agotcp: make local functions static
stephen hemminger [Sun, 29 Dec 2013 19:39:51 +0000 (11:39 -0800)]
tcp: make local functions static

The following are only used in one file:
  tcp_connect_init
  tcp_set_rto

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet/7990: Make lance_private.name const
Geert Uytterhoeven [Sat, 28 Dec 2013 20:11:15 +0000 (21:11 +0100)]
net/7990: Make lance_private.name const

This allows to drop a few casts.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet/7990: Fix whitespace errors
Geert Uytterhoeven [Sat, 28 Dec 2013 20:11:14 +0000 (21:11 +0100)]
net/7990: Fix whitespace errors

Most of them reported by checkpatch.pl

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: ping make local stuff static
Stephen Hemminger [Sat, 28 Dec 2013 19:11:42 +0000 (11:11 -0800)]
ipv4: ping make local stuff static

Don't export ping_table or ping_v4_sendmsg. Both are only used
inside ping code.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: remove unused function
Stephen Hemminger [Sat, 28 Dec 2013 19:08:22 +0000 (11:08 -0800)]
ipv4: remove unused function

inetpeer_invalidate_family defined but never used

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoarp: make arp_invalidate static
Stephen Hemminger [Sat, 28 Dec 2013 19:07:18 +0000 (11:07 -0800)]
arp: make arp_invalidate static

Don't export arp_invalidate, only used in arp.c

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: make fib_detect_death static
Stephen Hemminger [Sat, 28 Dec 2013 19:05:36 +0000 (11:05 -0800)]
ipv4: make fib_detect_death static

Make fib_detect_death function static only used in one file.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agomacvlan: make start_xmit local
stephen hemminger [Fri, 27 Dec 2013 20:06:46 +0000 (12:06 -0800)]
macvlan: make start_xmit local

Only used in one file, no need to expose

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobgmac: use phy_mii_ioctl in ioctl handler
Hauke Mehrtens [Fri, 20 Dec 2013 14:34:45 +0000 (15:34 +0100)]
bgmac: use phy_mii_ioctl in ioctl handler

This works pretty much the same way, so avoid duplicating the code.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobgmac: drop duplicated PHY defines
Rafał Miłecki [Fri, 20 Dec 2013 14:33:52 +0000 (15:33 +0100)]
bgmac: drop duplicated PHY defines

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoieee802154: space prohibited before that close parenthesis
Weilong Chen [Fri, 20 Dec 2013 03:41:15 +0000 (11:41 +0800)]
ieee802154: space prohibited before that close parenthesis

Fix checkpatch error with space.

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agollc: "foo* bar" should be "foo *bar"
Weilong Chen [Fri, 20 Dec 2013 03:14:59 +0000 (11:14 +0800)]
llc: "foo* bar" should be "foo *bar"

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agotile_net: Always enable PTP clock support on TILE-Gx
Ben Hutchings [Thu, 19 Dec 2013 19:21:14 +0000 (19:21 +0000)]
tile_net: Always enable PTP clock support on TILE-Gx

All other net drivers with PTP support enable it unconditionally.
Make tile_net consistent with this.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Acked-by: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobnx2x: Fix build with SRIOV disabled.
David S. Miller [Thu, 26 Dec 2013 23:33:10 +0000 (18:33 -0500)]
bnx2x: Fix build with SRIOV disabled.

drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c: In function 'bnx2x_drv_info_ether_stat':
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c:3302:46: error: dereferencing pointer to incomplete type
make[6]: *** [drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.o] Error 1

Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agovmxnet3: use initialized skb pointer to set hash
Michal Schmidt [Fri, 20 Dec 2013 12:16:57 +0000 (13:16 +0100)]
vmxnet3: use initialized skb pointer to set hash

The recent conversion to skb_set_hash() was incorrect. 'skb' is
uninitialized at this point.

Fixes: 0b6807034791 ('net: vmxnet3 calls skb_set_hash')
Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Acked-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosch_tbf: add TBF_BURST/TBF_PBURST attribute
Yang Yingliang [Fri, 20 Dec 2013 01:24:47 +0000 (09:24 +0800)]
sch_tbf: add TBF_BURST/TBF_PBURST attribute

When we set burst to 1514 with low rate in userspace,
the kernel get a value of burst that less than 1514,
which doesn't work.

Because it may make some loss when transform burst
to buffer in userspace. This makes burst lose some
bytes, when the kernel transform the buffer back to
burst.

This patch adds two new attributes to support sending
burst/mtu to kernel directly to avoid the loss.

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosctp: fix checkpatch errors with //commen
wangweidong [Mon, 23 Dec 2013 04:16:54 +0000 (12:16 +0800)]
sctp: fix checkpatch errors with //commen

Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosctp: fix checkpatch errors with open brace '{' and trailing statements
wangweidong [Mon, 23 Dec 2013 04:16:53 +0000 (12:16 +0800)]
sctp: fix checkpatch errors with open brace '{' and trailing statements

fix checkpatch errors below:
ERROR: that open brace { should be on the previous line
ERROR: open brace '{' following function declarations go on the next line
ERROR: trailing statements should be on next line

Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosctp: fix checkpatch errors with indent
wangweidong [Mon, 23 Dec 2013 04:16:52 +0000 (12:16 +0800)]
sctp: fix checkpatch errors with indent

fix checkpatch errors below:
ERROR: switch and case should be at the same inden
ERROR: code indent should use tabs where possible

Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosctp: fix checkpatch errors with (foo*)|foo * bar|foo* bar
wangweidong [Mon, 23 Dec 2013 04:16:51 +0000 (12:16 +0800)]
sctp: fix checkpatch errors with (foo*)|foo * bar|foo* bar

fix checkpatch errors below:
ERROR: "(foo*)" should be "(foo *)"
ERROR: "foo * bar" should be "foo *bar"
ERROR: "foo* bar" should be "foo *bar"

Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosctp: fix checkpatch errors with space required or prohibited
wangweidong [Mon, 23 Dec 2013 04:16:50 +0000 (12:16 +0800)]
sctp: fix checkpatch errors with space required or prohibited

fix checkpatch errors while the space is required or prohibited
to the "=,()++..."

Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv6: cleanup for tcp_ipv6.c
Weilong Chen [Thu, 19 Dec 2013 10:44:34 +0000 (18:44 +0800)]
ipv6: cleanup for tcp_ipv6.c

Fix some checkpatch errors for tcp_ipv6.c

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: ipv4: Cleanup the comments in tcp_yeah.c
Weilong Chen [Mon, 23 Dec 2013 06:37:32 +0000 (14:37 +0800)]
ipv4: ipv4: Cleanup the comments in tcp_yeah.c

This cleanup the comments in tcp_yeah.c.
1.The old link is dead,use a new one to instead.
2.'lin' add nothing useful,remove it.
3.do not use C99 // comments.

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: ERROR: code indent should use tabs where possible
Weilong Chen [Mon, 23 Dec 2013 06:37:31 +0000 (14:37 +0800)]
ipv4: ERROR: code indent should use tabs where possible

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: ERROR: do not initialise globals to 0 or NULL
Weilong Chen [Mon, 23 Dec 2013 06:37:30 +0000 (14:37 +0800)]
ipv4: ERROR: do not initialise globals to 0 or NULL

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: fix all space errors in file igmp.c
Weilong Chen [Mon, 23 Dec 2013 06:37:29 +0000 (14:37 +0800)]
ipv4: fix all space errors in file igmp.c

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: fix checkpatch error with foo * bar
Weilong Chen [Mon, 23 Dec 2013 06:37:28 +0000 (14:37 +0800)]
ipv4: fix checkpatch error with foo * bar

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: fix checkpatch error "space prohibited"
Weilong Chen [Mon, 23 Dec 2013 06:37:27 +0000 (14:37 +0800)]
ipv4: fix checkpatch error "space prohibited"

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv4: do clean up with spaces
Weilong Chen [Mon, 23 Dec 2013 06:37:26 +0000 (14:37 +0800)]
ipv4: do clean up with spaces

Fix checkpatch errors like:
ERROR: spaces required around that XXX

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoMerge branch 'bnx2x'
David S. Miller [Thu, 26 Dec 2013 18:38:26 +0000 (13:38 -0500)]
Merge branch 'bnx2x'

Yuval Mintz says:

====================
bnx2x: new features patch series

This patch series adds/fixes several new features in the bnx2x driver -
it adds support for loading the bnx2x over an UNDI running on a Multi-function
device, adds missing bits for PCIe AER support and enables VFs to properly
configure multicast filters
(In addition, it also contains some small improvements in driver behaviour).

Please consider applying these patches to `net-next'.

Changes from previous versions
------------------------------
  v2:
     - Fixed comment typo in patch 4 (propogate --> propagate)
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobnx2x: add VF Multicast filters support
Yuval Mintz [Thu, 26 Dec 2013 07:57:12 +0000 (09:57 +0200)]
bnx2x: add VF Multicast filters support

This patch adds the necessary support for configuring (and removing) multicast
filters to VFs.

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobnx2x: Add num of VFs to Management statistics
Yuval Mintz [Thu, 26 Dec 2013 07:57:11 +0000 (09:57 +0200)]
bnx2x: Add num of VFs to Management statistics

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobnx2x: no error when RSS configuration fails
Yuval Mintz [Thu, 26 Dec 2013 07:57:10 +0000 (09:57 +0200)]
bnx2x: no error when RSS configuration fails

It's possible for VMs with older versions of bnx2x to run over a hypervisor
with latest driver. If a VF in such a VM does not support RSS configuration,
the PF driver in the hypervisor will print an error message to system logs.

This changes the error message into a debug message, as this is very likely
a false alarm for an older VF (i.e., VF manages to work properly; PF simply
cannot configure the additional queues for it).

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobnx2x: add Big-Endian ethtool comment
Yuval Mintz [Thu, 26 Dec 2013 07:57:09 +0000 (09:57 +0200)]
bnx2x: add Big-Endian ethtool comment

There's a known issue that using `ethtool -e' flips the endianity of the
written data, i.e., using `ethtool -E' to dump eeprom image and than using
`ethtool -e' to re-write that same image will result in an image where
the data has the opposite endianity.
Sadly, this cannot be fixed as there are already various tools deployed
based on the endianity of the eeprom read/write.
Instead, a comment is added to the code to help explain why this is un-fixable.

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobnx2x: Add AER support (missing bits)
Yuval Mintz [Thu, 26 Dec 2013 07:57:08 +0000 (09:57 +0200)]
bnx2x: Add AER support (missing bits)

This function adds several OS calls required to fully enable PCIe AER support -
pci_enable_pcie_error_reporting() and pci_cleanup_aer_uncorrect_error_status().

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobnx2x: Add support for Multi-Function UNDI
Yuval Mintz [Thu, 26 Dec 2013 07:57:07 +0000 (09:57 +0200)]
bnx2x: Add support for Multi-Function UNDI

This adds the ability for bnx2x to load after UNDI is used in the
preboot environment on a multi-function interface which is not the first
interface of a given device.
Notice a side-effect is that the order by which the functions are probed and
thus interfaces appear might change, as this patch utilizes the EPROBE_DEFER
return value (and mechanism).

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoMerge branch 'addr_compare'
David S. Miller [Thu, 26 Dec 2013 18:31:45 +0000 (13:31 -0500)]
Merge branch 'addr_compare'

Ding Tianhong says:

====================
slight optimization of addr compare for some modules

Joe Perches add ether_addr_equal_unaligned to test if
possibly unaligned to u16 Ethernet addresses are equal.

If CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is set, this uses
the slightly faster generic routine ether_addr_equal,
otherwise this uses memcmp.

So I use the recently added and possibly more efficient
ether_addr_equal_unaligned to instead of memcmp for slight
optimization.

v2: Because a lot of places are already using 16b aligned MAC
    address for both operands, so use the ether_addr_equal to
    instead of ether_addr_equal_unaligned.Thanks for Joe, Alex
    and Antonio's opinions.
    Also remove the patch for bridge.

v3: According Joe's suggestion, the patch
    (net: slight optimization of addr compare for some modules)
    should be broken into several patches, and it will be good
    to review for maintainers. So I will send rest of the patches
    for first step, and next step, I will seperate the netdev patch
    and send them by another patchset for net-next.
    also fix some changelog.

v3.5 Change some style for patch 8 and patch 13. Thanks for
     Sergei's suggestion.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agowireless: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:34 +0000 (19:41 +0800)]
wireless: slight optimization of addr compare

Use possibly more efficient ether_addr_equal or
ether_addr_equal_unaligned instead of memcmp.

Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agortlwifi: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:30 +0000 (19:41 +0800)]
rtlwifi: slight optimization of addr compare

Use possibly more efficient ether_addr_equal_unaligned
instead of memcmp.

Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agomwifiex: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:27 +0000 (19:41 +0800)]
mwifiex: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Bing Zhao <bzhao@marvell.com>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipw2x00: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:23 +0000 (19:41 +0800)]
ipw2x00: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agocw1200: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:20 +0000 (19:41 +0800)]
cw1200: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Solomon Peachy <pizza@shaftnet.org>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agohostap: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:15 +0000 (19:41 +0800)]
hostap: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Jouni Malinen <j@w1.fi>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agomedia: dvb_core: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:10 +0000 (19:41 +0800)]
media: dvb_core: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
Cc: linux-media@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoisdn: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:05 +0000 (19:41 +0800)]
isdn: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoatm: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:41:02 +0000 (19:41 +0800)]
atm: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Chas Williams <chas@cmf.nrl.navy.mil>
Cc: linux-atm-general@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agomac8011: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:40:56 +0000 (19:40 +0800)]
mac8011: slight optimization of addr compare

Use the possibly more efficient ether_addr_equal
to instead of memcmp.

Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: David Miller <davem@davemloft.net>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoinfiniband: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:40:50 +0000 (19:40 +0800)]
infiniband: slight optimization of addr compare

Use the possibly more efficient ether_addr_equal
to instead of memcmp.

Cc: Roland Dreier <roland@kernel.org>
Cc: Sean Hefty <sean.hefty@intel.com>
Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
Cc: Faisal Latif <faisal.latif@intel.com>
Cc: linux-rdma@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoozwpan: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:40:47 +0000 (19:40 +0800)]
ozwpan: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Rupesh Gujare <rupesh.gujare@atmel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: devel@driverdev.osuosl.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Tan Xiaojun <tanxiaojun@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agozd1211rw: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:40:43 +0000 (19:40 +0800)]
zd1211rw: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
instead of memcmp.

Cc: Daniel Drake <dsd@gentoo.org>
Cc: Ulrich Kunitz <kune@deine-taler.de>
Cc: "John W. Linville" <linville@tuxdriver.com>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Tan Xiaojun <tanxiaojun@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agobatman-adv: use batadv_compare_eth for concise
dingtianhong [Thu, 26 Dec 2013 11:40:39 +0000 (19:40 +0800)]
batman-adv: use batadv_compare_eth for concise

It is better to use batadv_compate_eth instead of memcpy for
concise style.

Cc: Marek Lindner <mareklindner@neomailbox.ch>
Cc: Simon Wunderlich <sw@simonwunderlich.de>
Cc: Antonio Quartulli <antonio@meshcoding.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: b.a.t.m.a.n@lists.open-mesh.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Tan Xiaojun <tanxiaojun@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Acked-by: Antonio Quartulli <antonio@meshcoding.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoppp: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:40:35 +0000 (19:40 +0800)]
ppp: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
to instead of memcmp.

Cc: Michal Ostrowski <mostrows@earthlink.net>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agohamradio: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:40:31 +0000 (19:40 +0800)]
hamradio: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
to instead of memcmp.

Cc: Joerg Reuter <jreuter@yaina.de>
Cc: linux-hams@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet: atl1: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:40:27 +0000 (19:40 +0800)]
net: atl1: slight optimization of addr compare

Use the recently added and possibly more efficient
ether_addr_equal_unaligned to instead of memcmp.

Cc: Jay Cliburn <jcliburn@gmail.com>
Cc: Chris Snook <chris.snook@gmail.com>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet: pcnet: slight optimization of addr compare
dingtianhong [Thu, 26 Dec 2013 11:40:22 +0000 (19:40 +0800)]
net: pcnet: slight optimization of addr compare

Use possibly more efficient ether_addr_equal
to instead of memcmp.

Cc: Don Fry <pcnet32@frontier.com>
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet: freescale: remove unused compare_addr()
dingtianhong [Thu, 26 Dec 2013 11:40:18 +0000 (19:40 +0800)]
net: freescale: remove unused compare_addr()

The function did not be used any more, so remove it.

Cc: Li Yang <leoli@freescale.com>
Cc: netdev@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoqlge: make local function static
stephen hemminger [Thu, 26 Dec 2013 18:28:11 +0000 (10:28 -0800)]
qlge: make local function static

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agomdio: unused ethtool functions
stephen hemminger [Thu, 26 Dec 2013 18:12:41 +0000 (10:12 -0800)]
mdio: unused ethtool functions

Use it or lose it.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agohhf: make qdisc ops static
stephen hemminger [Thu, 26 Dec 2013 18:09:05 +0000 (10:09 -0800)]
hhf: make qdisc ops static

This module shouldn't be randomly exporting symbols

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agorose: cleanup checkpatch errors,spaces required
Weilong Chen [Thu, 19 Dec 2013 03:55:17 +0000 (11:55 +0800)]
rose: cleanup checkpatch errors,spaces required

This patch add spaces to cleanup checkpatch errors.

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosctp: remove the never used 'return' and redundant 'break'
wangweidong [Thu, 19 Dec 2013 02:02:42 +0000 (10:02 +0800)]
sctp: remove the never used 'return' and redundant 'break'

In switch() had do return, and never use the 'return NULL'. The
'break' after return or goto has no effect. Remove it.

v2: make it more readable as suggested by Neil.

Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agomac802154: fix following checkpath.pl warning Prefer pr_warn(... to pr_warning(...
Weilong Chen [Thu, 19 Dec 2013 01:22:26 +0000 (09:22 +0800)]
mac802154: fix following checkpath.pl warning Prefer pr_warn(... to pr_warning(...

This patch fixes checkpath.pl:
 WARNING: Prefer pr_warn(... to pr_warning(...
 #447: FILE: ./wpan.c:447:

Signed-off-by: Weilong Chen <chenweilong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agocxgb4: make functions static and remove dead code
stephen hemminger [Wed, 18 Dec 2013 22:16:47 +0000 (14:16 -0800)]
cxgb4: make functions static and remove dead code

Cleanup by making local functions static.

The code to load config file is unreachable in net-next, probably came
from some out of tree driver.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosctp: remove casting from function calls through ops structure
wangweidong [Wed, 18 Dec 2013 09:18:55 +0000 (17:18 +0800)]
sctp: remove casting from function calls through ops structure

remove the unnecessary cast.

Signed-off-by: Wang Weidong <wangweidong1@huawei.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonetconf: add support for IPv6 proxy_ndp
stephen hemminger [Wed, 18 Dec 2013 06:37:14 +0000 (22:37 -0800)]
netconf: add support for IPv6 proxy_ndp

Need to be able to see changes to proxy NDP status on a per
interface basis via netlink (analog to proxy_arp).

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonetconf: rename PROXY_ARP to NEIGH_PROXY
stephen hemminger [Wed, 18 Dec 2013 06:35:52 +0000 (22:35 -0800)]
netconf: rename PROXY_ARP to NEIGH_PROXY

Use same field for both IPv4 (proxy_arp) and IPv6 (proxy_ndp)
so fix it before API is set to be a common name

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet: vxlan: use custom ndo_change_mtu handler
Daniel Borkmann [Tue, 17 Dec 2013 23:21:08 +0000 (00:21 +0100)]
net: vxlan: use custom ndo_change_mtu handler

When adding a new vxlan device to an "underlying carrier" (here:
dst->remote_ifindex), the MTU size assigned to the vxlan device
is the MTU at setup time of the carrier - needed headroom, when
adding a vxlan device w/o explicit carrier, then it defaults
to 1500.

In case of an explicit carrier that supports jumbo frames, we
currently cannot change vxlan MTU via ip(8) to > 1500 in
post-setup time, as vxlan driver uses eth_change_mtu() as default
method for manually setting MTU.

Hence, use a custom implementation that only falls back to
eth_change_mtu() in case we didn't use a dev parameter on device
setup time, and otherwise allow a max MTU setting of the carrier
incl. adjustment for headroom.

Reported-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet: use kfree_skb_list() helper
Eric Dumazet [Fri, 20 Dec 2013 22:29:08 +0000 (14:29 -0800)]
net: use kfree_skb_list() helper

We can use kfree_skb_list() instead of open coding it.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoMerge branch 'for-davem' of git://gitorious.org/linux-can/linux-can-next
David S. Miller [Sun, 22 Dec 2013 03:02:22 +0000 (22:02 -0500)]
Merge branch 'for-davem' of git://gitorious.org/linux-can/linux-can-next

Marc Kleine-Budde says:

====================
this is a pull request of three patches for net-next/master.

There is a patch by Oliver Hartkopp, to clean up the CAN gw code.
Alexander Shiyan adds device tree support to the mcp251x driver and a
patch by Ezequiel Garcia lets the ti_hecc driver compile on all ARM
platforms.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoipv6: move ip6_sk_accept_pmtu from generic pmtu update path to ipv6 one
Hannes Frederic Sowa [Thu, 19 Dec 2013 11:54:58 +0000 (12:54 +0100)]
ipv6: move ip6_sk_accept_pmtu from generic pmtu update path to ipv6 one

In commit 93b36cf3425b9b ("ipv6: support IPV6_PMTU_INTERFACE on sockets")
I made a horrible mistake to add ip6_sk_accept_pmtu to the generic
sctp_icmp_frag_needed path. This results in build warnings if IPv6 is
disabled which were luckily caught by Fengguang's kbuild bot. But it
also leads to a kernel panic IPv4 frag-needed packet is received.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoRevert "sctp: fix missing include file"
David S. Miller [Sun, 22 Dec 2013 03:00:39 +0000 (22:00 -0500)]
Revert "sctp: fix missing include file"

This reverts commit ac0917f250c61ae1e395844ebd924db0e07d1f87.

Better version of this fix forthcoming.

Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agocan: ti_hecc: Replace platform dependency with ARM dependency
Ezequiel Garcia [Fri, 20 Dec 2013 20:14:20 +0000 (17:14 -0300)]
can: ti_hecc: Replace platform dependency with ARM dependency

OMAP's ti_hecc driver is used to support the CAN controller on many omap2plus
SoCs (OMAP2430, OMAP3, OMAP4, OMAP5 and AM335x), so it's wrong to make this
depend on OMAP3 only. Take an extra step, to get wider build coverage, and make
the driver depend on ARM.

Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
10 years agocan: mcp251x: Add device tree support
Alexander Shiyan [Sat, 21 Dec 2013 05:01:41 +0000 (09:01 +0400)]
can: mcp251x: Add device tree support

This patch adds Device Tree support to the Microchip MCP251X driver.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
10 years agocan: gw: remove obsolete checks
Oliver Hartkopp [Wed, 4 Dec 2013 18:52:36 +0000 (19:52 +0100)]
can: gw: remove obsolete checks

In commit be286bafe1f4069094865264f29805854c5788bf ("can: gw: add a variable
limit for CAN frame routings") the detection of the frame routing has been
changed. The former solution required dev->header_ops to be unused (== NULL).

I missed to remove the obsolete checks in the original commit - so here it is.

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
10 years agopacket: doc: add documentation for VLAN TPID delivery
Atzm Watanabe [Fri, 20 Dec 2013 14:12:20 +0000 (23:12 +0900)]
packet: doc: add documentation for VLAN TPID delivery

Introduce TP_STATUS_VLAN_TPID_VALID bit into the documentation.

Signed-off-by: Atzm Watanabe <atzm@stratosphere.co.jp>
Acked-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agosctp: fix missing include file
sfeldma@cumulusnetworks.com [Sat, 21 Dec 2013 02:51:10 +0000 (18:51 -0800)]
sctp: fix missing include file

Compile error reported by Jim Davis on netdev.

ip6_sk_accept_pmtu() needs net/ip6_route.h

Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agoMerge branch 'b44'
David S. Miller [Sat, 21 Dec 2013 01:49:01 +0000 (20:49 -0500)]
Merge branch 'b44'

Hauke Mehrtens says:

====================
b44: add support for external PHY

This adds support for an external phy connected to the mac controlled
by b44. This is used on home routers of the BCM47xx line where this MAC
core was used and is contended to an external switch core through MII.
These patches are in OpenWrt for some time and are tested by different
users with different devices.

The publicly available Programmer's Reference Guide for some of these
chips help making this patch it would be nice to have such a
documentation for more Broadcom Chips like some SoCs.
https://www.broadcom.com/collateral/pg/440X-PG02-R.pdf
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
10 years agob44: use fixed PHY device if we do not find any
Hauke Mehrtens [Fri, 20 Dec 2013 01:16:13 +0000 (02:16 +0100)]
b44: use fixed PHY device if we do not find any

The ADM6996L switch and some Broadcom switches with two MII interfaces
like the BCM5325F connected to two MACs on the SoC, used on some
routers do not return a valid value when reading the PHY id register
and Linux thinks there is no PHY at all, but that is wrong.
This patch registers a fixed phy in the arch code and then searches it
when there is no other phy in the Ethernet driver code.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agob44: do not set PHY address to 30 for every ext PHY
Hauke Mehrtens [Fri, 20 Dec 2013 01:16:12 +0000 (02:16 +0100)]
b44: do not set PHY address to 30 for every ext PHY

b44_phy_reset() will fail for an external PHY and only work with the
internal PHY, this was an old workaround when the detection of an
external switch based on the PHY address failed and it is not needed
any more.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agob44: activate PHY when MAC is off
Hauke Mehrtens [Fri, 20 Dec 2013 01:16:11 +0000 (02:16 +0100)]
b44: activate PHY when MAC is off

Without this patch we can not access the PHY when the MAC is switched
off. This PHY access is needed to configure the switch, which is done
through PHY registers.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agob44: add phylib support
Hauke Mehrtens [Fri, 20 Dec 2013 01:16:10 +0000 (02:16 +0100)]
b44: add phylib support

Most of the older home routers based on the Broadcom BCM47XX SoC series
are using a MAC that is supported by b44. On most of these routers not
the internal PHY of this MAC core is used, but a switch sometimes on an
external chip or integrated into the same SoC as the Ethernet core.
For this switch a special PHY driver is needed which should not be
integrated into b44 as the same switches are also used by other
Broadcom home networking SoCs which are using different Ethernet MAC
drivers. This was tested with the b53 switch driver which is currently
on its way to mainline.

If the internal PHY is not used, b44 will now search on the MDIO bus
for a phy and use the Linux phylib subsystem to register a driver.
Support for the internal PHY must stay here, because there are some
device which are suing the internal phy.

With this patch we scan the mdio bus when the sprom or nvram says that
the PHY address is 30, if a PHY was found at this address b44 uses it.

This was tested with a BCM4704, BCM4712 and BCM5354.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agob44: rename b44_mii_{read, write} to b44_mdio_{read, write}_mii
Hauke Mehrtens [Fri, 20 Dec 2013 01:16:09 +0000 (02:16 +0100)]
b44: rename b44_mii_{read, write} to b44_mdio_{read, write}_mii

The next patch will add these functions for phylib, and we should
rename the old ones before. This now indicates that these functions are
used for the mdio registers and on the mii interface.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agob44: abort when no PHY is available at all
Hauke Mehrtens [Fri, 20 Dec 2013 01:16:08 +0000 (02:16 +0100)]
b44: abort when no PHY is available at all

When the phy address is 31, this means that there is no PHY connected
to this MAC at all, no internal and no external PHY. Reading these PHY
registers causes a system reset on some routers.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agob44: rename B44_PHY_ADDR_NO_PHY to B44_PHY_ADDR_NO_LOCAL_PHY
Hauke Mehrtens [Fri, 20 Dec 2013 01:16:07 +0000 (02:16 +0100)]
b44: rename B44_PHY_ADDR_NO_PHY to B44_PHY_ADDR_NO_LOCAL_PHY

The PHY address 30 means there is no local PHY, but there could be an
external PHY like a switch connected via MII. This is the case on most
embedded home routers where this driver is used.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agob44: check register instead of PHY address to detect external PHY
Hauke Mehrtens [Fri, 20 Dec 2013 01:16:06 +0000 (02:16 +0100)]
b44: check register instead of PHY address to detect external PHY

The Ethernet core supported by b44 supports an internal PHY integrated
into the mac core, which is supported by the b44 driver and an external
PHY to which the mac core is connected. This external PHY could be a
switch connected through MII, which is often the case when this core is
used on home routers. The usage of an external PHY was assumed when the
PHY address 30 was used and an internal PHY was assumed when the PHY
address was different. To verify that b44_phy_reset() was called and
checked if it worked, otherwise PHY address 30 was assumed, an external
PHY. It is better to check the register which says which PHY is
connected to the MAC instead of checking the PHY address.
The interface to an external PHY was only activated when this register
was set.

This also changes B44_FLAG_INTERNAL_PHY to B44_FLAG_EXTERNAL_PHY, it is
easier to check.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agotcp: autocork should not hold first packet in write queue
Eric Dumazet [Tue, 17 Dec 2013 17:58:30 +0000 (09:58 -0800)]
tcp: autocork should not hold first packet in write queue

Willem noticed a TCP_RR regression caused by TCP autocorking
on a Mellanox test bed. MLX4_EN_TX_COAL_TIME is 16 us, which can be
right above RTT between hosts.

We can receive a ACK for a packet still in NIC TX ring buffer or in a
softnet completion queue.

Fix this by always pushing the skb if it is at the head of write queue.

Also, as TX completion is lockless, it's safer to perform sk_wmem_alloc
test after setting TSQ_THROTTLED.

erd:~# MIB="MIN_LATENCY,MEAN_LATENCY,MAX_LATENCY,P99_LATENCY,STDDEV_LATENCY"
erd:~#  ./netperf -H remote -t TCP_RR -- -o $MIB | tail -n 1
(repeat 3 times)

Before patch :

18,1049.87,41004,39631,6295.47
17,239.52,40804,48,2912.79
18,348.40,40877,54,3573.39

After patch :

18,22.84,4606,38,16.39
17,21.56,2871,36,13.51
17,22.46,2705,37,11.83

Reported-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: f54b311142a9 ("tcp: auto corking")
Signed-off-by: David S. Miller <davem@davemloft.net>
10 years agonet_sched: fix regression in tc_action_ops
Eric Dumazet [Fri, 20 Dec 2013 20:32:32 +0000 (12:32 -0800)]
net_sched: fix regression in tc_action_ops

list_for_each_entry(a, &act_base, head) doesn't
exit with a = NULL if we reached the end of the list.

tcf_unregister_action(), tc_lookup_action_n() and tc_lookup_action()
need fixes.

Remove tc_lookup_action_id() as its unused and not worth 'fixing'

Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: 1f747c26c48b ("net_sched: convert tc_action_ops to use struct list_head")
Cc: Cong Wang <xiyou.wangcong@gmail.com>
Reviewed-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>