openwrt/staging/blogic.git
13 years agoMerge branch 'tipc-Sep17-2011' of git://openlinux.windriver.com/people/paulg/net...
David S. Miller [Tue, 20 Sep 2011 18:39:04 +0000 (14:39 -0400)]
Merge branch 'tipc-Sep17-2011' of git://openlinux.windriver.com/people/paulg/net-next

13 years agomacvtap: fix the uninitialized var using in macvtap_alloc_skb()
Jason Wang [Sun, 18 Sep 2011 23:48:31 +0000 (23:48 +0000)]
macvtap: fix the uninitialized var using in macvtap_alloc_skb()

Commit d1b08284 use new frag API but would leave f to be used
uninitialized, this patch fix it.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoMerge git://github.com/Jkirsher/net-next
David S. Miller [Tue, 20 Sep 2011 18:34:54 +0000 (14:34 -0400)]
Merge git://github.com/Jkirsher/net-next

13 years agoigb: Remove multi_tx_table and simplify igb_xmit_frame
Alexander Duyck [Fri, 26 Aug 2011 07:44:10 +0000 (07:44 +0000)]
igb: Remove multi_tx_table and simplify igb_xmit_frame

Instead of using the multi_tx_table to map possible Tx queues to Tx rings
we can just do simple subtraction for the unlikely event that the Tx queue
provided exceeds the number of Tx rings.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: Replace E1000_XX_DESC_ADV with IGB_XX_DESC
Alexander Duyck [Fri, 26 Aug 2011 07:44:05 +0000 (07:44 +0000)]
igb: Replace E1000_XX_DESC_ADV with IGB_XX_DESC

Since igb only uses advanced descriptors we might as well just use an IGB
specific define and drop the _ADV suffix for the descriptor declarations.
In addition this can be further reduced by assuming that it will be working
on pointers since that is normally how the Tx descriptors are handled.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: drop the "adv" off function names relating to descriptors
Alexander Duyck [Fri, 26 Aug 2011 07:43:59 +0000 (07:43 +0000)]
igb: drop the "adv" off function names relating to descriptors

Many of the function names in the hot path are carrying an extra "_adv"
suffix on the end of them to represent the fact that they are using
advanced descriptors instead of legacy descriptors.  However since all igb
uses are advanced descriptors adding the extra suffix doesn't really add
any additional data.  Since this is the case it is easiest to just drop the
suffix and save us from having to store the extra characters.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: Refactor clean_rx_irq to reduce overhead and improve performance
Alexander Duyck [Fri, 26 Aug 2011 07:43:54 +0000 (07:43 +0000)]
igb: Refactor clean_rx_irq to reduce overhead and improve performance

This change is meant to be a general cleanup and performance improvement
for clean_rx_irq.  The previous patch should have updated the allocation so
that the rings can be treated as read-only within the clean_rx_irq
function.  In addition I am re-ordering the operations such that several
goals are accomplished including reducing the overhead for packet
accounting, reducing the number of items on the stack, and improving
overall performance.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: update ring and adapter structure to improve performance
Alexander Duyck [Fri, 26 Aug 2011 07:43:48 +0000 (07:43 +0000)]
igb: update ring and adapter structure to improve performance

This change is meant to improve performance by splitting the Tx and Rx
rings into 3 sections.  The first is primarily a read only section
containing basic things like the indexes, a pointer to the dev and netdev
structures, and basic information.  The second section contains the stats
and next_to_use and next_to_clean values.  The third section is primarily
unused values that can just be placed at the end of the ring and are not
used in the hot path.

The adapter structure has several sections that are read in the hot path.
In order to improve performance there I am combining the frequent read
hot path items into a single cache line.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: streamline Rx buffer allocation and cleanup
Alexander Duyck [Fri, 26 Aug 2011 07:43:43 +0000 (07:43 +0000)]
igb: streamline Rx buffer allocation and cleanup

This change is meant to streamline the Rx buffer allocation and cleanup.
This is accomplished by reducing the number of writes by only having the Rx
descriptor ring written by software during allocation, and it will only be
read during cleanup.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: drop support for single buffer mode
Alexander Duyck [Fri, 26 Aug 2011 07:43:38 +0000 (07:43 +0000)]
igb: drop support for single buffer mode

This change removes support for single buffer mode from igb and makes the
driver function in packet split always.  The advantage to doing this is
that we can reduce total memory allocation overhead significantly as we
will only need to allocate one 1K slab per packet and then make use of a
reusable half page instead of allocating a 2K slab per packet.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: Update max_frame_size to account for an optional VLAN tag if present
Alexander Duyck [Fri, 26 Aug 2011 07:43:32 +0000 (07:43 +0000)]
igb: Update max_frame_size to account for an optional VLAN tag if present

This patch modifies the max_frame_size in order account for an optional
VLAN tag.  In order to support this we must also increase the
MAX_STD_JUMBO_FRAME_SIZE to account for the 4 extra bytes.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoigb: Update RXDCTL/TXDCTL configurations
Alexander Duyck [Fri, 26 Aug 2011 07:43:27 +0000 (07:43 +0000)]
igb: Update RXDCTL/TXDCTL configurations

This change cleans up the RXDCTL and TXDCTL configurations and optimizes RX
performance by allowing back write-backs on all hardware other than 82576.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoMerge branch 'master' of ssh://infradead/~/public_git/wireless-next into for-davem
John W. Linville [Mon, 19 Sep 2011 19:00:16 +0000 (15:00 -0400)]
Merge branch 'master' of ssh://infradead/~/public_git/wireless-next into for-davem

