GitHub/LineageOS/android_kernel_samsung_universal7580.git
14 years agonet: Simplify ipip6 aka sit pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:16 +0000 (15:46 +0000)]
net: Simplify ipip6 aka sit pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify ip6_tunnel pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:15 +0000 (15:46 +0000)]
net: Simplify ip6_tunnel pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify ipip pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:14 +0000 (15:46 +0000)]
net: Simplify ipip pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify ip_gre pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:13 +0000 (15:46 +0000)]
net: Simplify ip_gre pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify phonet pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:12 +0000 (15:46 +0000)]
net: Simplify phonet pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify pppol2tp pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:11 +0000 (15:46 +0000)]
net: Simplify pppol2tp pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify pppoe pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:10 +0000 (15:46 +0000)]
net: Simplify pppoe pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify ppp_generic pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:09 +0000 (15:46 +0000)]
net: Simplify ppp_generic pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify conntrack_proto_gre pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:08 +0000 (15:46 +0000)]
net: Simplify conntrack_proto_gre pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify conntrack_proto_dccp pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:07 +0000 (15:46 +0000)]
net: Simplify conntrack_proto_dccp pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify af_key pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:06 +0000 (15:46 +0000)]
net: Simplify af_key pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify vlan pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:05 +0000 (15:46 +0000)]
net: Simplify vlan pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify the bond drivers pernet operations.
Eric W. Biederman [Sun, 29 Nov 2009 15:46:04 +0000 (15:46 +0000)]
net: Simplify the bond drivers pernet operations.

Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplfy default_device_exit and improve batching.
Eric W. Biederman [Sun, 29 Nov 2009 22:25:30 +0000 (22:25 +0000)]
net: Simplfy default_device_exit and improve batching.

- Defer dellink to net_cleanup() allowing for batching.
- Fix comment.
- Use for_each_netdev_safe again as dev_change_net_namespace touches
  at most one network device (unlike veth dellink).

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Simplify loopback and improve batching.
Eric W. Biederman [Sun, 29 Nov 2009 22:25:29 +0000 (22:25 +0000)]
net: Simplify loopback and improve batching.

Defer calling unregister_netdevice_queue to cleanup_net.  It's simpler
and it allows the loopback device to land in the same batch as other
network devices.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Automatically allocate per namespace data.
Eric W. Biederman [Sun, 29 Nov 2009 22:25:28 +0000 (22:25 +0000)]
net: Automatically allocate per namespace data.

To get the full benefit of batched network namespace cleanup netowrk
device deletion needs to be performed by the generic code.  When
using register_pernet_gen_device and freeing the data in exit_net
it is impossible to delay allocation until after exit_net has called
as the device uninit methods are no longer safe.

To correct this, and to simplify working with per network namespace data
I have moved allocation and deletion of per network namespace data into
the network namespace core.  The core now frees the data only after
all of the network namespace exit routines have run.

Now it is only required to set the new fields .id and .size
in the pernet_operations structure if you want network namespace
data to be managed for you automatically.

This makes the current register_pernet_gen_device and
register_pernet_gen_subsys routines unnecessary.  For the moment
I have left them as compatibility wrappers in net_namespace.h
They will be removed once all of the users have been updated.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Batch network namespace destruction.
Eric W. Biederman [Sun, 29 Nov 2009 22:25:27 +0000 (22:25 +0000)]
net: Batch network namespace destruction.

It is fairly common to kill several network namespaces at once.  Either
because they are nested one inside the other or because they are cooperating
in multiple machine networking experiments.  As the network stack control logic
does not parallelize easily batch up multiple network namespaces existing
together.

To get the full benefit of batching the virtual network devices to be
removed must be all removed in one batch.  For that purpose I have added
a loop after the last network device operations have run that batches
up all remaining network devices and deletes them.

An extra benefit is that the reorganization slightly shrinks the size
of the per network namespace data structures replaceing a work_struct
with a list_head.

In a trivial test with 4K namespaces this change reduced the cost of
a destroying 4K namespaces from 7+ minutes (at 12% cpu) to 44 seconds
(at 60% cpu).  The bulk of that 44s was spent in inet_twsk_purge.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Implement for_each_netdev_reverse.
Eric W. Biederman [Sun, 29 Nov 2009 22:25:26 +0000 (22:25 +0000)]
net: Implement for_each_netdev_reverse.

