summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel
Commit message (Collapse)AuthorAgeFilesLines
* ixgbevf: Fix rcu warnings induced by LERMark Rustad2014-03-312-5/+18
| | | | | | | | | | | | Resolve some rcu warnings produced when LER actions take place. This appears to be due to not holding the rtnl lock when calling ixgbe_down, so hold the lock. Also avoid disabling the device when it is already disabled. This check is necessary because the callback can be called more than once in some cases. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* ixgbe: Fix rcu warnings induced by LERMark Rustad2014-03-312-5/+19
| | | | | | | | | | | | Resolve some rcu warnings produced when LER actions take place. This appears to be due to not holding the rtnl lock when calling ixgbe_down, so hold the lock. Also avoid disabling the device when it is already disabled. This check is necessary because the callback can be called more than once in some cases. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* INTEL-IGB: Convert iounmap to pci_iounmapPeter Senna Tschudin2014-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | Use pci_iounmap instead of iounmap when the virtual mapping was done with pci_iomap. A simplified version of the semantic patch that finds this issue is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ expression addr; @@ addr = pci_iomap(...) @rr@ expression r.addr; @@ * iounmap(addr) // </smpl> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: Remove casts of pointer to same typeJoe Perches2014-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | Casting a pointer to a pointer of the same type is pointless, so remove these unnecessary casts. Done via coccinelle script: $ cat typecast_2.cocci @@ type T; T *foo; @@ - (T *)foo + foo Signed-off-by: Joe Perches <joe@perches.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e/i40evf: Remove addressof casts to same typeJoe Perches2014-03-312-4/+3
| | | | | | | | | | | | | | | | | | | | Using addressof then casting to the original type is pointless, so remove these unnecessary casts. Done via coccinelle script: $ cat typecast.cocci @@ type T; T foo; @@ - (T *)&foo + &foo Signed-off-by: Joe Perches <joe@perches.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e/i40evf: fix error checking pathJean Sacren2014-03-312-10/+12
| | | | | | | | | | | | | | | The commit 6494294f277fd ("i40e/i40evf: Use dma_set_mask_and_coherent") uses dma_set_mask_and_coherent() to replace dma_set_coherent_mask() for the benefit of return error. The conversion brings some confusion in error checking as whether against DMA_BIT_MASK(64) or DMA_BIT_MASK(32). For one, if error is zero, the check will be against DMA_BIT_MASK(64) twice. Fix this error checking by binding the check to the pertinent one. Cc: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Jean Sacren <sakiwit@gmail.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: fix function kernel doc descriptionJean Sacren2014-03-311-1/+1
| | | | | | | | | | | | | | | The commit c7d05ca89f8e ("i40e: driver ethtool core") introduced the new function i40e_add_del_fdir_sctpv4() with the kernel doc description a little bit off. The trivial error was copied over to a different file by the commit 17a73f6b1401 ("i40e: Flow Director sideband accounting") most recently. Fix the kernel doc with the correct description for clarity. Cc: Jesse Brandeburg <jesse.brandeburg@intel.com> Cc: Joseph Gasparakis <joseph.gasparakis@intel.com> Signed-off-by: Jean Sacren <sakiwit@gmail.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* ixgbevf: Change ixgbe_read_reg to ixgbevf_read_regMark Rustad2014-03-313-9/+9
| | | | | | | | | | | Change the ixgbe_read_reg function name to ixgbevf_read_reg to avoid a namespace clash with the ixgbe driver. This will allow ixgbe to take its register read function out-of-line to reduce memory footprint. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* ixgbe: fix ixgbe_check_reset_blocked() declarationJean Sacren2014-03-312-2/+2
| | | | | | | | | | | | | | The commit c97506ab0e22 ("ixgbe: Add check for FW veto bit") introduced the new function ixgbe_check_reset_blocked() with a minor issue in declaration. Fix the declaration by changing the type specifier to bool as the definition returns a boolean value. Additionally all ixgbe_check_reset_blocked() callers are expected to return a boolean value. Signed-off-by: Jean Sacren <sakiwit@gmail.com> Acked-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>
* ixgbe: fix race conditions on queuing skb for HW time stampJakub Kicinski2014-03-313-1/+7
| | | | | | | | | | ixgbe has a single set of TX time stamping resources per NIC. Use a simple bit lock to avoid race conditions and leaking skbs when multiple TX rings try to claim time stamping. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* ixgbe: never generate both software and hardware timestampsJakub Kicinski2014-03-311-2/+2
| | | | | | | | | | | | | | skb_tx_timestamp() does not report software time stamp if SKBTX_IN_PROGRESS is set. According to timestamping.txt software time stamps are a fallback and should not be generated if hardware time stamp is provided. Move call to skb_tx_timestamp() after setting SKBTX_IN_PROGRESS. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* ixgbe: remove redundant if clause from PTP workJakub Kicinski2014-03-311-4/+0
| | | | | | | | | | ptp_tx_skb is always set before work is scheduled, work is cancelled before ptp_tx_skb is set to NULL. PTP work cannot ever see ptp_tx_skb set to NULL. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* e1000e: Fix no connectivity when driver loaded with cable outDavid Ertman2014-03-311-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit da1e2046e5, the flow for enabling/disabling an Si errata workaround (e1000_lv_jumbo_workaround_ich8lan) was changed to fix a problem with iAMT connections dropping on interface down with jumbo frames set. Part of this change was to move the function call disabling the workaround to e1000e_down() from the e1000_setup_rctl() function. The mechanic for disabling of this workaround involves writing several MAC and PHY registers back to hardware defaults. After this commit, when the driver is loaded with the cable out, the PHY registers are not programmed with the correct default values. This causes the device to be capable of transmitting packets, but is unable to recieve them until this workaround is called. The flow of e1000e's open code relies upon calling the above workaround to expicitly program these registers either with jumbo frame appropriate settings or h/w defaults on 82579 and newer hardware. Fix this issue by adding logic to e1000_setup_rctl() that not only calls e1000_lv_jumbo_workaround_ich8lan() when jumbo frames are set, to enable the workaround, but also calls this function to explicitly disable the workaround in the case that jumbo frames are not set. Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* igb: fix race conditions on queuing skb for HW time stampJakub Kicinski2014-03-283-2/+7
| | | | | | | | | | igb has a single set of TX time stamping resources per NIC. Use a simple bit lock to avoid race conditions and leaking skbs when multiple TX rings try to claim time stamping. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* igb: never generate both software and hardware timestampsJakub Kicinski2014-03-281-2/+2
| | | | | | | | | | | | | | skb_tx_timestamp() does not report software time stamp if SKBTX_IN_PROGRESS is set. According to timestamping.txt software time stamps are a fallback and should not be generated if hardware time stamp is provided. Move call to skb_tx_timestamp() after setting SKBTX_IN_PROGRESS. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* e1000e: remove redundant if clause from PTP workJakub Kicinski2014-03-281-3/+0
| | | | | | | | | | tx_hwtstamp_skb is always set before work is scheduled, work is cancelled before tx_hwtstamp_skb is set to NULL. PTP work cannot ever see tx_hwtstamp_skb set to NULL. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* e1000e: add timeout for TX HW time stamping workJakub Kicinski2014-03-283-0/+10
| | | | | | | | | | | | | | Hardware may fail to report time stamp e.g.: - when hardware time stamping is not enabled - when time stamp is requested shortly after ifup Timeout time stamp reading work to prevent it from scheduling itself indefinitely. Report timeout events via system log and device stats. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: Use DEBUG_FD message level for an FD messageAnjali Singhai Jain2014-03-281-2/+3
| | | | | | | | | | We don't need to print this info unless at FD message level. Change-ID: I329efdd8e754a0ea0669ec04d12e03db02e6b76e Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e/i40evf: Add an FD message levelAnjali Singhai Jain2014-03-282-0/+2
| | | | | | | | | | | | To use for Flow Director specific messages. Change-ID: I69e39a410aa2661f8fd1ed6af0126fa4c335cb77 Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Acked-by: Shannon Nelson <shannon.nelson@intel.com> Acked-by: Kevin Scott <kevin.c.scott@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: check for netdev before debugfs useShannon Nelson2014-03-281-13/+22
| | | | | | | | | | | Make sure the VSI has a netdev before trying to use it in the debugfs netdev_ops commands. Change-ID: I2d744fc0c32b3226534ce2cde171d9675c5440a6 Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40evf: remove double space after returnJesse Brandeburg2014-03-281-1/+1
| | | | | | | | | | | | There were two spaces between return and the value, we only need one. Change-ID: Iaa42c33f50d8d149cdf1a4c9c1902295bfd991c4 Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Acked-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Kevin Scott <kevin.c.scott@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: Add functionality for FD SB to drop packetsAnjali Singhai Jain2014-03-281-1/+6
| | | | | | | | | | With this change we can drop a flow if we wanted to. Change-ID: I222b1ae960e61a31965bafe3159a95099e70c7d2 Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: Cleanup in FDIR SB ethtool codeAnjali Singhai Jain2014-03-281-19/+13
| | | | | | | | | | | Function add_del_fdir was used and implemented only for add. So change the name and drop a parameter. Change-ID: Icf2c6c3bbd4fd00cf8d9613a3f6d8c08e0f8e288 Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: eeprom integrity check on load and emprShannon Nelson2014-03-282-6/+45
| | | | | | | | | | | | | | The driver needs to verify the eeprom checksum and firmware crc status bits, and shutdown the driver if they fail. This code stops the processing of traffic, but doesn't kill the PF netdev so that the NVMUpdate process should still have a chance at fixing the image. The eeprom is checked on driver load and after an EMP reset, the latter of which should be generated after an NVMUpdate. Change-ID: I34deef21d2e16bf5a43c603cf8af27e6a29dc9d2 Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: Make the alloc and free queue vector calls orthogonalGreg Rose2014-03-281-6/+6
| | | | | | | | | | | | | | | It's annoying to search for a matching alloc and free set of function calls when they don't use the same framework for the name of the functions. Fix that up in the case of alloc and free of vsi queue vectors. i40e_vsi_free_q* i40e_vsi_alloc_q* Change-ID: I510eb863a0fbe405312bebea55c2846c76285e6d Signed-off-by: Greg Rose <gregory.v.rose@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40evf: fix oops in watchdog handlerMitch Williams2014-03-282-3/+8
| | | | | | | | | | | | | | The Tx watchdog handler runs in interrupt context, so it would cause an oops when sending an admin queue message to request a reset, because the admin queue functions use spinlocks. Instead, set a flag and let the reset task handle sending the request. Change-ID: I65879470b72963d9c308edfb8f45ac4fbba2c14f Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Sibai Li <sibai.li@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* i40e: Delete ATR filter on RSTAnjali Singhai Jain2014-03-281-3/+6
| | | | | | | | | | We currently delete ATR filter on FIN alone, delete on RST as well. Change-ID: Ie7cae5d1046b9d1d4a0d6ef5bdbf41224c3dade6 Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-nextDavid S. Miller2014-03-2416-102/+321
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates This series contains updates to igb, ixgbe, ixgbevf, i40e and i40evf. Anjali provides a i40e/i40evf patch to add Energy Efficient Ethernet Low Power Idle stats and a fix for i40e to change the string "Side Band" to "Sideband" for consistency. Mitch provides 2 patches for i40evf to fix if the driver encounters an error while communicating with the PF driver, do not shut down the admin queue unconditionally. Add an error message when the admin queue message never completes and fix formatting on another message that was unnecessarily wrapped. Mark provides a ixgbe patch and five ixgbevf patches. Fix a possible infinite recursion when an adapter is removed and registers all read as all one's in ixgbe_clear_vmdq_generic() and ixgbe_clear_rar_generic(). Converts macros to static inline functions to align kernel coding standard and prepare for adding Live Error Recovery (LER) to ixgbevf. Change the ethtool register test to use the normal register accessor functions and eliminate macors used for calling register test functions to make error exits more clear. Checks all register reads for adapter removal by checking the status register after any register read that returns all F's since the status register will never return 0xFFFFFFFF unless the adapter is removed. Jacob implements SIOCGHWTSTAMP ioctl for igb which enables user processes to read the current hardware stamp config settings non-destructively. Todd adds the initial register read and write for surprise removal (LER) for igb. Christian Engelmayer fixes an igb memory leak in the igb_get_module_eeprom() error handling path. Ken Ichikawa provides a fix for igb, specifically for 82575 hardware to specify -1 to the phc_index for ethtool's get_ts_info, otherwise a wrong value will be set to the phc_index. Christopher Paasch fixes a null pointer dereference in igb and makes sure to unset the HAS_MSIX flag when the driver falls back to MSI only. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-onlyChristoph Paasch2014-03-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to cd14ef54d25 (igb: Change to use statically allocated array for MSIx entries), having msix_entries different from NULL was an indicator that MSIX is enabled. In igb_set_interrupt_capabiliy we may fall back to MSI-only. Prior to the above patch msix_entries was set to NULL by igb_reset_interrupt_capability. However, now we are checking the flag for IGB_FLAG_HAS_MSIX and so the stack gets completly confused: [ 42.659791] ------------[ cut here ]------------ [ 42.715032] WARNING: CPU: 7 PID: 0 at net/sched/sch_generic.c:264 dev_watchdog+0x15c/0x1fb() [ 42.848263] NETDEV WATCHDOG: eth0 (igb): transmit queue 0 timed out [ 42.923253] Modules linked in: [ 42.959875] CPU: 7 PID: 0 Comm: swapper/7 Not tainted 3.14.0-rc2-mptcp #437 [ 43.043184] Hardware name: HP ProLiant DL165 G7, BIOS O37 01/26/2011 [ 43.119215] 0000000000000108 ffff88023fdc3da8 ffffffff81487847 0000000000000108 [ 43.208165] ffff88023fdc3df8 ffff88023fdc3de8 ffffffff81034e7d ffff88023fdc3dd8 [ 43.297120] ffffffff813fff10 ffff880236018000 ffff880236b178c0 0000000000000008 [ 43.386071] Call Trace: [ 43.415303] <IRQ> [<ffffffff81487847>] dump_stack+0x49/0x62 [ 43.484174] [<ffffffff81034e7d>] warn_slowpath_common+0x77/0x91 [ 43.556049] [<ffffffff813fff10>] ? dev_watchdog+0x15c/0x1fb [ 43.623759] [<ffffffff81034f2b>] warn_slowpath_fmt+0x41/0x43 [ 43.692511] [<ffffffff813fff10>] dev_watchdog+0x15c/0x1fb [ 43.758141] [<ffffffff813ffdb4>] ? __netdev_watchdog_up+0x64/0x64 [ 43.832091] [<ffffffff8103cd04>] call_timer_fn+0x17/0x6f [ 43.896682] [<ffffffff8103cebe>] run_timer_softirq+0x162/0x1a2 [ 43.967511] [<ffffffff81038520>] __do_softirq+0xcd/0x1cc [ 44.032104] [<ffffffff81038689>] irq_exit+0x3a/0x48 [ 44.091492] [<ffffffff81026d43>] smp_apic_timer_interrupt+0x43/0x50 [ 44.167525] [<ffffffff8148c24a>] apic_timer_interrupt+0x6a/0x70 [ 44.239392] <EOI> [<ffffffff8100992c>] ? default_idle+0x6/0x8 [ 44.310343] [<ffffffff81009b31>] arch_cpu_idle+0x13/0x18 [ 44.374934] [<ffffffff81066126>] cpu_startup_entry+0xa7/0x101 [ 44.444724] [<ffffffff81025660>] start_secondary+0x1b2/0x1b7 [ 44.513472] ---[ end trace a5a075fd4e7f854f ]--- [ 44.568753] igb 0000:04:00.0 eth0: Reset adapter [ 46.206945] random: nonblocking pool is initialized [ 46.465670] irq 44: nobody cared (try booting with the "irqpoll" option) [ 46.545862] CPU: 7 PID: 0 Comm: swapper/7 Tainted: G W 3.14.0-rc2-mptcp #437 [ 46.640610] Hardware name: HP ProLiant DL165 G7, BIOS O37 01/26/2011 [ 46.716641] ffff8802363f8c84 ffff88023fdc3e38 ffffffff81487847 00000000a03cdb6d [ 46.805598] ffff8802363f8c00 ffff88023fdc3e68 ffffffff81068489 0000007f81825400 [ 46.894539] ffff8802363f8c00 0000000000000000 0000000000000000 ffff88023fdc3ea8 [ 46.983484] Call Trace: [ 47.012714] <IRQ> [<ffffffff81487847>] dump_stack+0x49/0x62 [ 47.081585] [<ffffffff81068489>] __report_bad_irq+0x35/0xc1 [ 47.149295] [<ffffffff81068683>] note_interrupt+0x16e/0x1ea [ 47.217006] [<ffffffff8106679e>] handle_irq_event_percpu+0x116/0x12e [ 47.294075] [<ffffffff810667e9>] handle_irq_event+0x33/0x4f [ 47.361787] [<ffffffff81068c95>] handle_fasteoi_irq+0x83/0xd1 [ 47.431577] [<ffffffff81003d5b>] handle_irq+0x1f/0x28 [ 47.493047] [<ffffffff81003567>] do_IRQ+0x4e/0xd4 [ 47.550358] [<ffffffff8148b06a>] common_interrupt+0x6a/0x6a [ 47.618066] <EOI> [<ffffffff8100992c>] ? default_idle+0x6/0x8 [ 47.689016] [<ffffffff81009b31>] arch_cpu_idle+0x13/0x18 [ 47.753605] [<ffffffff81066126>] cpu_startup_entry+0xa7/0x101 [ 47.823397] [<ffffffff81025660>] start_secondary+0x1b2/0x1b7 [ 47.892146] handlers: [ 47.919301] [<ffffffff812fbd7d>] igb_intr So, this patch unsets the flag to indicate that we are not using MSIX. This patch does exactly this: Unsetting the flag when falling back to MSI. Fixes: cd14ef54d25b (igb: Change to use statically allocated array for MSIx entries) Cc: Carolyn Wyborny <carolyn.wyborny@intel.com> Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * igb: Fix Null-pointer dereference in igb_reset_q_vectorChristoph Paasch2014-03-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When igb_set_interrupt_capability() calls igb_reset_interrupt_capability() (e.g., because CONFIG_PCI_MSI is unset), num_q_vectors has been set but no vector has yet been allocated. igb_reset_interrupt_capability() will then call igb_reset_q_vector, which assumes that the vector is allocated. As this is not the case, we are accessing a NULL-pointer. This patch fixes it by checking that q_vector is indeed different from NULL. Fixes: 02ef6e1d0b0023 (igb: Fix queue allocation method to accommodate changing during runtime) Cc: Carolyn Wyborny <carolyn.wyborny@intel.com> Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * igb: specify phc_index of 82575 for get_ts_infoKen ICHIKAWA2014-03-211-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 82575 has only software timestamping capability and it has no PTP Hardware Clocks. Therefore, -1 has to be specified to the phc_index for ethtool's get_ts_info, otherwise a wrong value will be set to the phc_index. v2: move the if (adapter->ptp_clock) section specifying phc_index to above the switch statement as suggested by Matthew Vick. adapter->ptpclock will always be NULL for 82575. Signed-off-by: Ken ICHIKAWA <ichikawa.ken@jp.fujitsu.com> Acked-by: Matthew Vick <matthew.vick@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * igb: Fix memory leak in igb_get_module_eeprom()Christian Engelmayer2014-03-211-1/+3
| | | | | | | | | | | | | | | | | | Fix a memory leak in the igb_get_module_eeprom() error handling path. Detected by Coverity: CID 1016508. Signed-off-by: Christian Engelmayer <cengelma@gmx.at> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * igb: add register rd/wr for surprise removalFujinaka, Todd2014-03-212-3/+40
| | | | | | | | | | | | | | | | Add initial register rd/wr for surprise removal (LER). Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * igb: implement SIOCGHWTSTAMP ioctlJacob Keller2014-03-213-17/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the SIOCGHWTSTAMP ioctl which enables user processes to read the current hwtstamp_config settings non-destructively. Previously a process had to be privileged and could only set values, it couldn't return what is currently set without possibly overwriting the value. This patch adds support for this new operation into igb by keeping a shadow copy of the config in the adapter structure, which is returned upon request. Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Acked-by: Matthew Vick <matthew.vick@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbevf: Additional adapter removal checksMark Rustad2014-03-212-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | Additional checks are needed for a detected removal not to cause problems. Some involve simply avoiding a lot of stuff that can't do anything good, and also cases where the phony return value can cause problems. In addition, down the adapter when the removal is sensed. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbevf: Check for adapter removal on register writesMark Rustad2014-03-211-1/+5
| | | | | | | | | | | | | | | | | | Prevent writes to an adapter that has been detected as removed by a previous failing read. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbevf: Check register reads for adapter removalMark Rustad2014-03-213-8/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | Check all register reads for adapter removal by checking the status register after any register read that returns 0xFFFFFFFF. Since the status register will never return 0xFFFFFFFF unless the adapter is removed, such a value from a status register read confirms the removal. Since this patch adds so much to ixgbe_read_reg, stop inlining it, to reduce driver bloat. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbevf: Make the ethtool register test use accessorsMark Rustad2014-03-211-52/+67
| | | | | | | | | | | | | | | | | | | | Make the ethtool register test use the normal register accessor functions. Also eliminate macros used for calling register test functions to make error exits clearer. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbevf: Use static inlines instead of macrosMark Rustad2014-03-214-14/+35
| | | | | | | | | | | | | | | | | | | | Kernel coding standard prefers static inline functions instead of macros, so use them for register accessors. This is to prepare for adding LER, Live Error Recovery, checks to those accessors. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbe: Break recursion in case of removalMark Rustad2014-03-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | When an adapter is removed and registers all read as all one's, an infinite recursion can happen between ixgbe_clear_vmdq_generic and ixgbe_clear_rar_generic. Adding a check for removal breaks this recursion. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * i40evf: clean up init error messagesMitch Williams2014-03-211-3/+4
| | | | | | | | | | | | | | | | | | | | | | Add an error message when the admin queue message never completes, and fix formatting on another one that was unnecessarily wrapped. Change-ID: I8b8a4eb7629d741f09357250144023cd4a72231f Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Sibai Li <sibai.li@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * i40evf: don't shut down admin queue on errorMitch Williams2014-03-211-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | If the driver encounters an error while communicating with the PF driver, don't just shut down the admin queue unconditionally. The PF may be delayed, and shutting down the admin queue causes it to fail completely. If this happens, the VF will never complete initialization. Change-ID: I6192e9d8caeefb738428c3597fa2f54fa400ce7f Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Sibai Li <sibai.li@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * i40e: Fix a message stringAnjali Singhai Jain2014-03-211-1/+1
| | | | | | | | | | | | | | | | | | | | Change string from "Side Band" to "Sideband" for consistency. Change-ID: I45f05466bb5c63b0f999d743312bcb61b5bd6518 Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * i40e/i40evf: Add EEE LPI statsAnjali Singhai Jain2014-03-214-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | Add 4 new stats to keep track of EEE LPI (Low Power Idle) state. Change-ID: Id6316619bb0559789770288b694a54d17f8fac5c Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com> Acked-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Kevin Scott <kevin.c.scott@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* | ptp: drivers: set the number of programmable pins.Richard Cochran2014-03-211-0/+1
|/ | | | | | | | | | | This patch updates the many PTP Hardware Clock drivers with the newly introduced field that advertises the number of programmable pins. Some of these devices do have programmable pins, but the implementation will have to wait for follow on patches. Signed-off-by: Richard Cochran <richardcochran@gmail.com> Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ixgbe: enable tx queues after link upEmil Tantilov2014-03-201-15/+17
| | | | | | | | | | | | | This patch moves the call to enable Tx queues after the link is established. Previously there was a chance for aggressive start_ndo_xmit() callers to sneak packets between enabling the Tx queues and the link coming up. In addition it replaces netif_tx_start_all_queues() with netif_tx_wake_all_queues() to allow for flushing of the qdisc. CC: Arun Sharma <asharma@fb.com> Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* ixgbe: Stop cacheing if the MNG FW enabledDon Skidmore2014-03-206-13/+5
| | | | | | | | | | | We use to cache whether the MNG FW was enabled, how since this isn't static we really need to verify with each check. This patch makes that change. CC: Arun Sharma <asharma@fb.com> 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>
* ixgbe: clean up ixgbe_atr_compute_perfect_hash_82599Jacob Keller2014-03-201-37/+9
| | | | | | | | | | Rather than assign several parameters in a row, we should use a for loop, which reduces code size. CC: Arun Sharma <asharma@fb.com> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* ixgbe: use ixgbe_read_pci_cfg_wordJacob Keller2014-03-201-8/+3
| | | | | | | | | | | | | | | This patch replaces some direct uses of pci_read_config_word with the protected ixgbe_read_pci_cfg_word function, which checks for whether the adapter is removed when LER is enabled. We shouldn't use the pci_read_config_word calls directly because of these checks. This patch also cleans up an unnecessary save of a pointer to the mac object, as our standard style is to just use the hw pointer. CC: Arun Sharma <asharma@fb.com> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
* ixgbe: remove unused media typeJacob Keller2014-03-204-81/+0
| | | | | | | | | | | | | This patch reverts the addition of the fiber_fixed type, which ended up never being used. We don't have plans to support this type going forward, and there is no reason to keep an unused type around polluting the code. Reverts: 4e8e1bca6e2 ("ixgbe: add new media type") CC: Arun Sharma <asharma@fb.com> Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
OpenPOWER on IntegriCloud