13 years agotipc: Remove unused link event tracking code
Ying Xue [Tue, 9 Aug 2011 02:45:27 +0000 (22:45 -0400)]
tipc: Remove unused link event tracking code

Elimintes prototype link event tracking functionality that has never
been fleshed out and doesn't do anything useful at the current time.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Remove callback field from subscription structure
Ying Xue [Tue, 19 Jul 2011 08:21:56 +0000 (04:21 -0400)]
tipc: Remove callback field from subscription structure

Eliminate the "event_cb" member from TIPC's "subscription" structure
since the function pointer it holds always points to subscr_send_event().

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Simplify prohibition of listen and accept for connectionless sockets
Ying Xue [Wed, 6 Jul 2011 10:01:13 +0000 (06:01 -0400)]
tipc: Simplify prohibition of listen and accept for connectionless sockets

Modifies the proto_ops structure used by TIPC DGRAM and RDM sockets
so that calls to listen() and accept() are handled by existing kernel
"unsupported operation" routines, and eliminates the related checks
in the listen and accept routines used by SEQPACKET and STREAM sockets
that are no longer needed.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Add support for SO_SNDTIMEO socket option
Ying Xue [Wed, 6 Jul 2011 09:53:15 +0000 (05:53 -0400)]
tipc: Add support for SO_SNDTIMEO socket option

Adds support for the SO_SNDTIMEO socket option. (This complements the
existing support for SO_RCVTIMEO that is already present.)

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Enhance sending of bulk name table messages
Allan Stephens [Tue, 31 May 2011 17:38:02 +0000 (13:38 -0400)]
tipc: Enhance sending of bulk name table messages

Modifies the initial transfer of name table entries to a new neighboring
node so that the messages are enqueued as a unit, rather than individually.

The revised algorithm now locates the link carrying the message only once,
and eliminates unnecessary checks for link congestion, message fragmentation,
and message bundling that are not required when sending these messages.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: relocate/coalesce node cast in tipc_named_node_up
Paul Gortmaker [Fri, 2 Sep 2011 17:45:34 +0000 (13:45 -0400)]
tipc: relocate/coalesce node cast in tipc_named_node_up

Functions like this are called using unsigned longs from
function pointers.  In this case, the function is passed in
a node which is normally internally treated as a u32 by TIPC.

Rather than add more casts into this function in the future
for each added use of node within, move the cast to a single
place on a local.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Prevent fragmented messages during initial name table exchange
Allan Stephens [Tue, 31 May 2011 15:05:02 +0000 (11:05 -0400)]
tipc: Prevent fragmented messages during initial name table exchange

Reduces the maximum size of messages sent during the initial exchange
of name table information between two nodes to be no larger than the
MTU of the first link established between the nodes. This ensures that
messages will never need to be fragmented, which would add unnecessary
overhead to the name table synchronization mechanism.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Lower limits for number of bearers and media types
Allan Stephens [Fri, 27 May 2011 19:09:40 +0000 (15:09 -0400)]
tipc: Lower limits for number of bearers and media types

Reduces the number of bearers a node can support to 2, which can use
identical or non-identical media. This change won't impact users,
since they are currently limited to a maximum of 2 Ethernet bearers,
and will save memory by eliminating a number of unused entries in
TIPC's media and bearer arrays.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Remove redundant search when enabling bearer
Allan Stephens [Fri, 27 May 2011 18:02:48 +0000 (14:02 -0400)]
tipc: Remove redundant search when enabling bearer

Removes obsolete code that searches for an Ethernet bearer structure entry
to use for a newly enabled bearer, since this search is now performed
at the start of the enabling algorithm.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Fix unsafe device list search when enabling bearer
Allan Stephens [Fri, 27 May 2011 17:59:17 +0000 (13:59 -0400)]
tipc: Fix unsafe device list search when enabling bearer

Ensures that the device list lock is held while trying to locate
the Ethernet device used by a newly enabled bearer, so that the
addition or removal of a device does not cause problems.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotipc: Ensure both nodes recognize loss of contact between them
Allan Stephens [Fri, 27 May 2011 15:00:51 +0000 (11:00 -0400)]
tipc: Ensure both nodes recognize loss of contact between them

Enhances TIPC to ensure that a node that loses contact with a
neighboring node does not allow contact to be re-established until
it sees that its peer has also recognized the loss of contact.

Previously, nodes that were connected by two or more links could
encounter a situation in which node A would lose contact with node B
on all of its links, purge its name table of names published by B,
and then fail to repopulate those names once contact with B was restored.
This would happen because B was able to re-establish one or more links
so quickly that it never reached a point where it had no links to A --
meaning that B never saw a loss of contact with A, and consequently
didn't re-publish its names to A.

This problem is now prevented by enhancing the cleanup done by TIPC
following a loss of contact with a neighboring node to ensure that
node A ignores all messages sent by B until it receives a LINK_PROTOCOL
message that indicates B has lost contact with A, thereby preventing
the (re)establishment of links between the nodes. The loss of contact
is recognized when a RESET or ACTIVATE message is received that has
a "redundant link exists" field of 0, indicating that B's sending link
endpoint is in a reset state and that B has no other working links.

