GitHub/LineageOS/android_kernel_motorola_exynos9610.git
9 years agotcp/dccp: constify rtx_synack() and friends
Eric Dumazet [Fri, 25 Sep 2015 14:39:23 +0000 (07:39 -0700)]
tcp/dccp: constify rtx_synack() and friends

This is done to make sure we do not change listener socket
while sending SYNACK packets while socket lock is not held.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agodccp: constify dccp_make_response() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:22 +0000 (07:39 -0700)]
dccp: constify dccp_make_response() socket argument

Like tcp_make_synack() the only time we might change the socket is
when calling sock_wmalloc(), which is using atomic operation to
update sk->sk_wmem_alloc

Also use MAX_DCCP_HEADER as both IPv4/IPv6 use this value for max_header.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agotcp: constify tcp_v{4|6}_send_synack() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:21 +0000 (07:39 -0700)]
tcp: constify tcp_v{4|6}_send_synack() socket argument

This documents fact that listener lock might not be held
at the time SYNACK are sent.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoipv6: constify ip6_xmit() sock argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:20 +0000 (07:39 -0700)]
ipv6: constify ip6_xmit() sock argument

This is to document that socket lock might not be held at this point.

skb_set_owner_w() and ipv6_local_error() are using proper atomic ops
or spinlocks, so we promote the socket to non const when calling them.

netfilter hooks should never assume socket lock is held,
we also promote the socket to non const.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agotcp: constify tcp_make_synack() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:19 +0000 (07:39 -0700)]
tcp: constify tcp_make_synack() socket argument

listener socket is not locked when tcp_make_synack() is called.

We better make sure no field is written.

There is one exception : Since SYNACK packets are attached to the listener
at this moment (or SYN_RECV child in case of Fast Open),
sock_wmalloc() needs to update sk->sk_wmem_alloc, but this is done using
atomic operations so this is safe.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agotcp: remove tcp_ecn_make_synack() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:18 +0000 (07:39 -0700)]
tcp: remove tcp_ecn_make_synack() socket argument

SYNACK packets might be sent without holding socket lock.

For DCTCP/ECN sake, we should call INET_ECN_xmit() while
socket lock is owned, and only when we init/change congestion control.

This also fixies a bug if congestion module is changed from
dctcp to another one on a listener : we now clear ECN bits
properly.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agotcp: remove tcp_synack_options() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:17 +0000 (07:39 -0700)]
tcp: remove tcp_synack_options() socket argument

We do not use the socket in this function.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoip: constify ip_build_and_send_pkt() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:16 +0000 (07:39 -0700)]
ip: constify ip_build_and_send_pkt() socket argument

This function is used to build and send SYNACK packets,
possibly on behalf of unlocked listener socket.

Make sure we did not miss a write by making this socket const.

We no longer can use ip_select_ident() and have to either
set iph->id to 0 or directly call __ip_select_ident()

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agotcp: md5: constify tcp_md5_do_lookup() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:15 +0000 (07:39 -0700)]
tcp: md5: constify tcp_md5_do_lookup() socket argument

When TCP new listener is done, these functions will be called
without socket lock being held. Make sure they don't change
anything.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoinet: constify ip_dont_fragment() arguments
Eric Dumazet [Fri, 25 Sep 2015 14:39:14 +0000 (07:39 -0700)]
inet: constify ip_dont_fragment() arguments

ip_dont_fragment() can accept const socket and dst

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoipv6: constify inet6_csk_route_req() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:13 +0000 (07:39 -0700)]
ipv6: constify inet6_csk_route_req() socket argument

socket is not modified, make it const so that callers can
do the same if they need.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoipv6: constify ip6_dst_lookup_{flow|tail}() sock arguments
Eric Dumazet [Fri, 25 Sep 2015 14:39:12 +0000 (07:39 -0700)]
ipv6: constify ip6_dst_lookup_{flow|tail}() sock arguments

ip6_dst_lookup_flow() and ip6_dst_lookup_tail() do not touch
socket, lets add a const qualifier.

This will permit the same change in inet6_csk_route_req()

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoinet: constify inet_csk_route_req() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:11 +0000 (07:39 -0700)]
inet: constify inet_csk_route_req() socket argument

This is used by TCP listener core, and listener socket shall
not be modified by inet_csk_route_req().

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoinet: constify ip_route_output_flow() socket argument
Eric Dumazet [Fri, 25 Sep 2015 14:39:10 +0000 (07:39 -0700)]
inet: constify ip_route_output_flow() socket argument

Very soon, TCP stack might call inet_csk_route_req(), which
calls inet_csk_route_req() with an unlocked listener socket,
so we need to make sure ip_route_output_flow() is not trying to
change any field from its socket argument.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agotcp: constify tcp_openreq_init_rwin()
Eric Dumazet [Fri, 25 Sep 2015 14:39:09 +0000 (07:39 -0700)]
tcp: constify tcp_openreq_init_rwin()

