linux-2.6
16 years agoigb: add support for in kernel LRO
Alexander Duyck [Tue, 8 Jul 2008 22:12:13 +0000 (15:12 -0700)] 
igb: add support for in kernel LRO

This patch adds support for the use of the inet_lro module to provide
software LRO support.

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: add page recycling support
Alexander Duyck [Tue, 8 Jul 2008 22:11:40 +0000 (15:11 -0700)] 
igb: add page recycling support

This patch adds support for page recycling by splitting the page into two
usable portions and tracking the reference count.

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: Add support for quad port WOL and feature flags
Alexander Duyck [Tue, 8 Jul 2008 22:10:46 +0000 (15:10 -0700)] 
igb: Add support for quad port WOL and feature flags

Change igb from using a series of boolean operators to using a single flags
value that contains a number of different bit flags for all the different
features of the adapter.

This patch also adds WOL support for quad port adapters.

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: add 82576 MAC support
Alexander Duyck [Tue, 8 Jul 2008 22:10:12 +0000 (15:10 -0700)] 
igb: add 82576 MAC support

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoigb: Increment driver version
Auke Kok [Tue, 8 Jul 2008 22:09:37 +0000 (15:09 -0700)] 
igb: Increment driver version

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoigb: reenable CRC stripping in hardware
Auke Kok [Tue, 8 Jul 2008 22:08:29 +0000 (15:08 -0700)] 
igb: reenable CRC stripping in hardware

We can remove a clunky workaround for not having the hardware
strip the CRC. 82575 silicon as well as the older PCI Express
e1000e hardware all work OK in this respect.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoigb: add DCA support
Jeb Cramer [Tue, 8 Jul 2008 22:07:55 +0000 (15:07 -0700)] 
igb: add DCA support

Add DCA support in the similar method that it was added to the ixgbe
driver recently. DCA allows the network device to put data in the
CPU cache and notify the chipset of that event. This reduces cache
misses during receives.

Signed-off-by: Jeb Cramer <cramerj@intel.com>
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoigb: update ethtool stats to support multiqueue
Alexander Duyck [Tue, 8 Jul 2008 22:07:24 +0000 (15:07 -0700)] 
igb: update ethtool stats to support multiqueue

Addesses problems seen earlier with igb driver not correctly reporting rx
and tx stats.

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: Introduce multiple TX queues with infrastructure
Peter P Waskiewicz Jr [Tue, 8 Jul 2008 22:06:51 +0000 (15:06 -0700)] 
igb: Introduce multiple TX queues with infrastructure

This code adds multiple Tx queue infrastructure much like we
previously did in ixgbe. The MSI-X vector mapping is the bulk of
the change.

IAM can now be safely enabled and we've verified that it does
work correctly. We can also eliminate the tx ring lock.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoixgb: update copyright dates and versions
Jesse Brandeburg [Tue, 8 Jul 2008 22:53:09 +0000 (15:53 -0700)] 
ixgb: update copyright dates and versions

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 agoixgb: make NAPI the only option and the default
Jesse Brandeburg [Tue, 8 Jul 2008 22:53:04 +0000 (15:53 -0700)] 
ixgb: make NAPI the only option and the default

network maintainers suggest NAPI only drivers are the only way to go.

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 agoixgb: cleanup header
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:58 +0000 (15:52 -0700)] 
ixgb: cleanup header

cleaned up some spacing in defines

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 agoixgb: audit use of dev_kfree_skb_any
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:53 +0000 (15:52 -0700)] 
ixgb: audit use of dev_kfree_skb_any

calls to kfree_skb_any are only required when calling kfree
from interrupt context.

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 agoixgb: clean up assignments inside if statements
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:48 +0000 (15:52 -0700)] 
ixgb: clean up assignments inside if statements

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 agoixgb: rx cleanup performance improvements
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:43 +0000 (15:52 -0700)] 
ixgb: rx cleanup performance improvements

