GitHub/moto-9609/android_kernel_motorola_exynos9610.git
16 years agoIPVS: Extend functions for getting/creating connections
Julius Volz [Tue, 2 Sep 2008 13:55:43 +0000 (15:55 +0200)]
IPVS: Extend functions for getting/creating connections

Extend functions for getting/creating connections and connection
templates for IPv6 support and fix the callers.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Extend protocol DNAT/SNAT and state handlers
Julius Volz [Tue, 2 Sep 2008 13:55:42 +0000 (15:55 +0200)]
IPVS: Extend protocol DNAT/SNAT and state handlers

Extend protocol DNAT/SNAT and state handlers to work with IPv6. Also
change/introduce new checksumming helper functions for this.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Add protocol debug functions for IPv6
Julius Volz [Tue, 2 Sep 2008 13:55:41 +0000 (15:55 +0200)]
IPVS: Add protocol debug functions for IPv6

Add protocol (TCP, UDP, AH, ESP) debug functions for IPv6 packet debug
output.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Add 'af' args to protocol handler functions
Julius Volz [Tue, 2 Sep 2008 13:55:40 +0000 (15:55 +0200)]
IPVS: Add 'af' args to protocol handler functions

Add 'af' arguments to conn_schedule(), conn_in_get(), conn_out_get() and
csum_check() function pointers in struct ip_vs_protocol. Extend the
respective functions for TCP, UDP, AH and ESP and adjust the callers.

The changes in the callers need to be somewhat extensive, since they now
need to pass a filled out struct ip_vs_iphdr * to the modified functions
instead of a struct iphdr *.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Add IPv6 support flag to schedulers
Julius Volz [Tue, 2 Sep 2008 13:55:39 +0000 (15:55 +0200)]
IPVS: Add IPv6 support flag to schedulers

Add 'supports_ipv6' flag to struct ip_vs_scheduler to indicate whether a
scheduler supports IPv6. Set the flag to 1 in schedulers that work with
IPv6, 0 otherwise. This flag is checked in a later patch while trying to
add a service with a specific scheduler. Adjust debug in v6-supporting
schedulers to work with both address families.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Add v6 support to ip_vs_service_get()
Julius Volz [Tue, 2 Sep 2008 13:55:38 +0000 (15:55 +0200)]
IPVS: Add v6 support to ip_vs_service_get()

Add support for selecting services based on their address family to
ip_vs_service_get() and adjust the callers.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Convert __ip_vs_svc_get() and __ip_vs_fwm_get()
Julius Volz [Tue, 2 Sep 2008 13:55:37 +0000 (15:55 +0200)]
IPVS: Convert __ip_vs_svc_get() and __ip_vs_fwm_get()

Add support for getting services based on their address family to
__ip_vs_service_get(), __ip_vs_fwm_get() and the helper hash function
ip_vs_svc_hashkey(). Adjust the callers.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Add internal versions of sockopt interface structs
Julius Volz [Tue, 2 Sep 2008 13:55:36 +0000 (15:55 +0200)]
IPVS: Add internal versions of sockopt interface structs

Add extended internal versions of struct ip_vs_service_user and struct
ip_vs_dest_user (the originals can't be modified as they are part
of the old sockopt interface). Adjust ip_vs_ctl.c to work with the new
data structures and add some minor AF-awareness.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Add debug macros for v4 and v6 address output
Julius Volz [Tue, 2 Sep 2008 13:55:35 +0000 (15:55 +0200)]
IPVS: Add debug macros for v4 and v6 address output

Add some debugging macros that allow conditional output of either v4 or v6
addresses, depending on an 'af' parameter. This is done by creating a
temporary string buffer in an outer debug macro and writing addresses'
string representations into it from another macro which can only be used
when inside the outer one.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Add general v4/v6 helper functions / data structures
Julius Volz [Tue, 2 Sep 2008 13:55:34 +0000 (15:55 +0200)]
IPVS: Add general v4/v6 helper functions / data structures

Add a struct ip_vs_iphdr for easier handling of common v4 and v6 header
fields in the same code path. ip_vs_fill_iphdr() helps to fill this struct
from an IPv4 or IPv6 header. Add further helper functions for copying and
comparing addresses.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Change IPVS data structures to support IPv6 addresses
Julius Volz [Tue, 2 Sep 2008 13:55:33 +0000 (15:55 +0200)]
IPVS: Change IPVS data structures to support IPv6 addresses

