]> www.infradead.org Git - users/jedix/linux-maple.git/log
users/jedix/linux-maple.git
13 years agoixgbe: fixup hard dependencies on supporting 8 traffic classes
Joe Jin [Thu, 17 May 2012 14:17:12 +0000 (22:17 +0800)]
ixgbe: fixup hard dependencies on supporting 8 traffic classes

This patch correctly configures DCB when less than 8 traffic classes
are available in hardware.

(cherry picked from commit 32701dc2e616ca64e3d24b41c78671c4528671c1)
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: Fix PFC mask generation
Mark Rustad [Tue, 20 Sep 2011 03:00:27 +0000 (03:00 +0000)]
ixgbe: Fix PFC mask generation

Fix PFC mask generation to OR in only a single bit for each priority in
the PFC mask returned via netlink.

(cherry picked from commit 2ad30e2633430717dbdf857962ba0c697dc471ef)
Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: remove instances of ixgbe_phy_aq for 82598 and 82599
Emil Tantilov [Wed, 21 Sep 2011 09:02:50 +0000 (09:02 +0000)]
ixgbe: remove instances of ixgbe_phy_aq for 82598 and 82599

82598 and 82599 do not ship with this type of PHY

(cherry picked from commit 3e7307fc7b24120dcf795dd1b21fdc6286c48b4c)
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: get pauseparam autoneg
Mika Lansirinne [Fri, 16 Sep 2011 16:52:59 +0000 (16:52 +0000)]
ixgbe: get pauseparam autoneg

There is a problem in the ixgbe driver with the reporting of the flow
control parameters. The autoneg parameter is shown to be of if
*either* it really is off, or current modes for both tx and rx are off.

The problem is seen when the parameters are read or set when the link
is down. In this case, the driver sees that tx and rx are currently off
and therefore autoneg parameter is incorrectly reported to be off too.
Also, the ethtool binary can not set the autoneg off since it sees that
it already is. When a link later comes up, the autonegotiation is
carried out normally and the driver later on reports the autoneg
parameter to be on (as it is) and then it can also be changed with
ethtool.

The patch is made against v3.0 kernel, but the problem seems to be there
since v2.6.30-rc1.

Reviewer comments: What we are trying to do is to disable flow control
while the cable is disconnected. Since ixgbe defaults to full flow
control, we call ethtool -A autoneg off rx off tx off while the cable
is disconnected. This doesn't work, because the driver sets
hw->fc.current_mode = ixgbe_fc_none if the cable is unplugged.
ixgbe_get_pauseparam() then reports to ethtool that nothing needs to be
done. The code fixes this, but it might have some unknown consequences.

(cherry picked from commit 860502bf68bae1ab126fe25a72d038c6e205dedd)
Signed-off-by: Mika Lansirinne <mika.lansirinne@stonesoft.com>
Reviewed-by: Esa-Pekka Pyokkimies <esa-pekka.pyokkimies@stonesoft.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: do not disable flow control in ixgbe_check_mac_link
Emil Tantilov [Fri, 16 Sep 2011 06:27:56 +0000 (06:27 +0000)]
ixgbe: do not disable flow control in ixgbe_check_mac_link

Disabling flow control in ixgbe_check_mac_link() results in incorrect
reporting by ethtool when link goes down, so remove it.

(cherry picked from commit 837617a580d5b61ca7a0a0cfe74ba9276e94c0ed)
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: send MFLCN to ethtool
Emil Tantilov [Thu, 15 Sep 2011 06:23:10 +0000 (06:23 +0000)]
ixgbe: send MFLCN to ethtool

MFLCN register is used to set Rx flow control on parts newer than 82598.

This patch sends the value of MFLCN to ethtool, so it can be used in a
register dump (ethtool -d).

(cherry picked from commit 217995ecd04999284ba4c5745e789314ea99e54f)
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: add support for new 82599 device
Emil Tantilov [Thu, 8 Sep 2011 08:30:14 +0000 (08:30 +0000)]
ixgbe: add support for new 82599 device

This patch adds support for new device ID.

(cherry picked from commit 7d145282da8d1ae4ba5f7ead8a4f51183496803c)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: fix driver version initialization in firmware
Jacob Keller [Thu, 8 Sep 2011 03:50:54 +0000 (03:50 +0000)]
ixgbe: fix driver version initialization in firmware

This patch fixes an issue with storing the driver version for the
firmware. If the os does not support the particular firmware
management tools, the firmware requires a driver version to be written
as 0xFFFFFFFF rather than the actual driver version.

(cherry picked from commit 2466dd9ca11ea9e4400eb8477a9df2a0fe539d47)
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: remove return code for functions that always return 0
Emil Tantilov [Sat, 27 Aug 2011 07:18:47 +0000 (07:18 +0000)]
ixgbe: remove return code for functions that always return 0

Since ixgbe_raise_i2c_clk() can never return anything else than 0
this patch removes it's return value and all checks for it.

(cherry picked from commit e1befd774a049bdc85cf0ed5b307f913b33e1691)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: clear the data field in ixgbe_read_i2c_byte_generic
Emil Tantilov [Tue, 30 Aug 2011 13:33:51 +0000 (13:33 +0000)]
ixgbe: clear the data field in ixgbe_read_i2c_byte_generic

Clear the data field in ixgbe_read_i2c_byte_generic so it does not
accumulate 1 bit using the same variable multiple times.