rx cleanup should look more like our other drivers that have evolved
to nicer performance levels over time.  Changes consist of refilling
tx buffers to hardware more often, some minor assignment cleanups.

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 agoixgb: cleanup checkpatch suggestions that are relevant
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:38 +0000 (15:52 -0700)] 
ixgb: cleanup checkpatch suggestions that are relevant

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 agoixgb: trivial fix space after for
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:33 +0000 (15:52 -0700)] 
ixgb: trivial fix space after for

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 agoixgb: fix spelling errors
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:28 +0000 (15:52 -0700)] 
ixgb: fix spelling errors

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 agoixgb: whitespace fixups
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:23 +0000 (15:52 -0700)] 
ixgb: whitespace fixups

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 agoixgb: cleanup space after while
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:18 +0000 (15:52 -0700)] 
ixgb: cleanup space after while

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 agoixgb: format all if( to be if (
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:13 +0000 (15:52 -0700)] 
ixgb: format all if( to be if (

this patch is trivial but because I want to have everything be nice and
tidy I'm updating it.

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 agoixgb: clean up un-necessary declarations
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:08 +0000 (15:52 -0700)] 
ixgb: clean up un-necessary declarations

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 agoixgb: add copybreak parameter
Jesse Brandeburg [Tue, 8 Jul 2008 22:52:02 +0000 (15:52 -0700)] 
ixgb: add copybreak parameter

copybreak code was already in the driver, allow the user to turn it
off if they don't like it.

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 agoixgb: update readme text
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:57 +0000 (15:51 -0700)] 
ixgb: update readme text

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 agoixgb: remove lltx support and update tx routine
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:52 +0000 (15:51 -0700)] 
ixgb: remove lltx support and update tx routine

a) kernel developers suggest LLTX is broken and unsafe to use, remove it.
b) remember to pre-stop the queue if we won't have room
c) removing lltx means we can remove our tx lock

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 agoixgb: fix unload race with timers
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:47 +0000 (15:51 -0700)] 
ixgb: fix unload race with timers

ixgb needs to call flush scheduled work to flush any timers before
unregistering the netdev.

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 agoixgb: fix race on rx_buffer_len in mtu change
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:42 +0000 (15:51 -0700)] 
ixgb: fix race on rx_buffer_len in mtu change

some random coverage testing found that when changing mtu
under heavy traffic load, NAPI would use the rx_buffer_len variable
after it had been changed by change_mtu.

Similar to e1000 bugs found long ago.

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 agoixgb: move time stamp set before setting dma pointer
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:37 +0000 (15:51 -0700)] 
ixgb: move time stamp set before setting dma pointer

a user pointed out that setting variables out of order with respect
to the checks we make for tx timeout handling could result in a race
where ->dma was set but ->time_stamp was set to the old value.

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 agoixgb: don't allow too small MTU
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:32 +0000 (15:51 -0700)] 
ixgb: don't allow too small MTU

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 agoixgb: check down state before enable irq
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:27 +0000 (15:51 -0700)] 
ixgb: check down state before enable irq

in order to prevent the case where poll_disable is waiting
on our device to permanently, check the flag to make sure we're not
down or closing down before re-enabling interrupts.

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 agoixgb: leave room for extra hardware memory usage
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:22 +0000 (15:51 -0700)] 
ixgb: leave room for extra hardware memory usage

ixgb hardware (not ixgbe) has a problem where it might dma past the
end of a buffer in certain cases.  leave 8 bytes extra room.

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 agoixgb: fix bug in descriptor ring due to prefetch corruption
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:17 +0000 (15:51 -0700)] 
ixgb: fix bug in descriptor ring due to prefetch corruption

there was one more bug hidden in the prefetch routines in ixgb hardware
that force us to remove it completely.  Writebacks were being done on
descriptors with stale data due to internal hardware fifo corruption.

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 agoixgb: repeat 32 bit ioremap cleanup
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:12 +0000 (15:51 -0700)] 
ixgb: repeat 32 bit ioremap cleanup

this patch has been made to many other drivers in kernel to fix
the storage of 64 bit resources in 32 bit variables.

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 agoixgb: maybe stop tx port missed a piece
Jesse Brandeburg [Tue, 8 Jul 2008 22:51:07 +0000 (15:51 -0700)] 
ixgb: maybe stop tx port missed a piece