Additionally, TIPC now suppresses the sending of (most) link protocol
messages to a neighboring node while it is cleaning up after an earlier
loss of contact with that node. This stops the peer node from prematurely
activating its link endpoint, which would prevent TIPC from later
activating its own end. TIPC still allows outgoing RESET messages to
occur during cleanup, to avoid problems if its own node recognizes
the loss of contact first and tries to notify the peer of the situation.

Finally, TIPC now recognizes an impending loss of contact with a peer node
as soon as it receives a RESET message on a working link that is the
peer's only link to the node, and ensures that the link protocol
suppression mentioned above goes into effect right away -- that is,
even before its own link endpoints have failed. This is necessary to
ensure correct operation when there are redundant links between the nodes,
since otherwise TIPC would send an ACTIVATE message upon receiving a RESET
on its first link and only begin suppressing when a RESET on its second
link was received, instead of initiating suppression with the first RESET
message as it needs to.

Note: The reworked cleanup code also eliminates a check that prevented
a link endpoint's discovery object from responding to incoming messages
while stale name table entries are being purged. This check is now
unnecessary and would have slowed down re-establishment of communication
between the nodes in some situations.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
13 years agotcp: md5: remove one indirection level in tcp_md5sig_pool
Eric Dumazet [Mon, 12 Sep 2011 20:28:37 +0000 (20:28 +0000)]
tcp: md5: remove one indirection level in tcp_md5sig_pool

tcp_md5sig_pool is currently an 'array' (a percpu object) of pointers to
struct tcp_md5sig_pool. Only the pointers are NUMA aware, but objects
themselves are all allocated on a single node.

Remove this extra indirection to get proper percpu memory (NUMA aware)
and make code simpler.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobna: Eliminate Small Race Condition Window in RX Path
Rasesh Mody [Fri, 16 Sep 2011 15:06:48 +0000 (15:06 +0000)]
bna: Eliminate Small Race Condition Window in RX Path

Change details:
 - In a continuous sequence of ifconfig up/down operations, there is a small
   window of race between bnad_set_rx_mode() and bnad_cleanup_rx() while the
   former tries to access rx_info->rx & the latter sets it to NULL. This race
   could lead to bna_rx_mode_set() being called with a NULL (rx_info->rx)
   pointer and a crash.
 - Hold bnad->bna_lock while setting / unsetting rx_info->rx in bnad_setup_rx()
   & bnad_cleanup_rx(), thereby eliminating the race described above.

Signed-off-by: Gurunatha Karaje <gkaraje@brocade.com>
Signed-off-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobna: Set Ring Param Fix
Rasesh Mody [Fri, 16 Sep 2011 15:06:47 +0000 (15:06 +0000)]
bna: Set Ring Param Fix

When Rx queue size is changed, queues are torn down and setup with the new queue
size. During this operation, clear promiscuous mode and restore the original
VLAN filter.

Signed-off-by: Gurunatha Karaje <gkaraje@brocade.com>
Signed-off-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobna: Semaphore Lock Fix
Rasesh Mody [Fri, 16 Sep 2011 15:06:46 +0000 (15:06 +0000)]
bna: Semaphore Lock Fix

Remove a BUG_ON() as it is not required.

Change the unconditional write to release a semaphore to read sem first
and then write. This will eliminate the possibility of sem getting locked
while trying to release it in case if previous sem_get operation failed.

Signed-off-by: Gurunatha Karaje <gkaraje@brocade.com>
Signed-off-by: Rasesh Mody <rmody@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoixgbe: remove duplicate netif_tx_start_all_queues
Emil Tantilov [Thu, 28 Jul 2011 06:17:09 +0000 (06:17 +0000)]
ixgbe: remove duplicate netif_tx_start_all_queues

netif_tx_start_all_queues() is already called in ixgbe_up_complete, no need
to do it twice.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: fix FCRTL/H register dump for X540
Emil Tantilov [Wed, 27 Jul 2011 04:16:29 +0000 (04:16 +0000)]
ixgbe: fix FCRTL/H register dump for X540

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: cleanup some register reads
Emil Tantilov [Tue, 26 Jul 2011 07:51:41 +0000 (07:51 +0000)]
ixgbe: cleanup some register reads

Remove duplicate inc of hwstats->ruc
Introduce separate loops for 8 and 16 register reads.
Consolidate mac checks under one case.
Make sure registers are cleared on read.

Reported-by: Jonathan Lynch <jonathan.lynch@thenowfactory.com>
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
CC: Jonathan Lynch <jonathan.lynch@thenowfactory.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: Make better use of memory allocations in one-buffer mode w/ RSC
Alexander Duyck [Fri, 26 Aug 2011 09:52:38 +0000 (09:52 +0000)]
ixgbe: Make better use of memory allocations in one-buffer mode w/ RSC

This patch improves the memory utilization with RSC when in one-buffer
mode.  This is accomplished by making the default buffer sizes match up
with the standard memory allocation sizes minus 1K for shared info and
padding overhead.  By doing this CPU utilization when doing large receives
can be reduced by as much as 8%.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: drop adapter from ixgbe_fso call documentation
Alexander Duyck [Thu, 21 Jul 2011 00:40:56 +0000 (00:40 +0000)]
ixgbe: drop adapter from ixgbe_fso call documentation

The adapter structure was removed from the call so it can be dropped from
the ixgbe_fso documentation.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: Add SFP support for missed 82598 PHY
Alexander Duyck [Thu, 21 Jul 2011 00:40:51 +0000 (00:40 +0000)]
ixgbe: Add SFP support for missed 82598 PHY