Introduce new 'af' fields into IPVS data structures for specifying an
entry's address family. Convert IP addresses to be of type union
nf_inet_addr.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agoIPVS: Add CONFIG_IP_VS_IPV6 option for IPv6 support
Julius Volz [Tue, 2 Sep 2008 13:55:32 +0000 (15:55 +0200)]
IPVS: Add CONFIG_IP_VS_IPV6 option for IPv6 support

Add boolean config option CONFIG_IP_VS_IPV6 for enabling experimental IPv6
support in IPVS. Only visible if IPv6 support is set to 'y' or both IPv6
and IPVS are modules.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
16 years agos2io: reindented misleading for loop
Ilpo Järvinen [Tue, 19 Aug 2008 07:36:01 +0000 (10:36 +0300)]
s2io: reindented misleading for loop

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years ago[netdrvr] removed unused #include <version.h>
Huang Weiyi [Sat, 16 Aug 2008 23:51:20 +0000 (07:51 +0800)]
[netdrvr] removed unused #include <version.h>

The drivers below do not use LINUX_VERSION_CODE nor KERNEL_VERSION.
  drivers/net/myri10ge/myri10ge.c
  drivers/net/netxen/netxen_nic_ethtool.c
  drivers/net/tokenring/lanstreamer.c

This patch removes the said #include <version.h>.

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years ago8139too: use netdev_alloc_skb
Kevin Lo [Wed, 27 Aug 2008 03:35:13 +0000 (11:35 +0800)]
8139too: use netdev_alloc_skb

This patch uses netdev_alloc_skb. This sets skb->dev and allows
arch specific allocation. Also cleanup the alignment code.

Signed-off-by: Kevin Lo <kevlo@kevlo.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years ago8139cp: use netdev_alloc_skb
Kevin Lo [Wed, 27 Aug 2008 03:35:15 +0000 (11:35 +0800)]
8139cp: use netdev_alloc_skb

This patch uses netdev_alloc_skb. This sets skb->dev and allows
arch specific allocation. Also cleanup the alignment code.

Signed-off-by: Kevin Lo <kevlo@kevlo.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agovia-rhine: changed to use netdev_alloc_skb() from dev_alloc_skb
Kevin Lo [Wed, 27 Aug 2008 03:35:09 +0000 (11:35 +0800)]
via-rhine: changed to use netdev_alloc_skb() from dev_alloc_skb

Use netdev_alloc_skb. This sets skb->dev and allows
arch specific allocation. Also cleanup the alignment code.

Signed-off-by: Kevin Lo <kevlo@kevlo.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosky2: display product info on boot.
Stephen Hemminger [Thu, 28 Aug 2008 03:48:23 +0000 (20:48 -0700)]
sky2: display product info on boot.

Change bootup messages to print more information. This is to help users
who may have old buggy EEPROM image.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosky2: EEPROM read/write bug fixes
Stephen Hemminger [Thu, 28 Aug 2008 03:46:26 +0000 (20:46 -0700)]
sky2: EEPROM read/write bug fixes

Cleanup and harden the routines accessing the EEPROM.
  1. Prevent spin forever waiting for the TWSI bus
  2. Fix write eeprom to write full words rather than only 16 bits
    Luckly the vendor doesn't provide EEPROM in Linux format so it must never
    have been used.
  3. Don't allow partial eeprom writes, not needed, not safe.

These are non-urgent bug fixes.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoMerge branch 'r8169-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/romieu...
Jeff Garzik [Wed, 3 Sep 2008 14:21:20 +0000 (10:21 -0400)]
Merge branch 'r8169-fixes' of git://git./linux/kernel/git/romieu/netdev-2.6 into upstream-next

16 years agoixgbe: change config srrctl to only program one register per VMDq/RSS id
Alexander Duyck [Sat, 30 Aug 2008 07:29:10 +0000 (00:29 -0700)]
ixgbe: change config srrctl to only program one register per VMDq/RSS id

This change makes it so only one srrctl register is programmed per VMDq id, and if VMDq is not enabled it is one register per RSS queue.  Currently this function is working correctly for the multiqueue RSS and single queue cases, but if any advances features such as VMDq or DCB would have been enabled this function would have caused issues as it was not correct.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoigb: clean up a stray fake netdev code left in rx path
Alexander Duyck [Tue, 26 Aug 2008 11:25:11 +0000 (04:25 -0700)]
igb: clean up a stray fake netdev code left in rx path

Remove code that was in place to support fake netdev

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoigb: remove unneeded cleaned variable in clean_tx_irq path
Alexander Duyck [Tue, 26 Aug 2008 11:25:08 +0000 (04:25 -0700)]
igb: remove unneeded cleaned variable in clean_tx_irq path