back when maybe stop tx was added to the ixgb driver some mistakes
were made and the driver
a) didn't remove the tx lock, which is now un-necessary
b) didn't change the restart code to be compliant with maybe_stop

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 agoucc_geth: delete non NAPI code from the driver.
Francois Romieu [Thu, 10 Jul 2008 22:34:40 +0000 (00:34 +0200)] 
ucc_geth: delete non NAPI code from the driver.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agogianfar: delete non NAPI code from the driver.
Francois Romieu [Thu, 10 Jul 2008 22:33:52 +0000 (00:33 +0200)] 
gianfar: delete non NAPI code from the driver.

Compile-tested only.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agovia-rhine: delete non NAPI code from the driver.
Francois Romieu [Thu, 10 Jul 2008 22:30:14 +0000 (00:30 +0200)] 
via-rhine: delete non NAPI code from the driver.

Compile-tested only.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agocxgb: delete non NAPI code from the driver.
Francois Romieu [Thu, 10 Jul 2008 22:29:19 +0000 (00:29 +0200)] 
cxgb: delete non NAPI code from the driver.

Compile-tested only.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoS2io: Version update for IOMMU overflow checking and enable msi-x link interrupts...
Sreenivasa Honnur [Thu, 10 Jul 2008 03:50:13 +0000 (23:50 -0400)] 
S2io: Version update for IOMMU overflow checking and enable msi-x link interrupts patches.

- Updated version number

Signed-off-by: Santosh Rastapur <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoS2io: Enable msi-x link interrupts.
Sreenivasa Honnur [Thu, 10 Jul 2008 03:49:21 +0000 (23:49 -0400)] 
S2io: Enable msi-x link interrupts.

- Enable msi-x link interrupts because the timer based scheduler was getting
cancelled causing the link state to be lost with repetitive card up/downs
when changing the mtu.
- Unmask mac_rmac_link interrupts only for Xframe I and prevent a spurious
link interrupt in Xframe II.
- Stop the tx queue and indicate link down when card is down

Signed-off-by: Santosh Rastapur <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agoS2io: Fix IOMMU overflow checking.
Sreenivasa Honnur [Thu, 10 Jul 2008 03:47:46 +0000 (23:47 -0400)] 
S2io: Fix IOMMU overflow checking.

- Fix IOMMU overflow checking. As reported by Andi Kleen <ak@linux.intel.com>
removed check for zero dma address.

Signed-off-by: Santosh Rastapur <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agovia-velocity: add velocity_set_rxbufsize helper
Francois Romieu [Thu, 10 Jul 2008 22:05:57 +0000 (00:05 +0200)] 
via-velocity: add velocity_set_rxbufsize helper

It removes a dependancy from velocity_init_rd_ring to dev->mtu.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agovia-velocity: move residual free rx descriptors count register update
Francois Romieu [Thu, 10 Jul 2008 22:05:17 +0000 (00:05 +0200)] 
via-velocity: move residual free rx descriptors count register update

Updates of the RBRDU have two different meanings depending on their
context:
1. the receiving process has not started - the value which is written
   into the RBRDU register is supposed to be the free rx descriptors
   count (rounded to a multiple of 4)
2. the receiving process is running - the value increments the count
   above (sic)

The update is currently issued deep inside the rx replenish chain (see
velocity_give_many_rx_descs).

Let's propagate enough information to the caller so that the rx
replenish functions do not depend on hardware any more.

It is needed to perform the Rx/Tx buffers housekeeping when MTU changes.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agovia-velocity: lean and clean velocity_init_rings
Francois Romieu [Thu, 10 Jul 2008 22:04:33 +0000 (00:04 +0200)] 
via-velocity: lean and clean velocity_init_rings

- PCI consistent areas need no memset
- use dev_err instead of plain printk
- avoid a few casts

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agovia-velocity: remove the bounce buffers
Francois Romieu [Thu, 10 Jul 2008 22:03:44 +0000 (00:03 +0200)] 
via-velocity: remove the bounce buffers

Executive summary: the bounce buffers are in my way

- they use something like a 64 * 1500 bytes area of PCI
  consistent area
- they are not resized when the MTU changes
- they are used
  - to hand-pad undersized packets. skb_pad anyone ?
  - to linearize fragmented skbs whose fragment count
    goes beyond the 7 fragments hardware limit in order
    to claim scatter-gather support