(cherry picked from commit 3fbaa3ac0d47e0cbad9bb65f0b71a5ce3ef1b76c)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: prevent link checks while resetting
Emil Tantilov [Sat, 27 Aug 2011 07:18:37 +0000 (07:18 +0000)]
ixgbe: prevent link checks while resetting

It some situations the driver sets __IXGBE_RESETTING and then
__IXGBE_DOWN flags. It is possible a link check may sneak in
between.

This patch adds check for both flags.
The idea is to reduce register reads while the PHY is resetting.

(cherry picked from commit 7edebf9a6aac07e2ebb3901b60672293a7139ad0)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: add ECC warning for legacy interrupts
Don Skidmore [Thu, 4 Aug 2011 02:07:48 +0000 (02:07 +0000)]
ixgbe: add ECC warning for legacy interrupts

Noticed that the legacy Interrupt handler didn't have the same
ECC warning as did the MSI.  So this patch adds it.

(cherry picked from commit 0ccb974df5ac5f721491c1f07154450168b6fd0a)
Signed-off-by: Don Skidmore <donald.c.skidmore>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: cleanup ixgbe_setup_gpie() for X540
Don Skidmore [Wed, 17 Aug 2011 10:15:21 +0000 (10:15 +0000)]
ixgbe: cleanup ixgbe_setup_gpie() for X540

The X540 thermal sensor interrupt isn't a General Purpose Interrupt
so doesn't need to be enabled in ixgbe_setup_gpie().  Likewise X540 doesn't
use the SDP0 for thermal sensor so it doesn't need to be enabled for any
device other than 82599.

(cherry picked from commit f3df98ec9e8ed127456a601f99619c88e9d6017f)
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe add thermal sensor support for x540 hardware
Jacob Keller [Sat, 20 Aug 2011 04:49:45 +0000 (04:49 +0000)]
ixgbe add thermal sensor support for x540 hardware

Add code to enable thermal sensors for the x540 hardware, as well as a
thermal interrupt check which will exit with a critical message of a
thermal overheat is detected. Intent of code allows other mac types to
be added with different configuration in the future.

Fixed in this version is the addition of setting the temp_sensor
capable flag which was previously only set for a specific mac.

(cherry picked from commit 4f51bf702395ab45aa68e6b702df2728cc7fe344)
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: update {P}FC thresholds to account for X540 and loopback
John Fastabend [Tue, 23 Aug 2011 03:14:22 +0000 (03:14 +0000)]
ixgbe: update {P}FC thresholds to account for X540 and loopback

Revise high and low threshold marks wrt flow control to account
for the X540 devices and latency introduced by the loopback
switch.

Without this it was in theory possible to drop frames on a
supposedly lossless link with X540 or SR-IOV enabled.

Previously we used a magic number in a define to calculate the
threshold values. This made it difficult to sort out exactly
which latencies were or were not being accounted for. Here
I was overly explicit and tried to used #define names that would
be recognizable after reading the IEEE 802.1Qbb specification.

(cherry picked from commit 9da712d2ede7e3e3a0da180351505310ee271773)
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: disable LLI for FCoE
Vasu Dev [Thu, 18 Aug 2011 06:20:07 +0000 (06:20 +0000)]
ixgbe: disable LLI for FCoE

Disable LLI for FCoE since regular interrupt
and their moderation rate works slightly better
for FCoE also.

(cherry picked from commit 934c18cc5a2318f525a187e77a46d559d3b8cb44)
Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: Cleanup q_vector interrupt throttle rate logic
Emil Tantilov [Wed, 31 Aug 2011 00:01:16 +0000 (00:01 +0000)]
ixgbe: Cleanup q_vector interrupt throttle rate logic

This patch is meant to help cleanup the interrupt throttle rate logic by
storing the interrupt throttle rate as a value in microseconds instead of
interrupts per second.  The advantage to this approach is that the value
can now be stored in an 16 bit field and doesn't require as much math to
flip the value back and forth since the hardware already used microseconds
when setting the rate.

(cherry picked from commit d5bf4f67a6b414628dc95b9c4891525296c09a29)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: remove global reset to the MAC
Emil Tantilov [Tue, 16 Aug 2011 08:04:11 +0000 (08:04 +0000)]
ixgbe: remove global reset to the MAC

Reloading FW during resets can cause issues. Remove the full reset
as it is not needed.

(cherry picked from commit 8c838d7384c6e5c0583ec6bbb2e6f6dba19feda1)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: add WOL support for X540
Emil Tantilov [Tue, 16 Aug 2011 07:34:18 +0000 (07:34 +0000)]
ixgbe: add WOL support for X540

Add support for WOL as determined by the EEPROM.

(cherry picked from commit c23f5b6bbb5ba73cafdb354dcace17426fef4d38)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: avoid HW lockup when adapter is reset with Tx work pending
Emil Tantilov [Tue, 16 Aug 2011 04:35:11 +0000 (04:35 +0000)]
ixgbe: avoid HW lockup when adapter is reset with Tx work pending

This change is meant to avoid a hardware lockup when Tx work is still
pending and we request a reset.

(cherry picked from commit ff9d1a5aefa70ef161a5716f44ad2c24957db7c8)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: dcb, set priority to traffic class mappings
John Fastabend [Thu, 4 Aug 2011 07:15:55 +0000 (07:15 +0000)]
ixgbe: dcb, set priority to traffic class mappings

This patch adds support for configuring the priority to
traffic class mapping.