Soon, listener socket wont be locked when tcp_openreq_init_rwin()
is called. We need to read socket fields once, as their value
could change under us.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agotcp: constify listener socket in tcp_v[46]_init_req()
Eric Dumazet [Fri, 25 Sep 2015 14:39:08 +0000 (07:39 -0700)]
tcp: constify listener socket in tcp_v[46]_init_req()

Soon, listener socket spinlock will no longer be held,
add const arguments to tcp_v[46]_init_req() to make clear these
functions can not mess socket fields.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agonet: remove unused argument of __netdev_find_adj()
Michal Kubeček [Thu, 24 Sep 2015 08:59:05 +0000 (10:59 +0200)]
net: remove unused argument of __netdev_find_adj()

The __netdev_find_adj() helper does not use its first argument, only the
device to find and list to walk through.

Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge branch 'l2tp-module-autoloading'
David S. Miller [Fri, 25 Sep 2015 19:27:23 +0000 (12:27 -0700)]
Merge branch 'l2tp-module-autoloading'

Stephen Hemminger says:

====================
l2tp: module autoloading

With L2TP it was necessary to manually load modules
which is a nuisance and not required with other tunneling
protocols. This set of patches adds the aliases and module
load hook to get rid of the necessity of modprobing.
====================

Acked-By: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agol2tp: remove references to modprobe in documentation
stephen hemminger [Thu, 24 Sep 2015 04:33:36 +0000 (21:33 -0700)]
l2tp: remove references to modprobe in documentation

No longer need explicit modprobe's and update to use ip instead
of deprecated ifconfig command.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agol2tp: auto load IP modules
stephen hemminger [Thu, 24 Sep 2015 04:33:35 +0000 (21:33 -0700)]
l2tp: auto load IP modules

When creating a IP encapsulated tunnel the necessary l2tp module
should be loaded. It already works for UDP encapsulation, it just
doesn't work for direct IP encap.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agol2tp: auto load type modules
stephen hemminger [Thu, 24 Sep 2015 04:33:34 +0000 (21:33 -0700)]
l2tp: auto load type modules

It should not be necessary to do explicit module loading when
configuring L2TP. Modules should be loaded as needed instead
(as is done already with netlink and other tunnel types).

This patch adds a new module alias type and code to load
the sub module on demand.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agonet: dsa: Set a "dsa" device_type
Florian Fainelli [Thu, 24 Sep 2015 01:19:58 +0000 (18:19 -0700)]
net: dsa: Set a "dsa" device_type

Provide a device_type information for slave network devices created by
DSA, this is useful for user-space application to easily locate/search
for devices of a specific kind.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge branch 'switchdev-transaction-item-queue'
David S. Miller [Fri, 25 Sep 2015 05:59:23 +0000 (22:59 -0700)]
Merge branch 'switchdev-transaction-item-queue'

Jiri Pirko says:

====================
switchdev: transaction item queue and cleanup
====================

Acked-by: Scott Feldman <sfeldma@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoswitchdev: reduce transaction phase enum down to a boolean
Jiri Pirko [Thu, 24 Sep 2015 08:02:49 +0000 (10:02 +0200)]
switchdev: reduce transaction phase enum down to a boolean

Now, since we have only 2 values for transaction phase, just use bool.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agodsa: use prepare/commit switchdev transaction helpers
Jiri Pirko [Thu, 24 Sep 2015 08:02:48 +0000 (10:02 +0200)]
dsa: use prepare/commit switchdev transaction helpers

The enum is going to disappear, use the helpers instead.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoswitchdev: remove "ABORT" transaction phase
Jiri Pirko [Thu, 24 Sep 2015 08:02:47 +0000 (10:02 +0200)]
switchdev: remove "ABORT" transaction phase

No longer used by drivers, as transaction queue with item destructors
takes care of abort phase internally in switchdev code. So kill it.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoswitchdev: remove "NONE" transaction phase
Jiri Pirko [Thu, 24 Sep 2015 08:02:46 +0000 (10:02 +0200)]
switchdev: remove "NONE" transaction phase

Shouldn't have been there in the first place. Now it is unused, kill it.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agorocker: use switchdev transaction queue for allocated memory
Jiri Pirko [Thu, 24 Sep 2015 08:02:45 +0000 (10:02 +0200)]
rocker: use switchdev transaction queue for allocated memory

Benefit from previously introduced transaction item queue infrastructure
and remove rocker specific transaction memory management.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agorocker: push struct switchdev_trans down through rocker code
Jiri Pirko [Thu, 24 Sep 2015 08:02:44 +0000 (10:02 +0200)]
rocker: push struct switchdev_trans down through rocker code

There will be needed to have switchdev_trans available down in the call
chain, so propagate it instead of trans phase enum. This enum will be
removed anyway. Also, use prepare/commit phase check helpers to get
information about current phase of transaction.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoswitchdev: add switchdev_trans_ph_prepare/commit helpers
Jiri Pirko [Thu, 24 Sep 2015 08:02:43 +0000 (10:02 +0200)]
switchdev: add switchdev_trans_ph_prepare/commit helpers

Add helpers which should be used int attr_set/obj_add switchdev ops to
check the phase of transaction.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoswitchdev: move transaction phase enum under transaction structure
Jiri Pirko [Thu, 24 Sep 2015 08:02:42 +0000 (10:02 +0200)]
switchdev: move transaction phase enum under transaction structure