I will need this shortly to implement network namespace shutdown
batching.  For sanity sake network devices should be removed in
the reverse order they were created in.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: NETDEV_UNREGISTER_PERNET -> NETDEV_UNREGISTER_BATCH
Eric W. Biederman [Sun, 29 Nov 2009 15:45:58 +0000 (15:45 +0000)]
net: NETDEV_UNREGISTER_PERNET -> NETDEV_UNREGISTER_BATCH

The motivation for an additional notifier in batched netdevice
notification (rt_do_flush) only needs to be called once per batch not
once per namespace.

For further batching improvements I need a guarantee that the
netdevices are unregistered in order allowing me to unregister an all
of the network devices in a network namespace at the same time with
the guarantee that the loopback device is really and truly
unregistered last.

Additionally it appears that we moved the route cache flush after
the final synchronize_net, which seems wrong and there was no
explanation.  So I have restored the original location of the final
synchronize_net.

Cc: Octavian Purdila <opurdila@ixiacom.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agoMIPS: Wire up recvmmsg syscall
Arnaldo Carvalho de Melo [Mon, 30 Nov 2009 21:02:23 +0000 (13:02 -0800)]
MIPS: Wire up recvmmsg syscall

Reported-by: Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agowan: Coding style correction in HDLC/Frame Relay support routines
Rudy Matela [Mon, 30 Nov 2009 07:42:42 +0000 (23:42 -0800)]
wan: Coding style correction in HDLC/Frame Relay support routines

Added a space separating some if keywords from the following
parenthesis to conform to the CodingStyle.

Signed-off-by: Rudy Matela <rudy.matela@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agowan: Frame Relay/DLCI coding style corrections.
Rudy Matela [Mon, 30 Nov 2009 07:42:14 +0000 (23:42 -0800)]
wan: Frame Relay/DLCI coding style corrections.

Added a space separating some keywords (if/while) from the following
parenthesis to conform to the CodingStyle.

Signed-off-by: Rudy Matela <rudy.matela@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonetxen: fix merge 9b963e5d0e01461099a
Amit Kumar Salecha [Mon, 30 Nov 2009 05:54:55 +0000 (21:54 -0800)]
netxen: fix merge 9b963e5d0e01461099a

Patch "fix memory initialization:5d521fd36de4e61" didn't got merge.

Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Update version, copyright dates, authors
Ben Hutchings [Sun, 29 Nov 2009 15:16:19 +0000 (15:16 +0000)]
sfc: Update version, copyright dates, authors

This driver has been mostly rewritten since Michael Brown's initial
work, so swap the order of the authors.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Implement TSO for TCP/IPv6
Ben Hutchings [Sun, 29 Nov 2009 15:16:05 +0000 (15:16 +0000)]
sfc: Implement TSO for TCP/IPv6

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Add support for SFC9000 family (2)
Ben Hutchings [Sun, 29 Nov 2009 15:15:41 +0000 (15:15 +0000)]
sfc: Add support for SFC9000 family (2)

This integrates support for the SFC9000 family of 10G Ethernet
controllers and LAN-on-motherboard chips, starting with the SFL9021
'Siena' and SFC9020 'Bethpage'.

Credit for this code is largely due to my colleagues at Solarflare:

   Guido Barzini
   Steve Hodgson
   Kieran Mansley
   Matthew Slattery
   Neil Turton

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Add support for SFC9000 family (1)
Ben Hutchings [Sun, 29 Nov 2009 15:15:25 +0000 (15:15 +0000)]
sfc: Add support for SFC9000 family (1)

This adds support for the SFC9000 family of 10G Ethernet controllers
and LAN-on-motherboard chips, starting with the SFL9021 'Siena' and
SFC9020 'Bethpage'.

The SFC9000 family is based on the SFC4000 'Falcon' architecture, but
with some significant changes:

- Two ports are associated with two independent PCI functions
  (except SFC9010)
- Integrated 10GBASE-T PHY(s) (SFL9021/9022)
- MAC, PHY and board peripherals are managed by firmware
  - Driver does not require board-specific code
  - Firmware supports wake-on-LAN and lights-out management through NC-SI
- IPv6 checksum offload and RSS
- Filtering by MAC address and VLAN (not included in this code)
- PCI SR-IOV (not included in this code)

Credit for this code is largely due to my colleagues at Solarflare:

   Guido Barzini
   Steve Hodgson
   Kieran Mansley
   Matthew Slattery
   Neil Turton

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Add firmware protocol definitions (MCDI)
Steve Hodgson [Sun, 29 Nov 2009 15:15:07 +0000 (15:15 +0000)]
sfc: Add firmware protocol definitions (MCDI)

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Move shared NIC code from falcon.c to new source file nic.c
Ben Hutchings [Sun, 29 Nov 2009 15:14:45 +0000 (15:14 +0000)]
sfc: Move shared NIC code from falcon.c to new source file nic.c

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Rename falcon.h to nic.h
Ben Hutchings [Sun, 29 Nov 2009 15:12:08 +0000 (15:12 +0000)]
sfc: Rename falcon.h to nic.h