(cherry picked from commit e886c44f7b4da15182368a25a15984c9da727bd4)
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: cleanup X540 interrupt enablement
Don Skidmore [Thu, 4 Aug 2011 09:28:30 +0000 (09:28 +0000)]
ixgbe: cleanup X540 interrupt enablement

We don't need SFP+ plugable support for X540 hardware (copper only) so
don't enable the SFP+ interrupts.

(cherry picked from commit 858bc081d3300eaef805e64d7105ed82ca1c5770)
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: DCB, do not call set_state() from IEEE mode
Joe Jin [Thu, 17 May 2012 14:10:23 +0000 (22:10 +0800)]
ixgbe: DCB, do not call set_state() from IEEE mode

The DCB CEE command set_state() will complete successfully
but is misleading because it enables IEEE mode. After
this patch the command is failed.

And IEEE PFC/ETS is managed from ieee paths now instead
of using CEE primitives.

(cherry picked from commit 4c09f3a0674119504af4e5805b327213055c412f)
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: Reconfigure SR-IOV Init
Greg Rose [Wed, 24 Aug 2011 02:37:55 +0000 (02:37 +0000)]
ixgbe: Reconfigure SR-IOV Init

Use the PCI device flag indicating if a VF is assigned to a guest VM
to guard against destroying VFs upon driver removal.  Implement
additional feature to detect if VFs already exist when the driver
is loaded and if so configure them and set the driver state to
SR-IOV enabled.

(cherry picked from commit c6bda30a06d925b68d86e61c289d3ce980d4a36c)
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
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.

(cherry picked from commit ae0e148934fe016ce3fc70cacee7431ff053a2ee)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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

(cherry picked from commit 80bb25e3eb73f4fdde48ee017da04b947cec8b90)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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>
(cherry picked from commit 1a70db4b05fcaa976b625d47fba5e6cc2d89b0ae)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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%.

(cherry picked from commit 919e78a6b890bdcce8ca0fa699bd361c6f24dc94)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 398fe4a916be0eea64572f2a7982e0aa564ef821)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 8917b447b75818823f4d0b7dc8cdd9248a4d5445)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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

(cherry picked from commit 5fdd31f920a5ec8873929750d83ffa777bed6100)
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit c7ccde0f8392516576afe291b06c5527b7ad90de)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit f7e1027f61c40eca1acc36e806b8db4cad01f221)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 4c1d7b4b5dec6b8a97202d88538c06733173b1c5)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
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.

(cherry picked from commit 2c4af694fe1723501e19426d0d891bdae9194c71)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 8e34d1aacc942586f39f91c0707d5bc7bc2532bb)
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 8132b54e46259cfc6579ba11c5e3efffda64110b)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit b88c6de20c5edf797bc526cbfe0e8979c63768b9)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 54239c67dba1ec168736c7f31b65638bfe535386)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 35c7f8a1baa6245a0e66d6ee72502d96cbc2aa19)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 4cc6df29d9f4cf90dad8167cbbf5c21810ae56cf)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 263a84e785deb3613bbdd01a071b0bde429c3804)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 207867f583f63449a5e5588690754f1b86e3cbbf)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 4ff7fb12cf92fd15e0fbae0b36cca0599f8a7d1b)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.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.

(cherry picked from commit 592245559e9007845ef6603cc930c784031eb076)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: clear RNBC only for 82598
Emil Tantilov [Fri, 29 Jul 2011 06:46:15 +0000 (06:46 +0000)]
ixgbe: clear RNBC only for 82598

RNBC (0x03FC0) is only for 82598 and has different meaning
on newer HW. Make sure to only clear it for 82598.

(cherry picked from commit f3116f62cb56ef5efd172371fab688bb27529f69)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: add check for supported modes
Emil Tantilov [Fri, 29 Jul 2011 06:46:10 +0000 (06:46 +0000)]
ixgbe: add check for supported modes

When setting advertised speed/duplex with ethtool.

Also cleaned up the comment since we also support 100/F.

(cherry picked from commit abcc80d26cc0408cad520471a1ada6aa421921ab)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: fix ixgbe_fc_autoneg_fiber bug
Don Skidmore [Thu, 28 Jul 2011 01:00:58 +0000 (01:00 +0000)]
ixgbe: fix ixgbe_fc_autoneg_fiber bug

A logic error in ixgbe_fc_autoneg_fiber() that treated a masked u32 as a
boolean would make it so we would never fall hit a error check case.  So
now I force the u32 to a boolean value with '!!'.

(cherry picked from commit 53f096de3a2d04dc034b9dbcb160c6448960309d)
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: cleanup feature flags in ixgbe_probe
Don Skidmore [Sat, 30 Jul 2011 05:08:18 +0000 (05:08 +0000)]
ixgbe: cleanup feature flags in ixgbe_probe

I'm removing NETIF_F_GRO from being initialed in the feature flags during
ixgbe_probe() bases on a comment from Michal Miroslaw
<mirq-linux@rere.qmqm.pl> that it is always set by network code now.

(cherry picked from commit 6a864abbcea970de2ac3afaf530c44548e9d42a0)
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: PFC not cleared on X540 devices
John Fastabend [Thu, 21 Jul 2011 22:43:29 +0000 (22:43 +0000)]
ixgbe: PFC not cleared on X540 devices

X540 devices do not clear PFC before sets. This results in
the device possibly responding to PFC frames that the user
has disabled. Although it would also be wrong for the peer
to be transmitting these frames. Now we clear the register
before set.