Before it disappears completely, move transaction phase enum under
transaction structure and make attr/obj structures a bit cleaner.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoswitchdev: introduce transaction item queue for attr_set and obj_add
Jiri Pirko [Thu, 24 Sep 2015 08:02:41 +0000 (10:02 +0200)]
switchdev: introduce transaction item queue for attr_set and obj_add

Now, the memory allocation in prepare/commit state is done separatelly
in each driver (rocker). Introduce the similar mechanism in generic
switchdev code, in form of queue. That can be used not only for memory
allocations, but also for different items. Abort item destruction
is handled as well.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoswitchdev: rename "trans" to "trans_ph".
Jiri Pirko [Thu, 24 Sep 2015 08:02:40 +0000 (10:02 +0200)]
switchdev: rename "trans" to "trans_ph".

This is temporary, name "trans" will be used for something else and
"trans_ph" will eventually disappear.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next...
David S. Miller [Thu, 24 Sep 2015 22:39:09 +0000 (15:39 -0700)]
Merge branch 'master' of git://git./linux/kernel/git/jkirsher/next-queue

Jeff Kirsher says:

====================
Intel Wired LAN Driver Updates 2015-09-23

This series contains updates to ixgbe only.

Mark provides all the changes in this series, first clears the destination
location for I2C data initially so that the received data will not be
corrupted by previous attempts.  Then reduced the pauses/delays in the
PHY detection when no SFP is present by reducing the number of retires,
once an SFP is detected, the "normal" number of retries in PHY detection
will be used.  Added support for X55EM_x SFP+ dual-speed, and fixed 1G and
10G link stability for X550EM_x by configuring the CS4227 correctly by
moving code to ixgbe_setup_mac_link_sfp_x550em().  Added functionality to
reset CS4227, since on some platforms the CS4227 does not initialize
properly.  Next reduces the SFP polling rate, due to when an SFP is not
present, the I2C timeouts that result are very costly.  So prevent the
SFP polling from being done more than once every two seconds.  Added
support for I2C bus MUX.  Fixed the setting of RDRXCTL register which
should fall through X540 and 82599, not 82598.  In addition, added small
packet padding support in X550 by setting RDRXCTL.PSP when the driver is
in SRIOV mode.  Fixed a known hardware issue where the PCI transactions
pending bit sticks high when there are pending transactions, so
workaround the issue by wait and then continue with our reset flow.
Added a new device ID for X550EM device with SFPs.  Provided a fix with
the DCA setup, which was suggested by Alex Duyck <aduyck@mirantis.com>,
by making it so that we always set the relaxed ordering bits related to
the DCA registers even if DCA is not enbaled.  Then moves the
configuration out of the ixgbe_down() and into ixgbe_configure() before
enabling the transmit and receive rings.  This ensures that DCA is
configured correctly before starting the processing of packets.
Fixed VM-to-VM loopback mode which requires that FCRTH be set, but
the datasheets did not specify what the value should be.  It has now
been determined that the correct value should be RXPBSIZE - (24*1024).
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agotcp: factorize sk_txhash init
Eric Dumazet [Wed, 23 Sep 2015 03:44:17 +0000 (20:44 -0700)]
tcp: factorize sk_txhash init

Neal suggested to move sk_txhash init into tcp_create_openreq_child(),
called both from IPv4 and IPv6.