One of the 82598 phys was not being correctly identified as being SFP.
This change corrects that.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: Add missing code for enabling overheat sensor interrupt
Alexander Duyck [Thu, 21 Jul 2011 00:40:45 +0000 (00:40 +0000)]
ixgbe: Add missing code for enabling overheat sensor interrupt

This change adds a small bit of missing code for enabling the overheat sensor

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: make ixgbe_up and ixgbe_up_complete void functions
Alexander Duyck [Thu, 21 Jul 2011 00:40:40 +0000 (00:40 +0000)]
ixgbe: make ixgbe_up and ixgbe_up_complete void functions

ixgbe_up and ixgbe_up_complete will always return 0.  Since this doesn't
provide any useful information we might as well just make them both void
and save ourselves from having to return an unused value.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agov2 ixgbe: Update packet buffer reservation to correct fdir headroom size
Alexander Duyck [Thu, 21 Jul 2011 00:40:35 +0000 (00:40 +0000)]
v2 ixgbe: Update packet buffer reservation to correct fdir headroom size

This change fixes an issue in which the incorrect amount of headroom was
being reserved for flow director filters.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: remove redundant configuration of tx_sample_rate
Alexander Duyck [Thu, 21 Jul 2011 00:40:30 +0000 (00:40 +0000)]
ixgbe: remove redundant configuration of tx_sample_rate

This change fixes a minor redundancy in that tx_sample_rate was set twice.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgb: convert to ndo_fix_features
Michał Mirosław [Wed, 8 Jun 2011 08:39:40 +0000 (08:39 +0000)]
ixgb: convert to ndo_fix_features

Private rx_csum flags are now duplicate of netdev->features & NETIF_F_RXCSUM.
Removing this needs deeper surgery.

Things noticed:
 - ixgb has RX csum disabled by default
 - HW VLAN acceleration probably can be toggled, but it's left as is
 - the resets on RX csum offload change can probably be avoided
 - there is A LOT of copy-and-pasted code here

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoRevert "Scm: Remove unnecessary pid & credential references in Unix socket's send...
David S. Miller [Fri, 16 Sep 2011 23:34:00 +0000 (19:34 -0400)]
Revert "Scm: Remove unnecessary pid & credential references in Unix socket's send and receive path"

This reverts commit 0856a304091b33a8e8f9f9c98e776f425af2b625.

As requested by Eric Dumazet, it has various ref-counting
problems and has introduced regressions.  Eric will add
a more suitable version of this performance fix.

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoethtool: Update ethtool_rxnfc::rule_cnt on return from ETHTOOL_GRXCLSRLALL
Ben Hutchings [Tue, 6 Sep 2011 13:52:47 +0000 (13:52 +0000)]
ethtool: Update ethtool_rxnfc::rule_cnt on return from ETHTOOL_GRXCLSRLALL

A user-space process must use ETHTOOL_GRXCLSRLCNT to find the number
of classification rules, then allocate a buffer of the right size,
then use ETHTOOL_GRXCLSRLALL to fill the buffer.  If some other
process inserts or deletes a rule between those two operations,
the user buffer might turn out to be the wrong size.

If it's too small, the return value will be -EMSGSIZE.  But if it's
too large, there is no indication of this.  Fix this by updating
the rule_cnt field on return.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoethtool: Clean up definitions of rule location arrays in RX NFC
Ben Hutchings [Tue, 6 Sep 2011 13:49:12 +0000 (13:49 +0000)]
ethtool: Clean up definitions of rule location arrays in RX NFC

Correct the description of ethtool_rxnfc::rule_locs; it is an array
of currently used locations, not all possible valid locations.

Add note that drivers must not use ethtool_rxnfc::rule_locs.

The rule_locs argument to ethtool_ops::get_rxnfc is either NULL or a
pointer to an array of u32, so change the parameter type accordingly.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoethtool: Explicitly state that RX NFC rule locations are priorities
Ben Hutchings [Tue, 6 Sep 2011 13:48:56 +0000 (13:48 +0000)]
ethtool: Explicitly state that RX NFC rule locations are priorities

The location of an RX flow classification rule is needed to identify
it for retrieval, replacement or deletion.  However it also defines
the priority of the rule in the case that a flow is matched by
multiple rules.  This is what I intended to imply by referring to the
use of a TCAM, commonly used to implement that behaviour.

However there are other ways this can be done, and it is better to
specify this explicitly.  Further, I want to add the option for
automatic selection of rule locations.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoethtool: Make struct ethtool_rxnfc kernel-doc more self-consistent
Ben Hutchings [Tue, 6 Sep 2011 13:48:20 +0000 (13:48 +0000)]
ethtool: Make struct ethtool_rxnfc kernel-doc more self-consistent

Refer consistently to 'classification rules' or just 'rules' rather
than 'filter specifications' or 'filter rules'.

Refer consistently to rule 'locations' and not 'indices'.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agovxge: make function table const
stephen hemminger [Fri, 16 Sep 2011 11:10:01 +0000 (11:10 +0000)]
vxge: make function table const

All tables of function pointers should be const.
The pre-existing code has lots of needless indirection...

Inspired by similar change in PAX.
Compile tested only.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agobna: make function tables cont
stephen hemminger [Fri, 16 Sep 2011 11:09:51 +0000 (11:09 +0000)]
bna: make function tables cont

To prevent malicious usage, all tables of pointers must be const.

Compile tested only.
Gleaned for PAX.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agopcnet32: constify function table
stephen hemminger [Fri, 16 Sep 2011 11:06:26 +0000 (11:06 +0000)]
pcnet32: constify function table