(cherry picked from commit 634cdca5637475b74dbc7bd72208f5fdc5904d38)
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: consolidate, setup for multiple traffic classes
John Fastabend [Mon, 18 Jul 2011 22:38:36 +0000 (22:38 +0000)]
ixgbe: consolidate, setup for multiple traffic classes

This consolidates setup code for multiple traffic classes in
the setup_tc routine.

Prep work to allow IEEE DCBX to optimize for number of traffic
classes. Also simplifies code paths.

(cherry picked from commit e7589eab92919483d624eb3356cf3ac80efc0790)
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: remove unneeded fdir pb alloc case
John Fastabend [Mon, 18 Jul 2011 22:38:30 +0000 (22:38 +0000)]
ixgbe: remove unneeded fdir pb alloc case

The packet buffer is correctly allocated by generic pb allocation
path in ixgbe_configure() there is no need to do the allocation
here as well.

(cherry picked from commit 6172207634b9259bc57ebde158bb7a7313e31335)
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: fixup remaining call sites for arbitrary TCs
John Fastabend [Mon, 18 Jul 2011 22:38:25 +0000 (22:38 +0000)]
ixgbe: fixup remaining call sites for arbitrary TCs

One existing call sites still expect either 4 or 8 traffic
classes to be specified. This fixes this allowing arbitrary
values up to 8 to work as expected.

(cherry picked from commit 4fa2e0e178b23819283839b64dcb56f0f259ba39)
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: Always tag VLAN tagged packets
Alexander Duyck [Wed, 20 Jul 2011 00:09:10 +0000 (00:09 +0000)]
ixgbe: Always tag VLAN tagged packets

This change is meant to fix the patch:
ixgbe: Cleanup FCOE and VLAN handling in xmit_frame_ring
And can be rolled into it if needed.

What this fixes is that VLAN tagged packets were not being tagged if they
were prio 7 which matches up with TC_PRIO_CONTROL.  In order to fix it I am
just setting things up so that we always tag VLAN tagged packets.

(cherry picked from commit 09dca476e3201baac2dcbddc857b83aa25cbdf2e)
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: Add support for setting CC bit when SR-IOV is enabled
Alexander Duyck [Wed, 29 Jun 2011 05:43:27 +0000 (05:43 +0000)]
ixgbe: Add support for setting CC bit when SR-IOV is enabled

This change makes it so that the CC bit in the descriptor is set when
SR-IOV is enabled.  This is needed in order to support offloading
functionality when passing traffic over the internal TX switch.

(cherry picked from commit 7f9643fd773a372a5470ed2daedaec5bac918e35)
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: convert rings from q_vector bit indexed array to linked list
Alexander Duyck [Fri, 15 Jul 2011 03:05:21 +0000 (03:05 +0000)]
ixgbe: convert rings from q_vector bit indexed array to linked list

This change converts the current bit array into a linked list so that the
q_vectors can simply go through ring by ring and locate each ring needing
to be cleaned.

(cherry picked from commit efe3d3c8ee6805c7e8b17f9aae554c04b271ab99)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: Simplify transmit cleanup path
Alexander Duyck [Fri, 15 Jul 2011 03:05:14 +0000 (03:05 +0000)]
ixgbe: Simplify transmit cleanup path

This patch helps to simplify the work being done by the transmit path by
removing the unnecessary compares between count and the work limit.  Instead
we can simplify this by just adding a budget value that will act as a count
down from the work limit value.

(cherry picked from commit 30065e63d8366b6ea4c8962fa255adfac157ce06)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: Cleanup FCOE and VLAN handling in xmit_frame_ring
Alexander Duyck [Wed, 29 Jun 2011 05:43:22 +0000 (05:43 +0000)]
ixgbe: Cleanup FCOE and VLAN handling in xmit_frame_ring

This change is meant to further cleanup the transmit path by streamlining
some of the VLAN and FCOE/DCB tasks in the transmit path.  In addition it
adds code for support software VLANs in the event that they are used in
conjunction with DCB and/or FCOE.

(cherry picked from commit 66f32a8b97f11ad73d2e7b8c192c55febb20b425)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: replace reference to CONFIG_FCOE with IXGBE_FCOE
Alexander Duyck [Fri, 15 Jul 2011 02:31:30 +0000 (02:31 +0000)]
ixgbe: replace reference to CONFIG_FCOE with IXGBE_FCOE

CONFIG_FCOE is not the correct define to check since it is possible for it
to be CONFIG_FCOE_MODULE, as such the reference to it should be replaced
with IXGBE_FCOE.

(cherry picked from commit 971060b1066fef53e0b2eacece2f6d092d716d15)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe - DDP last user buffer - error to warn
Amir Hanania [Thu, 28 Apr 2011 08:47:23 +0000 (08:47 +0000)]
ixgbe - DDP last user buffer - error to warn

Change the error message in the last DDP user buffer to warn_once

(cherry picked from commit 0ebafd86656e5b74abb7b7c2a9b5b8458e836532)
Signed-off-by: Amir Hanania <amir.hanania@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: remove unused fcoe.tc field and fcoe_setapp()
John Fastabend [Sat, 18 Jun 2011 07:39:58 +0000 (07:39 +0000)]
ixgbe: remove unused fcoe.tc field and fcoe_setapp()

The fcoe.tc field is no longer used so remove it. After
the field is removed there is no need to keep fcoe_setapp()
around so remove it as well. And finally we can get rid
of some DCB #ifdef's in the fcoe code.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 3b3bf3b92b313db62a07869a649533f7f4f25c24)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: complete FCoE initialization from setapp() routine
John Fastabend [Sat, 18 Jun 2011 07:39:52 +0000 (07:39 +0000)]
ixgbe: complete FCoE initialization from setapp() routine

