1. 10 7月, 2015 2 次提交
    • A
      net: skb_defer_rx_timestamp should check for phydev before setting up classify · 1007f59d
      Alexander Duyck 提交于
      This change makes it so that the call skb_defer_rx_timestamp will first
      check for a phydev before going in and manipulating the skb->data and
      skb->len values.  By doing this we can avoid unnecessary work on network
      devices that don't support phydev.  As a result we reduce the total
      instruction count needed to process this on most devices.
      Signed-off-by: NAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1007f59d
    • J
      tcp: v1 always send a quick ack when quickacks are enabled · 2251ae46
      Jon Maxwell 提交于
      V1 of this patch contains Eric Dumazet's suggestion to move the per
      dst RTAX_QUICKACK check into tcp_in_quickack_mode(). Thanks Eric.
      
      I ran some tests and after setting the "ip route change quickack 1"
      knob there were still many delayed ACKs sent. This occured
      because when icsk_ack.quick=0 the !icsk_ack.pingpong value is
      subsequently ignored as tcp_in_quickack_mode() checks both these
      values. The condition for a quick ack to trigger requires
      that both icsk_ack.quick != 0 and icsk_ack.pingpong=0. Currently
      only icsk_ack.pingpong is controlled by the knob. But the
      icsk_ack.quick value changes dynamically depending on heuristics.
      The crux of the matter is that delayed acks still cannot be entirely
      disabled even with the RTAX_QUICKACK per dst knob enabled. This
      patch ensures that a quick ack is always sent when the RTAX_QUICKACK
      per dst knob is turned on.
      
      The "ip route change quickack 1" knob was recently added to enable
      quickacks. It was modeled around the TCP_QUICKACK setsockopt() option.
      This issue is that even with "ip route change quickack 1" enabled
      we still see delayed ACKs under some conditions. It would be nice
      to be able to completely disable delayed ACKs.
      
      Here is an example:
      
      # netstat -s|grep dela
          3 delayed acks sent
      
      For all routes enable the knob
      
      # ip route change quickack 1
      
      Generate some traffic across a slow link and we still see the delayed
      acks.
      
      # netstat -s|grep dela
          106 delayed acks sent
          1 delayed acks further delayed because of locked socket
      
      The issue is that both the "ip route change quickack 1" knob and
      the TCP_QUICKACK option set the icsk_ack.pingpong variable to 0.
      However at the business end in the __tcp_ack_snd_check() routine,
      tcp_in_quickack_mode() checks that both icsk_ack.quick != 0
      and icsk_ack.pingpong=0 in order to trigger a quickack. As
      icsk_ack.quick is determined by heuristics it can be 0. When
      that occurs the icsk_ack.pingpong value is ignored and a delayed
      ACK is sent regardless.
      
      This patch moves the RTAX_QUICKACK per dst check into the
      tcp_in_quickack_mode() routine which ensures that a quickack is
      always sent when the quickack knob is enabled for that dst.
      Signed-off-by: NJon Maxwell <jmaxwell37@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2251ae46
  2. 09 7月, 2015 29 次提交
  3. 04 7月, 2015 5 次提交
  4. 03 7月, 2015 4 次提交
    • N
      bridge: vlan: fix usage of vlan 0 and 4095 again · 462e1ead
      Nikolay Aleksandrov 提交于
      Vlan ids 0 and 4095 were disallowed by commit:
      8adff41c ("bridge: Don't use VID 0 and 4095 in vlan filtering")
      but then the check was removed when vlan ranges were introduced by:
      bdced7ef ("bridge: support for multiple vlans and vlan ranges in setlink and dellink requests")
      So reintroduce the vlan range check.
      Before patch:
      [root@testvm ~]# bridge vlan add vid 0 dev eth0 master
      (succeeds)
      After Patch:
      [root@testvm ~]# bridge vlan add vid 0 dev eth0 master
      RTNETLINK answers: Invalid argument
      Signed-off-by: NNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Fixes: bdced7ef ("bridge: support for multiple vlans and vlan ranges in setlink and dellink requests")
      Acked-by: NToshiaki Makita <toshiaki.makita1@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      462e1ead
    • D
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth · c4555d16
      David S. Miller 提交于
      Johan Hedberg says:
      
      ====================
      pull request: bluetooth 2015-07-02
      
      A couple of regressions crept in because of a patch to use proper list
      APIs rather than manually reading & writing the next/prev pointers
      (commit 835a6a2f). Turns out this was
      masking a few bugs: a missing INIT_LIST_HEAD() call and incorrectly
      using list_del() rather than list_del_init(). The two patches in this
      set fix these, and it'd be nice they could still make it to 4.2-rc1 to
      avoid new bug reports from users.
      
      Please let me know if there are any issues pulling. Thanks.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c4555d16
    • G
      enic: fix issues in enic_poll · 25c14ef8
      Govindarajulu Varadarajan 提交于
      In enic_poll, we clean tx and rx queues, when low latency busy socket polling
      is happening, enic_poll will only clean tx queue. After cleaning tx, it should
      return total budget for re-poll.
      
      There is a small window between vnic_intr_unmask() and enic_poll_unlock_napi().
      In this window if an irq occurs and napi is scheduled on different cpu, it tries
      to acquire enic_poll_lock_napi() and fails. Unlock napi_poll before unmasking
      the interrupt.
      
      v2:
      Do not change tx wonk done behaviour. Consider only rx work done for completing
      napi.
      Signed-off-by: NGovindarajulu Varadarajan <_govind@gmx.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      25c14ef8
    • L
      Merge tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux · a611fb75
      Linus Torvalds 提交于
      Pull init.h/module.h fragility fixes from Paul Gortmaker:
       "Fixup various init.h misuses that are fragile wrt code moving to
        module.h
      
        What started as a removal of no longer required include <linux/init.h>
        due to the earlier __cpuinit and __devinit removal led to the
        observation that some module specfic support was living in init.h
        itself, thus preventing the full removal from introducing compile
        regressions.
      
        This series includes a few final fixups needed prior to the relocation
        of the modular init code from <init.h> to <module.h>.  These are
        things that weren't easily categorized into any of the other previous
        series categories already requested for pull.
      
        That said, each fixup branch (including this one) is independent and
        there are no ordering constraints.  Only the final code relocation
        (which is NOT in this pull) requires that all my cleanup branches be
        merged first"
      
      * tag 'module-misc-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        tile: add init.h to usb.c to avoid compile failure
        arm: fix implicit #include <linux/init.h> in entry asm.
        x86: replace __init_or_module with __init in non-modular vsmp_64.c
      a611fb75