summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* amd-xgbe: Fix sparse endian warningsLendacky, Thomas2014-11-121-4/+4
| | | | | | | | | Change the types of the descriptor entries in the xgbe_ring_desc struct from u32 to __le32 to fix endian warnings issued by sparse. Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: pxa168_eth: move SET_NETDEV_DEV a bit earlierJisheng Zhang2014-11-121-1/+1
| | | | | | | | | This is to ensure the net_device's dev.parent is set before we used it in dma_zalloc_coherent() from init_hash_table(). Signed-off-by: Jisheng Zhang <jszhang@marvell.com> Acked-by: Antoine Tenart <antoine.tenart@free-electrons.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* cxgb4: Fix static checker warningHariprasad Shenai2014-11-121-1/+0
| | | | | | | | | Fix static checker warning that got introduced in commit e2ac9628959cc152 ("cxgb4: Cleanup macros so they follow the same style and look consistent, part 2") due to accidental checkin of bogus line. Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ip_tunnel: Ops registration for secondary encap (fou, gue)Tom Herbert2014-11-124-47/+157
| | | | | | | | | | | | | | | | Instead of calling fou and gue functions directly from ip_tunnel use ops for these that were previously registered. This patch adds the logic to add and remove encapsulation operations for ip_tunnel, and modified fou (and gue) to register with ip_tunnels. This patch also addresses a circular dependency between ip_tunnel and fou that was causing link errors when CONFIG_NET_IP_TUNNEL=y and CONFIG_NET_FOU=m. References to fou an gue have been removed from ip_tunnel.c Reported-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* udp: Neaten function pointer calls and add bracesJoe Perches2014-11-121-17/+17
| | | | | | | | | | | | | | | | | | Standardize function pointer uses. Convert calling style from: (*foo)(args...); to: foo(args...); Other miscellanea: o Add braces around loops with single ifs on multiple lines o Realign arguments around these functions o Invert logic in if to return immediately. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'r8152-next'David S. Miller2014-11-121-4/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hayes Wang says: ==================== Code adjustment v3: Remove the test_bit for patch #2. v2: Correct the spelling error for the comment of patch #3. v1: Adjust some codes to make them more reasonable. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * r8152: check RTL8152_UNPLUG and netif_running before autoresumehayeswang2014-11-121-3/+6
| | | | | | | | | | | | | | | | If the device is unplugged or !netif_running(), the workqueue doesn't need to wake the device, and could return directly. Signed-off-by: Hayes Wang <hayeswang@realtek.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * r8152: clear the flag of SCHEDULE_TASKLET in tasklethayeswang2014-11-121-0/+2
| | | | | | | | | | | | | | | | Clear the flag of SCHEDULE_TASKLET in bottom_half() to avoid re-schedule the tasklet again by workqueue. Signed-off-by: Hayes Wang <hayeswang@realtek.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * r8152: remove the duplicate init for the list of rx_donehayeswang2014-11-121-1/+0
|/ | | | | | | | The INIT_LIST_HEAD(&tp->rx_done) would be done in rtl_start_rx(), so remove the unnecessary one in alloc_all_mem(). Signed-off-by: Hayes Wang <hayeswang@realtek.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'bcm7xxx-next'David S. Miller2014-11-121-44/+90
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Florian Fainelli says: ==================== net: phy: bcm7xxx: workaround updates This patch series contains some updates to the Broadcom BCM7xxx internal PHY driver, including: - removing an annonying print that would appear during interface up/down and suspend/resume cycles - drop a workaround sequence for a non-production PHY revision - add new workarounds for the latest and greatest PHY devices found out there ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: bcm7xxx: add workaround for PHY revision E0 and F0Florian Fainelli2014-11-121-0/+29
| | | | | | | | | | | | | | | | | | PHY revisions E0 and F0 share the same shorter workaround initialization sequence. Dedicate a special function for these two PHY revisions to perform the needed workaround sequence. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: bcm7xxx: add PHY revision D0 workaround sequenceFlorian Fainelli2014-11-121-0/+46
| | | | | | | | | | | | | | | | | | | | PHY revision D0 requires a specific workaround sequence which needs to be applied to get the HW to behave properly in all corner cases conditions. Do this based on the revision we just read out of the HW using a specific function. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: bcm7xxx: introduce r_rc_cal_reset helperFlorian Fainelli2014-11-121-5/+10
| | | | | | | | | | | | | | | | | | This function performs a R/RC calibration reset and will start being used by more than one function in the next patches, create a helper function to factor code. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: bcm7xxx: drop A0 revision workaround and fix B0 workaroundFlorian Fainelli2014-11-121-38/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | bcm7445_config_init() was working around non-production version of the PHY HW block, so just remove it entirely. bcm7xxx_28nm_afe_config_init() was running for all PHY revisions greater than B0, but this workaround sequence is really specific to the B0 PHY revision, so rename the function accordingly and update the GPHY macro to use the generic config_init callback. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: bcm7xxx: only show PHY revision onceFlorian Fainelli2014-11-121-1/+2
|/ | | | | | | | | | | bcm7xxx_28nm_config_init() can be called as frequently as needed by the PHY library upon suspend/resume cycles and interface bring up/down, just print the PHY revision once and for all in order not to spam kernel logs. Fixes: d8ebfed3f11b ("net: phy: bcm7xxx: utilize PHY revision in config_init") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* irda: Convert IRDA_DEBUG to pr_debugJoe Perches2014-11-1259-1930/+1244
| | | | | | | | | | | | | | | | Use the normal kernel debugging mechanism which also enables dynamic_debug at the same time. Other miscellanea: o Remove sysctl for irda_debug o Remove function tracing like uses (use ftrace instead) o Coalesce formats o Realign arguments o Remove unnecessary OOM messages Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'micrel-next'David S. Miller2014-11-123-37/+93
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Johan Hovold says: ==================== net: phy: micrel: refactoring and KSZ8081/KSZ8091 features This series cleans up and refactors parts of the micrel PHY driver, and adds support for broadcast-address-disable and led-mode configuration for KSZ8081 and KSZ8091 PHYs. Specifically, this enables dual KSZ8081 setups (which are limited to using address 0 and 3). A follow up series will add device-type abstraction which will allow for further refactoring and shared initialisation code. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: micrel: enable led-mode for KSZ8081/KSZ8091Johan Hovold2014-11-122-0/+3
| | | | | | | | | | | | | | Enable led-mode configuration for KSZ8081 and KSZ8091. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: micrel: clean up led-mode setupJohan Hovold2014-11-121-9/+22
| | | | | | | | | | | | | | | | Clean up led-mode setup by introducing proper defines for PHY Control registers 1 and 2 and only passing the register to the setup function. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: micrel: refactor led-mode error handlingJohan Hovold2014-11-121-9/+10
| | | | | | | | | | | | | | Refactor led-mode error handling. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: micrel: add led-mode sanity checkJohan Hovold2014-11-121-0/+5
| | | | | | | | | | | | | | | | Make sure never to update more than two bits when setting the led mode, something which could for example change the reference-clock setting. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: micrel: disable broadcast for KSZ8081/KSZ8091Johan Hovold2014-11-121-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable PHY address 0 as the broadcast address, so that it can be used as a unique (non-broadcast) address on a shared bus. Note that this can also be configured using the B-CAST_OFF pin on KSZ9091, but that KSZ8081 lacks this pin and is also limited to addresses 0 and 3. Specifically, this allows for dual KSZ8081 setups. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: micrel: refactor broadcast disableJohan Hovold2014-11-121-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor and clean up broadcast disable. Some Micrel PHYs have a broadcast-off bit in the Operation Mode Strap Override register which can be used to disable PHY address 0 as the broadcast address, so that it can be used as a unique (non-broadcast) address on a shared bus. Note that the KSZPHY_OMSO_RMII_OVERRIDE bit is set by default on KSZ8021/8031. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: micrel: use BIT macroJohan Hovold2014-11-121-17/+17
| | | | | | | | | | | | | | Use BIT macro for bitmask definitions. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: micrel: fix config_intr error handlingJohan Hovold2014-11-121-0/+6
| | | | | | | | | | | | | | | | Make sure never to update the control register with random data (an error code) by checking the return value after reading it. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * dt/bindings: fix documentation of ethernet-phy compatible propertyJohan Hovold2014-11-121-1/+2
|/ | | | | | | | | | | | A recent commit extended the documentation of the ethernet-phy compatible property, but placed the new paragraph under the max-speed property. Fixes: f00e756ed12d ("dt: Document a compatible entry for MDIO ethernet Phys") Cc: devicetree@vger.kernel.org Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'module_phy_driver'David S. Miller2014-11-1221-274/+52
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Johan Hovold says: ==================== net: phy: add module_phy_driver macro Add module_phy_driver macro that can be used by PHY drivers that only calls phy_driver_register or phy_drivers_register (and the corresponding unregister functions) in their module init (and exit). This allows us to eliminate a lot of boilerplate code. Split in three patches (actual macro and two driver change classes) in order to facilitate review. ==================== Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: replace phy_drivers_register callsJohan Hovold2014-11-1216-218/+16
| | | | | | | | | | | | | | | | | | | | Replace module init/exit which only calls phy_drivers_register with module_phy_driver macro. Tested using Micrel driver, and otherwise compile-tested only. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: replace phy_driver_register callsJohan Hovold2014-11-124-56/+12
| | | | | | | | | | | | | | | | | | | | Replace module init/exit which only calls phy_driver_register with module_phy_driver macro. Compile tested only. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: phy: add module_phy_driver macroJohan Hovold2014-11-121-0/+24
|/ | | | | | | | | Add helper macro for PHY drivers which do not do anything special in module init/exit. This will allow us to eliminate a lot of boilerplate code. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* sunvnet: fix NULL pointer dereferenceDavid L Stevens2014-11-121-0/+2
| | | | | | | | | This patch fixes a NULL pointer dereference when __tx_port_find() doesn't find a matching port. Signed-off-by: David L Stevens <david.stevens@oracle.com> Acked-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'skb_alloc_pages'David S. Miller2014-11-128-44/+49
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Alexander Duyck says: ==================== Replace __skb_alloc_pages with simpler function This patch series replaces __skb_alloc_pages with a much simpler function, __dev_alloc_pages. The main difference between the two is that __skb_alloc_pages had an sk_buff pointer that was being passed as NULL in call places where it was called. In a couple of cases the NULL was passed by variable and this led to unnecessary code being run. As such in order to simplify things the __dev_alloc_pages call only takes a mask and the page order being requested. In addition it takes advantage of several behaviors already built into the page allocator so that it can just set GFP flags unconditionally. v2: Renamed functions to dev_alloc_page(s) instead of netdev_alloc_page(s) Removed __GFP_COLD flag from usb code as it was redundant v3: Update patch descriptions and subjects to match changes in v2 ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: Remove __skb_alloc_page and __skb_alloc_pagesAlexander Duyck2014-11-121-43/+0
| | | | | | | | | | | | | | Remove the two functions which are now dead code. Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * fm10k/igb/ixgbe: Replace __skb_alloc_page with dev_alloc_pageAlexander Duyck2014-11-123-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | The Intel drivers were pretty much just using the plain vanilla GFP flags in their calls to __skb_alloc_page so this change makes it so that they use dev_alloc_page which just uses GFP_ATOMIC for the gfp_flags value. Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Cc: Matthew Vick <matthew.vick@intel.com> Cc: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * phonet: Replace calls to __skb_alloc_page with __dev_alloc_pageAlexander Duyck2014-11-122-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the calls to __skb_alloc_page that are passed NULL with calls to __dev_alloc_page. In addition remove __GFP_COLD flag from allocations as we only want it for the Rx buffer which is taken care of by __dev_alloc_skb, not for any secondary allocations such as the queue element transmit descriptors. Cc: Oliver Neukum <oliver@neukum.org> Cc: Felipe Balbi <balbi@ti.com> Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * cxgb4/cxgb4vf: Replace __skb_alloc_page with __dev_alloc_pageAlexander Duyck2014-11-122-6/+7
| | | | | | | | | | | | | | | | | | | | | | Drop the bloated use of __skb_alloc_page and replace it with __dev_alloc_page. In addition update the one other spot that is allocating a page so that it allocates with the correct flags. Cc: Hariprasad S <hariprasad@chelsio.com> Cc: Casey Leedom <leedom@chelsio.com> Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * net: Add device Rx page allocation functionAlexander Duyck2014-11-121-0/+48
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements __dev_alloc_pages and __dev_alloc_page. These are meant to replace the __skb_alloc_pages and __skb_alloc_page functions. The reason for doing this is that it occurred to me that __skb_alloc_page is supposed to be passed an sk_buff pointer, but it is NULL in all cases where it is used. Worse is that in the case of ixgbe it is passed NULL via the sk_buff pointer in the rx_buffer info structure which means the compiler is not correctly stripping it out. The naming for these functions is based on dev_alloc_skb and __dev_alloc_skb. There was originally a netdev_alloc_page, however that was passed a net_device pointer and this function is not so I thought it best to follow that naming scheme since that is the same difference between dev_alloc_skb and netdev_alloc_skb. In the case of anything greater than order 0 it is assumed that we want a compound page so __GFP_COMP is set for all allocations as we expect a compound page when assigning a page frag. The other change in this patch is to exploit the behaviors of the page allocator in how it handles flags. So for example we can always set __GFP_COMP and __GFP_MEMALLOC since they are ignored if they are not applicable or are overridden by another flag. Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* irda: Remove IRDA_<TYPE> logging macrosJoe Perches2014-11-1142-479/+486
| | | | | | | | | | | | | | | And use the more common mechanisms directly. Other miscellanea: o Coalesce formats o Add missing newlines o Realign arguments o Remove unnecessary OOM message logging as there's a generic stack dump already on OOM. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: kill netif_copy_real_num_queues()WANG Cong2014-11-111-17/+0
| | | | | | | | | | | | vlan was the only user of netif_copy_real_num_queues(), but it no longer calls it after commit 4af429d29b341bb1735f04c2fb960178 ("vlan: lockless transmit path"). So we can just remove it. Cc: Eric Dumazet <eric.dumazet@gmail.com> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2014-11-1123-209/+441
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2014-11-11 This series contains updates to i40e, i40evf and ixgbe. Kamil updated the i40e and i40evf driver to poll the firmware slower since we were polling faster than the firmware could respond. Shannon updates i40e to add a check to keep the service_task from running the periodic tasks more than once per second, while still allowing quick action to service the events. Jesse cleans up the throttle rate code by fixing the minimum interrupt throttle rate and removing some unused defines. Mitch makes the early init admin queue message receive code more robust by handling messages in a loop and ignoring those that we are not interested in. This also gets rid of some scary log messages that really do not indicate a problem. Don provides several ixgbe patches, first fixes an issue with x540 completion timeout where on topologies including few levels of PCIe switching for x540 can run into an unexpected completion error. Cleans up the functionality in ixgbe_ndo_set_vf_vlan() in preparation for future work. Adds support for x550 MAC's to the driver. v2: - Remove code comment in patch 01 of the series, based on feedback from David Liaght - Updated the "goto" to "break" statements in patch 06 of the series, based on feedback from Sergei Shtylyov - Initialized the variable err due to the possibility of use before being assigned a value in patch 07 of the series - Added patch "ixgbe: add helper function for setting RSS key in preparation of X550" since it is needed for the addition of X550 MAC support ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
| * ixgbe: add helper function for setting RSS key in preparation of X550Don Skidmore2014-11-111-12/+20
| | | | | | | | | | | | | | | | | | Split off the setting of the RSS key into its own function. This will help when we add support for X550 which can have different RSS keys per pool. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbe: Add new support for X550 MAC'sDon Skidmore2014-11-1110-64/+223
| | | | | | | | | | | | | | | | | | This patch will add in the new MAC defines and fit it into the switch cases throughout the driver. New functionality and enablement support will be added in following patches. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbe: cleanup move setting PFQDE.HIDE_VLAN to support function.Don Skidmore2014-11-111-9/+22
| | | | | | | | | | | | | | | | | | Move setting of drop enable to support function. This not only makes the code more readable but is also prep for following patches that add additional MAC support. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbe: cleanup ixgbe_ndo_set_vf_vlanDon Skidmore2014-11-111-33/+61
| | | | | | | | | | | | | | | | Clean up functionality in ixgbe_ndo_set_vf_vlan that will simplify later patches. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * ixgbe: fix X540 Completion timeoutDon Skidmore2014-11-111-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | On topologies including few levels of PCIe switching X540 can run into an unexpected completion error. We get around this by waiting after enabling loopback a sufficient amount of time until Tx Data Fetch is sent. We then poll the pending transaction bit to ensure we received the completion. Only then do we go on to clear the buffers. Signed-of-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>
| * i40evf: don't use more queues than CPUsMitch Williams2014-11-114-32/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | It's kind of silly to configure and attempt to use a bunch of queue pairs when you're running on a single (virtual) CPU. Instead of unconditionally configuring all of the queues that the PF gives us, clamp the number of queue pairs to the number of CPUs. Change-ID: I321714c9e15072ee76de8f95ab9a81f86ed347d1 Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Patrick Lu <patrick.lu@intel.com> Tested-by: Jim Young <jamesx.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * i40evf: make early init processing more robustMitch Williams2014-11-111-28/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In early init, if we get an unexpected message from the PF (such as link status), we just kick an error back to the init task, causing it to restart its state machine and delaying initialization. Make the early init AQ message receive code more robust by handling messages in a loop, and ignoring those that we aren't interested in. This also gets rid of some scary log messages that really didn't indicate a problem. Change-ID: I620e8c72e49c49c665ef33eeab2425dd10e721cf Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Patrick Lu <patrick.lu@intel.com> Tested-by: Jim Young <jamesx.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * i40e: clean up throttle rate codeJesse Brandeburg2014-11-113-15/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The interrupt throttle rate minimum is actually 2us, so fix that define and while we are there, remove some unused defines. Change some strings in the function to be a bit less wrappy, and express the correct limits. Change-ID: I96829bbc77935e0b57c6f0fc1439fb4152b2960a Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Patrick Lu <patrick.lu@intel.com> Tested-by: Jim Young <jamesx.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * i40e: don't do link_status or stats collection on every ARQShannon Nelson2014-11-112-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ARQ events cause a service_task execution, and we do a link_status check and full stats gathering for each service_task. However, when there are a lot of ARQ events, such as when doing an NVM update, we end up doing 10's if not 100's of these per second, thereby heavily abusing the PCI bus and especially the Firmware. This patch adds a check to keep the service_task from running these periodic tasks more than once per second, while still allowing quick action to service the events. Change-ID: Iec7670c37bfae9791c43fec26df48aea7f70b33e Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Patrick Lu <patrick.lu@intel.com> Tested-by: Jim Young <jamesx.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
| * i40e: poll firmware slowerKamil Krawczyk2014-11-114-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code was polling the firmware tail register for completion every 10 microseconds, which is way faster than the firmware can respond. This changes the poll interval to 1ms, which reduces polling CPU utilization, and the number of times we loop. The maximum delay is still 100ms. Change-ID: I4bbfa6b66d802890baf8b4154061e55942b90958 Signed-off-by: Kamil Krawczyk <kamil.krawczyk@intel.com> Acked-by: Shannon Nelson <shannon.nelson@intel.com> Tested-by: Jim Young <jamesx.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
OpenPOWER on IntegriCloud