Commit,

commit c8ca76ebc6e50752c5311b92bb9aef7edb324577
Author: John Fastabend <john.r.fastabend@intel.com>
Date:   Sat Mar 12 03:50:53 2011 +0000

    ixgbe: DCB, further cleanups to app configuration

Removed the getapp() routines from ixgbe because they are no
longer needed. It also allowed the set hardware routines to
use both IEEE 802.1Qaz app types and CEE app types. This
added code to do bit shifting in the IEEE case.

This patch reverts the checks and handles the IEEE case
from the setapp entry point. I prefer this because it
keeps the two paths from having to be aware of the DCB
mode. This resolves a bug where I missed setting the
selector bit in the IEEE spec value and left it in the
CEE value. Now that they are separate routines these types
of errors should not occur.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 9372453e87560f1602815bf08b9e2af0f5136a61)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbe: DCB, remove unneeded ixgbe_dcb_txq_to_tc() routine
John Fastabend [Tue, 26 Apr 2011 07:26:36 +0000 (07:26 +0000)]
ixgbe: DCB, remove unneeded ixgbe_dcb_txq_to_tc() routine

The ixgbe_dcb_txq_to_tc() routine was used to map TX rings to
a DCB traffic class. Now that a tx_ring has a DCB traffic class
associated with it this routine is no longer needed.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit fb5475ff7f2e80e920a393d18a43b64124a30270)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgb: Remove unnecessary defines, use pr_debug
Joe Perches [Wed, 8 Feb 2012 16:14:59 +0000 (16:14 +0000)]
ixgb: Remove unnecessary defines, use pr_debug

Use the current logging styles.

Remove unnecessary _DEBUG_DRIVER_ and PFX, use pr_debug.
Coalesce format.

(cherry picked from commit 5edc4465826bf5be4da678822b0c0e35666b6d67)
Signed-off-by: Joe Perches <joe@perches.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgb: finish conversion to ndo_fix_features
Michał Mirosław [Fri, 23 Sep 2011 02:11:30 +0000 (02:11 +0000)]
ixgb: finish conversion to ndo_fix_features

Finish conversion to unified ethtool ops: convert get_flags.

(cherry picked from commit f04ea74e8aa5b95610bcd2fcb110ffa2ec665dcc)
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgb: eliminate checkstack warnings
Jesse Brandeburg [Fri, 23 Sep 2011 02:11:29 +0000 (02:11 +0000)]
ixgb: eliminate checkstack warnings

Really trivial fix, use kmalloc/kfree instead of stack space.
use static const instead of const to further reduce stack usage.

V2: reflect changes suggested by Joe Perches

before:
[jbrandeb@jbrandeb-mobl2 linux-2.6]$ make checkstack|grep '\[ixgb\]'
0x00000fc1 ixgb_set_multi [ixgb]:                       768
0x00001031 ixgb_set_multi [ixgb]:                       768
0x000010f2 ixgb_set_multi [ixgb]:                       768
0x061c ixgb_check_options [ixgb]:                       448
0x09c3 ixgb_check_options [ixgb]:                       448
0x0000649e ixgb_set_ringparam [ixgb]:                   192
0x0000130d ixgb_xmit_frame [ixgb]:                      184
0x000019e0 ixgb_xmit_frame [ixgb]:                      184
0x00002267 ixgb_clean [ixgb]:                           152
0x00002673 ixgb_clean [ixgb]:                           152

after:
0x000064ee ixgb_set_ringparam [ixgb]:                   192
0x0000135d ixgb_xmit_frame [ixgb]:                      184
0x00001a30 ixgb_xmit_frame [ixgb]:                      184
0x000022b7 ixgb_clean [ixgb]:                           152
0x000026c3 ixgb_clean [ixgb]:                           152

(cherry picked from commit ac5ac789ebcf5b27e9edc231f6d33c92d722c607)
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.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

(cherry picked from commit d7ccb8c2f2f73a9fcdb8fb0f3bcdd09746f3a9ef)
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: fix the bug when initializing the igbvf
Samuel Liao [Fri, 27 Apr 2012 17:09:27 +0000 (17:09 +0000)]
igbvf: fix the bug when initializing the igbvf

Maybe it's a typo, but it cause that igbvf can't be initialized successfully.
Set perm_addr value using valid dev_addr, although which is equal to hw.mac.addr.

(cherry picked from commit 9bd1be457d2b9568c3c8f8f6b8e450a501bff402)
Signed-off-by: Samuel Liao <samuelliao@tencent.com>
Signed-off-by: Shan Wei <davidshan@tencent.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agorename dev_hw_addr_random and remove redundant second
Joe Jin [Thu, 17 May 2012 13:35:55 +0000 (21:35 +0800)]
rename dev_hw_addr_random and remove redundant second

Renamed dev_hw_addr_random to eth_hw_addr_random() to reflect that
this function only assign a random ethernet address (MAC). Removed
the second parameter (u8 *hwaddr), it's redundant since the also
given net_device already contains net_device->dev_addr.
Set it directly.

Adapt igbvf and ixgbevf to the changed function.

Small fix for ixgbevf_probe(): if ixgbevf_sw_init() fails
(which means the device got no dev_addr) handle the error and
jump to err_sw_init as already done by igbvf in similar case.

