1. 28 Dec, 2015 10 commits
    • Chun-Hao Lin's avatar
      r8169:Update the way of reading RTL8168H PHY register "rg_saw_cnt" · 58493333
      Chun-Hao Lin authored
      The vlaue of RTL8168H PHY register "rg_saw_cnt" only valid from bit0 to bit13.
      When read this register, add bitwise-anding its value with 0x3fff.
      Signed-off-by: default avatarChunhao Lin <hau@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      58493333
    • Chun-Hao Lin's avatar
      r8169:Fix typo in setting RTL8168H PHY parameter · e2e2788e
      Chun-Hao Lin authored
      In function "rtl8168h_2_hw_phy_config", there is a typo in setting
      RTL8168H PHY parameter.
      Signed-off-by: default avatarChunhao Lin <hau@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e2e2788e
    • Thomas Falcon's avatar
      Driver for IBM System i/p VNIC protocol · 032c5e82
      Thomas Falcon authored
      This is a new device driver for a high performance SR-IOV assisted virtual
      network for IBM System p and IBM System i systems.  The SR-IOV VF will be
      attached to the VIOS partition and mapped to the Linux client via the
      hypervisor's VNIC protocol that this driver implements.
      
      This driver is able to perform basic tx and rx, new features
      and improvements will be added as they are being developed and tested.
      Signed-off-by: default avatarThomas Falcon <tlfalcon@linux.vnet.ibm.com>
      Signed-off-by: default avatarJohn Allen <jallen@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      032c5e82
    • David S. Miller's avatar
      Merge branch 'fsl-fmain' · 7b752fd3
      David S. Miller authored
      Igal Liberman says:
      
      ====================
      Freescale DPAA FMan
      
      The Freescale Data Path Acceleration Architecture (DPAA) is a set
      of hardware components on specific QorIQ multicore processors.
      This architecture provides the infrastructure to support
      simplified sharing of networking interfaces and accelerators
      by multiple CPU cores and the accelerators.
      
      One of the DPAA accelerators is the Frame Manager (FMan)
      which contains a series of hardware blocks: ports, Ethernet MACs,
      a multi user RAM (MURAM) and Storage Profile (SP).
      
      This patch set introduce the FMan drivers.
      Each driver configures and initializes the corresponding
      FMan hardware module (described above).
      The MAC driver offers support for three different
      types of MACs (eTSEC, TGEC, MEMAC).
      
      v9 --> v10:
      	- Addressed feedback from David Miller
      		Remove private CRC implementation
      	- Addressed feedback from Kenneth Klette Jonassen:
      		- Use Kernel PHY API to configure dTSEC TBI
      		- Use Kernel PHY API to configure mEMAC PCS
      		  This patchset requires device tree update:
      		  https://patchwork.ozlabs.org/patch/559501/
      	- Addressed feedback from Andy Fleming
      
      v8 --> v9:
      	No changes
      
      v7 --> v8:
      	- Addressed feedback from David Miller
      	- Support for ARM:
      		- Device tree parsing
      		- IO Accessors
      		- Addressed compilation issue on non-PPC targets
      
      v6 --> v7:
      	- Addressed compilation issue on non-PPC targets
      	- Removed B4860 rev 1 support
      
      v5 --> v6:
      	- Addressed feedback from Scott:
      		- Moved kernel doc to source files
      		- Removed a series of configurable settings
      		- Miscellaneous code updates
      
      v4 --> v5:
      	- Addressed feedback from David Miller:
      		- Removed driver layering
      		- Reduce namespace pollution
      		- Reduce code complexity and size
      
      v3 --> v4:
      	- Remove device_initcall call in driver registration (redundant)
      	- Remove hot/cold labels
      	- Minor update in FMan Clock read from device-tree
      	- Update fixed-link support
      	- Addressed feedback from Stephen Hemminger
      		- Remove bogus blank line
      
      v2 --> v3:
      	- Addressed feedback from Scott:
      		- Remove typedefs
      		- Remove unnecessary memory barriers
      		- Remove unnecessary casting
      		- Remove KConfig options
      		- Remove early_params
      		- Remove Hungarian notation
      		- Remove __packed__  attribute and padding from structures
      		- Remove unlikely attribute (where it's not needed)
      		- Use proper error codes and remove unnecessary prints
      		- Use proper values for sleep routines
      		- Replace complex Macros with functions
      		- Improve device tree processing code
      		- Use symbolic defines
      		- Add time-out in busy-wait loops
      		- Removed exit code (loadable module support will be added later)
      	- Fixed "fixed-link" issue raised by Joakim Tjernlund
      
      v1 --> v2:
      	- Addressed feedback from Paul Bolle:
      		- General feedback of FMan Driver layer
      		- Remove Errata defines
      		- Aligned comments to Kernel Doc
      		- Remove Loadable Module support (not yet supported)
      		- Removed not needed KConfig dependencies
      	- Addressed feedback from Scott Wood
      		- Use Kernel ioread/iowrite services
      		- Squash FLIB source and header patches together
      
      This submission is based on the prior Freescale DPAA FMan V3,RFC submission.
      Several issues addresses in this submission:
      	- Reduced MAC layering and complexity
      	- Reduced code base
      	- T1024/T2080 10G best effort support
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7b752fd3
    • Igal Liberman's avatar
      fsl/fman: Add FMan MAC driver · 39339616
      Igal Liberman authored
      This patch adds the Ethernet MAC driver supporting the three
      different types of MACs: dTSEC, tGEC and mEMAC.
      Signed-off-by: default avatarIgal Liberman <igal.liberman@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      39339616
    • Igal Liberman's avatar
      fsl/fman: Add FMan Port Support · 18a6c85f
      Igal Liberman authored
      Add the Data Path Acceleration Architecture Frame Manger Port Driver.
      The FMan driver uses a module called "Port" to represent the physical
      TX and RX ports.
      Each FMan version has different number of physical ports.
      This patch adds The FMan Port configuration, initialization and
      runtime control routines for both TX and RX.
      Signed-off-by: default avatarIgal Liberman <igal.liberman@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18a6c85f
    • Igal Liberman's avatar
      fsl/fman: Add FMan SP support · e81edc38
      Igal Liberman authored
      The Storage Profiles contain parameters that are used
      by the FMan for frame reception and transmission.
      Signed-off-by: default avatarIgal Liberman <igal.liberman@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e81edc38
    • Igal Liberman's avatar
      fsl/fman: Add FMan MAC support · 57ba4c9b
      Igal Liberman authored
      Add the Data Path Acceleration Architecture Frame Manger MAC support.
      This patch adds The FMan MAC configuration, initialization and
      runtime control routines.
      This patch contains support for these types of MACs:
      	- dTSEC: Three speed Ethernet controller (10/100/1000 Mbps)
      	- tGEC: 10G Ethernet controller (10 Gbps)
      	- mEMAC: Multi-rate Ethernet MAC (10/100/1000/10000 Mbps)
      Different FMan revisions have different type and number of MACs.
      Signed-off-by: default avatarIgal Liberman <igal.liberman@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      57ba4c9b
    • Igal Liberman's avatar
      fsl/fman: Add FMan support · 414fd46e
      Igal Liberman authored
      Add the Data Path Acceleration Architecture Frame Manger Driver.
      The FMan embeds a series of hardware blocks that implement a group
      of Ethernet interfaces. This patch adds The FMan configuration,
      initialization and runtime control routines.
      
      The FMan driver supports several hardware versions
      differentiated by things like:
      	- Different type of MACs
      	- Number of MAC and ports
      	- Available resources
      	- Different hardware errata
      Signed-off-by: default avatarIgal Liberman <igal.liberman@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      414fd46e
    • Igal Liberman's avatar
      fsl/fman: Add FMan MURAM support · 5adae51a
      Igal Liberman authored
      Add Frame Manager Multi-User RAM support.
      This internal FMan memory block is used by the
      FMan hardware modules, the management being made
      through the generic allocator.
      
      The FMan Internal memory, for example, is used for
      allocating transmit and receive FIFOs.
      Signed-off-by: default avatarIgal Liberman <Igal.Liberman@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5adae51a
  2. 26 Dec, 2015 1 commit
  3. 24 Dec, 2015 21 commits
  4. 23 Dec, 2015 5 commits
  5. 22 Dec, 2015 3 commits
    • David S. Miller's avatar
      Merge branch 'bindtodevice_tw_rst' · 83a76006
      David S. Miller authored
      Florian Westphal says:
      
      ====================
      tcp: honour SO_BINDTODEVICE for TW_RST case too
      
      This is V2, this time as a small series since I followed Erics advice
      to split this into smaller chunks, I hope this makes it easier to
      review.
      
      First patch adds inet_sk_transparent helper.
      Second patch contains an if/else swap that I split from the
      original TW_RST v1 one.
      Third patch is the actual change without the superfluous sock_net change.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      83a76006
    • Florian Westphal's avatar
      tcp: honour SO_BINDTODEVICE for TW_RST case too · 271c3b9b
      Florian Westphal authored
      Hannes points out that when we generate tcp reset for timewait sockets we
      pretend we found no socket and pass NULL sk to tcp_vX_send_reset().
      
      Make it cope with inet tw sockets and then provide tw sk.
      
      This makes RSTs appear on correct interface when SO_BINDTODEVICE is used.
      
      Packetdrill test case:
      // want default route to be used, we rely on BINDTODEVICE
      `ip route del 192.0.2.0/24 via 192.168.0.2 dev tun0`
      
      0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
      // test case still works due to BINDTODEVICE
      0.001 setsockopt(3, SOL_SOCKET, SO_BINDTODEVICE, "tun0", 4) = 0
      0.100...0.200 connect(3, ..., ...) = 0
      
      0.100 > S 0:0(0) <mss 1460,sackOK,nop,nop>
      0.200 < S. 0:0(0) ack 1 win 32792 <mss 1460,sackOK,nop,nop>
      0.200 > . 1:1(0) ack 1
      
      0.210 close(3) = 0
      
      0.210 > F. 1:1(0) ack 1 win 29200
      0.300 < . 1:1(0) ack 2 win 46
      
      // more data while in FIN_WAIT2, expect RST
      1.300 < P. 1:1001(1000) ack 1 win 46
      
      // fails without this change -- default route is used
      1.301 > R 1:1(0) win 0
      Reported-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      271c3b9b
    • Florian Westphal's avatar
      tcp: send_reset: test for non-NULL sk first · e46787f0
      Florian Westphal authored
      tcp_md5_do_lookup requires a full socket, so once we extend
      _send_reset() to also accept timewait socket we would have to change
      
      if (!sk && hash_location)
      
      to something like
      
      if ((!sk || !sk_fullsock(sk)) && hash_location) {
        ...
      } else {
        (sk && sk_fullsock(sk)) tcp_md5_do_lookup()
      }
      
      Switch the two branches: check if we have a socket first, then
      fall back to a listener lookup if we saw a md5 option (hash_location).
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e46787f0