Actually the SG code is commented out and I wonder if it
could not be implemented (ab-)using the large send feature
of the chipset since the latter should support some
multi-descriptor packet transmitting.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Fixed-by: Séguier Régis <rseguier@e-teleport.net>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
16 years agonetdev: Move atomic queue state bits into netdev_queue.
David S. Miller [Wed, 9 Jul 2008 06:14:46 +0000 (23:14 -0700)] 
netdev: Move atomic queue state bits into netdev_queue.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet: Delete NETDEVICES_MULTIQUEUE kconfig option.
David S. Miller [Wed, 9 Jul 2008 06:14:24 +0000 (23:14 -0700)] 
net: Delete NETDEVICES_MULTIQUEUE kconfig option.

Multiple TX queue support is a core networking feature.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: Move _xmit_lock and xmit_lock_owner into netdev_queue.
David S. Miller [Wed, 9 Jul 2008 06:13:53 +0000 (23:13 -0700)] 
netdev: Move _xmit_lock and xmit_lock_owner into netdev_queue.

Accesses are mostly structured such that when there are multiple TX
queues the code transformations will be a little bit simpler.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Make qdisc_run take a netdev_queue.
David S. Miller [Wed, 9 Jul 2008 06:12:38 +0000 (23:12 -0700)] 
pkt_sched: Make qdisc_run take a netdev_queue.

This allows us to use this calling convention all the way down into
qdisc_restart().

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: Make netif_schedule() routines work with netdev_queue objects.
David S. Miller [Wed, 9 Jul 2008 06:11:25 +0000 (23:11 -0700)] 
netdev: Make netif_schedule() routines work with netdev_queue objects.

Only plain netif_schedule() remains taking a net_device, mostly as a
compatability item while we transition the rest of these interfaces.

Everything else calls netif_schedule_queue() or __netif_schedule(),
both of which take a netdev_queue pointer.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: Move gso_skb into netdev_queue.
David S. Miller [Wed, 9 Jul 2008 06:10:33 +0000 (23:10 -0700)] 
netdev: Move gso_skb into netdev_queue.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agomac80211: Decrease number of explicit ->tx_queue references.
David S. Miller [Wed, 9 Jul 2008 06:01:52 +0000 (23:01 -0700)] 
mac80211: Decrease number of explicit ->tx_queue references.

Accomplish this by using local variables.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Add qdisc_tx_is_noop() helper and use in IPV6.
David S. Miller [Wed, 9 Jul 2008 06:01:27 +0000 (23:01 -0700)] 
pkt_sched: Add qdisc_tx_is_noop() helper and use in IPV6.

This indicates if the NOOP scheduler is what is active for TX on a
given device.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet: Clean up explicit ->tx_queue references in link watch.
David S. Miller [Wed, 9 Jul 2008 06:01:06 +0000 (23:01 -0700)] 
net: Clean up explicit ->tx_queue references in link watch.

First, we add a qdisc_tx_changing() helper which returns true if the
qdisc attachment is in transition.

Second, we remove an assertion warning which is of limited value and
is hard to express precisely in a multiqueue environment.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Add qdisc_all_tx_empty()
David S. Miller [Wed, 9 Jul 2008 06:00:25 +0000 (23:00 -0700)] 
pkt_sched: Add qdisc_all_tx_empty()

This is a helper function, currently used by IRDA.

This is being added so that we can contain and isolate as many
explicit ->tx_queue references in the tree as possible.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Add qdisc_reset_all_tx().
David S. Miller [Wed, 9 Jul 2008 05:59:10 +0000 (22:59 -0700)] 
pkt_sched: Add qdisc_reset_all_tx().

Isolate callers that want to simply reset all the TX qdiscs from the
details of TX queues.

Use this in the ISDN code.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: Move next_sched into struct netdev_queue.
David S. Miller [Wed, 9 Jul 2008 05:58:37 +0000 (22:58 -0700)] 
netdev: Move next_sched into struct netdev_queue.

We schedule queues, not the device, for output queue processing in BH.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Make netem queue agnostic.
David S. Miller [Wed, 9 Jul 2008 05:57:51 +0000 (22:57 -0700)] 
pkt_sched: Make netem queue agnostic.

It just wants the root qdisc given an arbitrary qdisc,
and that is simply qdisc->dev_queue->qdisc

Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
16 years agopkt_sched: Kill stats_lock member of struct Qdisc.
David S. Miller [Wed, 9 Jul 2008 05:57:31 +0000 (22:57 -0700)] 
pkt_sched: Kill stats_lock member of struct Qdisc.