(cherry picked from commit 1a0d6ae5795c376bae6d012fb25e8341e4c6d5f2)
Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoixgbevf: Convert printks to pr_<level>
Jeff Kirsher [Fri, 21 Oct 2011 19:38:18 +0000 (19:38 +0000)]
ixgbevf: Convert printks to pr_<level>

Based on the original patch from Joe Perches <joe@perches.com>

Use the current logging styles, prefix output with "ixgbevf: "

Add #define pr_fmt
Coalesce formats.

-v2 Fix-up to make checkpatch.pl compliant and remove change to
    copyright line

CC: Joe Perches <joe@perches.com>
(cherry picked from commit dbd9636e281895cd3a15682f0966fb545ddff9e8)
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: Use ETH_ALEN
Joe Perches [Sun, 18 Mar 2012 17:37:58 +0000 (17:37 +0000)]
igbvf: Use ETH_ALEN

Remove an unnecessary #define and use memcpy
instead of a loop to copy an ethernet address.

(cherry picked from commit 449e39d9d7a889f4467ca7c590390e4a0f610b70)
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: reset netdevice addr_assign_type if changed
Danny Kukawka [Fri, 17 Feb 2012 05:43:26 +0000 (05:43 +0000)]
igbvf: reset netdevice addr_assign_type if changed

Reset the state of addr_assign_type to NET_ADDR_PERM as soon as
the MAC get changed via .ndo_set_mac_address.

v2: use bitops to reset addr_assign_type

(cherry picked from commit 067fb4c81944f8965a08cd91c0a1d66ccd09feea)
Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: refactor Interrupt Throttle Rate code
Mitch A Williams [Sat, 14 Jan 2012 08:10:50 +0000 (08:10 +0000)]
igbvf: refactor Interrupt Throttle Rate code

The existing ITR code is broken and confusing, with lots of similarly-named
variables that do different things. Additionally, after the driver carefully
determines the optimal interrupt rate for the adapter, it then
ignores it and always writes a fixed, suboptimal value.

This patch refactors that code to make variable names more descriptive of
what they actually do, and then actually writes the calculated result to
the hardware.

Preliminary testing shows that netperf TCP_STREAM tests goes from ~918Mbps
to ~940Mbps, and TCP_RR goes from ~2k transactions/sec up to > 8k.

(cherry picked from commit ab50a2a430693b0961dc7b7d9fe2a4bd77d11ea6)
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Robert E Garrett <robertX.e.garrett@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: change copyright date
Mitch A Williams [Tue, 17 Jan 2012 04:09:05 +0000 (04:09 +0000)]
igbvf: change copyright date

Change copyright date to 2012 in the source files.

(cherry picked from commit 2a06ed9297e927bb928897661940c47ea4f41707)
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Robert E Garrett <robertX.e.garrett@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: Remove unnecessary irq disable/enable
Joe Jin [Thu, 17 May 2012 13:24:05 +0000 (21:24 +0800)]
igbvf: Remove unnecessary irq disable/enable

This irq disable/enable pair used to wrap access to the driver's vlgrp
struct, which is no longer present. So, then, this could also so no longer
be present.

(backeded from commit 56b68960ce996db7947440179cc153652a504e9a)
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: remove unneeded cast
Stephen Hemminger [Wed, 18 Jan 2012 22:13:28 +0000 (22:13 +0000)]
igbvf: remove unneeded cast

The cast and comment are unnecessary in the current upstream kernel.

(cherry picked from commit b2f0f6bb874df645766930e0f023a208d93c12cd)
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Tested-by: Garrett, RobertX E <robertx.e.garrett@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: Convert printks to pr_<level>
Jeff Kirsher [Fri, 21 Oct 2011 19:42:26 +0000 (19:42 +0000)]
igbvf: Convert printks to pr_<level>

Based on the previous patch from Joe Perches <joe@perches.com>

Use current logging styles.

Prefix all output via #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
Neaten link status dev_info.

-v2 Remove Copyright changes and fix-up patch to make it checkpatch.pl
    compliant.

CC: Joe Perches <joe@perches.com>
(cherry picked from commit a4ba8cbeeb07f7bc8f9bcbd3f9962adb50376034)
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: Bump version number
Williams, Mitch A [Tue, 18 Oct 2011 06:39:43 +0000 (06:39 +0000)]
igbvf: Bump version number

(cherry picked from commit 7d94eb84f3cc6557870a5bc5aa63cf6dde801fa7)
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: Update module identification strings
Williams, Mitch A [Tue, 18 Oct 2011 06:39:37 +0000 (06:39 +0000)]
igbvf: Update module identification strings

Update adapter identification strings to properly indicate i350 VF devices
in the VF driver. Change the driver ID string to remove 82576-specific
wording. Update copyright date.

(cherry picked from commit 10090751c009f4b21a12cd64e96376757563fd4b)
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: fix truesize underestimation
Eric Dumazet [Thu, 20 Oct 2011 09:22:18 +0000 (09:22 +0000)]
igbvf: fix truesize underestimation

igbvf allocates half a page per skb fragment. We must account
PAGE_SIZE/2 increments on skb->truesize, not the actual frag length.

(cherry picked from commit 7b8b59617ead5acc6ff041a9ad2ea1fe7a58094f)
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: Fix trunk vlan
Greg Rose [Sat, 27 Aug 2011 06:24:59 +0000 (06:24 +0000)]
igbvf: Fix trunk vlan

Changes to clean up the VLAN Rx path by Jiri Pirko broke trunk VLAN.
Trunk VLANs in a VF driver are those set using

