1. 29 Aug, 2016 12 commits
  2. 27 Aug, 2016 3 commits
  3. 26 Aug, 2016 3 commits
  4. 25 Aug, 2016 7 commits
  5. 24 Aug, 2016 10 commits
  6. 23 Aug, 2016 5 commits
    • Jamie Lentin's avatar
      net: mv88e6xxx: Fix ingress rate removal for mv6131 chips · 1bc261fa
      Jamie Lentin authored
      The PORT_RATE_CONTROL register works differently on 88e6095/6095f/6131
      in comparison to 6123/61/65, and 0x0 disables. The distinction was lost
      Linux 4.1 --> 4.2
      Signed-off-by: default avatarJamie Lentin <jm@lentin.co.uk>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1bc261fa
    • Xander Huff's avatar
      phy: micrel: Reenable interrupts during resume for ksz9031 · f64f1482
      Xander Huff authored
      Like the ksz8081, the ksz9031 has the behavior where it will clear the
      interrupt enable bits when leaving power down. This takes advantage of the
      solution provided by f5aba91d.
      Signed-off-by: default avatarXander Huff <xander.huff@ni.com>
      Signed-off-by: default avatarNathan Sullivan <nathan.sullivan@ni.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f64f1482
    • Eric Dumazet's avatar
      tcp: properly scale window in tcp_v[46]_reqsk_send_ack() · 20a2b49f
      Eric Dumazet authored
      When sending an ack in SYN_RECV state, we must scale the offered
      window if wscale option was negotiated and accepted.
      
      Tested:
       Following packetdrill test demonstrates the issue :
      
      0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
      +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
      
      +0 bind(3, ..., ...) = 0
      +0 listen(3, 1) = 0
      
      // Establish a connection.
      +0 < S 0:0(0) win 20000 <mss 1000,sackOK,wscale 7, nop, TS val 100 ecr 0>
      +0 > S. 0:0(0) ack 1 win 28960 <mss 1460,sackOK, TS val 100 ecr 100, nop, wscale 7>
      
      +0 < . 1:11(10) ack 1 win 156 <nop,nop,TS val 99 ecr 100>
      // check that window is properly scaled !
      +0 > . 1:1(0) ack 1 win 226 <nop,nop,TS val 200 ecr 100>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Acked-by: default avatarYuchung Cheng <ycheng@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      20a2b49f
    • Zefir Kurtisi's avatar
      gianfar: fix size of scatter-gathered frames · 6c389fc9
      Zefir Kurtisi authored
      The current scatter-gather logic in gianfar is flawed, since
      it does not consider the eTSEC's RxBD 'Data Length' field is
      context depening: for the last fragment it contains the full
      frame size, while fragments contain the fragment size, which
      equals the value written to register MRBLR.
      
      This causes data corruption as soon as the hardware starts
      to fragment receiving frames. As a result, the size of
      fragmented frames is increased by
      (nr_frags - 1) * MRBLR
      
      We first noticed this issue working with DSA, where an ICMP
      request sized 1472 bytes causes the scatter-gather logic to
      kick in. The full Ethernet frame (1518) gets increased by
      DSA (4), GMAC_FCB_LEN (8), and FSL_GIANFAR_DEV_HAS_TIMER
      (priv->padding=8) to a total of 1538 octets, which is
      fragmented by the hardware and reconstructed by the driver
      to a 3074 octet frame.
      
      This patch fixes the problem by adjusting the size of
      the last fragment.
      
      It was tested by setting MRBLR to different multiples of
      64, proving correct scatter-gather operation on frames
      with up to 9000 octets in size.
      Signed-off-by: default avatarZefir Kurtisi <zefir.kurtisi@neratec.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c389fc9
    • Zefir Kurtisi's avatar
      gianfar: prevent fragmentation in DSA environments · b323431b
      Zefir Kurtisi authored
      The eTSEC register MRBLR defines the maximum space in
      the RX buffers and is set to 1536 by gianfar. This
      reasonably covers the common use case where the MTU
      is kept at default 1500. In that case, the largest
      Ethernet frame size of 1518 plus an optional
      GMAC_FCB_LEN of 8, and an additional padding of 8
      to handle FSL_GIANFAR_DEV_HAS_TIMER totals to 1534
      and nicely fit within the chosen MRBLR.
      
      Alas, if the eTSEC is attached to a DSA enabled switch,
      the (E)DSA header extension (4 or 8 bytes) causes every
      maximum sized frame to be fragmented by the hardware.
      
      This patch increases the maximum RX buffer size by 8
      and rounds up to the next multiple of 64, which the
      hardware's defines as RX buffer granularity.
      Signed-off-by: default avatarZefir Kurtisi <zefir.kurtisi@neratec.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b323431b