It is always equal to qdisc->dev_queue->lock

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: Kill qdisc_ingress, use netdev->rx_queue.qdisc instead.
David S. Miller [Wed, 9 Jul 2008 05:49:00 +0000 (22:49 -0700)] 
netdev: Kill qdisc_ingress, use netdev->rx_queue.qdisc instead.

Now that our qdisc management is bi-directional, per-queue, and fully
orthogonal, there is no reason to have a special ingress qdisc pointer
in struct net_device.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: Move rest of qdisc state into struct netdev_queue
David S. Miller [Wed, 9 Jul 2008 00:42:10 +0000 (17:42 -0700)] 
netdev: Move rest of qdisc state into struct netdev_queue

Now qdisc, qdisc_sleeping, and qdisc_list also live there.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: The ingress_lock member is no longer needed.
David S. Miller [Wed, 9 Jul 2008 00:33:13 +0000 (17:33 -0700)] 
netdev: The ingress_lock member is no longer needed.

Every qdisc is assosciated with a queue, and in the case of ingress
qdiscs that will now be netdev->rx_queue so using that queue's lock is
the thing to do.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: Move queue_lock into struct netdev_queue.
David S. Miller [Wed, 9 Jul 2008 00:18:23 +0000 (17:18 -0700)] 
netdev: Move queue_lock into struct netdev_queue.

The lock is now an attribute of the device queue.

One thing to notice is that "suspicious" places
emerge which will need specific training about
multiple queue handling.  They are so marked with
explicit "netdev->rx_queue" and "netdev->tx_queue"
references.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Remove 'dev' member of struct Qdisc.
David S. Miller [Wed, 9 Jul 2008 00:06:30 +0000 (17:06 -0700)] 
pkt_sched: Remove 'dev' member of struct Qdisc.

It can be obtained via the netdev_queue.  So create a helper routine,
qdisc_dev(), to make the transformations nicer looking.

Now, qdisc_alloc() now no longer needs a net_device pointer argument.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetdev: Create netdev_queue abstraction.
David S. Miller [Tue, 8 Jul 2008 23:55:56 +0000 (16:55 -0700)] 
netdev: Create netdev_queue abstraction.

A netdev_queue is an entity managed by a qdisc.

Currently there is one RX and one TX queue, and a netdev_queue merely
contains a backpointer to the net_device.

The Qdisc struct is augmented with a netdev_queue pointer as well.

Eventually the 'dev' Qdisc member will go away and we will have the
resulting hierarchy:

net_device --> netdev_queue --> Qdisc

Also, qdisc_alloc() and qdisc_create_dflt() now take a netdev_queue
pointer argument.

Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Remove comment reference to old style TX locking.
David S. Miller [Tue, 8 Jul 2008 23:46:01 +0000 (16:46 -0700)] 
pkt_sched: Remove comment reference to old style TX locking.

We haven't had netdev->tbusy in many years :)

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 [Tue, 8 Jul 2008 23:30:17 +0000 (16:30 -0700)] 
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

Conflicts:

drivers/net/wireless/iwlwifi/iwl-3945.c
net/mac80211/mlme.c

16 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireles...
David S. Miller [Tue, 8 Jul 2008 22:39:41 +0000 (15:39 -0700)] 
Merge branch 'master' of /linux/kernel/git/linville/wireless-next-2.6

16 years agovlan: avoid header copying and linearisation where possible
Patrick McHardy [Tue, 8 Jul 2008 22:36:57 +0000 (15:36 -0700)] 
vlan: avoid header copying and linearisation where possible

- vlan_dev_reorder_header() is only called on the receive path after
  calling skb_share_check(). This means we can use skb_cow() since
  all we need is a writable header.

- vlan_dev_hard_header() includes a work-around for some apparently
  broken out of tree MPLS code. The hard_header functions can expect
  to always have a headroom of at least there own hard_header_len
  available, so the reallocation check is unnecessary.

- __vlan_put_tag() can use skb_cow_head() to avoid the skb_unshare()
  copy when the header is writable.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoipv6: fix race between ipv6_del_addr and DAD timer
Andrey Vagin [Tue, 8 Jul 2008 22:13:31 +0000 (15:13 -0700)] 
ipv6: fix race between ipv6_del_addr and DAD timer

