1. 13 Aug, 2013 5 commits
    • Claudiu Manoil's avatar
      gianfar: Add flow control support · 23402bdd
      Claudiu Manoil authored
      eTSEC has Rx and Tx flow control capabilities that may be enabled
      through MACCFG1[Rx_Flow, Tx_Flow] bits.  These bits must not be set
      however when eTSEC is operated in Half-Duplex mode.  Unfortunately,
      the driver currently sets these bits unconditionally.
      This patch adds the proper handling of the PAUSE frame capability
      register bits by implementing the ethtool -A interface.  When pause
      autoneg is enabled, the controller uses the phy's capability to
      negotiate PAUSE frame settings with the link partner and reconfigures
      its Rx_Flow and Tx_Flow settings to match the capabilities of the
      link partner.  If pause autoneg is off, the PAUSE frame generation
      may be forced manually (ethtool -A).  Flow control is disabled by
      default now.
      This implementation is inspired by the tg3 driver.
      Signed-off-by: default avatarLutz Jaenicke <ljaenicke@innominate.com>
      Signed-off-by: default avatarClaudiu Manoil <claudiu.manoil@freescale.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      23402bdd
    • stephen hemminger's avatar
      pptp: fix byte order warnings · ebd8b934
      stephen hemminger authored
      Pptp driver has lots of byte order warnings from sparse.
      This was because the on-the-wire header is in network byte order (obviously)
      but the definition did not reflect that.
      
      Also, the address structure to user space actually put the call id
      in host order. Rather than break ABI compatibility, just acknowledge
      the existing design.
      Signed-off-by: default avatarStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ebd8b934
    • Vlad Yasevich's avatar
      net: sctp: Add rudimentary infrastructure to account for control chunks · 072017b4
      Vlad Yasevich authored
      This patch adds a base infrastructure that allows SCTP to do
      memory accounting for control chunks.  Real accounting code will
      follow.
      
      This patch alos fixes the following triggered bug ...
      
      [  553.109742] kernel BUG at include/linux/skbuff.h:1813!
      [  553.109766] invalid opcode: 0000 [#1] SMP
      [  553.109789] Modules linked in: sctp libcrc32c rfcomm [...]
      [  553.110259]  uinput i915 i2c_algo_bit drm_kms_helper e1000e drm ptp
      pps_core i2c_core wmi video sunrpc
      [  553.110320] CPU: 0 PID: 1636 Comm: lt-test_1_to_1_ Not tainted
      3.11.0-rc3+ #2
      [  553.110350] Hardware name: LENOVO 74597D6/74597D6, BIOS 6DET60WW
      (3.10 ) 09/17/2009
      [  553.110381] task: ffff88020a01dd40 ti: ffff880204ed0000 task.ti:
      ffff880204ed0000
      [  553.110411] RIP: 0010:[<ffffffffa0698017>]  [<ffffffffa0698017>]
      skb_orphan.part.9+0x4/0x6 [sctp]
      [  553.110459] RSP: 0018:ffff880204ed1bb8  EFLAGS: 00010286
      [  553.110483] RAX: ffff8802086f5a40 RBX: ffff880204303300 RCX:
      0000000000000000
      [  553.110487] RDX: ffff880204303c28 RSI: ffff8802086f5a40 RDI:
      ffff880202158000
      [  553.110487] RBP: ffff880204ed1bb8 R08: 0000000000000000 R09:
      0000000000000000
      [  553.110487] R10: ffff88022f2d9a04 R11: ffff880233001600 R12:
      0000000000000000
      [  553.110487] R13: ffff880204303c00 R14: ffff8802293d0000 R15:
      ffff880202158000
      [  553.110487] FS:  00007f31b31fe740(0000) GS:ffff88023bc00000(0000)
      knlGS:0000000000000000
      [  553.110487] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [  553.110487] CR2: 000000379980e3e0 CR3: 000000020d225000 CR4:
      00000000000407f0
      [  553.110487] Stack:
      [  553.110487]  ffff880204ed1ca8 ffffffffa068d7fc 0000000000000000
      0000000000000000
      [  553.110487]  0000000000000000 ffff8802293d0000 ffff880202158000
      ffffffff81cb7900
      [  553.110487]  0000000000000000 0000400000001c68 ffff8802086f5a40
      000000000000000f
      [  553.110487] Call Trace:
      [  553.110487]  [<ffffffffa068d7fc>] sctp_sendmsg+0x6bc/0xc80 [sctp]
      [  553.110487]  [<ffffffff8128f185>] ? sock_has_perm+0x75/0x90
      [  553.110487]  [<ffffffff815a3593>] inet_sendmsg+0x63/0xb0
      [  553.110487]  [<ffffffff8128f2b3>] ? selinux_socket_sendmsg+0x23/0x30
      [  553.110487]  [<ffffffff8151c5d6>] sock_sendmsg+0xa6/0xd0
      [  553.110487]  [<ffffffff81637b05>] ? _raw_spin_unlock_bh+0x15/0x20
      [  553.110487]  [<ffffffff8151cd38>] SYSC_sendto+0x128/0x180
      [  553.110487]  [<ffffffff8151ce6b>] ? SYSC_connect+0xdb/0x100
      [  553.110487]  [<ffffffffa0690031>] ? sctp_inet_listen+0x71/0x1f0
      [sctp]
      [  553.110487]  [<ffffffff8151d35e>] SyS_sendto+0xe/0x10
      [  553.110487]  [<ffffffff81640202>] system_call_fastpath+0x16/0x1b
      [  553.110487] Code: e0 48 c7 c7 00 22 6a a0 e8 67 a3 f0 e0 48 c7 [...]
      [  553.110487] RIP  [<ffffffffa0698017>] skb_orphan.part.9+0x4/0x6
      [sctp]
      [  553.110487]  RSP <ffff880204ed1bb8>
      [  553.121578] ---[ end trace 46c20c5903ef5be2 ]---
      
      The approach taken here is to split data and control chunks
      creation a  bit.  Data chunks already have memory accounting
      so noting needs to happen.  For control chunks, add stubs handlers.
      Signed-off-by: default avatarVlad Yasevich <vyasevich@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      072017b4
    • Mark Brown's avatar
      net: asix: Move declaration of ax88172a_info to shared header · 55d10a11
      Mark Brown authored
      Ensure that the definition of ax88172a_info matches the declaration seen
      by users and silence sparse warnings about symbols without declarations
      in the global namespace by moving the declaration into the shared header
      asix.h.
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      55d10a11
    • Mark Brown's avatar
      net: asix: Staticise non-exported symbols · cbeee8c6
      Mark Brown authored
      Make functions that are only referenced from ops structures static, they
      do not need to be in the global namespace and sparse complains about this.
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cbeee8c6
  2. 12 Aug, 2013 2 commits
  3. 10 Aug, 2013 3 commits
    • Eric Dumazet's avatar
      net: attempt high order allocations in sock_alloc_send_pskb() · 28d64271
      Eric Dumazet authored
      Adding paged frags skbs to af_unix sockets introduced a performance
      regression on large sends because of additional page allocations, even
      if each skb could carry at least 100% more payload than before.
      
      We can instruct sock_alloc_send_pskb() to attempt high order
      allocations.
      
      Most of the time, it does a single page allocation instead of 8.
      
      I added an additional parameter to sock_alloc_send_pskb() to
      let other users to opt-in for this new feature on followup patches.
      
      Tested:
      
      Before patch :
      
      $ netperf -t STREAM_STREAM
      STREAM STREAM TEST
      Recv   Send    Send
      Socket Socket  Message  Elapsed
      Size   Size    Size     Time     Throughput
      bytes  bytes   bytes    secs.    10^6bits/sec
      
       2304  212992  212992    10.00    46861.15
      
      After patch :
      
      $ netperf -t STREAM_STREAM
      STREAM STREAM TEST
      Recv   Send    Send
      Socket Socket  Message  Elapsed
      Size   Size    Size     Time     Throughput
      bytes  bytes   bytes    secs.    10^6bits/sec
      
       2304  212992  212992    10.00    57981.11
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      28d64271
    • Eric Dumazet's avatar
      af_unix: improve STREAM behavior with fragmented memory · e370a723
      Eric Dumazet authored
      unix_stream_sendmsg() currently uses order-2 allocations,
      and we had numerous reports this can fail.
      
      The __GFP_REPEAT flag present in sock_alloc_send_pskb() is
      not helping.
      
      This patch extends the work done in commit eb6a2481
      ("af_unix: reduce high order page allocations) for
      datagram sockets.
      
      This opens the possibility of zero copy IO (splice() and
      friends)
      
      The trick is to not use skb_pull() anymore in recvmsg() path,
      and instead add a @consumed field in UNIXCB() to track amount
      of already read payload in the skb.
      
      There is a performance regression for large sends
      because of extra page allocations that will be addressed
      in a follow-up patch, allowing sock_alloc_send_pskb()
      to attempt high order page allocations.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e370a723
    • Yuchung Cheng's avatar
      tcp: add server ip to encrypt cookie in fast open · 149479d0
      Yuchung Cheng authored
      Encrypt the cookie with both server and client IPv4 addresses,
      such that multi-homed server will grant different cookies
      based on both the source and destination IPs. No client change
      is needed since cookie is opaque to the client.
      Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      149479d0
  4. 09 Aug, 2013 17 commits
  5. 08 Aug, 2013 1 commit
  6. 07 Aug, 2013 12 commits