Function tables need to be const to prevent malicious use.

This is compile tested only.
Gleaned from PAX.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agowan: make LAPB callbacks const
stephen hemminger [Fri, 16 Sep 2011 11:04:29 +0000 (11:04 +0000)]
wan: make LAPB callbacks const

This is compile tested only.
Suggested by dumpster diving in PAX.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoipv6: Send ICMPv6 RSes only when RAs are accepted
Tore Anderson [Sun, 28 Aug 2011 23:47:33 +0000 (23:47 +0000)]
ipv6: Send ICMPv6 RSes only when RAs are accepted

This patch improves the logic determining when to send ICMPv6 Router
Solicitations, so that they are 1) always sent when the kernel is
accepting Router Advertisements, and 2) never sent when the kernel is
not accepting RAs. In other words, the operational setting of the
"accept_ra" sysctl is used.

The change also makes the special "Hybrid Router" forwarding mode
("forwarding" sysctl set to 2) operate exactly the same as the standard
Router mode (forwarding=1). The only difference between the two was
that RSes was being sent in the Hybrid Router mode only. The sysctl
documentation describing the special Hybrid Router mode has therefore
been removed.

Rationale for the change:

Currently, the value of forwarding sysctl is the only thing determining
whether or not to send RSes. If it has the value 0 or 2, they are sent,
otherwise they are not. This leads to inconsistent behaviour in the
following cases:

* accept_ra=0, forwarding=0
* accept_ra=0, forwarding=2
* accept_ra=1, forwarding=2
* accept_ra=2, forwarding=1

In the first three cases, the kernel will send RSes, even though it will
not accept any RAs received in reply. In the last case, it will not send
any RSes, even though it will accept and process any RAs received. (Most
routers will send unsolicited RAs periodically, so suppressing RSes in
the last case will merely delay auto-configuration, not prevent it.)

Also, it is my opinion that having the forwarding sysctl control RS
sending behaviour (completely independent of whether RAs are being
accepted or not) is simply not what most users would intuitively expect
to be the case.

Signed-off-by: Tore Anderson <tore@fud.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agocan-gw: add netlink based CAN routing
Oliver Hartkopp [Thu, 1 Sep 2011 04:23:23 +0000 (04:23 +0000)]
can-gw: add netlink based CAN routing

This patch adds a CAN Gateway/Router to route (and modify) CAN frames.

It is based on the PF_CAN core infrastructure for msg filtering and msg
sending and can optionally modify routed CAN frames on the fly.
CAN frames can *only* be routed between CAN network interfaces (one hop).
They can be modified with AND/OR/XOR/SET operations as configured by the
netlink configuration interface known e.g. from iptables. From the netlink
view this can-gw implements RTM_{NEW|DEL|GET}ROUTE for PF_CAN.

The CAN specific userspace tool to manage CAN routing entries can be found in
the CAN utils http://svn.berlios.de/wsvn/socketcan/trunk/can-utils/cangw.c
at the SocketCAN SVN on BerliOS.

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agosfc: Use correct fields of struct ethtool_coalesce
Ben Hutchings [Mon, 5 Sep 2011 07:43:49 +0000 (07:43 +0000)]
sfc: Use correct fields of struct ethtool_coalesce

An earlier developer misunderstood the meaning of the 'irq' fields and
the driver did not support the standard fields.  To avoid invalidating
existing user documentation, we report and accept changes through
either the standard or 'irq' fields.  If both are changed at the same
time, we prefer the standard field.

Also explain why we don't currently use the 'max_frames' fields.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agosfc: Validate IRQ moderation parameters in efx_init_irq_moderation()
Ben Hutchings [Mon, 5 Sep 2011 07:43:04 +0000 (07:43 +0000)]
sfc: Validate IRQ moderation parameters in efx_init_irq_moderation()

Add a range check, and move the check that RX and TX are consistent
from efx_ethtool_set_coalesce().

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agosfc: Correct reporting and validation of TX interrupt coalescing
Ben Hutchings [Mon, 5 Sep 2011 07:42:25 +0000 (07:42 +0000)]
sfc: Correct reporting and validation of TX interrupt coalescing

The reported TX IRQ moderation is generated in a completely crazy way.
Make it simple and correct.

When channels are shared between RX and TX, TX IRQ moderation must be
the same as RX IRQ moderation, but must be specified as 0!  Allow it
to be either specified as the same, or left at its previous value
in which case it will be quietly overridden.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agosfc: Use consistent types for interrupt coalescing parameters
Ben Hutchings [Mon, 5 Sep 2011 07:41:44 +0000 (07:41 +0000)]
sfc: Use consistent types for interrupt coalescing parameters

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agosfc: Correct error code for unsupported interrupt coalescing parameters
Ben Hutchings [Mon, 5 Sep 2011 07:41:27 +0000 (07:41 +0000)]
sfc: Correct error code for unsupported interrupt coalescing parameters

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoMAINTAINERS: update ath6kl
Kalle Valo [Tue, 13 Sep 2011 07:21:25 +0000 (10:21 +0300)]
MAINTAINERS: update ath6kl

It's not in staging anymore and I'm the current maintainer.