nic.h is no longer specific to Falcon.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Allow for additional checksum offload features
Ben Hutchings [Sun, 29 Nov 2009 15:11:02 +0000 (15:11 +0000)]
sfc: Allow for additional checksum offload features

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Extend MTD driver for use with new NICs
Ben Hutchings [Sun, 29 Nov 2009 15:10:44 +0000 (15:10 +0000)]
sfc: Extend MTD driver for use with new NICs

In new NICs flash is managed by firmware and we will use high-level
operations on partitions rather than direct SPI commands.  Add support
for multiple MTD partitions per flash device and remove the direct
link between MTD and SPI devices.  Maintain a list of MTD partitions
in struct efx_nic.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Remove static PHY data and enumerations
Ben Hutchings [Sun, 29 Nov 2009 15:08:55 +0000 (15:08 +0000)]
sfc: Remove static PHY data and enumerations

New NICs have firmware managing the PHY, and we will discover the PHY
capabilities at run-time.  Replace the static data with probe() and
test_name() operations.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Extend loopback mode enumeration
Ben Hutchings [Sun, 29 Nov 2009 15:08:41 +0000 (15:08 +0000)]
sfc: Extend loopback mode enumeration

New NICs and PHYs support a wider variety of loopback modes.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Fold falcon_probe_nic_variant() into falcon_probe_nic()
Ben Hutchings [Sun, 29 Nov 2009 15:08:21 +0000 (15:08 +0000)]
sfc: Fold falcon_probe_nic_variant() into falcon_probe_nic()

falcon_probe_nic_variant() does a lot less than it used to, and a
lot less than it claims to.  Fold the remainder into its caller.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agomv643xx: convert to netdev_tx_t
Denis Kirjanov [Mon, 30 Nov 2009 01:04:31 +0000 (17:04 -0800)]
mv643xx: convert to netdev_tx_t

Signed-off-by: Denis Kirjanov <kirjanov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agonet: Move && and || to end of previous line
Joe Perches [Mon, 30 Nov 2009 00:55:45 +0000 (16:55 -0800)]
net: Move && and || to end of previous line

Not including net/atm/

Compiled tested x86 allyesconfig only
Added a > 80 column line or two, which I ignored.
Existing checkpatch plaints willfully, cheerfully ignored.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Separate shared NIC code from Falcon-specific and rename accordingly
Ben Hutchings [Sun, 29 Nov 2009 03:43:56 +0000 (03:43 +0000)]
sfc: Separate shared NIC code from Falcon-specific and rename accordingly

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Add efx_nic_type operation for identity LED control
Ben Hutchings [Sun, 29 Nov 2009 03:43:43 +0000 (03:43 +0000)]
sfc: Add efx_nic_type operation for identity LED control

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Add efx_nic_type operation for NVRAM self-test
Ben Hutchings [Sun, 29 Nov 2009 03:43:33 +0000 (03:43 +0000)]
sfc: Add efx_nic_type operation for NVRAM self-test

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Add efx_nic_type operation for register self-test
Ben Hutchings [Sun, 29 Nov 2009 03:43:23 +0000 (03:43 +0000)]
sfc: Add efx_nic_type operation for register self-test

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Implement ethtool reset operation
Ben Hutchings [Sun, 29 Nov 2009 03:43:15 +0000 (03:43 +0000)]
sfc: Implement ethtool reset operation

Refactor efx_reset_down() and efx_reset_up() accordingly.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Add power-management and wake-on-LAN support
Ben Hutchings [Sun, 29 Nov 2009 03:43:07 +0000 (03:43 +0000)]
sfc: Add power-management and wake-on-LAN support

Wake-on-LAN is a stub for Falcon, but will be implemented fully for
new NICs.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Generalise link state monitoring
Steve Hodgson [Sun, 29 Nov 2009 03:43:00 +0000 (03:43 +0000)]
sfc: Generalise link state monitoring

Use the efx_nic_type::monitor operation or event handling as
appropriate.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Refactor link configuration
Ben Hutchings [Sun, 29 Nov 2009 03:42:41 +0000 (03:42 +0000)]
sfc: Refactor link configuration

Refactor PHY, MAC and NIC configuration operations so that the
existing link configuration can be re-pushed with:

efx->phy_op->reconfigure(efx);
efx->mac_op->reconfigure(efx);

and a new configuration with:

efx->nic_op->reconfigure_port(efx);

(plus locking and error-checking).

We have not held the link settings in software (aside from flow
control), and have relied on asking the hardware what they are.  This
is a problem because in some cases the hardware may no longer be in a
state to tell us.  In particular, if an entire multi-port board is
reset through one port, the driver bindings to other ports have no
chance to save settings before recovering.

We only actually need to keep track of the autonegotiation settings,
so add an ethtool advertising mask to struct efx_nic, initialise it
in PHY init and update it as necessary.

Remove now-unneeded uses of efx_phy_op::{get,set}_settings() and
struct ethtool_cmd.

Much of this was done by Steve Hodgson <shodgson@solarflare.com>.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Move Falcon NIC operations to efx_nic_type
Ben Hutchings [Sun, 29 Nov 2009 03:42:31 +0000 (03:42 +0000)]
sfc: Move Falcon NIC operations to efx_nic_type

This is preparation for adding differing implementations for new NICs.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Turn pause frame generation on and off at the MAC, not the RX FIFO
Ben Hutchings [Sun, 29 Nov 2009 03:42:18 +0000 (03:42 +0000)]
sfc: Turn pause frame generation on and off at the MAC, not the RX FIFO

Pause frame generation is gated by both RX_XOFF_MAC_EN and an enable
bit in each MAC.  RX_XOFF_MAC_EN bit always reads back as 0 so we need
to set it correctly every time we modify RX_CFG_REG.  Simplify this by
always setting it to 1 and only changing the enable bits in the MACs.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Remove duplicate hardware structure definitions
Ben Hutchings [Sun, 29 Nov 2009 03:42:10 +0000 (03:42 +0000)]
sfc: Remove duplicate hardware structure definitions

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 years agosfc: Remove redundant writes to INT_ADR_KER
Ben Hutchings [Sun, 29 Nov 2009 03:42:03 +0000 (03:42 +0000)]
sfc: Remove redundant writes to INT_ADR_KER

This register only needs to be written after reset, not each time we
enable interrupts.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agopktgen: NUMA aware
Eric Dumazet [Sun, 29 Nov 2009 08:44:33 +0000 (00:44 -0800)]
pktgen: NUMA aware

pktgen threads are bound to given CPU, we can allocate memory for
these threads in a NUMA aware way.

After a pktgen session on two threads, we can check flows memory was
allocated on right node, instead of a not related one.

# grep pktgen_thread_write /proc/vmallocinfo
0xffffc90007204000-0xffffc90007385000 1576960 pktgen_thread_write+0x3a4/0x6b0 [pktgen] pages=384 vmalloc N0=384
0xffffc90007386000-0xffffc90007507000 1576960 pktgen_thread_write+0x3a4/0x6b0 [pktgen] pages=384 vmalloc N1=384

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Sun, 29 Nov 2009 08:57:15 +0000 (00:57 -0800)]
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

Conflicts:
drivers/ieee802154/fakehard.c
drivers/net/e1000e/ich8lan.c
drivers/net/e1000e/phy.c
drivers/net/netxen/netxen_nic_init.c
drivers/net/wireless/ath/ath9k/main.c

15 years agoixgbe: Display currently attached PHY through ethtool
PJ Waskiewicz [Wed, 25 Nov 2009 00:11:54 +0000 (00:11 +0000)]
ixgbe: Display currently attached PHY through ethtool

This patch extends the ethtool interface to display what PHY
is currently connected to a NIC.  The results can be viewed in
ethtool ethX output.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoethtool: Add Direct Attach support to connector port reporting
PJ Waskiewicz [Wed, 25 Nov 2009 00:11:30 +0000 (00:11 +0000)]
ethtool: Add Direct Attach support to connector port reporting

This patch allows a base driver to specify Direct Attach as the
type of port through the ethtool interface.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoixgbe: Fix Receive Address Register (RAR) cleaning and accounting
Shannon Nelson [Tue, 24 Nov 2009 18:52:10 +0000 (18:52 +0000)]
ixgbe: Fix Receive Address Register (RAR) cleaning and accounting

This fixes an issue when clearing out the RAR entries.  If RAR[0]
is the only address in use, don't clear the others.

Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoixgbe: LINKS2 is not a valid register for 82598
Don Skidmore [Tue, 24 Nov 2009 18:51:48 +0000 (18:51 +0000)]
ixgbe: LINKS2 is not a valid register for 82598