The cleaned variable can be replaced by the count of packets cleaned during
the tx interrupt routine so it can be removed.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoe1000e: add support for new 82574L part
Bruce Allan [Wed, 27 Aug 2008 01:37:06 +0000 (18:37 -0700)]
e1000e: add support for new 82574L part

This new part has the same feature set as previous parts with the addition
of MSI-X support.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoe1000e: add support for 82567LM-3 and 82567LF-3 (ICH10D) parts
Bruce Allan [Wed, 27 Aug 2008 01:36:50 +0000 (18:36 -0700)]
e1000e: add support for 82567LM-3 and 82567LF-3 (ICH10D) parts

Add support for new LOM devices on the latest generation ICHx platforms.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoe1000e: add support for the 82567LM-4 device
Bruce Allan [Wed, 27 Aug 2008 01:36:36 +0000 (18:36 -0700)]
e1000e: add support for the 82567LM-4 device

Enable PCI device ID for a new combination of MAC and PHY already supported
in the driver.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: use different context for tso and offload
PJ Waskiewicz [Tue, 26 Aug 2008 11:27:30 +0000 (04:27 -0700)]
ixgbe: use different context for tso and offload

Change TSO offloads to use a different context than VLAN insertion
and Tx checksumming.  Hardware has separate registers internally for
storing these so use them.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: fix dca hints going to wrong processor
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:27 +0000 (04:27 -0700)]
ixgbe: fix dca hints going to wrong processor

hardware was configured incorrectly which led all hints to be
sent to queue[0]'s DCA configuration.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: fix bug where lro settings are per ring
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:24 +0000 (04:27 -0700)]
ixgbe: fix bug where lro settings are per ring

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: update dca to new interface, fix CONFIG_DCA_MODULE
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:21 +0000 (04:27 -0700)]
ixgbe: update dca to new interface, fix CONFIG_DCA_MODULE

DCA related fixes
=================
- ixgbe was not compiling and using DCA correctly if dca was a module
- DCA interface changed with new kernel
- ixgbe was not correctly configured to indicate DCA hints to the
  correct CPU.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: should not use HW_CSUM, should use IP* flags
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:18 +0000 (04:27 -0700)]
ixgbe: should not use HW_CSUM, should use IP* flags

as mentioned by Herbert, our hardware supports IP offloads, not full
checksum offloads for any protocol in existence (even though the
hardware just provides generic csum support over any range of bytes)

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: Lock RSS seed, move rx_buf_len to the rx_ring
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:16 +0000 (04:27 -0700)]
ixgbe: Lock RSS seed, move rx_buf_len to the rx_ring

This locks the seed down so loading/unloading the driver will present
predictable hashing from RSS.  Also move the rx_buf_len out of the adapter
struct, and into the Rx ring struct.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: Implement Tx Head Writeback
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:13 +0000 (04:27 -0700)]
ixgbe: Implement Tx Head Writeback

Enable Tx Head Writeback in the hardware.  This helps performance by
removing adapter writebacks to descriptors on transmit completion.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: disable flow control by default
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:10 +0000 (04:27 -0700)]
ixgbe: disable flow control by default

Since the adapter cannot tell what the remote end's flow control capability
is through auto-neg, we must turn off flow control by default.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: Cleanup references to Tx and Rx rings to becommon across the driver
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:08 +0000 (04:27 -0700)]
ixgbe: Cleanup references to Tx and Rx rings to becommon across the driver

Cleanup all the different references to the Tx ring and Rx ring structures
and make them common across the driver.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@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: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: do not update stats twice each receive
Jesse Brandeburg [Tue, 26 Aug 2008 11:27:05 +0000 (04:27 -0700)]
ixgbe: do not update stats twice each receive

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: Implement HAVE_SET_RX_MODE
Christopher Leech [Tue, 26 Aug 2008 11:27:02 +0000 (04:27 -0700)]
ixgbe: Implement HAVE_SET_RX_MODE

Implement HAVE_SET_RX_MODE in the driver for MC and UC lists.

Signed-off-by: Christopher Leech <christopher.leech@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: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: add little endian annotations for sparse
Jesse Brandeburg [Tue, 26 Aug 2008 11:26:59 +0000 (04:26 -0700)]
ixgbe: add little endian annotations for sparse

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgbe: fix rx csum return status misinterpretation
Jesse Brandeburg [Tue, 26 Aug 2008 11:26:56 +0000 (04:26 -0700)]
ixgbe: fix rx csum return status misinterpretation