Cc: Luis R. Rodriguez <mcgrof@gmail.com>
Cc: Naveen Singh <nvesing@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agomac80211: fix endian issues and comments for BAR failure handling
Felix Fietkau [Thu, 15 Sep 2011 07:37:46 +0000 (09:37 +0200)]
mac80211: fix endian issues and comments for BAR failure handling

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Cc: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: do not insert padding into tx buffers on AR9380+
Felix Fietkau [Wed, 14 Sep 2011 19:24:27 +0000 (21:24 +0200)]
ath9k: do not insert padding into tx buffers on AR9380+

With the new EDMA descriptor format, a single descriptor can contain up
to four buffer pointers. By splitting the buffer into two parts, we can
let the hardware add the padding internally instead of using memmove on
the skb data.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: optimize ath_tx_rc_status usage
Felix Fietkau [Wed, 14 Sep 2011 19:24:26 +0000 (21:24 +0200)]
ath9k: optimize ath_tx_rc_status usage

The only flag that needs to be set when ath_tx_rc_status is called with
rc_update == false is the IEEE80211_TX_STAT_TX_FILTERED flag. All other
data is ignored in that case.
This flag can be set from ath_tx_complete_buf instead, so that we can
drop a few redundant calls to ath_tx_rc_status and remove the rc_update
function parameter

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove a redundant check in ath_tx_form_aggr
Felix Fietkau [Wed, 14 Sep 2011 19:24:25 +0000 (21:24 +0200)]
ath9k: remove a redundant check in ath_tx_form_aggr

ath_lookup_legacy now checks all the tx rate flags for MCS vs legacy

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: optimize ath9k_ps_restore
Felix Fietkau [Wed, 14 Sep 2011 19:24:24 +0000 (21:24 +0200)]
ath9k: optimize ath9k_ps_restore

ath_hw_cycle_counters_update only needs to be called if the power state
changes. Most of the time this does not happen, even when ps_usecount
goes down to 0.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: remove the old tx descriptor API
Felix Fietkau [Wed, 14 Sep 2011 19:24:23 +0000 (21:24 +0200)]
ath9k_hw: remove the old tx descriptor API

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: use the new API for setting tx descriptors
Felix Fietkau [Wed, 14 Sep 2011 19:24:22 +0000 (21:24 +0200)]
ath9k: use the new API for setting tx descriptors

With the new API, tx descriptors can be written in one single pass
instead of having to re-read and rewrite fields from multiple places.
This makes the code easier to read and also slightly improves performance
on embedded MIPS hardware.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: add a new API for setting tx descriptors
Felix Fietkau [Wed, 14 Sep 2011 19:24:21 +0000 (21:24 +0200)]
ath9k_hw: add a new API for setting tx descriptors

Instead of using lots of different functions with long argument lists,
pull all the necessary information from one struct. This makes the code
easier to read and eliminates the need for copying data between multiple
linked descriptors.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: do not recalculate the descriptor checksum in ar9003_hw_fill_txdesc
Felix Fietkau [Wed, 14 Sep 2011 19:24:20 +0000 (21:24 +0200)]
ath9k_hw: do not recalculate the descriptor checksum in ar9003_hw_fill_txdesc

Reduces the number of accesses to uncached descriptor memory.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: call ath9k_hw_set_desc_link for beacon descriptors
Felix Fietkau [Wed, 14 Sep 2011 19:24:19 +0000 (21:24 +0200)]
ath9k: call ath9k_hw_set_desc_link for beacon descriptors

This ensures that only ath9k_hw_set_desc_link needs to recalculate the tx
descriptor checksum on AR9380+

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: move ath_buf_set_rate to remove a forward declaration
Felix Fietkau [Wed, 14 Sep 2011 19:24:18 +0000 (21:24 +0200)]
ath9k: move ath_buf_set_rate to remove a forward declaration

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: reduce the number of functions that access the tx descriptor
Felix Fietkau [Wed, 14 Sep 2011 19:24:17 +0000 (21:24 +0200)]
ath9k: reduce the number of functions that access the tx descriptor

Makes it easier to clean up the ath9k_hw descriptor API

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: remove ATH_TX_XRETRY and BUF_XRETRY flags
Felix Fietkau [Wed, 14 Sep 2011 19:24:16 +0000 (21:24 +0200)]
ath9k: remove ATH_TX_XRETRY and BUF_XRETRY flags

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: ensure that rx is not enabled during a reset
Felix Fietkau [Wed, 14 Sep 2011 19:23:03 +0000 (21:23 +0200)]
ath9k: ensure that rx is not enabled during a reset

During a reset, rx buffers are flushed after rx has been disabled. To avoid
race conditions, rx needs to stay disabled during the reset, so avoid any
calls to ath9k_hw_rxena in that case.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: make beacon timer initialization more reliable
Felix Fietkau [Wed, 14 Sep 2011 19:23:02 +0000 (21:23 +0200)]
ath9k: make beacon timer initialization more reliable

When starting the AP beacon timer, it assumes that the TSF has recently
been cleared. Set the SC_OP_TSF_RESET flag to ensure that this is always
the case.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: fix enabling interrupts after a hardware error interrupt
Felix Fietkau [Wed, 14 Sep 2011 19:23:01 +0000 (21:23 +0200)]
ath9k: fix enabling interrupts after a hardware error interrupt

The interrupt handler increases the interrupt disable refcount, so the
tasklet needs to always call ath9k_hw_enable_interrupts.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: Fix PS wrappers and enabling LED
Mohammed Shafi Shajakhan [Wed, 14 Sep 2011 09:39:40 +0000 (15:09 +0530)]
ath9k: Fix PS wrappers and enabling LED