82598 shouldn't try and access LINKS2 while configuring
link and flow control.  This is an 82599-only register.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoixgbe: Disable Flow Control for certain devices
PJ Waskiewicz [Tue, 24 Nov 2009 18:51:28 +0000 (18:51 +0000)]
ixgbe: Disable Flow Control for certain devices

Flow Control autoneg should be disabled for certain adapters
that don't support autonegotiation of Flow Control at 10 gigabit.
These interfaces are the 10GBASE-T devices, CX4, and SFP+, all
running at 10 gigabit only.  1 gigabit is fine.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoixgbe: handle parameters for tx and rx EITR, no div0
Shannon Nelson [Tue, 24 Nov 2009 18:51:06 +0000 (18:51 +0000)]
ixgbe: handle parameters for tx and rx EITR, no div0

The driver was doing a divide by zero when adjusting tx-usecs.
This patch removes the divide by zero code and changes the logic slightly
to ignore tx-usecs in the case of shared TxRx vectors.

Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoX25: Fix oops and refcnt problems from x25_dev_get
andrew hendry [Tue, 24 Nov 2009 15:16:05 +0000 (15:16 +0000)]
X25: Fix oops and refcnt problems from x25_dev_get

Calls to x25_dev_get check for dev = NULL which was not set.
It allowed x25 to set routes and ioctls on down interfaces.
This caused oopses and refcnt problems on device_unregister.

Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoX25: Check for errors in x25_init
andrew hendry [Tue, 24 Nov 2009 15:15:42 +0000 (15:15 +0000)]
X25: Check for errors in x25_init

Adds error checking to x25_init.

Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoX25: Move SYSCTL ifdefs into header
andrew hendry [Tue, 24 Nov 2009 15:15:26 +0000 (15:15 +0000)]
X25: Move SYSCTL ifdefs into header

Moves the CONFIG_SYSCTL ifdefs in x25_init into header.

Signed-off-by: Andrew Hendry <andrew.hendry@gmail.com>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoNET: smc91x: convert to dev_pm_ops
Kevin Hilman [Tue, 24 Nov 2009 12:57:47 +0000 (12:57 +0000)]
NET: smc91x: convert to dev_pm_ops

Convert smc91x driver from legacy PM hooks over to using dev_pm_ops.

Tested on OMAP3 platform.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoMerge branch 'net-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vxy/lksctp-dev
David S. Miller [Sun, 29 Nov 2009 08:16:22 +0000 (00:16 -0800)]
Merge branch 'net-next' of git://git./linux/kernel/git/vxy/lksctp-dev

15 years agosctp: on T3_RTX retransmit all the in-flight chunks
Andrei Pelinescu-Onciul [Sun, 29 Nov 2009 08:14:02 +0000 (00:14 -0800)]
sctp: on T3_RTX retransmit all the in-flight chunks

When retransmitting due to T3 timeout, retransmit all the
in-flight chunks for the corresponding  transport/path, including
chunks sent less then 1 rto ago.
This is the correct behaviour according to rfc4960 section 6.3.3
E3 and
"Note: Any DATA chunks that were sent to the address for which the
 T3-rtx timer expired but did not fit in one MTU (rule E3 above)
 should be marked for retransmission and sent as soon as cwnd
 allows (normally, when a SACK arrives). ".

This fixes problems when more then one path is present and the T3
retransmission of the first chunk that timeouts stops the T3 timer
for the initial active path, leaving all the other in-flight
chunks waiting forever or until a new chunk is transmitted on the
same path and timeouts (and this will happen only if the cwnd
allows sending new chunks, but since cwnd was dropped to MTU by
the timeout => it will wait until the first heartbeat).

Example: 10 packets in flight, sent at 0.1 s intervals on the
primary path. The primary path is down and the first packet
timeouts. The first packet is retransmitted on another path, the
T3 timer for the primary path is stopped and cwnd is set to MTU.
All the other 9 in-flight packets will not be retransmitted
(unless more new packets are sent on the primary path which depend
on cwnd allowing it, and even in this case the 9 packets will be
retransmitted only after a new packet timeouts which even in the
best case would be more then RTO).

This commit reverts d0ce92910bc04e107b2f3f2048f07e94f570035d and
also removes the now unused transport->last_rto, introduced in
 b6157d8e03e1e780660a328f7183bcbfa4a93a19.

p.s  The problem is not only when multiple paths are there.  It
can happen in a single homed environment.  If the application
stops sending data, it possible to have a hung association.

Signed-off-by: Andrei Pelinescu-Onciul <andrei@iptel.org>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Clean up RX event handling
Ben Hutchings [Sat, 28 Nov 2009 05:36:29 +0000 (05:36 +0000)]
sfc: Clean up RX event handling