"ip link set <pfdev> vf <n> <vlanid>"

(cherry picked from commit 4d2d55ac94f52ea8787270ec29579ced83f5f96b)
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
CC: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigbvf: convert to ndo_fix_features
Michał Mirosław [Tue, 30 Aug 2011 17:07:11 +0000 (17:07 +0000)]
igbvf: 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:
 - 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

(cherry picked from commit fd38f734cb8200529e281338514945fcbff2364b)
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: fix rtnl race in PM resume path
Benjamin Poirier [Thu, 10 May 2012 15:38:37 +0000 (15:38 +0000)]
igb: fix rtnl race in PM resume path

Since the caller (PM resume code) is not the one holding rtnl, when taking the
'else' branch rtnl may be released at any moment, thereby defeating the whole
purpose of this code block.

(cherry picked from commit cfb8c3aa59302636c69890be10b2ef23a7ca83b2)
Signed-off-by: Benjamin Poirier <bpoirier@suse.de>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: fix warning about unused function
Emil Tantilov [Sat, 28 Jan 2012 08:10:35 +0000 (08:10 +0000)]
igb: fix warning about unused function

This patch fixes a warning about unused function when CONFIG_PM_SLEEP
is not selected in the kernel config:

igb_main.c: warning: `igb_suspend` defined but not used [W-unused-function]

(cherry picked from commit d9dd966d7fc088a6bed991c2b1e2fba4485e0a31)
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: fix vf lookup
Greg Rose [Thu, 2 Feb 2012 23:51:43 +0000 (23:51 +0000)]
igb: fix vf lookup

Recent addition of code to find already allocated VFs failed to take
account that systems with 2 or more multi-port SR-IOV capable controllers
might have already enabled VFs.  Make sure that the VFs the function is
finding are actually subordinate to the particular instance of the adapter
that is looking for them and not subordinate to some device that has
previously enabled SR-IOV.

This is applicable to 3.2+ kernels.

CC: stable@vger.kernel.org
Reported-by: David Ahern <daahern@cisco.com>
(cherry picked from commit 0629292117572a60465f38cdedde2f8164c3df0b)
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Robert E Garrett <robertX.e.garrett@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Update Copyright on all Intel copyrighted files.
Carolyn Wyborny [Wed, 18 Jan 2012 22:13:27 +0000 (22:13 +0000)]
igb: Update Copyright on all Intel copyrighted files.

(cherry picked from commit 6e861326b1d78bb439c0724864a6ca83ec23d289)
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: make local functions static
Stephen Hemminger [Wed, 18 Jan 2012 22:13:26 +0000 (22:13 +0000)]
igb: make local functions static

Sparse caught two functions that were only being used in one file.

(cherry picked from commit c50b52a0c7ec8522983f5021c0b0952b4d678adf)
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: reset PHY after recovering from PHY power down
Koki Sanagi [Wed, 4 Jan 2012 20:23:38 +0000 (20:23 +0000)]
igb: reset PHY after recovering from PHY power down

According to 82576_Datasheet.pdf, PHY setting is lost after PHY power down.
So resetting PHY is needed when recovering from PHY power down to set a default
setting to PHY register.
Owing to this lack, NIC doesn't link up in some rare situation.

(cherry picked from commit a95a07445ee97a2fef65befafbadcc30ca1bd145)
Signed-off-by: Koki Sanagi <sanagi.koki@jp.fujitsu.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: add basic runtime PM support
Yan, Zheng [Wed, 4 Jan 2012 20:23:37 +0000 (20:23 +0000)]
igb: add basic runtime PM support

Use the runtime power management framework to add basic runtime PM support
to the igb driver. Namely, make the driver suspend the device when the link
is off and set it up for generating a wakeup event after the link has been
detected again. This feature is disabled by default.

Based on e1000e's runtime PM code.

Changes since v1:
Don't suspend the device when shutting down the interface.
Avoid race between runtime suspending and ethtool operations.

(cherry picked from commit 749ab2cd127046df79084b6b9165b23491b1db5f)
Signed-off-by: Zheng Yan <zheng.z.yan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Add flow control advertising to ethtool setting.
Carolyn Wyborny [Fri, 2 Dec 2011 00:03:15 +0000 (00:03 +0000)]
igb: Add flow control advertising to ethtool setting.

Added pause flag for bi-directional flow control advertising to ethtool
settings.

(cherry picked from commit f83396ad8318db0d5e55756a496af61a217bbfda)
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Update DMA Coalescing threshold calculation.
Matthew Vick [Thu, 17 Nov 2011 08:33:12 +0000 (08:33 +0000)]
igb: Update DMA Coalescing threshold calculation.

This patch updates the DMA Coalescing feature parameters to account for
larger MTUs. Previously, sufficient space may not have been allocated in
the receive buffer, causing packet drop.

(cherry picked from commit e8c626e9d8e99fdffd8af0e535ed5ac76ed356db)
Signed-off-by: Matthew Vick <matthew.vick@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Convert bare printk to pr_notice
Joe Perches [Fri, 21 Oct 2011 20:04:09 +0000 (20:04 +0000)]
igb: Convert bare printk to pr_notice

printks should use KERN_ levels.

(cherry picked from commit 82bbcdebbac75bf7636bf63ac0e6e4a49b128978)
Signed-off-by: Joe Perches <joe@perches.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Convert printks to pr_<level>
Jeff Kirsher [Fri, 21 Oct 2011 20:01:34 +0000 (20:01 +0000)]
igb: Convert printks to pr_<level>