Consider the following scenario:

ipv6_del_addr(ifp)
  ipv6_ifa_notify(RTM_DELADDR, ifp)
    ip6_del_rt(ifp->rt)

after returning from the ipv6_ifa_notify and enabling BH-s
back, but *before* calling the addrconf_del_timer the
ifp->timer fires and:

addrconf_dad_timer(ifp)
  addrconf_dad_completed(ifp)
    ipv6_ifa_notify(RTM_NEWADDR, ifp)
      ip6_ins_rt(ifp->rt)

then return back to the ipv6_del_addr and:

in6_ifa_put(ifp)
  inet6_ifa_finish_destroy(ifp)
    dst_release(&ifp->rt->u.dst)

After this we have an ifp->rt inserted into fib6 lists, but
queued for gc, which in turn can result in oopses in the
fib6_run_gc. Maybe some other nasty things, but we caught
only the oops in gc so far.

The solution is to disarm the ifp->timer before flushing the
rt from it.

Signed-off-by: Andrey Vagin <avagin@parallels.com>
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet/wireless/nl80211.c: fix endless Netlink callback loop.
Julius Volz [Tue, 8 Jul 2008 12:02:19 +0000 (14:02 +0200)] 
net/wireless/nl80211.c: fix endless Netlink callback loop.

Although I only tested similar code (I don't use any of this wireless
code), the state maintainance between Netlink dump callback invocations
seems wrong here and should lead to an endless loop. There are also other
examples in the same file which might have the same problem. Perhaps someone
can actually test this (or refute my logic).

Take the simple example with only one element in the list (which should fit
into the message):

1. invocation:
  Start:
    idx = 0, start = 0
  Loop:
    condition (++idx < start) => (1 < 0) => false
    => no continue, fill one entry, exit loop, return skb->len > 0

2. invocation:
  Start:
    idx = 0, start = 1
  Loop:
    condition (++idx < start) => (1 < 1) => false
    => no continue, fill the same entry again, exit loop, return skb->len > 0

3. invocation:
  Same as 2. invocation, endless invocation of callback.

Also, iterations where the filling of an element fails should not be counted as
completed, so idx should not be incremented in this case.

Signed-off-by: Julius Volz <juliusv@google.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agortl8187: Change detection of RTL8187B with USB ID of 8187
Larry Finger [Tue, 8 Jul 2008 14:43:43 +0000 (09:43 -0500)] 
rtl8187: Change detection of RTL8187B with USB ID of 8187

Some early versions of RTL8187B devices have a USB ID of 0x8187
rather than the 0x8189 of later models. In addition, it appears
that these early units also must be programmed with lower power.
Previous patches used the Product ID string to detect this situation,
but did not address the low power question. This patch uses the
hardware version and sets the power accordingly.

Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agortl8187: updating Kconfig to support RTL8187B
Hin-Tak Leung [Tue, 8 Jul 2008 11:38:02 +0000 (12:38 +0100)] 
rtl8187: updating Kconfig to support RTL8187B

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agortl8187: change rtl8187_dev.c to support RTL8187B (part 2)
Hin-Tak Leung [Tue, 8 Jul 2008 11:36:04 +0000 (12:36 +0100)] 
rtl8187: change rtl8187_dev.c to support RTL8187B (part 2)

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agortl8187: change rtl8187_dev.c to support RTL8187B (part 1)
Hin-Tak Leung [Tue, 8 Jul 2008 11:33:34 +0000 (12:33 +0100)] 
rtl8187: change rtl8187_dev.c to support RTL8187B (part 1)

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agortl8187: updating rtl8187_rtl8225.c to support RTL8187B
Hin-Tak Leung [Tue, 8 Jul 2008 11:31:57 +0000 (12:31 +0100)] 
rtl8187: updating rtl8187_rtl8225.c to support RTL8187B

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agortl8187: updating rtl818x.h to support RTL8187B
Hin-Tak Leung [Tue, 8 Jul 2008 11:30:02 +0000 (12:30 +0100)] 
rtl8187: updating rtl818x.h to support RTL8187B

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agortl8187: updating rtl8187.h to support RTL8187B
Hin-Tak Leung [Tue, 8 Jul 2008 11:27:54 +0000 (12:27 +0100)] 
rtl8187: updating rtl8187.h to support RTL8187B

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Fix register comments
Ivo van Doorn [Sun, 6 Jul 2008 15:09:48 +0000 (17:09 +0200)] 
rt2x00: Fix register comments