the driver was misinterpreting rx_csum return value in the descriptor
so occassionally we would indicate an rx_csum error in our stats
when there was none.  This would have no effect on traffic because
we would just hand the packet to the stack anyway without the offload
flag set, but would increase CPU for those packets that needed a recompute.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoibm_newemac: MAL[12]_IER_EVENTS definition: 2x *_OTE -> *_DE
roel kluin [Sat, 30 Aug 2008 20:48:24 +0000 (22:48 +0200)]
ibm_newemac: MAL[12]_IER_EVENTS definition: 2x *_OTE -> *_DE

MAL[12]_IER_EVENTS definitions have MAL_IER_OTE twice
but lack MAL_IER_DE

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agohp-plus: fix link objects
Randy Dunlap [Tue, 2 Sep 2008 20:03:44 +0000 (13:03 -0700)]
hp-plus: fix link objects

Fix hp-plus Makefile object file:

drivers/built-in.o: In function `hpp_open':
hp-plus.c:(.text+0xaf445): undefined reference to `ei_interrupt'
hp-plus.c:(.text+0xaf4ac): undefined reference to `ei_open'
drivers/built-in.o: In function `hpp_close':
hp-plus.c:(.text+0xaf59d): undefined reference to `ei_close'
drivers/built-in.o: In function `hpp_probe1':
hp-plus.c:(.init.text+0x7314): undefined reference to `ei_poll'
drivers/built-in.o: In function `hp_plus_probe':
(.init.text+0x7407): undefined reference to `__alloc_ei_netdev'
make[1]: *** [.tmp_vmlinux1] Error 1

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agobonding: change some __constant_htons() to htons()
Brian Haley [Tue, 2 Sep 2008 14:08:08 +0000 (10:08 -0400)]
bonding: change some __constant_htons() to htons()

Resending since I didn't see any responses from the first try.

Change __constant_htons() to htons() in the bonding driver, it should
only be used for initializers.

-Brian

Signed-off-by: Brian Haley <brian.haley@hp.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Rework efx_set_multicast_hash()
Ben Hutchings [Mon, 1 Sep 2008 11:49:12 +0000 (12:49 +0100)]
sfc: Rework efx_set_multicast_hash()

When !port_enabled, defer the write to reconfigure_mac_wrapper.

Whilst here, simplify the logic now that efx_start_port() always calls
efx_reconfigure_port().

From: Steve Hodgson <shodgson@solarflare.com>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove the STATE_RESETTING flag
Ben Hutchings [Mon, 1 Sep 2008 11:49:08 +0000 (12:49 +0100)]
sfc: Remove the STATE_RESETTING flag

This was originally a kludge to fix broken locking, which has since
been fixed properly.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Extend self-tests
Ben Hutchings [Mon, 1 Sep 2008 11:49:02 +0000 (12:49 +0100)]
sfc: Extend self-tests

Include PMA/PMD in loopback self-tests as intended.

Add NVRAM checksum validation and include it in self-tests.

Add register self-tests.

Run PHY self-tests where available.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Rework the bitfield header so that we can identify fields by bit number
Ben Hutchings [Mon, 1 Sep 2008 11:48:55 +0000 (12:48 +0100)]
sfc: Rework the bitfield header so that we can identify fields by bit number

This will support register self-tests.

From: Steve Hodgson <shodgson@solarflare.com>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Cleanup reset code
Ben Hutchings [Mon, 1 Sep 2008 11:48:50 +0000 (12:48 +0100)]
sfc: Cleanup reset code

Move more code from efx_reset() into efx_reset_down() and efx_reset_up().

Stop propagating MAC/PHY setting failures from efx_reset_down() and
efx_reset_up() as these should not be fatal.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove some unreachable error paths
Ben Hutchings [Mon, 1 Sep 2008 11:48:46 +0000 (12:48 +0100)]
sfc: Remove some unreachable error paths

Some functions return an error code which is always 0.  Change their
return types to void and simplify their callers accordingly.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove remnants of multi-port abstraction for MAC registers
Ben Hutchings [Mon, 1 Sep 2008 11:48:41 +0000 (12:48 +0100)]
sfc: Remove remnants of multi-port abstraction for MAC registers

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove efx_nic_dummy_op_int() as redundant with efx_port_dummy_op_int()
Ben Hutchings [Mon, 1 Sep 2008 11:48:36 +0000 (12:48 +0100)]
sfc: Remove efx_nic_dummy_op_int() as redundant with efx_port_dummy_op_int()

Update comment on the dummy operation implementations.

Line up the board operation initialisers.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Enable TSO for 802.1q VLAN devices
Ben Hutchings [Mon, 1 Sep 2008 11:48:23 +0000 (12:48 +0100)]
sfc: Enable TSO for 802.1q VLAN devices

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Do not call netif_{stop,wake}_queue() before register_netdev
Steve Hodgson [Mon, 1 Sep 2008 11:48:20 +0000 (12:48 +0100)]
sfc: Do not call netif_{stop,wake}_queue() before register_netdev

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Make PHY flash mode a device attribute, not a module parameter
Ben Hutchings [Mon, 1 Sep 2008 11:48:17 +0000 (12:48 +0100)]
sfc: Make PHY flash mode a device attribute, not a module parameter

This allows updating PHY firmware for one interface without removing
all other interfaces handled by the driver.

Replace tx_disabled flags and 10Xpress status enumeration with flags in
enum efx_phy_mode.

Prevent an interface from being brought up while in PHY flash mode.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Implement get_sset_count, replacing get_stats_count and self_test_count
Ben Hutchings [Mon, 1 Sep 2008 11:48:12 +0000 (12:48 +0100)]
sfc: Implement get_sset_count, replacing get_stats_count and self_test_count

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Cleanup RX event processing
Ben Hutchings [Mon, 1 Sep 2008 11:48:08 +0000 (12:48 +0100)]
sfc: Cleanup RX event processing

Make efx_process_channel() and falcon_process_eventq() return the
number of packets received rather than updating the quota, consistent
with new NAPI.

Since channels and RX queues are mapped one-to-one, remove return
value from falcon_handle_rx_event() and add a warning for events
with the wrong RX queue number.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove efx_channel::evqnum field
Ben Hutchings [Mon, 1 Sep 2008 11:48:03 +0000 (12:48 +0100)]
sfc: Remove efx_channel::evqnum field

It is redundant with efx_channel::channel.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Make efx_for_each_channel_rx_queue() more efficient
Ben Hutchings [Mon, 1 Sep 2008 11:47:57 +0000 (12:47 +0100)]
sfc: Make efx_for_each_channel_rx_queue() more efficient

Currently each channel can have at most one RX queue, so go straight to
that one.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove initialisation of RX_FILTER_CTL_REG.NUM_KER
Ben Hutchings [Mon, 1 Sep 2008 11:47:52 +0000 (12:47 +0100)]
sfc: Remove initialisation of RX_FILTER_CTL_REG.NUM_KER

We have long since given up doing RSS on Falcon A1 and therefore we
would always write the default value of 0.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Cleanup RX queue information
Ben Hutchings [Mon, 1 Sep 2008 11:47:48 +0000 (12:47 +0100)]
sfc: Cleanup RX queue information

Rename efx_nic::rss_queues to the more obvious n_rx_queues

Remove efx_rx_queue::used and other stuff that's redundant with it.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove efx_channel::has_interrupt
Ben Hutchings [Mon, 1 Sep 2008 11:47:38 +0000 (12:47 +0100)]
sfc: Remove efx_channel::has_interrupt

efx_channel::has_interrupt is redundant with efx_channel::used_flags.

Remove efx_test_eventq() because it is now obviously unreachable.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Move CPU counting for RSS into a separate function, efx_wanted_rx_queues()
Ben Hutchings [Mon, 1 Sep 2008 11:47:33 +0000 (12:47 +0100)]
sfc: Move CPU counting for RSS into a separate function, efx_wanted_rx_queues()

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Export boot configuration in EEPROM through ethtool
Ben Hutchings [Mon, 1 Sep 2008 11:47:16 +0000 (12:47 +0100)]
sfc: Export boot configuration in EEPROM through ethtool

Extend the SPI device setup code to support this.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Removed forced inlining of long functions
Ben Hutchings [Mon, 1 Sep 2008 11:47:12 +0000 (12:47 +0100)]
sfc: Removed forced inlining of long functions

gcc will automatically inline static functions with only one caller, and
may inline other functions depending on the kernel configuration and size
of the intermediate code.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Cleaned up struct tso_state fields
Ben Hutchings [Mon, 1 Sep 2008 11:47:02 +0000 (12:47 +0100)]
sfc: Cleaned up struct tso_state fields

Squashed nested structures.

Renamed remaining_len to out_len, ifc.len to in_len, header_length to
header_len.

Moved ipv4_id into the group of output variables where it belongs.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Set net_device::vlan_features appropriately
Ben Hutchings [Mon, 1 Sep 2008 11:46:54 +0000 (12:46 +0100)]
sfc: Set net_device::vlan_features appropriately

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Use explicit bool for boolean variables, parameters and return values
Ben Hutchings [Mon, 1 Sep 2008 11:46:50 +0000 (12:46 +0100)]
sfc: Use explicit bool for boolean variables, parameters and return values

Replace (cond ? 1 : 0) with cond or !!cond as appropriate, and
(cond ? 0 : 1) with !cond.

Remove some redundant boolean temporaries.

Rename one field that looks like a flag but isn't.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Reduce the size of struct efx_tx_buffer
Ben Hutchings [Mon, 1 Sep 2008 11:46:43 +0000 (12:46 +0100)]
sfc: Reduce the size of struct efx_tx_buffer

Remove unmap_addr since it can be calculated from dma_addr, len and
unmap_len.  This saves 4-16 bytes.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Use pci_map_single() to map the skb header when doing TSO
Ben Hutchings [Mon, 1 Sep 2008 11:46:40 +0000 (12:46 +0100)]
sfc: Use pci_map_single() to map the skb header when doing TSO

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Don't leak PCI DMA maps in the TSO code when the queue fills up
Ben Hutchings [Mon, 1 Sep 2008 11:46:36 +0000 (12:46 +0100)]
sfc: Don't leak PCI DMA maps in the TSO code when the queue fills up

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Speed up loopback self-test
Ben Hutchings [Mon, 1 Sep 2008 11:46:33 +0000 (12:46 +0100)]
sfc: Speed up loopback self-test

Add efx_poll_loopback() function to test for successful completion of test.
Change efx_test_loopback() to end the test after 1 ms if
efx_poll_loopback() indicates success, and otherwise to wait for 100 ms
as before.

While we're here, rename efx_{rx,tx}_loopback() to
efx_{begin,end}_loopback() which more accurately reflect their
purpose.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Self-test reporting cleanup
Ben Hutchings [Mon, 1 Sep 2008 11:46:28 +0000 (12:46 +0100)]
sfc: Self-test reporting cleanup

Removed log messages that are redundant with calling functions.
Fixed bitwise or-ing of return codes.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Reduce log level for XGXS lane status
Ben Hutchings [Mon, 1 Sep 2008 11:46:25 +0000 (12:46 +0100)]
sfc: Reduce log level for XGXS lane status

This was making noise during 10Xpress self-test.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Reverse the XOFF/XON pause frame control fifo thresholds
Ben Hutchings [Mon, 1 Sep 2008 11:46:21 +0000 (12:46 +0100)]
sfc: Reverse the XOFF/XON pause frame control fifo thresholds

These were clearly bogus.

From: Steve Hodgson <shodgson@solarflare.com>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove inclusion of workarounds.h from efx.c
Ben Hutchings [Mon, 1 Sep 2008 11:46:16 +0000 (12:46 +0100)]
sfc: Remove inclusion of workarounds.h from efx.c

efx.c does not use hardware workarounds.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: XMAC statistics fix-ups
Ben Hutchings [Mon, 1 Sep 2008 11:46:10 +0000 (12:46 +0100)]
sfc: XMAC statistics fix-ups

Exclude assumed size of RX control frames from rx_bad_bytes.

Exclude assumed size of TX control frames from tx_good_bytes for
consistency with rx_good_bytes.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove mistaken hardware workaround
Ben Hutchings [Mon, 1 Sep 2008 11:46:03 +0000 (12:46 +0100)]
sfc: Remove mistaken hardware workaround

We believed that some valid SNAP frames were being marked as invalid.
In fact this is not the case and no workaround is needed.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Reduce delays in SFE4001 initialisation
Ben Hutchings [Mon, 1 Sep 2008 11:45:48 +0000 (12:45 +0100)]
sfc: Reduce delays in SFE4001 initialisation

Currently the board initialisation includes 2 delays of 1 second each.
Usually it is unnecessary to wait that long, so check before doing so.

Correct some of the comments and log messages while we're here.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Avoid mangling error codes in efx_test_loopback()
Ben Hutchings [Mon, 1 Sep 2008 11:45:08 +0000 (12:45 +0100)]
sfc: Avoid mangling error codes in efx_test_loopback()

efx_test_loopback() used "|" to combine the results of the RX and TX
phases.  If both phases fail with different error codes, this results
in a bogus error code.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Use separate hardware TX queues to select checksum generation
Ben Hutchings [Mon, 1 Sep 2008 11:44:59 +0000 (12:44 +0100)]
sfc: Use separate hardware TX queues to select checksum generation

Checksum generation is an attribute of our hardware TX queues, not TX
descriptors.  We previously used a single queue and turned checksum
generation on or off as requested through ethtool.  However, this can
result in regenerating checksums in raw packets that should not be
modified.  We now create 2 hardware TX queues with checksum generation
on or off.  They are presented to the net core as one queue since it
does not know how to select between them.

The self-test verifies that a bad checksum is unaltered on the queue
with checksum generation off.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Remove unused field efx_channel::reset_work
Steve Hodgson [Mon, 1 Sep 2008 11:44:48 +0000 (12:44 +0100)]
sfc: Remove unused field efx_channel::reset_work

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Change first parameter type of {set,clear}_bit_le() to unsigned
Ben Hutchings [Mon, 1 Sep 2008 11:43:39 +0000 (12:43 +0100)]
sfc: Change first parameter type of {set,clear}_bit_le() to unsigned

This means the compiler doesn't need to use real division instructions.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agosfc: Replace net_dev->priv with netdev_priv(net_dev)
Ben Hutchings [Mon, 1 Sep 2008 11:43:14 +0000 (12:43 +0100)]
sfc: Replace net_dev->priv with netdev_priv(net_dev)

Use of the net_device::priv field is deprecated.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agonetlink: Remove compat API for nested attributes
Thomas Graf [Wed, 3 Sep 2008 00:30:27 +0000 (17:30 -0700)]
netlink: Remove compat API for nested attributes

Removes all _nested_compat() functions from the API. The prio qdisc
no longer requires them and netem has its own format anyway. Their
existance is only confusing.

Resend: Also remove the wrapper macro.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Sat, 30 Aug 2008 06:06:00 +0000 (23:06 -0700)]
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

Conflicts:

net/mac80211/mlme.c

16 years agonet: Unbreak userspace usage of linux/mroute.h
David S. Miller [Fri, 29 Aug 2008 21:37:23 +0000 (14:37 -0700)]
net: Unbreak userspace usage of linux/mroute.h

Nothing in linux/pim.h should be exported to userspace.

This should fix the XORP build failure reported by
Jose Calhariz, the debain package maintainer.

Nothing originally in linux/mroute.h was exported to userspace
ever, but some of this stuff started to be when it was moved into
this new linux/pim.h, and that was wrong.  If we didn't provide these
definitions for 10 years we can reasonably expect that applications
defined this stuff locally or used GLIBC headers providing the
protocol definitions.  And as such the only result of this can
be conflict and userland build breakage.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Fix locking of qdisc_root with qdisc_root_sleeping_lock()
Jarek Poplawski [Fri, 29 Aug 2008 21:21:52 +0000 (14:21 -0700)]
pkt_sched: Fix locking of qdisc_root with qdisc_root_sleeping_lock()

Use qdisc_root_sleeping_lock() instead of qdisc_root_lock() where
appropriate. The only difference is while dev is deactivated, when
currently we can use a sleeping qdisc with the lock of noop_qdisc.
This shouldn't be dangerous since after deactivation root lock could
be used only by gen_estimator code, but looks wrong anyway.

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoipv6: When we droped a packet, we should return NET_RX_DROP instead of 0
Yang Hongyang [Fri, 29 Aug 2008 21:06:51 +0000 (14:06 -0700)]
ipv6: When we droped a packet, we should return NET_RX_DROP instead of 0

Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
David S. Miller [Fri, 29 Aug 2008 21:02:13 +0000 (14:02 -0700)]
Merge branch 'master' of git://git./linux/kernel/git/linville/wireless-next-2.6

16 years agob43: Rewrite TX power adjustment
Michael Buesch [Thu, 28 Aug 2008 17:33:40 +0000 (19:33 +0200)]
b43: Rewrite TX power adjustment

This patch rewrites the TX power recalculation algorithms to scale better
with changed enviromnent. If there's low
TX traffic, the power will be checked against the desired values
every 60 seconds.
If there is high TX traffic, the check is redone every 2 seconds. This improves
the reaction times a lot and confuses the rate control less.
It will also reduce the time it initially takes to tune to a new TX power
value. With the old algorithm it could take about 30 to 45 seconds to settle to
a new power value. This will happen in about two to four seconds now.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43: Implement dynamic PHY API
Michael Buesch [Wed, 27 Aug 2008 16:53:02 +0000 (18:53 +0200)]
b43: Implement dynamic PHY API

This patch implements a dynamic "ops" based PHY API.
This is needed in order to conveniently support future PHY types
to avoid the "switch"-hell.

This patch does not change any functionality. It just moves lots
of code from one place to another and adjusts it for the changed
data structures.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Release rt2x00 2.2.1
Ivo van Doorn [Fri, 29 Aug 2008 19:07:22 +0000 (21:07 +0200)]
rt2x00: Release rt2x00 2.2.1

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: skb->data pointer should not include TX descriptor
Mattias Nissler [Fri, 29 Aug 2008 19:07:20 +0000 (21:07 +0200)]
rt2x00: skb->data pointer should not include TX descriptor

Make sure the skb->data pointer points to the frame data, not the TX
descriptor. The frame dumping code relies on that.

Signed-off-by: Mattias Nissler <mattias.nissler@gmx.de>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Add Signal type flag
Ivo van Doorn [Fri, 29 Aug 2008 19:07:16 +0000 (21:07 +0200)]
rt2x00: Add Signal type flag

Instead of using the PLCP flag to indicate if the
signal value is plcp or the bitrate we should add
a new flag to mark the bitrate type explicitely.
This is usefull when new types are added later for
rt2800.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Initialize txop during conf_tx() callback
Ivo van Doorn [Fri, 29 Aug 2008 19:05:45 +0000 (21:05 +0200)]
rt2x00: Initialize txop during conf_tx() callback

The txop parameter is supported by rt61pci and rt73usb,
and thus should be written to the register instead
of using the fixed value set during initialization.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Only configure hardware when radio is enabled
Mattias Nissler [Fri, 29 Aug 2008 19:05:21 +0000 (21:05 +0200)]
rt2x00: Only configure hardware when radio is enabled

Some hardware configuration registers such as antenna and channel configuration
can only be written when the radio is enabled. Previously, we didn't consider
this, so some configuration items could be set inconsistently after reenabling
the radio. This patch changes the config() handler to only reprogram the
hardware when the radio is enabled. Configuration changes that are made while
the radio is off are postponed until the radio is switched back on. We also
leave the radio turned off during initialization and only enable it when
requested by mac80211. This allows us to get rid of the DIRTY_CONFIG flag,
because the device is now guaranteed to be completely initialized when brought
up by mac80211.

Signed-off-by: Mattias Nissler <mattias.nissler@gmx.de>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Map extra_tx_headroom to DMA
Ivo van Doorn [Fri, 29 Aug 2008 19:04:50 +0000 (21:04 +0200)]
rt2x00: Map extra_tx_headroom to DMA

If a driver requests additional headroom it should
be mapped to DMA as well because it will be send to
the hardware as well (as form of extra descriptor).

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Fix race conditions in flag handling
Ivo van Doorn [Fri, 29 Aug 2008 19:04:26 +0000 (21:04 +0200)]
rt2x00: Fix race conditions in flag handling

Some of the flags should be accessed atomically to
prevent race conditions. The flags that are most important
are those that can change often and indicate the actual
state of the device, queue or queue entry.

The big flag rename was done to move all state flags to
the same naming type as the other rt2x00dev flags and
made sure all places where the flags were used were changed. ;)

Thanks to Stephen for most of the queue flags updates,
which fixes some of the most obvious consequences of the
race conditions. Among those the notorious:

rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.
rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.
rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.

Signed-off-by: Stephen Blackheath <tramp.enshrine.stephen@blacksapphire.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agolibertas: use the common frame control functions
Harvey Harrison [Mon, 25 Aug 2008 21:06:32 +0000 (14:06 -0700)]
libertas: use the common frame control functions

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agorfkill: rename rfkill_mutex to rfkill_global_mutex
Henrique de Moraes Holschuh [Tue, 26 Aug 2008 14:58:00 +0000 (11:58 -0300)]
rfkill: rename rfkill_mutex to rfkill_global_mutex

rfkill_mutex and rfkill->mutex are too easy to confuse with each other.

Rename rfkill_mutex to rfkill_global_mutex, so that they are easier to tell
apart with just one glance.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agorfkill: add WARN and BUG_ON paranoia (v2)
Henrique de Moraes Holschuh [Tue, 26 Aug 2008 14:57:59 +0000 (11:57 -0300)]
rfkill: add WARN and BUG_ON paranoia (v2)

BUG_ON() and WARN() the heck out of buggy drivers calling into the rfkill
subsystem.

Also switch from WARN_ON(1) to the new descriptive WARN().

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>