1. 28 Oct, 2014 11 commits
  2. 27 Oct, 2014 21 commits
  3. 25 Oct, 2014 4 commits
    • David S. Miller's avatar
      Merge branch 'sunvnet-napi' · 9286ae01
      David S. Miller authored
      Sowmini Varadhan says:
      
      ====================
      sunvnet: NAPIfy sunvnet
      
      This patchset converts the sunvnet driver to use the NAPI framework.
      Changes since v4 to Patch1:
        vnet_event accumulates LDC_EVENT_* bits into rx_event.
        vnet_event_napi() unrolls send_events() logic to process all rx_event bits.
      Changes since v5:
        Patch 1: use net_device.h definition for NAPI_POLL_WEIGHT.
        Drop sparclinux changes (patch3) per David Miller feedback
      
      Patch 1 in the series addresses the packet-receive path- all
      the vnet_event() processing is moved into NAPI context.
      This patch is dependant on the sparc-next commit:
        "sparc64: Add vio_set_intr() to enable/disable Rx interrupts"
        (sparc commit id ca605b7d)
      
      Patch 2 uses RCU to fix race conditions between vnet_port_remove and
      paths that access/modify port-related state, such as vnet_start_xmit.
      
      Patch 3 leverages from the NAPIfied Rx path,
      dropping superfluous usage of the irqsave/irqrestores on the vio.lock
      where possible.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9286ae01
    • Sowmini Varadhan's avatar
      sunvnet: Remove irqsave/irqrestore on vio.lock · 13b13dd9
      Sowmini Varadhan authored
      After the  NAPIfication of sunvnet, we no longer need to
      synchronize by doing irqsave/restore on vio.lock in the
      I/O fastpath.
      
      NAPI ->poll() is non-reentrant, so all RX processing occurs
      strictly in a serialized environment. TX reclaim is done in NAPI
      context, so the netif_tx_lock can be used to serialize
      critical sections between Tx and Rx paths.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      13b13dd9
    • Sowmini Varadhan's avatar
      sunvnet: Use RCU to synchronize port usage with vnet_port_remove() · 2a968dd8
      Sowmini Varadhan authored
      A vnet_port_remove could be triggered as a result of an ldm-unbind
      operation by the peer, module unload, or other changes to the
      inter-vnet-link configuration.  When this is concurrent with
      vnet_start_xmit(), there are several race sequences possible,
      such as
      
      thread 1                                    thread 2
      vnet_start_xmit
      -> tx_port_find
         spin_lock_irqsave(&vp->lock..)
         ret = __tx_port_find(..)
         spin_lock_irqrestore(&vp->lock..)
                                                 vio_remove -> ..
                                                     ->vnet_port_remove
                                                 spin_lock_irqsave(&vp->lock..)
                                                 cleanup
                                                 spin_lock_irqrestore(&vp->lock..)
                                                 kfree(port)
      /* attempt to use ret will bomb */
      
      This patch adds RCU locking for port access so that vnet_port_remove
      will correctly clean up port-related state.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarDwight Engen <dwight.engen@oracle.com>
      Acked-by: default avatarBob Picco <bob.picco@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2a968dd8
    • Sowmini Varadhan's avatar
      sunvnet: NAPIfy sunvnet · 69088822
      Sowmini Varadhan authored
      Move Rx packet procssing to the NAPI poll callback.
      Disable VIO interrupt and unconditioanlly go into NAPI
      context from vnet_event.
      
      Note that we want to minimize the number of LDC
      STOP/START messages sent. Specifically, do not send a STOP
      message if vnet_walk_rx does not read all the available descriptors
      because of the NAPI budget limitation. Instead, note the end index
      as part of port state, and resume from this index when the
      next poll callback is triggered.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarRaghuram Kothakota <raghuram.kothakota@oracle.com>
      Acked-by: default avatarDwight Engen <dwight.engen@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      69088822
  4. 24 Oct, 2014 4 commits
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next · 132fb579
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      Intel Wired LAN Driver Updates 2014-10-23
      
      This series contains updates to i40e and i40evf.
      
      Jesse modifies the i40e driver to only notify the firmware on link up/down
      and qualified module events.  Also simplified the job of managing link
      state by using the admin queue receive event for link events as a signal
      to tell the driver to update link state.
      
      Jeff (me) cleans up the inconsistent use of tabs for indentation in the admin
      queue command header file.
      
      Neerav converts the use of udelay() to usleep_range().
      
      Anjali fixes a bug where receive would stop after some stress by adding
      a sleep and restart as well as moving the setting of flow control because
      it should be done at a PF level and not a VSI level.
      
      Mitch adds code to handle link events when updating the PF switch, which
      allows link information to be properly provided to VFS in all cases.
      
      Catherine adds driver support for 10GBaseT and bumps driver version.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      132fb579
    • Fabian Frederick's avatar
    • Fabian Frederick's avatar
      lapb: move EXPORT_SYMBOL after functions. · 75da1469
      Fabian Frederick authored
      See Documentation/CodingStyle Chapter 6
      Signed-off-by: default avatarFabian Frederick <fabf@skynet.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      75da1469
    • David S. Miller's avatar
      Merge branch 'berlin_ethernet' · 5f3619f2
      David S. Miller authored
      Sebastian Hesselbarth says:
      
      ====================
      Marvell PXA168 libphy handling and Berlin Ethernet
      
      This patch series deals with a removing a IP feature that can be found
      on all currently supported Marvell Ethernet IP (pxa168_eth, mv643xx_eth,
      mvneta). The MAC IP allows to automatically perform PHY auto-negotiation
      without software interaction.
      
      However, this feature (a) fundamentally clashes with the way libphy works
      and (b) is unable to deal with quirky PHYs that require special treatment.
      In this series, pxa168_eth driver is rewritten to completely disable that
      feature and properly deal with libphy provided PHYs.
      
      As usual, a branch on top of v3.18-rc1 can be found at
      
      git://git.infradead.org/users/hesselba/linux-berlin.git devel/bg2-bg2cd-eth-v2
      
      Patches 1-5 should go through David's net tree, I'll pick up the DT patches
      6-9.
      
      There have been some changes,
      compared to the RFT
      - added phy-connection-type property to BG2Q PHY DT node
      - bail out from pxa168_eth_adjust_link when there is no change in
        PHY parameters. Also, add a call to phy_print_status.
      compared to v1
      - move phy-connection-type to ethernet node instead of PHY node
      
      Patch 1 adds support for Marvell 88E3016 FastEthernet PHY that is also
      integrated in Marvell Berlin BG2/BG2CD SoCs.
      
      Patch 2 allows to pass phy_interface_t on pxa168_eth platform_data that
      is only used by mach-mmp/gplug. From the board setup, I guessed gplug's
      PHY is connected via RMII. The patch still isn't even compile tested.
      
      Patches 3-5 prepare proper libphy handling and finally remove all in-driver
      PHY mangling related to the feature explained above.
      
      Patches 6-9 add corresponding ethernet DT nodes to BG2, BG2CD, add a
      phy-connection-type property to BG2Q and enable ethernet on BG2-based Sony
      NSZ-GS7. I have tested all this on GS7 successfully with ip=dhcp on 100M FD.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5f3619f2