Fix some register documentation in the register header files.
This allows better parsing by userspace scripts which in turn
helps debugging.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agohostap: don't compile prism2_suspend() for hostap_pci without CONFIG_PM
Pavel Roskin [Sun, 6 Jul 2008 13:12:30 +0000 (09:12 -0400)] 
hostap: don't compile prism2_suspend() for hostap_pci without CONFIG_PM

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agob43legacy: Remove switch statement with 64-bit index
Larry Finger [Fri, 4 Jul 2008 13:39:01 +0000 (08:39 -0500)] 
b43legacy: Remove switch statement with 64-bit index

The gcc 3.4 fork used to compile the MN10300 port emits unwanted
__ucmpdi2() calls for switch statements that use a 64bit value.

This patch removes such a switch from b43legacy, and makes the code
more like that used in b43. Thanks to Adrian Bunk <bunk@kernel.org>
for reporting the problem.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Report RX end time for rt2400pci
Ivo van Doorn [Fri, 4 Jul 2008 14:14:59 +0000 (16:14 +0200)] 
rt2x00: Report RX end time for rt2400pci

rt2400 is the only currently available rt2x00 driver which
supports reporting of the RX end time for frames.
Since mac80211 uses this information for IBSS syncing, it
is important that it is being reported.

v2: Complement 32 bits of RX timestamp with upper 32bits from TSF

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Use ieee80211_hw->workqueue again
Ivo van Doorn [Fri, 4 Jul 2008 11:41:31 +0000 (13:41 +0200)] 
rt2x00: Use ieee80211_hw->workqueue again

Remove the rt2x00 singlethreaded workqueue and move
the link tuner and packet filter scheduled work to
the ieee80211_hw->workqueue again.
The only exception is the interface scheduled work
handler which uses the mac80211 interface iterator
under the RTNL lock. This work needs to be handled
on the kernel workqueue to prevent lockdep issues.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Decrease alignment headroom
Ivo van Doorn [Fri, 4 Jul 2008 12:56:07 +0000 (14:56 +0200)] 
rt2x00: Decrease alignment headroom

We only need 4 bytes of headroom for alignment
purposes in the RX frame. It was previously higher
for optimization purposes which are no longer
possible due to DMA mappings.

v2: Fix patch error

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agort2x00: Remove input_polldev requirements for rfkill
Ivo van Doorn [Fri, 4 Jul 2008 12:51:39 +0000 (14:51 +0200)] 
rt2x00: Remove input_polldev requirements for rfkill

With the new rfkill interface there is no longer a need
for the input_polldev. Create a delayed_work structure
which we can put on the mac80211 workqueue and poll the
hardware every 1000ms.

v2: Decrease poll frequency from 100ms to 1000ms

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agozd1211rw: beacon config error checking
Daniel Drake [Fri, 4 Jul 2008 03:30:49 +0000 (04:30 +0100)] 
zd1211rw: beacon config error checking

Add some error checking to the new beacon configuration code.

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: fix lots of kernel-doc
Randy Dunlap [Thu, 3 Jul 2008 20:52:18 +0000 (13:52 -0700)] 
mac80211: fix lots of kernel-doc

Fix more than 50 kernel-doc warnings in ieee80211/mac80211 kernel-doc notation.
Fix a few typos also.

Note: Some fields are marked as TBD and need to have their description
corrected.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agorfkill: ignore errors from rfkill_toggle_radio in rfkill_add_switch
Henrique de Moraes Holschuh [Thu, 3 Jul 2008 16:14:57 +0000 (13:14 -0300)] 
rfkill: ignore errors from rfkill_toggle_radio in rfkill_add_switch

rfkill_add_switch() calls rfkill_toggle_radio() to set the state of a
recently registered rfkill class to the current global state [for that
rfkill->type].

The rfkill_toggle_radio() call is going to error out if the hardware is
RFKILL_STATE_HARD_BLOCKED, and the global state is RFKILL_STATE_UNBLOCKED.