in ath_pci_resume it seems we are not enabling LED properly, in addition
we have a PS wrapper fix for this

Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k: enable LED pin for AR946/8x chipsets
Mohammed Shafi Shajakhan [Wed, 14 Sep 2011 09:39:13 +0000 (15:09 +0530)]
ath9k: enable LED pin for AR946/8x chipsets

now the LED starts working for AR946/8x chipsets

Cc: "Balasubramanian, senthilkumar" <senthilb@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Do full chip reset on 11A channels for AR9003
Rajkumar Manoharan [Wed, 14 Sep 2011 08:50:30 +0000 (14:20 +0530)]
ath9k_hw: Do full chip reset on 11A channels for AR9003

AR9003 seems to have issues sometimes with fast channel change
in 5GHz and this case is handled specifically for AR9280 by doing
a full reset. Let's do a full reset for 5GHz channles of AR9380
& for all channels of AR9280 pci chips.

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: move register definitions to header files
Senthil Balasubramanian [Tue, 13 Sep 2011 17:08:19 +0000 (22:38 +0530)]
ath9k_hw: move register definitions to header files

Move the register macros to appropriate header files to be in
sync with other register definitions and also a single place
to refer everything.

Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Add support for AR946/8x chipsets.
Senthil Balasubramanian [Tue, 13 Sep 2011 17:08:18 +0000 (22:38 +0530)]
ath9k_hw: Add support for AR946/8x chipsets.

This patch adds support for AR946/8x chipets.

Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Split tx/rx gain table initval handling
Senthil Balasubramanian [Tue, 13 Sep 2011 17:08:17 +0000 (22:38 +0530)]
ath9k_hw: Split tx/rx gain table initval handling

Split tx/rx gain table initval hanlding part so readability
is better and easy to manage the code.

Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoath9k_hw: Add initvals and register definitions for AR946/8x chipsets.
Senthil Balasubramanian [Tue, 13 Sep 2011 17:08:16 +0000 (22:38 +0530)]
ath9k_hw: Add initvals and register definitions for AR946/8x chipsets.

Add initvals and register modifications required to support AR946/8x chipsets.

Signed-off-by: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agonl80211/cfg80211/mac80211: fix wme docs
Eliad Peller [Sun, 11 Sep 2011 06:46:55 +0000 (09:46 +0300)]
nl80211/cfg80211/mac80211: fix wme docs

Add/fix some missing docs.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
13 years agoMerge branch 'for-linville' of git://github.com/lucacoelho/wl12xx
John W. Linville [Fri, 16 Sep 2011 20:20:43 +0000 (16:20 -0400)]
Merge branch 'for-linville' of git://github.com/lucacoelho/wl12xx

13 years agoMerge git://github.com/Jkirsher/net-next
David S. Miller [Fri, 16 Sep 2011 19:18:02 +0000 (15:18 -0400)]
Merge git://github.com/Jkirsher/net-next

13 years agoMerge branch 'for-davem' of git://git.infradead.org/users/linville/wireless-next
David S. Miller [Fri, 16 Sep 2011 19:14:19 +0000 (15:14 -0400)]
Merge branch 'for-davem' of git://git.infradead.org/users/linville/wireless-next

13 years agoMerge branch 'master' of ../netdev-next/
David S. Miller [Fri, 16 Sep 2011 06:58:54 +0000 (02:58 -0400)]
Merge branch 'master' of ../netdev-next/

13 years agoixgbe: Correctly name and handle MSI-X other interrupt
Alexander Duyck [Fri, 15 Jul 2011 07:29:55 +0000 (07:29 +0000)]
ixgbe: Correctly name and handle MSI-X other interrupt

It was possible to inadvertently add additional interrupt causes to the
MSI-X other interrupt.  This occurred when things such as RX buffer overrun
events were being triggered at the same time as an event such as a Flow
Director table reinit request.  In order to avoid this we should be
explicitly programming only the interrupts that we want enabled.  In
addition I am renaming the ixgbe_msix_lsc function and interrupt to drop
any implied meaning of this being a link status only interrupt.

Unfortunately the patch is a bit ugly due to the fact that ixgbe_irq_enable
needed to be moved up before ixgbe_msix_other in order to have things
defined in the correct order.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: cleanup configuration of EITRSEL and VF reset path
Alexander Duyck [Fri, 15 Jul 2011 07:29:49 +0000 (07:29 +0000)]
ixgbe: cleanup configuration of EITRSEL and VF reset path

This change is meant to cleanup some of the code related to SR-IOV and the
interrupt registers.  Specifically I am moving the EITRSEL configuration
into the MSI-X configuration section instead of enablement.  Also I am
fixing the VF shutdown path since it had operations in the incorrect order.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: cleanup reset paths
Alexander Duyck [Fri, 15 Jul 2011 07:29:44 +0000 (07:29 +0000)]
ixgbe: cleanup reset paths

The reset paths are overly complicated and are either missing steps or
contain extra unnecessary steps such as reading MAC address twice.  This
change is meant to help clean up the reset paths an get things functioning
correctly.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: Update TXDCTL configuration to correctly handle WTHRESH
Alexander Duyck [Fri, 15 Jul 2011 03:06:12 +0000 (03:06 +0000)]
ixgbe: Update TXDCTL configuration to correctly handle WTHRESH

This change updated the TXDCTL configuration.  The main goal is to be much
more explicit about the configuration and avoid a possible fake TX hang
when the interrupt throttle rate is set to 0.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: combine PCI_VDEVICE and board declaration to same line
Alexander Duyck [Fri, 15 Jul 2011 03:06:06 +0000 (03:06 +0000)]
ixgbe: combine PCI_VDEVICE and board declaration to same line