Add 'likely' hint to test of rx_checksum_enabled.
Don't count IP fragments; the IP stack can do that.
Do count non-matching multicast packets.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Move descriptor cache base addresses to struct efx_nic_type
Ben Hutchings [Sat, 28 Nov 2009 05:36:12 +0000 (05:36 +0000)]
sfc: Move descriptor cache base addresses to struct efx_nic_type

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Decouple NIC revision number from Falcon PCI revision number
Ben Hutchings [Sat, 28 Nov 2009 05:36:04 +0000 (05:36 +0000)]
sfc: Decouple NIC revision number from Falcon PCI revision number

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Remove some redundant whitespace
Ben Hutchings [Sat, 28 Nov 2009 05:35:36 +0000 (05:35 +0000)]
sfc: Remove some redundant whitespace

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Remove another unused workaround macro
Ben Hutchings [Sat, 28 Nov 2009 05:35:30 +0000 (05:35 +0000)]
sfc: Remove another unused workaround macro

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Remove EFX_WORKAROUND_9141 macro
Matthew Slattery [Sat, 28 Nov 2009 05:35:24 +0000 (05:35 +0000)]
sfc: Remove EFX_WORKAROUND_9141 macro

The "bug9141 workaround" of setting TX_FLUSH_MIN_LEN_EN should really
be considered as a normal bit of configuration rather than a
workaround.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Limit some hardware workarounds to Falcon
Ben Hutchings [Sat, 28 Nov 2009 05:35:09 +0000 (05:35 +0000)]
sfc: Limit some hardware workarounds to Falcon

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Always start Falcon using the XMAC
Steve Hodgson [Sat, 28 Nov 2009 05:35:00 +0000 (05:35 +0000)]
sfc: Always start Falcon using the XMAC

The strap bits are only important on Falcon A and all production
boards using it have fixed-speed 10G PHYs.

Replace dummy MAC operations with default MAC operations.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Replace MDIO spinlock with mutex
Steve Hodgson [Sat, 28 Nov 2009 05:34:44 +0000 (05:34 +0000)]
sfc: Replace MDIO spinlock with mutex

We never use MDIO in atomic context, so we don't need to spin.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: QT202x: Reset before reading PHY id
Steve Hodgson [Sat, 28 Nov 2009 05:34:29 +0000 (05:34 +0000)]
sfc: QT202x: Reset before reading PHY id

Reading standard registers on the QT2025C before its firmware has
booted may cause the boot process to fail.  Therefore, follow the
recommended reset sequence before reading its id registers.  Either
order works for the QT2022C2, so don't differentiate.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Simplify PHY polling
Steve Hodgson [Sat, 28 Nov 2009 05:34:05 +0000 (05:34 +0000)]
sfc: Simplify PHY polling

Falcon can generate events for LASI interrupts from the PHY, but in
practice we have never implemented this in reference designs.  Instead
we have polled, inserted the appropriate events, and then handled the
events later.  This is a waste of time and code.

Instead, make PHY poll functions update the link state synchronously
and report whether it changed.  We can still make use of the LASI
registers as a shortcut on the SFT9001.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agovlan: support "loose binding" to the underlying network device
Patrick McHardy [Wed, 25 Nov 2009 07:54:54 +0000 (07:54 +0000)]
vlan: support "loose binding" to the underlying network device

Currently the UP/DOWN state of VLANs is synchronized to the state of the
underlying device, meaning all VLANs are set down once the underlying
device is set down. This causes all routes to the VLAN devices to vanish.

Add a flag to specify a "loose binding" mode, in which only the operstate
is transfered, but the VLAN device state is independant.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Do not set net_device::trans_start in self-test
Ben Hutchings [Wed, 25 Nov 2009 16:12:31 +0000 (16:12 +0000)]
sfc: Do not set net_device::trans_start in self-test

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Move inline comment into kernel-doc
Ben Hutchings [Wed, 25 Nov 2009 16:12:24 +0000 (16:12 +0000)]
sfc: Move inline comment into kernel-doc

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Change MAC promiscuity and multicast hash at the same time
Ben Hutchings [Wed, 25 Nov 2009 16:12:16 +0000 (16:12 +0000)]
sfc: Change MAC promiscuity and multicast hash at the same time

From: Steve Hodgson <shodgson@solarflare.com>

Currently we can set multicast hash immediately (in atomic context)
but must delay setting MAC promiscuity.  There is not that much
point in deferring one but not the other, and setting the multicast
hash on Siena will involve a firmware request.  So process them
both in efx_mac_work().