This opportunity was missed in commit 58d607d3e52f ("tcp: provide
skb->hash to synack packets")

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agonet: axinet: Use of_property_read_u32 instead of open-coding it
Tobias Klauser [Wed, 23 Sep 2015 07:20:55 +0000 (09:20 +0200)]
net: axinet: Use of_property_read_u32 instead of open-coding it

Use of_property_read_u32 instead of of_get_property with return value
checks and endianness conversion.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Reviewed-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agonet: ll_temac: Use of_property_read_u32 instead of open-coding it
Tobias Klauser [Wed, 23 Sep 2015 07:20:02 +0000 (09:20 +0200)]
net: ll_temac: Use of_property_read_u32 instead of open-coding it

Use of_property_read_u32 to read the "clock-frequency" property instead
of using of_get_property with return value checks.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Reviewed-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoipv6: remove unused neigh parameter from ndisc functions
Jiri Benc [Tue, 22 Sep 2015 16:57:13 +0000 (18:57 +0200)]
ipv6: remove unused neigh parameter from ndisc functions

Since commit 12fd84f4383b1 ("ipv6: Remove unused neigh argument for
icmp6_dst_alloc() and its callers."), the neigh parameter of ndisc_send_na
and ndisc_send_ns is unused.

CC: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agogenetlink: simplify genl_notify
Jiri Benc [Tue, 22 Sep 2015 16:56:43 +0000 (18:56 +0200)]
genetlink: simplify genl_notify

The genl_notify function has too many arguments for no real reason - all
callers use genl_info to get them anyway. Just pass the genl_info down to
genl_notify.

Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoixgbe: Advance version to 4.2.1
Mark Rustad [Tue, 11 Aug 2015 20:11:58 +0000 (13:11 -0700)]
ixgbe: Advance version to 4.2.1

With the addition of X550em_x SFP+ support, the driver is now
functionally equivalent to what will be the 4.2.1 driver when
released, so change the version to match.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: X540 thermal warning interrupt not a GPI
Mark Rustad [Sat, 8 Aug 2015 23:27:56 +0000 (16:27 -0700)]
ixgbe: X540 thermal warning interrupt not a GPI

The X540 thermal interrupt (IXGBE_EIMS_TS) is not an SDP, so it
doesn't need to be enabled in ixgbe_setup_gpie(). In fact the
value is simply not for the GPIE register at all.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Fix FCRTH value in VM-to-VM loopback mode
Mark Rustad [Sat, 8 Aug 2015 23:27:51 +0000 (16:27 -0700)]
ixgbe: Fix FCRTH value in VM-to-VM loopback mode

The 82599 and X540 datasheets require that FCRTH be "set" for Tx
switching (VM-to-VM loopback) but it did not previously specify what
the value should be set to. It has now been determined that
the correct value is RXPBSIZE - (24*1024).

This setting is also required for later devices.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Only clear adapter_stopped if ixgbe_setup_fc succeeded
Mark Rustad [Sat, 8 Aug 2015 23:27:46 +0000 (16:27 -0700)]
ixgbe: Only clear adapter_stopped if ixgbe_setup_fc succeeded

A logic error here results in the adapter_stopped flag only being
cleared when ixgbe_setup_fc returns an error. Correct the logic.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Correct several flaws with with DCA setup
Mark Rustad [Sat, 8 Aug 2015 23:27:41 +0000 (16:27 -0700)]
ixgbe: Correct several flaws with with DCA setup

This change does two things. First, it makes it so that we always
set the relaxed ordering bits related to the DCA registers even if
DCA is not enabled. Second, it moves the configuration out of the
ixgbe_down function and into the ixgbe_configure function before
enabling the Rx and Tx rings. This ensures that DCA is configured
correctly before starting to process packets.

Thanks to Alex Duyck for this fix.

CC: Alex Duyck <aduyck@mirantis.com>
Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Add new X550EM SFP+ device ID
Mark Rustad [Sat, 8 Aug 2015 23:19:19 +0000 (16:19 -0700)]
ixgbe: Add new X550EM SFP+ device ID

Add new device ID for X550EM device with SFPs.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Update ixgbe_disable_pcie_master flow for X550*
Mark Rustad [Sat, 8 Aug 2015 23:19:14 +0000 (16:19 -0700)]
ixgbe: Update ixgbe_disable_pcie_master flow for X550*

This patch skips the PCI transactions pending check in
ixgbe_disable_pcie_master. This is done to addresses a known HW
issue where the PCI transactions pending bit sticks high when there
are pending transactions. HW engineering instructed to workaround
this issue by wait and then continue with our reset flow.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Add small packet padding support for X550
Mark Rustad [Sat, 8 Aug 2015 23:19:09 +0000 (16:19 -0700)]
ixgbe: Add small packet padding support for X550

This patch sets RDRXCTL.PSP when the driver is in SRIOV mode which
enables padding of small packets.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Correct setting of RDRXCTL register for X550* devices
Mark Rustad [Sat, 8 Aug 2015 23:19:04 +0000 (16:19 -0700)]
ixgbe: Correct setting of RDRXCTL register for X550* devices

Setting the X550* RDRXCTL register should fall through into X540
and 82599, not 82598.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Correct error path in semaphore handling
Mark Rustad [Sat, 8 Aug 2015 23:18:59 +0000 (16:18 -0700)]
ixgbe: Correct error path in semaphore handling

The timeout path is supposed to release the semaphore, so do that.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Add I2C bus mux support
Mark Rustad [Sat, 8 Aug 2015 23:18:53 +0000 (16:18 -0700)]
ixgbe: Add I2C bus mux support

Take control of an I2C mux that selects which SFP is attached to
the I2C bus. The control of the mux is captured in the taking and
releasing of the related semaphore. Because only port 1 can control
the mux, port 1 always leaves the mux set to select port 0.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Limit SFP polling rate
Mark Rustad [Sat, 8 Aug 2015 23:18:48 +0000 (16:18 -0700)]
ixgbe: Limit SFP polling rate

Reduce the frequency of polling for SFP modules. Because the
service task sometimes runs at high rates, we can poll for
SFPs too often. When an SFP is not present, the I2C timeouts
that result are very costly. So, prevent SFP polling from
being done more than once every two seconds. To reduce latency,
the poll time is cleared in a couple of cases to permit the
next service task execution to poll the SFP module.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Allow SFP+ on more than 82598 and 82599
Mark Rustad [Sat, 8 Aug 2015 23:18:43 +0000 (16:18 -0700)]
ixgbe: Allow SFP+ on more than 82598 and 82599

Since SFP+ can be used with some X550 devices, permit them to be
detected.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Add logic to reset CS4227 when needed
Mark Rustad [Sat, 8 Aug 2015 23:18:38 +0000 (16:18 -0700)]
ixgbe: Add logic to reset CS4227 when needed

On some hardware platforms, the CS4227 does not initialize properly.
Detect those cases and reset it appropriately.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Fix 1G and 10G link stability for X550EM_x SFP+
Mark Rustad [Sat, 8 Aug 2015 23:18:33 +0000 (16:18 -0700)]
ixgbe: Fix 1G and 10G link stability for X550EM_x SFP+

Configures the CS4227 correctly for both 1G and 10G operation,
by moving the code to ixgbe_setup_mac_link_sfp_x550em(). It
needs to be in this function because we need both the module
type and the speed, and this is the only function in the init
flow that knows the speed. In contrast,
ixgbe_setup_sfp_modules_X550em() does not know the speed, so we
can't do anything useful here. This is a fundamental difference
from the previous flow, and is due to the way the CS4227 is
implemented.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Add X550EM_x dual-speed SFP+ support
Mark Rustad [Sat, 8 Aug 2015 23:18:28 +0000 (16:18 -0700)]
ixgbe: Add X550EM_x dual-speed SFP+ support

This patch adds X550EM_x SFP+ dual-speed support. 82599 fiber link
code was moved from ixgbe_82599.c to ixgbe_common.c for use by
X550EM. SFP MAC link code is added to x550EM.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Allow reduced delays during SFP detection
Mark Rustad [Sat, 8 Aug 2015 23:18:22 +0000 (16:18 -0700)]
ixgbe: Allow reduced delays during SFP detection

Reduce the number of retries during PHY detection. This reduces
pauses when no SFP is present. Once an SFP is detected, the normal
retry count will be used.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agoixgbe: Clear I2C destination location
Mark Rustad [Sat, 8 Aug 2015 23:18:17 +0000 (16:18 -0700)]
ixgbe: Clear I2C destination location

Clear the destination location for I2C data initially so that
the received data will not be affected by previous attempts.
This could have returned wrong data in certain retry sequences.

Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
9 years agonet/ethoc: support big-endian register layout
Max Filippov [Tue, 22 Sep 2015 11:27:16 +0000 (14:27 +0300)]
net/ethoc: support big-endian register layout

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agonet: davinci_emac: Add support for fixed-link PHY
Neil Armstrong [Tue, 22 Sep 2015 08:57:04 +0000 (10:57 +0200)]
net: davinci_emac: Add support for fixed-link PHY

In case the DaVinci Emac is directly connected to a
non-mdio PHY/device, it should be possible to provide
a fixed link configuration in the DT.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoDriver: Vmxnet3: Extend register dump support
Shrikrishna Khare [Tue, 22 Sep 2015 03:01:29 +0000 (20:01 -0700)]
Driver: Vmxnet3: Extend register dump support

Signed-off-by: Shrikrishna Khare <skhare@vmware.com>
Signed-off-by: Bhavesh Davda <bhavesh@vmware.com>
Acked-by: Srividya Murali <smurali@vmware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next...
David S. Miller [Wed, 23 Sep 2015 21:52:02 +0000 (14:52 -0700)]
Merge branch 'master' of git://git./linux/kernel/git/jkirsher/next-queue

Jeff Kirsher says:

====================
Intel Wired LAN Driver Updates 2015-09-22

This series contains updates to e1000, e1000e, igbvf, ixgbe, ixgbevf and
fm10k.

Jacob provides several updates for fm10k, which cleans up comments and
most notably a fix for a corner case issue with the PF/VF mailbox code.
The issue being fm10k_mbx_reset_work clears various states about the
mailbox, but does not clear the Tx FIFO head/tail pointers.  We also
are not able to simply clear these pointers, as we would drop
untransmitted messages without error.  Also adds support for extra debug
statistics, which provides the ability to see what the PF thinks the
VF mailboxes look like.

Don adds support for SFP+ in X550 and support for SCTP flow director
filters SCTP mask.

Francois Romieu dusts off the e1000 driver and removes some dead calls
to e1000_init_eeprom_params().

Toshiaki Makita provides three patches to enable TSO for stacked VLAN's
on e1000e, igbvf and ixgbevf.

Mark provides the first of several ixgbe updates.  First updates the
driver to accept SFP not present error for all devices, since an SFP
can still be inserted.  Adds support for SFP insertion interrupt on
X550EM devices with SPFs.  Adds I2C combined operations on X550EM
(not X550) devices.  Moved the setting of lan_id to before any I2C
eeprom access.  Lastly, set the bit bang mode in the hardware when
performing bit banding I2C operations on X550.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge branch 'bridge_external_fdb_aging'
David S. Miller [Wed, 23 Sep 2015 21:35:59 +0000 (14:35 -0700)]
Merge branch 'bridge_external_fdb_aging'

Scott Feldman says:

====================
bridge: don't age out externally added FDB entries

v3: Per davem review: add del_timer_sync on rocker port remove.

v2: Per Jiri review comment: add BR_DEFAULT_AGEING_TIME to defines

Siva originally proposed skipping externally added FDB entries in the bridge's
FDB garbage collection func, and moving the ageing of externally added entries
to the port driver/device.  This broke rocker, since rocker didn't have a
hardware (or software) mechanism for ageing out its learned FDB entries.

This patchset reintroduces Siva's bridge driver patch to skip externally added
entries and adds support in rocker so rocker can age out its own entries.
Rocker does this using a software timer similar to the bridge's FDB garbage
collection timer.  Other switchdev devices/drivers can use this software timer
method or program the device to nofity aged-out entries to the driver.

Updated switchdev.txt documentation to reflect current state-of-the-art.  This
removes one more XXX todo comment in switchdev.txt.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoswitchdev: update documentation on FDB ageing_time
Scott Feldman [Wed, 23 Sep 2015 15:39:20 +0000 (08:39 -0700)]
switchdev: update documentation on FDB ageing_time

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agobridge: don't age externally added FDB entries
Siva Mannem [Wed, 23 Sep 2015 15:39:19 +0000 (08:39 -0700)]
bridge: don't age externally added FDB entries

Signed-off-by: Siva Mannem <siva.mannem.lnx@gmail.com>
Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Acked-by: Premkumar Jonnala <pjonnala@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agorocker: add FDB cleanup timer
Scott Feldman [Wed, 23 Sep 2015 15:39:18 +0000 (08:39 -0700)]
rocker: add FDB cleanup timer

Add a timer to each rocker switch to do FDB entry cleanup by ageing out
expired entries.  The timer scheduling algo is copied from the bridge
driver, for the most part, to keep the firing of the timer to a minimum.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agorocker: adding port ageing_time for ageing out FDB entries
Scott Feldman [Wed, 23 Sep 2015 15:39:17 +0000 (08:39 -0700)]
rocker: adding port ageing_time for ageing out FDB entries

Follow-up patcheset will allow user to change ageing_time, but for now
just hard-code it to a fixed value (the same value used as the default
for the bridge driver).

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agobridge: define some min/max/default ageing time constants
Scott Feldman [Wed, 23 Sep 2015 15:39:16 +0000 (08:39 -0700)]
bridge: define some min/max/default ageing time constants

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agorocker: store rocker_port in fdb key rather than pport
Scott Feldman [Wed, 23 Sep 2015 15:39:15 +0000 (08:39 -0700)]
rocker: store rocker_port in fdb key rather than pport

We'll need more info from rocker_port than just pport when we age out fdb
entries, so store rocker_port rather than pport in each fdb entry.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agorocker: track when FDB entry is touched.
Scott Feldman [Wed, 23 Sep 2015 15:39:14 +0000 (08:39 -0700)]
rocker: track when FDB entry is touched.

The entry is touched once when created, and touched again for each update.
The touched time is used to calculate FDB entry age.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge branch 'cls_bpf-next'
David S. Miller [Wed, 23 Sep 2015 21:29:02 +0000 (14:29 -0700)]
Merge branch 'cls_bpf-next'

Daniel Borkmann says:

====================
Minor cls_bpf updates

Some minor updates resp. follow-ups on cls_bpf, please see
individual patches for details. Will follow with the iproute2
patch after this series.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agocls_bpf: further limit exec opcodes subset
Daniel Borkmann [Wed, 23 Sep 2015 19:56:48 +0000 (21:56 +0200)]
cls_bpf: further limit exec opcodes subset

Jamal suggested to further limit the currently allowed subset of opcodes
that may be used by a direct action return code as the intention is not
to replace the full action engine, but rather to have a minimal set that
can be used in the fast-path on things like ingress for some features
that cls_bpf supports.

Classifiers can, of course, still be chained together that have direct
action mode with those that have a full exec pass. For more complex
scenarios that go beyond this minimal set here, the full tcf_exts_exec()
path must be used.

Suggested-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agocls_bpf: make binding to classid optional
Daniel Borkmann [Wed, 23 Sep 2015 19:56:47 +0000 (21:56 +0200)]
cls_bpf: make binding to classid optional

The binding to a particular classid was so far always mandatory for
cls_bpf, but it doesn't need to be. Therefore, lift this restriction
as similarly done in other classifiers.

Only a couple of qdiscs make use of class from the tcf_result, others
don't strictly care, so let the user choose his needs (those that read
out class can handle situations where it could be NULL).

An explicit check for tcf_unbind_filter() is also not needed here, as
the previous r->class was 0, so the xchg() will return that and
therefore a callback to the qdisc's unbind_tcf() is skipped.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agocls_bpf: also dump TCA_BPF_FLAGS
Daniel Borkmann [Wed, 23 Sep 2015 19:56:46 +0000 (21:56 +0200)]
cls_bpf: also dump TCA_BPF_FLAGS

In commit 43388da42a49 ("cls_bpf: introduce integrated actions") we
have added TCA_BPF_FLAGS. We can also retrieve this information from
the prog, dump it back to user space as well. It's useful in tc when
displaying/dumping filter info.

Also, remove tp from cls_bpf_prog_from_efd(), came in as a conflict
from a rebase and it's unused here (later work may add it along with
a real user).

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoMerge tag 'arcnet-cleanup-v4.3-rc2' of git://git.pengutronix.de/git/mgr/linux
David S. Miller [Wed, 23 Sep 2015 21:27:24 +0000 (14:27 -0700)]
Merge tag 'arcnet-cleanup-v4.3-rc2' of git://git.pengutronix.de/git/mgr/linux