Based on original patch from Joe Perches <joe@perches.com>

Use the current logging styles.

pr_<level> conversions are now prefixed with "igb: "

Correct a defect where the trailing NTU may have been printed
on a separate line because of an interleaving hex_dump.

Remove unnecessary uses of KERN_CONT and use single pr_info()s
to avoid any possible output interleaving from other modules.

Coalesce formats as appropriate.

-v2 fix-up to make checkpatch.pl compliant and remove change to
    the copyright line

CC: Joe Perches <joe@perches.com>
(cherry picked from commit 876d2d6f6e60b1170f7ed664b9659def92b87be3)
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Fix for I347AT4 PHY cable length unit detection
Kantecki, Tomasz [Mon, 17 Oct 2011 22:06:59 +0000 (22:06 +0000)]
igb: Fix for I347AT4 PHY cable length unit detection

The PHY cable length unit detection was not using the correct
the correct PHY data variable for I347AT4.

(cherry picked from commit d5a0e3640c05b7d07c548f9f8f986dbb87cfad98)
Signed-off-by: Tomasz Kantecki <tomasz.kantecki@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: VFTA Table Fix for i350 devices
Carolyn Wyborny [Fri, 14 Oct 2011 00:13:49 +0000 (00:13 +0000)]
igb: VFTA Table Fix for i350 devices

Due to a hardware problem, writes to the VFTA register can
theoretically fail. Although the likelihood of this is very low.
This patch adds a shadow vfta in the adapter struct for reading
and adds new write functions for these devices to work around the problem.

(cherry picked from commit 1128c756bef8285db3bbde5b26d4a6b4c7e2e613)
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Move DMA Coalescing init code to separate function.
Carolyn Wyborny [Thu, 13 Oct 2011 17:29:59 +0000 (17:29 +0000)]
igb: Move DMA Coalescing init code to separate function.

This patch moves the DMA Coalescing feature initialization code from
igb_reset to a new function and replaces it with a call to the new
function.

(cherry picked from commit b6e0c419f040cee87813660bb4efd1fe43a8ebee)
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Fix for Alt MAC Address feature on 82580 and later devices
Carolyn Wyborny [Thu, 13 Oct 2011 17:28:39 +0000 (17:28 +0000)]
igb: Fix for Alt MAC Address feature on 82580 and later devices

In 82580 and later devices, the alternate MAC address feature is
completely handled by the option ROM and software does not handle
it anymore.  This patch changes the check_alt_mac_addr function to
exit immediately if device is 82580 or later.

(cherry picked from commit 65189d284b48bd2e747e8cf9dfb0ff63b859682f)
Signed-off-by: Carolyn Wyborny <carolyn.wyborny@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: fix a compile warning
RongQing Li [Tue, 18 Oct 2011 22:52:35 +0000 (22:52 +0000)]
igb: fix a compile warning

control these three function declarations and
definitions with same macro CONFIG_PCI_IOV

drivers/net/igb/igb_main.c:165:
warning: ‘igb_vf_configure’ declared ‘static’ but never defined
drivers/net/igb/igb_main.c:166:
warning: ‘igb_find_enabled_vfs’ declared ‘static’ but never defined
drivers/net/igb/igb_main.c:167:
warning: ‘igb_check_vf_assignment’ declared ‘static’ but never defined

(cherry picked from commit 46a016985a442b499faa52dff7e74a79f6a22cef)
Signed-off-by: RongQing Li <roy.qing.li@gmail.com>
Acked-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agoigb: Check if subordinate VFs are assigned to virtual machines
Greg Rose [Fri, 14 Oct 2011 02:57:14 +0000 (02:57 +0000)]
igb: Check if subordinate VFs are assigned to virtual machines

Kvm and the Xen pci-back driver will set a flag in the virtual function
pci device dev_flags when the VF is assigned to a guest VM.  Before
destroying subordinate VFs check to see if the flag is set and if so
skip the call to pci_disable_sriov() to avoid system crashes.

Copy the maintainer for the Xen pci-back driver.  Also CC'ing
maintainers of all drivers found to call pci_disable_sriov().

V2 - Fix  uninitialized variable warning

Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Christian Benvenuti <benve@cisco.com>
Cc: Sathya Perla <sathya.perla@emulex.com>
Cc: Dimitris Michailidis <dm@chelsio.com>
Cc: Jon Mason <jdmason@kudzu.us>
Cc: James Smart <james.smart@emulex.com>
(cherry picked from commit 0224d663063d542b3d829706f3fcbd0f640f19b3)
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agopci: Add flag indicating device has been assigned by KVM
Greg Rose [Fri, 22 Jul 2011 05:46:07 +0000 (05:46 +0000)]
pci: Add flag indicating device has been assigned by KVM

Device drivers that create and destroy SR-IOV virtual functions via
calls to pci_enable_sriov() and pci_disable_sriov can cause catastrophic
failures if they attempt to destroy VFs while they are assigned to
guest virtual machines.  By adding a flag for use by the KVM module
to indicate that a device is assigned a device driver can check that
flag and avoid destroying VFs while they are assigned and avoid system
failures.

CC: Ian Campbell <ijc@hellion.org.uk>
CC: Konrad Wilk <konrad.wilk@oracle.com>
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 6777829cfe1c4ed78319ad40aaee60254222da76)

Signed-off-by: Joe Jin <joe.jin@oracle.com>