Also, set the broadcast bit in the multicast hash in
efx_set_multicast_list(), since this is required for both Falcon and
Siena.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Simplify XMAC link polling
Ben Hutchings [Wed, 25 Nov 2009 16:12:01 +0000 (16:12 +0000)]
sfc: Simplify XMAC link polling

From: Steve Hodgson <shodgson@solarflare.com>

Only the XMAC on Falcon needs help from the driver to poll and reset
the MAC-PHY link (XAUI); GMII is a simple parallel bus and on later
NICs firmware takes care of the XAUI link.  Also, an XMAC interrupt
currently schedules a work item which simply clears a flag
(efx_nic::mac_up) to be checked by the regular monitor (or the next
link reconfiguration, if that is sooner).

Rename the flag to xmac_poll_required, changing its sense.  Remove the
needless indirection and just set the flag immediately.  Call
falcon_xmac_poll() directly where required.

Add a new generic operation mac_op::check_fault to check the link
outside of regular monitoring, as required during self-tests.

(Note that this leaves us with an unused work item, but we will
immediately have another use for it.)

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Move Falcon board/PHY/MAC monitoring code to falcon.c
Ben Hutchings [Wed, 25 Nov 2009 16:11:45 +0000 (16:11 +0000)]
sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Split MAC stats DMA initiation and completion
Ben Hutchings [Wed, 25 Nov 2009 16:11:35 +0000 (16:11 +0000)]
sfc: Split MAC stats DMA initiation and completion

From: Steve Hodgson <shodgson@solarflare.com>

Currently we initiate MAC stats DMA and busy-wait for completion when
stats are requested.  We can improve on this with a periodic timer to
initiate and poll for stats, and opportunistically poll when stats are
requested.

Since efx_nic::stats_disable_count and efx_stats_{disable,enable}()
are Falcon-specific, rename them and move them accordingly.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Hold MAC lock for longer in efx_init_port()
Ben Hutchings [Wed, 25 Nov 2009 16:11:19 +0000 (16:11 +0000)]
sfc: Hold MAC lock for longer in efx_init_port()

Although efx_init_port() is only called at probe time and so cannot
race with port reconfiguration, most of the functions it calls can
expect to be called with the MAC lock held.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Only switch Falcon MAC clocks as necessary
Steve Hodgson [Wed, 25 Nov 2009 16:11:03 +0000 (16:11 +0000)]
sfc: Only switch Falcon MAC clocks as necessary

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Remove unused function efx_flush_queues()
Ben Hutchings [Wed, 25 Nov 2009 16:10:05 +0000 (16:10 +0000)]
sfc: Remove unused function efx_flush_queues()

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Fix bugs in RX queue flushing
Ben Hutchings [Wed, 25 Nov 2009 16:09:55 +0000 (16:09 +0000)]
sfc: Fix bugs in RX queue flushing

Avoid overrunning the hardware limit of 4 concurrent RX queue flushes.
Expand the queue flush state to support this.  Make similar changes to
TX flushing to keep the code symmetric.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Clean up struct falcon_board and struct falcon_board_data
Ben Hutchings [Wed, 25 Nov 2009 16:09:41 +0000 (16:09 +0000)]
sfc: Clean up struct falcon_board and struct falcon_board_data

Put all static information in struct falcon_board_type and replace it
with a pointer in struct falcon_board.  Simplify probing aocordingly.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Remove unused constant
Ben Hutchings [Wed, 25 Nov 2009 16:09:13 +0000 (16:09 +0000)]
sfc: Remove unused constant

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Comment corrections
Ben Hutchings [Wed, 25 Nov 2009 16:09:04 +0000 (16:09 +0000)]
sfc: Comment corrections

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Strengthen EFX_ASSERT_RESET_SERIALISED
Ben Hutchings [Wed, 25 Nov 2009 16:08:52 +0000 (16:08 +0000)]
sfc: Strengthen EFX_ASSERT_RESET_SERIALISED

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Treat all MAC registers as 128-bit
Ben Hutchings [Wed, 25 Nov 2009 16:08:41 +0000 (16:08 +0000)]
sfc: Treat all MAC registers as 128-bit

Although all the defined fields in these registers are within 32 bits,
they are architecturally defined as 128-bit like most other Falcon
registers.  In particular, we must use efx_reado() to ensure proper
locking when reading MD_STAT_REG.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agosfc: Fix descriptor cache sizes
Ben Hutchings [Wed, 25 Nov 2009 16:08:30 +0000 (16:08 +0000)]
sfc: Fix descriptor cache sizes