Michael Grzeschik says:

====================
ARCNET: refactoring and cleanup

This series cleans up the code in drivers/net/arcnet
and include/uapi/linux/if_arcnet.h . It doesn't change
the runtime behaviour of the code. Its only purpose
is to improve the code maintenance and readability.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agosched, bpf: let stack handle !IFF_UP devs on bpf_clone_redirect
Daniel Borkmann [Wed, 23 Sep 2015 20:20:15 +0000 (22:20 +0200)]
sched, bpf: let stack handle !IFF_UP devs on bpf_clone_redirect

Similarly as already the case in bpf_redirect()/skb_do_redirect()
pair, let the stack deal with devs that are !IFF_UP.

dev_forward_skb() as well as dev_queue_xmit() will free the skb
and increment drop counter internally in such cases, so we can
spare the condition in bpf_clone_redirect().

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoipv6 Use get_hash_from_flowi6 for rt6 hash
Tom Herbert [Wed, 23 Sep 2015 21:13:35 +0000 (14:13 -0700)]
ipv6 Use get_hash_from_flowi6 for rt6 hash

In rt6_info_hash_nhsfn replace the custom hashing over flowi6 that is
using xor with a call to common function get_hash_from_flowi6.

Signed-off-by: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
9 years agoarcnet: capmode: remove extra function
Michael Grzeschik [Wed, 22 Apr 2015 09:47:43 +0000 (11:47 +0200)]
arcnet: capmode: remove extra function