That is a quite normal situation which I missed to account for.  As things
stand, the error return from rfkill_toggle_radio ends up causing
rfkill_register to bail out with an error (de-registering the new switch in
the process), which is Not Nice.

Change rfkill_add_switch() to not return errors because of a failed call to
rfkill_toggle_radio().  We can go back to returning errors again (if that's
indeed the right thing to do) if we define the exact error codes the
rfkill->toggle_radio callbacks are to return in each situation, so that we
can ignore the right ones only.

Bug reported by "kionez <kionez@anche.no>".

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: kionez <kionez@anche.no>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agorfkill: some minor kernel-doc changes for rfkill_toggle_radio
Henrique de Moraes Holschuh [Thu, 3 Jul 2008 16:14:56 +0000 (13:14 -0300)] 
rfkill: some minor kernel-doc changes for rfkill_toggle_radio

Improve rfkill_toggle_radio's kernel-doc header a bit.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: add support for iwconfig wlanX frag auto
Emmanuel Grumbach [Thu, 3 Jul 2008 15:02:27 +0000 (18:02 +0300)] 
mac80211: add support for iwconfig wlanX frag auto

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: aes_ccm.c remove crypto wrapper and extra args
Harvey Harrison [Wed, 2 Jul 2008 23:30:53 +0000 (16:30 -0700)] 
mac80211: aes_ccm.c remove crypto wrapper and extra args

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: pass scratch buffer directly, remove additional pointers
Harvey Harrison [Wed, 2 Jul 2008 23:30:52 +0000 (16:30 -0700)] 
mac80211: pass scratch buffer directly, remove additional pointers

Recalculate the offset pointers in the ccmp calculations rather than
in the callers.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: wpa.c remove rx/tx_data ->fc users
Harvey Harrison [Wed, 2 Jul 2008 23:30:52 +0000 (16:30 -0700)] 
mac80211: wpa.c remove rx/tx_data ->fc users

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: remove trivial rx_data->fc users
Harvey Harrison [Wed, 2 Jul 2008 23:30:51 +0000 (16:30 -0700)] 
mac80211: remove trivial rx_data->fc users

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: call bss_info_change only once upon disassociation
Tomas Winkler [Wed, 2 Jul 2008 22:27:13 +0000 (01:27 +0300)] 
mac80211: call bss_info_change only once upon disassociation

This patch removes call of ieee80211_bss_info_change_notify from within
ieee80211_reset_erp_info. This allows gathering all bss info changes
into one call to the driver in the disassociation flow.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: remove ieee80211_get_hdr_info
Harvey Harrison [Wed, 2 Jul 2008 18:05:35 +0000 (11:05 -0700)] 
mac80211: remove ieee80211_get_hdr_info

Do the check for sufficient skb->len explicitly and pass a pointer
to the struct ieee80211_hdr directly to the michael_mic calculation.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: remove one user of ieee80211_get_hdr_info
Harvey Harrison [Wed, 2 Jul 2008 18:05:35 +0000 (11:05 -0700)] 
mac80211: remove one user of ieee80211_get_hdr_info

ccmp_special_blocks was only using it to calculate data_len,
calculate that directly.

Use unaligned helpers rather than masking/shifting.

Use symbolic constants for the masked frame_control, and do it directly
on a le16 value.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: use symbolic defines in wpa.c
Harvey Harrison [Wed, 2 Jul 2008 18:05:34 +0000 (11:05 -0700)] 
mac80211: use symbolic defines in wpa.c

ETH_ALEN and IEEE80211_QOS_CTL_LEN

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agomac80211: move QOS control helpers into ieee80211.h
Harvey Harrison [Wed, 2 Jul 2008 18:05:34 +0000 (11:05 -0700)] 
mac80211: move QOS control helpers into ieee80211.h

Also remove the WLAN_IS_QOS_DATA inline after removing the last
two users.  This starts moving away from using rx->fc to using
the header frame_control directly.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
16 years agoiwlwifi: fix typo which caused iwl_get_tx_fail_reason to ever return an empty string
Helmut Schaa [Wed, 2 Jul 2008 10:17:06 +0000 (12:17 +0200)] 
iwlwifi: fix typo which caused iwl_get_tx_fail_reason to ever return an empty string

Signed-off-by: Helmut Schaa <hschaa@suse.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>