These were accidentally undersized by a factor of 2, which limited
performance.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomacvlan: export macvlan mode through netlink
Arnd Bergmann [Thu, 26 Nov 2009 06:07:11 +0000 (06:07 +0000)]
macvlan: export macvlan mode through netlink

In order to support all three modes of macvlan at
runtime, extend the existing netlink protocol
to allow choosing the mode per macvlan slave
interface.

This depends on a matching patch to iproute2
in order to become accessible in user land.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomacvlan: implement bridge, VEPA and private mode
Arnd Bergmann [Thu, 26 Nov 2009 06:07:10 +0000 (06:07 +0000)]
macvlan: implement bridge, VEPA and private mode

This allows each macvlan slave device to be in one
of three modes, depending on the use case:

MACVLAN_PRIVATE:
  The device never communicates with any other device
  on the same upper_dev. This even includes frames
  coming back from a reflective relay, where supported
  by the adjacent bridge.

MACVLAN_VEPA:
  The new Virtual Ethernet Port Aggregator (VEPA) mode,
  we assume that the adjacent bridge returns all frames
  where both source and destination are local to the
  macvlan port, i.e. the bridge is set up as a reflective
  relay.
  Broadcast frames coming in from the upper_dev get
  flooded to all macvlan interfaces in VEPA mode.
  We never deliver any frames locally.

MACVLAN_BRIDGE:
  We provide the behavior of a simple bridge between
  different macvlan interfaces on the same port. Frames
  from one interface to another one get delivered directly
  and are not sent out externally. Broadcast frames get
  flooded to all other bridge ports and to the external
  interface, but when they come back from a reflective
  relay, we don't deliver them again.
  Since we know all the MAC addresses, the macvlan bridge
  mode does not require learning or STP like the bridge
  module does.

Based on an earlier patch "macvlan: Reflect macvlan packets
meant for other macvlan devices" by Eric Biederman.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Patrick McHardy <kaber@trash.net>
Cc: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agomacvlan: cleanup rx statistics
Arnd Bergmann [Thu, 26 Nov 2009 06:07:09 +0000 (06:07 +0000)]
macvlan: cleanup rx statistics

We have very similar code for rx statistics in
two places in the macvlan driver, with a third
one being added in the next patch.

Consolidate them into one function to improve
overall readability of the driver.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agoveth: move loopback logic to common location
Arnd Bergmann [Thu, 26 Nov 2009 06:07:08 +0000 (06:07 +0000)]
veth: move loopback logic to common location

The veth driver contains code to forward an skb
from the start_xmit function of one network
device into the receive path of another device.

Moving that code into a common location lets us
reuse the code for direct forwarding of data
between macvlan ports, and possibly in other
drivers.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agovia-velocity: Bump version
Simon Kagstrom [Wed, 25 Nov 2009 22:10:59 +0000 (22:10 +0000)]
via-velocity: Bump version

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agovia-velocity: Set tx checksum from ethtool instead of module parameter
Simon Kagstrom [Wed, 25 Nov 2009 22:10:52 +0000 (22:10 +0000)]
via-velocity: Set tx checksum from ethtool instead of module parameter

Defaults to on (as before).

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agovia-velocity: Re-enable transmit scatter-gather support
Simon Kagstrom [Wed, 25 Nov 2009 22:10:43 +0000 (22:10 +0000)]
via-velocity: Re-enable transmit scatter-gather support

The velocity hardware can handle up to 7 memory segments. This can be
turned on and off via ethtool. The support was removed in commit

  83c98a8cd04dd0f848574370594886ba3bf56750

but is re-enabled and cleaned up here. It's off by default.

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agovia-velocity: Change DMA_LENGTH_DEF (from the VIA driver)
Simon Kagstrom [Wed, 25 Nov 2009 22:10:34 +0000 (22:10 +0000)]
via-velocity: Change DMA_LENGTH_DEF (from the VIA driver)

The VIA driver has changed the default for the DMA_LENGTH_DEF parameter.
Together with adaptive interrupt supression and NAPI support, this
improves performance quite a bit

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 years agovia-velocity: Implement NAPI support
Simon Kagstrom [Wed, 25 Nov 2009 22:10:26 +0000 (22:10 +0000)]
via-velocity: Implement NAPI support

This patch adds NAPI support for VIA velocity. The new velocity_poll
function also pairs tx/rx handling twice which improves perforamance on
some workloads (e.g., netperf UDP_STREAM) significantly (that part is
from the VIA driver).

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Signed-off-by: David S. Miller <davem@davemloft.net>