This patch cleans the capmode protocol module. It removes the obsolete
function arcnet_cap_init and replaces printk with pr_info.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: arc-rawmode: reorder module functions
Michael Grzeschik [Wed, 22 Apr 2015 09:11:58 +0000 (11:11 +0200)]
arcnet: arc-rawmode: reorder module functions

This patch moves the module_init and module_exit patches to
the end of the file. It also replaces the printk with pr_info.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: com20020: replace magic numbers with readable macros
Michael Grzeschik [Wed, 15 Apr 2015 09:43:57 +0000 (11:43 +0200)]
arcnet: com20020: replace magic numbers with readable macros

This patch replaces all magic numbers in the driver with
proper named macros. For the case of XTOcfg and STARTIOcmd
it introduces the new macros.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: reformat structs to C99 format
Michael Grzeschik [Fri, 20 Mar 2015 14:22:02 +0000 (15:22 +0100)]
arcnet: reformat structs to C99 format

This patch changes the macro definitions to match the C99
formating. This improves the readability.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Remove unused arcnet_<I/O>w macros
Joe Perches [Tue, 5 May 2015 17:06:14 +0000 (10:06 -0700)]
arcnet: Remove unused arcnet_<I/O>w macros

The word length macros are unused.  Remove them.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Add com9026.h to standardize COM9026_REG_<foo>
Joe Perches [Tue, 5 May 2015 17:06:13 +0000 (10:06 -0700)]
arcnet: Add com9026.h to standardize COM9026_REG_<foo>