This patch is a minor whitespace cleanup to compress the device ID
declaration and board type declaration onto the same line.  It seems to
make sense since all of the combinations of the two are less than 80
characters and it makes the overall layout a bit more readable.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: Drop unnecessary adapter->hw dereference in loopback test setup
Alexander Duyck [Fri, 15 Jul 2011 03:06:01 +0000 (03:06 +0000)]
ixgbe: Drop unnecessary adapter->hw dereference in loopback test setup

This patch drops a set of unnecessary dereferences to the hardware structure
since we already have a local copy of the hardware pointer.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: commonize ixgbe_map_rings_to_vectors to work for all interrupt types
Alexander Duyck [Fri, 15 Jul 2011 03:05:51 +0000 (03:05 +0000)]
ixgbe: commonize ixgbe_map_rings_to_vectors to work for all interrupt types

This patch makes it so that the map_rings_to_vectors call will work with
all interrupt types.  The advantage to this is that there will now be a
predictable mapping for all given interrupt types.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: Use ring->dev instead of adapter->pdev->dev when updating DCA
Alexander Duyck [Fri, 15 Jul 2011 03:05:46 +0000 (03:05 +0000)]
ixgbe: Use ring->dev instead of adapter->pdev->dev when updating DCA

This change switches us over to using the ring->dev pointer instead of
having to use the adapter->pdev->dev reference.  The advantage to this is
that it is a much shorter route to get the to final needed value.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: cleanup allocation and freeing of IRQ affinity hint
Alexander Duyck [Fri, 15 Jul 2011 03:05:37 +0000 (03:05 +0000)]
ixgbe: cleanup allocation and freeing of IRQ affinity hint

The allocation and freeing of the IRQ affinity hint needs some updates
since there are a number of spots where we run into possible issues with
the hint not being correctly updated.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agov2 ixgbe: consolidate all MSI-X ring interrupts and poll routines into one
Alexander Duyck [Wed, 31 Aug 2011 00:01:11 +0000 (00:01 +0000)]
v2 ixgbe: consolidate all MSI-X ring interrupts and poll routines into one

This change consolidates all of the MSI-X interrupt and polling routines
into two single functions.  One for the interrupt and one for the code.
The main advantage to doing this is that the compiler can optimize the
routines into single monolithic functions which should allow all of them
function to occupy a single block of memory and as such avoid jumping
around.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agoixgbe: Change default Tx work limit size to 256 buffers
Alexander Duyck [Wed, 31 Aug 2011 00:01:06 +0000 (00:01 +0000)]
ixgbe: Change default Tx work limit size to 256 buffers

This change makes it so that the default Tx work limit is 256 buffers or
1/2 of an entire ring instead of a full ring size so that it is much more
likely that we will be able to actually reach the work limit value.
Previously with the value set to an entire ring it would not have been
possible for us to trigger an event due to the fact that the Tx work is
stopped at the point where we cannot place one more buffer on the ring and
it is not restarted until cleanup is complete.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
13 years agonet: consolidate and fix ethtool_ops->get_settings calling
Jiri Pirko [Sat, 3 Sep 2011 03:34:30 +0000 (03:34 +0000)]
net: consolidate and fix ethtool_ops->get_settings calling

This patch does several things:
- introduces __ethtool_get_settings which is called from ethtool code and
  from drivers as well. Put ASSERT_RTNL there.
- dev_ethtool_get_settings() is replaced by __ethtool_get_settings()
- changes calling in drivers so rtnl locking is respected. In
  iboe_get_rate was previously ->get_settings() called unlocked. This
  fixes it. Also prb_calc_retire_blk_tmo() in af_packet.c had the same
  problem. Also fixed by calling __dev_get_by_index() instead of
  dev_get_by_index() and holding rtnl_lock for both calls.
- introduces rtnl_lock in bnx2fc_vport_create() and fcoe_vport_create()
  so bnx2fc_if_create() and fcoe_if_create() are called locked as they
  are from other places.
- use __ethtool_get_settings() in bonding code

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
v2->v3:
-removed dev_ethtool_get_settings()
-added ASSERT_RTNL into __ethtool_get_settings()
-prb_calc_retire_blk_tmo - use __dev_get_by_index() and lock
 around it and __ethtool_get_settings() call
v1->v2:
        add missing export_symbol
Reviewed-by: Ben Hutchings <bhutchings@solarflare.com> [except FCoE bits]
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonet/irda: sh_irda: add PM support
Kuninori Morimoto [Wed, 31 Aug 2011 20:08:48 +0000 (20:08 +0000)]
net/irda: sh_irda: add PM support

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonet/irda: sh_irda: update author's email address
Kuninori Morimoto [Wed, 31 Aug 2011 20:08:37 +0000 (20:08 +0000)]
net/irda: sh_irda: update author's email address

it also cleanup white space

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agonet/irda: sh_irda: add sh_irda_ prefix to all functions
Kuninori Morimoto [Wed, 31 Aug 2011 20:08:22 +0000 (20:08 +0000)]
net/irda: sh_irda: add sh_irda_ prefix to all functions

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agotg3: Code movement
Matt Carlson [Wed, 31 Aug 2011 11:44:54 +0000 (11:44 +0000)]
tg3: Code movement

This patch just moves some code around for better organization.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>