Deduplicate the COM9026 registers.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Remove function pointer macro indirections
Joe Perches [Tue, 5 May 2015 17:06:12 +0000 (10:06 -0700)]
arcnet: Remove function pointer macro indirections

It's clearer to use function pointer calls directly instead of the
macro indirections of ARCRESET, ACOMMAND, ASTATUS, and AINTMASK.

Remove the now unused macros too.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: com90xx: Use arcnet_readb/writeb routines
Joe Perches [Tue, 5 May 2015 17:06:11 +0000 (10:06 -0700)]
arcnet: com90xx: Use arcnet_readb/writeb routines

Simplify and make consistent the current uses of readb/writeb
by using the newly introduced arcnet_<I/O> equivalents.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: arc-rimi: Use arcnet_<I/O> routines
Joe Perches [Tue, 5 May 2015 17:06:10 +0000 (10:06 -0700)]
arcnet: arc-rimi: Use arcnet_<I/O> routines

Simplify and make consistent the current uses of readb/writeb
by using the newly introduced arcnet_<I/O> equivalents.

o Add new #defines for register offsets
o Remove old #defines that included the ioaddr
o Remove obfuscating macros by expanding them in-place where appropriate

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: arcdevice.h: Add arcnet_readb and arcnet_writeb
Joe Perches [Tue, 5 May 2015 17:06:09 +0000 (10:06 -0700)]
arcnet: arcdevice.h: Add arcnet_readb and arcnet_writeb

Use the same indirection as the other arcnet_<I/O> macros.
Neither of these new macros add the BUS_ALIGN use for 8 bit devices
on 16 bit busses.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: com90xx: Use arcnet_<I/O> routines
Joe Perches [Tue, 5 May 2015 17:06:08 +0000 (10:06 -0700)]
arcnet: com90xx: Use arcnet_<I/O> routines

Simplify and make consistent the current uses of inb/outb
by using the newly introduced arcnet_<I/O> equivalents.

o Add new #defines for register offsets
o Remove old #defines that included the ioaddr
o Remove obfuscating macros by expanding them in-place where appropriate

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: com90io: Use arcnet_<I/O> routines
Joe Perches [Tue, 5 May 2015 17:06:07 +0000 (10:06 -0700)]
arcnet: com90io: Use arcnet_<I/O> routines

Simplify and make consistent the current uses of inb/outb
by using the newly introduced arcnet_<I/O> equivalents.

o Add new #defines for register offsets
o Remove old #defines that included the ioaddr
o Remove obfuscating macros by expanding them in-place where appropriate

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: com20020: Use arcnet_<I/O> routines
Joe Perches [Tue, 5 May 2015 17:06:06 +0000 (10:06 -0700)]
arcnet: com20020: Use arcnet_<I/O> routines

Simplify and make consistent the current uses of inb/outb
by using the newly introduced arcnet_<I/O> equivalents.

o Add new #defines for register offsets
  There is an register offset, 8, that is unnamed and used as-is.
o Remove old #defines that included the ioaddr
o Remove obfuscating macros by expanding them in-place where appropriate
o Create static inline com20020_set_subaddress for the SET_SUBADR macro

There is an unused arcnet config entry CONFIGSA100_CT6001 which added a
special #define BUS_ALIGN which was introduced but never used in fullhist git
tree commit 22cfce4b82b0 ("[ARCNET]: Fixes.") in Nov 2004 for Linux v2.6.10.

This BUS_ALIGN #define tries to allow 8 bit devices to work on a 16 bit
bus by aligning addresses to 16 bit boundaries.

Move this currently unused CONFIG_SA1100_CT6001 BUS_ALIGN macro from
com20020.h to arcdevice.h.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Add arcnet_<I/O> macros
Joe Perches [Tue, 5 May 2015 17:06:05 +0000 (10:06 -0700)]
arcnet: Add arcnet_<I/O> macros

arcnet uses an I/O scheme which can align I/O addresses to word boundaries
on different architectures.

Add arcnet specific macros which can hide this alignment calculation.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Make a char * array const char * const
Joe Perches [Tue, 5 May 2015 17:06:04 +0000 (10:06 -0700)]
arcnet: Make a char * array const char * const

Might as well be specific about the use of this array.

Add a commment questioning the indexing too.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Move files out of include/linux
Joe Perches [Tue, 5 May 2015 17:06:03 +0000 (10:06 -0700)]
arcnet: Move files out of include/linux

These #include files don't need to be in the include/linux directory
as they can be local to drivers/net/arcnet/

Move them and update the #include statements.

Update the MAINTAINERS file pattern by deleting arcdevice from the
NETWORKING block as arcnet is currently unmaintained.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Wrap some long lines
Joe Perches [Tue, 5 May 2015 17:06:02 +0000 (10:06 -0700)]
arcnet: Wrap some long lines

Just neatening.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Convert arcnet_dump_skb macro to static inline
Joe Perches [Tue, 5 May 2015 17:06:01 +0000 (10:06 -0700)]
arcnet: Convert arcnet_dump_skb macro to static inline

Make sure the arguments are tested appropriately when not using
this function.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Remove pointer comparisons to NULL
Joe Perches [Tue, 5 May 2015 17:06:00 +0000 (10:06 -0700)]
arcnet: Remove pointer comparisons to NULL

Use direct tests of pointer instead.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Remove assignments from ifs
Joe Perches [Tue, 5 May 2015 17:05:59 +0000 (10:05 -0700)]
arcnet: Remove assignments from ifs

Move the assignment above the if like general kernel style.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Remove unnecessary OOM messages
Joe Perches [Tue, 5 May 2015 17:05:58 +0000 (10:05 -0700)]
arcnet: Remove unnecessary OOM messages

Alloc failures have generic stack dumps so these are redundant.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Move EXPORT_SYMBOL after declarations
Joe Perches [Tue, 5 May 2015 17:05:57 +0000 (10:05 -0700)]
arcnet: Move EXPORT_SYMBOL after declarations

Use the normal kernel style for EXPORT_SYMBOL.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Convert printk to pr_<level>
Joe Perches [Tue, 5 May 2015 17:05:56 +0000 (10:05 -0700)]
arcnet: Convert printk to pr_<level>

Use the more current logging style.

Remove #define VERSION, use pr_info normally.
Add pr_fmt with "arcnet:" prefixes and KBUILD_MODNAME.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
9 years agoarcnet: Convert BUGMSG and BUGMSG2 to arc_prink and arc_cont
Joe Perches [Tue, 5 May 2015 17:05:55 +0000 (10:05 -0700)]
arcnet: Convert BUGMSG and BUGMSG2 to arc_prink and arc_cont

These macros don't actually represent BUG uses but are more commonly
used as logging macros, so use a more kernel style macro.

Convert the BUGMSG from a netdev_ like use to actually use netdev_<level>.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>