1. 05 2月, 2015 8 次提交
    • P
      csiostor:Use firmware version from cxgb4/t4fw_version.h · 541c571f
      Praveen Madhavan 提交于
      This patch is to use firmware version macros from t4fw_version.h
      and also enables 40g T5 adapter.
      Signed-off-by: NPraveen Madhavan <praveenm@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      541c571f
    • N
      tlan: msecs_to_jiffies convrsion · b5057dd7
      Nicholas Mc Guire 提交于
      This is only an API consolidation and should make things more readable
      it replaces var * HZ / 1000 by msecs_to_jiffies(var).
      
      As there is a discrepancy between the code and the comments this is in
      a separate patch.
      Signed-off-by: NNicholas Mc Guire <hofrat@osadl.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b5057dd7
    • N
      tlan: use msecs_to_jiffies for conversion · 51fd9471
      Nicholas Mc Guire 提交于
      This is only an API consolidation and should make things more readable
      it replaces var * HZ / 1000 by msecs_to_jiffies(var).
      Signed-off-by: NNicholas Mc Guire <hofrat@osadl.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      51fd9471
    • D
      Merge branch 'for-upstream' of... · 45e826fd
      David S. Miller 提交于
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
      
      Johan Hedberg says:
      
      ====================
      pull request: bluetooth-next 2015-02-03
      
      Here's what's likely the last bluetooth-next pull request for 3.20.
      Notable changes include:
      
       - xHCI workaround + a new id for the ath3k driver
       - Several new ids for the btusb driver
       - Support for new Intel Bluetooth controllers
       - Minor cleanups to ieee802154 code
       - Nested sleep warning fix in socket accept() code path
       - Fixes for Out of Band pairing handling
       - Support for LE scan restarting for HCI_QUIRK_STRICT_DUPLICATE_FILTER
       - Improvements to data we expose through debugfs
       - Proper handling of Hardware Error HCI events
      
      Please let me know if there are any issues pulling. Thanks.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      45e826fd
    • T
      net: add skb functions to process remote checksum offload · dcdc8994
      Tom Herbert 提交于
      This patch adds skb_remcsum_process and skb_gro_remcsum_process to
      perform the appropriate adjustments to the skb when receiving
      remote checksum offload.
      
      Updated vxlan and gue to use these functions.
      
      Tested: Ran TCP_RR and TCP_STREAM netperf for VXLAN and GUE, did
      not see any change in performance.
      Signed-off-by: NTom Herbert <therbert@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dcdc8994
    • S
      bridge: Let bridge not age 'externally' learnt FDB entries, they are removed... · 9a05dde5
      Siva Mannem 提交于
      bridge: Let bridge not age 'externally' learnt FDB entries, they are removed when 'external' entity notifies the aging
      
      When 'learned_sync' flag is turned on, the offloaded switch
       port syncs learned MAC addresses to bridge's FDB via switchdev notifier
       (NETDEV_SWITCH_FDB_ADD). Currently, FDB entries learnt via this mechanism are
       wrongly being deleted by bridge aging logic. This patch ensures that FDB
       entries synced from offloaded switch ports are not deleted by bridging logic.
       Such entries can only be deleted via switchdev notifier
       (NETDEV_SWITCH_FDB_DEL).
      Signed-off-by: NSiva Mannem <siva.mannem.lnx@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9a05dde5
    • L
      net: fs_enet: Implement NETIF_F_SG feature · 4fc9b87b
      LEROY Christophe 提交于
      Freescale ethernet controllers have the capability to re-assemble fragmented
      data into a single ethernet frame. This patch uses this capability and
      implements NETIP_F_SG feature into the fs_enet ethernet driver.
      
      On a MPC885, I get 53% performance improvement on a ftp transfer of a 15Mb file:
        * Without the patch : 2,8 Mbps
        * With the patch : 4,3 Mbps
      Signed-off-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4fc9b87b
    • E
      xps: fix xps for stacked devices · 2bd82484
      Eric Dumazet 提交于
      A typical qdisc setup is the following :
      
      bond0 : bonding device, using HTB hierarchy
      eth1/eth2 : slaves, multiqueue NIC, using MQ + FQ qdisc
      
      XPS allows to spread packets on specific tx queues, based on the cpu
      doing the send.
      
      Problem is that dequeues from bond0 qdisc can happen on random cpus,
      due to the fact that qdisc_run() can dequeue a batch of packets.
      
      CPUA -> queue packet P1 on bond0 qdisc, P1->ooo_okay=1
      CPUA -> queue packet P2 on bond0 qdisc, P2->ooo_okay=0
      
      CPUB -> dequeue packet P1 from bond0
              enqueue packet on eth1/eth2
      CPUC -> dequeue packet P2 from bond0
              enqueue packet on eth1/eth2 using sk cache (ooo_okay is 0)
      
      get_xps_queue() then might select wrong queue for P1, since current cpu
      might be different than CPUA.
      
      P2 might be sent on the old queue (stored in sk->sk_tx_queue_mapping),
      if CPUC runs a bit faster (or CPUB spins a bit on qdisc lock)
      
      Effect of this bug is TCP reorders, and more generally not optimal
      TX queue placement. (A victim bulk flow can be migrated to the wrong TX
      queue for a while)
      
      To fix this, we have to record sender cpu number the first time
      dev_queue_xmit() is called for one tx skb.
      
      We can union napi_id (used on receive path) and sender_cpu,
      granted we clear sender_cpu in skb_scrub_packet() (credit to Willem for
      this union idea)
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Cc: Nandita Dukkipati <nanditad@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2bd82484
  2. 04 2月, 2015 5 次提交
  3. 03 2月, 2015 19 次提交
    • J
      Bluetooth: Fix potential NULL dereference · 88d9077c
      Johan Hedberg 提交于
      The bnep_get_device function may be triggered by an ioctl just after a
      connection has gone down. In such a case the respective L2CAP chan->conn
      pointer will get set to NULL (by l2cap_chan_del). This patch adds a
      missing NULL check for this case in the bnep_get_device() function.
      Reported-by: NPatrik Flykt <patrik.flykt@linux.intel.com>
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      88d9077c
    • M
      Bluetooth: btusb: Add support for Lite-On (04ca) Broadcom based, BCM43142 · 8f0c304c
      Matej Dubovy 提交于
      Please add support for sub BT chip on the combo card
      Broadcom 43142A0 (in Lenovo E145), 04ca:2007
      
      /sys/kernel/debug/usb/devices
      
      T:  Bus=05 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#=  3 Spd=12   MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=04ca ProdID=2007 Rev= 1.12
      S:  Manufacturer=Broadcom Corp
      S:  Product=BCM43142A0
      S:  SerialNumber=28E347EC73BD
      C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
      I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
      I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
      I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
      I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
      E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
      E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
      I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
      
      Firmware for 04ca:2007 can be extracted from the latest Lenovo E145
      Bluetooth driver for Windows (driver is however described as BCM20702
      but contains also firwmare for BCM43142).
      Search for BCM43142A0_001.001.011.0122.0153.hex within hex files, then
      it must be converted using hex2hcd utility. Rename file to
      BCM43142A0-04ca-2007.hcd, then move to /lib/firmware/brcm/.
      Signed-off-by: NMatej Dubovy <matej.dubovy@gmail.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      Cc: stable@vger.kernel.org
      8f0c304c
    • M
      net: sctp: Deletion of an unnecessary check before the function call "kfree" · 7d37d0c1
      Markus Elfring 提交于
      The kfree() function tests whether its argument is NULL and then
      returns immediately. Thus the test around the call is not needed.
      
      This issue was detected by using the Coccinelle software.
      Signed-off-by: NMarkus Elfring <elfring@users.sourceforge.net>
      Acked-By: NNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7d37d0c1
    • D
      Merge branch 'udpv6_lockless_send' · 193cdc4a
      David S. Miller 提交于
      Vladislav Yasevich says:
      
      ====================
      ipv6: Add lockless UDP send path
      
      This series introduces a lockless UDPv6 send path similar to
      what Herbert Xu did for IPv4 a while ago.
      
      There are some difference from IPv4.  IPv6 caching for flow
      label is a bit different, as well as it requires another cork
      cork structure that holds the IPv6 ancillary data.
      
      Please take a look.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      193cdc4a
    • V
      ipv6: Allow for partial checksums on non-ufo packets · 32dce968
      Vlad Yasevich 提交于
      Currntly, if we are not doing UFO on the packet, all UDP
      packets will start with CHECKSUM_NONE and thus perform full
      checksum computations in software even if device support
      IPv6 checksum offloading.
      
      Let's start start with CHECKSUM_PARTIAL if the device
      supports it and we are sending only a single packet at
      or below mtu size.
      Signed-off-by: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      32dce968
    • V
      udpv6: Add lockless sendmsg() support · 03485f2a
      Vlad Yasevich 提交于
      This commit adds the same functionaliy to IPv6 that
      commit 903ab86d
      Author: Herbert Xu <herbert@gondor.apana.org.au>
      Date:   Tue Mar 1 02:36:48 2011 +0000
      
          udp: Add lockless transmit path
      
      added to IPv4.
      
      UDP transmit path can now run without a socket lock,
      thus allowing multiple threads to send to a single socket
      more efficiently.
      This is only used when corking/MSG_MORE is not used.
      Signed-off-by: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      03485f2a
    • V
      ipv6: Introduce udpv6_send_skb() · d39d938c
      Vlad Yasevich 提交于
      Now that we can individually construct IPv6 skbs to send, add a
      udpv6_send_skb() function to populate the udp header and send the
      skb.  This allows udp_v6_push_pending_frames() to re-use this
      function as well as enables us to add lockless sendmsg() support.
      Signed-off-by: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d39d938c
    • V
      ipv6: introduce ipv6_make_skb · 6422398c
      Vlad Yasevich 提交于
      This commit is very similar to
      commit 1c32c5ad
      Author: Herbert Xu <herbert@gondor.apana.org.au>
      Date:   Tue Mar 1 02:36:47 2011 +0000
      
          inet: Add ip_make_skb and ip_finish_skb
      
      It adds IPv6 version of the helpers ip6_make_skb and ip6_finish_skb.
      
      The job of ip6_make_skb is to collect messages into an ipv6 packet
      and poplulate ipv6 eader.  The job of ip6_finish_skb is to transmit
      the generated skb.  Together they replicated the job of
      ip6_push_pending_frames() while also provide the capability to be
      called independently.  This will be needed to add lockless UDP sendmsg
      support.
      Signed-off-by: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6422398c
    • V
      ipv6: Append sending data to arbitrary queue · 0bbe84a6
      Vlad Yasevich 提交于
      Add the ability to append data to arbitrary queue.  This
      will be needed later to implement lockless UDP sends.
      Signed-off-by: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0bbe84a6
    • V
      ipv6: pull cork initialization into its own function. · 366e41d9
      Vlad Yasevich 提交于
      Pull IPv6 cork initialization into its own function that
      can be re-used.  IPv6 specific cork data did not have an
      explicit data structure.  This patch creats eone so that
      just ipv6 cork data can be as arguemts.  Also, since
      IPv6 tries to save the flow label into inet_cork_full
      tructure, pass the full cork.
      
      Adjust ip6_cork_release() to take cork data structures.
      Signed-off-by: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      366e41d9
    • A
      cxgb4 : Improve IEEE DCBx support, other minor open-lldp fixes · ba0c39cb
      Anish Bhatt 提交于
      * Add support for IEEE ets & pfc api.
      * Fix bug that resulted in incorrect bandwidth percentage being returned for
        CEE peers
      * Convert pfc enabled info from firmware format to what dcbnl expects before
        returning
      Signed-off-by: NAnish Bhatt <anish@chelsio.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ba0c39cb
    • A
      net/tulip: don't warn about unknown ARM architecture · 98830dd0
      Arnd Bergmann 提交于
      ARM has 32-byte cache lines, which according to the comment in
      the init registers function seems to work best with the default
      value of 0x4800 that is also used on sparc and parisc.
      
      This adds ARM to the same list, to use that default but no
      longer warn about it.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NGrant Grundler <grundler@parisc-linux.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      98830dd0
    • A
      net: hip04: add missing MODULE_LICENSE · 4c0c46be
      Arnd Bergmann 提交于
      The hip04 ethernet driver causes a new compile-time warning
      when built as a loadable module:
      
      WARNING: modpost: missing MODULE_LICENSE() in drivers/net/ethernet/hisilicon/hip04_eth.o
      see include/linux/module.h for more information
      
      This adds the license as "GPL", which matches the header of the file.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4c0c46be
    • F
      net: dctcp: loosen requirement to assert ECT(0) during 3WHS · 843c2fdf
      Florian Westphal 提交于
      One deployment requirement of DCTCP is to be able to run
      in a DC setting along with TCP traffic. As Glenn Judd's
      NSDI'15 paper "Attaining the Promise and Avoiding the Pitfalls
      of TCP in the Datacenter" [1] (tba) explains, one way to
      solve this on switch side is to split DCTCP and TCP traffic
      in two queues per switch port based on the DSCP: one queue
      soley intended for DCTCP traffic and one for non-DCTCP traffic.
      
      For the DCTCP queue, there's the marking threshold K as
      explained in commit e3118e83 ("net: tcp: add DCTCP congestion
      control algorithm") for RED marking ECT(0) packets with CE.
      For the non-DCTCP queue, there's f.e. a classic tail drop queue.
      As already explained in e3118e83, running DCTCP at scale
      when not marking SYN/SYN-ACK packets with ECT(0) has severe
      consequences as for non-ECT(0) packets, traversing the RED
      marking DCTCP queue will result in a severe reduction of
      connection probability.
      
      This is due to the DCTCP queue being dominated by ECT(0) traffic
      and switches handle non-ECT traffic in the RED marking queue
      after passing K as drops, where K is usually a low watermark
      in order to leave enough tailroom for bursts. Splitting DCTCP
      traffic among several queues (ECN and non-ECN queue) is being
      considered a terrible idea in the network community as it
      splits single flows across multiple network paths.
      
      Therefore, commit e3118e83 implements this on Linux as
      ECT(0) marked traffic, as we argue that marking all packets
      of a DCTCP flow is the only viable solution and also doesn't
      speak against the draft.
      
      However, recently, a DCTCP implementation for FreeBSD hit also
      their mainline kernel [2]. In order to let them play well
      together with Linux' DCTCP, we would need to loosen the
      requirement that ECT(0) has to be asserted during the 3WHS as
      not implemented in FreeBSD. This simplifies the ECN test and
      lets DCTCP work together with FreeBSD.
      
      Joint work with Daniel Borkmann.
      
        [1] https://www.usenix.org/conference/nsdi15/technical-sessions/presentation/judd
        [2] https://github.com/freebsd/freebsd/commit/8ad879445281027858a7fa706d13e458095b595fSigned-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
      Cc: Glenn Judd <glenn.judd@morganstanley.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      843c2fdf
    • D
      Merge branch 'net-timestamp' · 69422416
      David S. Miller 提交于
      Willem de Bruijn says:
      
      ====================
      net-timestamp: blinding
      
      Changes
        (v2 -> v3)
        - rebase only: v2 did not make it to patchwork / netdev
        (v1 -> v2)
        - fix capability check in patch 2
            this could be moved into net/core/sock.c as sk_capable_nouser()
        (rfc -> v1)
        - dropped patch 4: timestamp batching
            due to complexity, as discussed
        - dropped patch 5: default mode
            because it does not really cover all use cases, as discussed
        - added documentation
        - minor fix, see patch 2
      
      Two issues were raised during recent timestamping discussions:
      1. looping full packets on the error queue exposes packet headers
      2. TCP timestamping with retransmissions generates many timestamps
      
      This RFC patchset is an attempt at addressing both without breaking
      legacy behavior.
      
      Patch 1 reintroduces the "no payload" timestamp option, which loops
      timestamps onto an empty skb. This reduces the pressure on SO_RCVBUF
      from looping many timestamps. It does not reduce the number of recv()
      calls needed to process them. The timestamp cookie mechanism developed
      in http://patchwork.ozlabs.org/patch/427213/ did, but this is
      considerably simpler.
      
      Patch 2 then gives administrators the power to block all timestamp
      requests that contain data by unprivileged users. I proposed this
      earlier as a backward compatible workaround in the discussion of
      
        net-timestamp: pull headers for SOCK_STREAM
        http://patchwork.ozlabs.org/patch/414810/
      
      Patch 3 only updates the txtimestamp example to test this option.
      Verified that with option '-n', length is zero in all cases and
      option '-I' (PKTINFO) stops working.
      ====================
      Acked-by: NRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      69422416
    • W
      net-timestamp: no-payload option in txtimestamp test · 23685923
      Willem de Bruijn 提交于
      Demonstrate how SOF_TIMESTAMPING_OPT_TSONLY can be used and
      test the implementation.
      Signed-off-by: NWillem de Bruijn <willemb@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      23685923
    • W
      net-timestamp: no-payload only sysctl · b245be1f
      Willem de Bruijn 提交于
      Tx timestamps are looped onto the error queue on top of an skb. This
      mechanism leaks packet headers to processes unless the no-payload
      options SOF_TIMESTAMPING_OPT_TSONLY is set.
      
      Add a sysctl that optionally drops looped timestamp with data. This
      only affects processes without CAP_NET_RAW.
      
      The policy is checked when timestamps are generated in the stack.
      It is possible for timestamps with data to be reported after the
      sysctl is set, if these were queued internally earlier.
      
      No vulnerability is immediately known that exploits knowledge
      gleaned from packet headers, but it may still be preferable to allow
      administrators to lock down this path at the cost of possible
      breakage of legacy applications.
      Signed-off-by: NWillem de Bruijn <willemb@google.com>
      
      ----
      
      Changes
        (v1 -> v2)
        - test socket CAP_NET_RAW instead of capable(CAP_NET_RAW)
        (rfc -> v1)
        - document the sysctl in Documentation/sysctl/net.txt
        - fix access control race: read .._OPT_TSONLY only once,
              use same value for permission check and skb generation.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b245be1f
    • W
      net-timestamp: no-payload option · 49ca0d8b
      Willem de Bruijn 提交于
      Add timestamping option SOF_TIMESTAMPING_OPT_TSONLY. For transmit
      timestamps, this loops timestamps on top of empty packets.
      
      Doing so reduces the pressure on SO_RCVBUF. Payload inspection and
      cmsg reception (aside from timestamps) are no longer possible. This
      works together with a follow on patch that allows administrators to
      only allow tx timestamping if it does not loop payload or metadata.
      Signed-off-by: NWillem de Bruijn <willemb@google.com>
      
      ----
      
      Changes (rfc -> v1)
        - add documentation
        - remove unnecessary skb->len test (thanks to Richard Cochran)
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      49ca0d8b
    • J
      Bluetooth: Remove mgmt_rp_read_local_oob_ext_data struct · 66f096f7
      Johan Hedberg 提交于
      This extended return parameters struct conflicts with the new Read Local
      OOB Extended Data command definition. To avoid the conflict simply
      rename the old "extended" version to the normal one and update the code
      appropriately to take into account the two possible response PDU sizes.
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      66f096f7
  4. 02 2月, 2015 8 次提交
    • M
      Bluetooth: Set HCI_QUIRK_STRICT_DUPLICATE_FILTER for BTUSB_INTEL_NEW · b970c5ba
      Marcel Holtmann 提交于
      The Intel Snowfield Peak Bluetooth controllers use a strict scanning
      filter policy that filters based on Bluetooth device addresses and
      not on RSSI.
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NJohan Hedberg <johan.hedberg@intel.com>
      b970c5ba
    • J
      Bluetooth: Add restarting to service discovery · 4b0e0ced
      Jakub Pawlowski 提交于
      When using LE_SCAN_FILTER_DUP_ENABLE, some controllers would send
      advertising report from each LE device only once. That means that we
      don't get any updates on RSSI value, and makes Service Discovery very
      slow. This patch adds restarting scan when in Service Discovery, and
      device with filtered uuid is found, but it's not in RSSI range to send
      event yet. This way if device moves into range, we will quickly get RSSI
      update.
      Signed-off-by: NJakub Pawlowski <jpawlowski@google.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      4b0e0ced
    • J
      Bluetooth: Add le_scan_restart work for LE scan restarting · 2d28cfe7
      Jakub Pawlowski 提交于
      Currently there is no way to restart le scan, and it's needed in
      service scan method. The way it work: it disable, and then enable le
      scan on controller.
      
      During the restart, we must remember when the scan was started, and
      it's duration, to later re-schedule the le_scan_disable work, that was
      stopped during the stop scan phase.
      Signed-off-by: NJakub Pawlowski <jpawlowski@google.com>
      Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
      2d28cfe7
    • D
      net: rocker: Add support for retrieving port level statistics · 9766e97a
      David Ahern 提交于
      Add support for retrieving port level statistics from device.
      Hook is added for ethtool's stats functionality. For example,
      
      $ ethtool -S eth3
      NIC statistics:
           rx_packets: 12
           rx_bytes: 2790
           rx_dropped: 0
           rx_errors: 0
           tx_packets: 8
           tx_bytes: 728
           tx_dropped: 0
           tx_errors: 0
      Signed-off-by: NDavid Ahern <dsahern@gmail.com>
      Acked-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9766e97a
    • D
      Merge branch 'switchdev_offload_flags' · fe3ef616
      David S. Miller 提交于
      Roopa Prabhu says:
      
      ====================
      switchdev offload flags
      
      This patch series introduces new offload flags for switchdev.
      Kernel network subsystems can use this flag to accelerate
      network functions by offloading to hw.
      
      I expect that there will be need for subsystem specific feature
      flag in the future.
      
      This patch series currently only addresses bridge driver link
      attribute offloads to hardware.
      
      Looking at the current state of bridge l2 offload in the kernel,
          - flag 'self' is the way to directly manage the bridge device in hw via
            the ndo_bridge_setlink/ndo_bridge_getlink calls
      
          - flag 'master' is always used to manage the in kernel bridge devices
            via the same ndo_bridge_setlink/ndo_bridge_getlink calls
      
      Today these are used separately. The nic offloads use hwmode "vepa/veb" to go
      directly to hw with the "self" flag.
      
      At this point i am trying not to introduce any new user facing flags/attributes.
      In the model where we want the kernel bridging to be accelerated with
      hardware, we very much want the bridge driver to be involved.
      
      In this proposal,
      - The offload flag/bit helps switch asic drivers to indicate that they
        accelerate the kernel networking objects/functions
      - The user does not have to specify a new flag to do so. A bridge created with
        switch asic ports will be accelerated if the switch driver supports it.
      - The user can continue to directly manage l2 in nics (ixgbe) using the
        existing hwmode/self flags
      - It also does not stop users from using the 'self' flag to talk to the
        switch asic driver directly
      - Involving the bridge driver makes sure the add/del notifications to user
        space go out after both kernel and hardware are programmed
      
      (To selectively offload bridge port attributes,
      example learning in hw only etc, we can introduce offload bits for
      per bridge port flag attribute as in my previous patch
      https://patchwork.ozlabs.org/patch/413211/. I have not included that in this
      series)
      
      v2
         - try a different name for the offload flag/bit
         - tries to solve the stacked netdev case by traversing the lowerdev
           list to reach the switch port
      
      v3 -
          - Tested with bond as bridge port for the stacked device case.
            Includes a bond_fix_features change to not ignore the
            NETIF_F_HW_NETFUNC_OFFLOAD flag
          - Some checkpatch fixes
      
      v4 -
          - rename flag to NETIF_F_HW_SWITCH_OFFLOAD
          - add ndo_bridge_setlink/dellink handlers in bond and team drivers as
            suggested by jiri.
          - introduce default ndo_dflt_netdev_switch_port_bridge_setlink/dellink
          handlers that masters can use to call offload api on lowerdevs.
      ====================
      Signed-off-by: NRoopa Prabhu <roopa@cumulusnetworks.com>
      fe3ef616
    • R
      team: handle NETIF_F_HW_SWITCH_OFFLOAD flag and add ndo_bridge_setlink/dellink handlers · a16a8ee7
      Roopa Prabhu 提交于
      Currently ndo_bridge_setlink and ndo_bridge_dellink handlers point
      to the default switchdev handlers
      
      This follows my bonding driver changes.
      
      I have only compile tested this patch. However similar
      bonding code has been tested.
      Signed-off-by: NRoopa Prabhu <roopa@cumulusnetworks.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a16a8ee7
    • R
      bonding: handle NETIF_F_HW_SWITCH_OFFLOAD flag and add ndo_bridge_setlink/dellink handlers · c158cba3
      Roopa Prabhu 提交于
      We want bond to pick up the offload flag if any of its slaves have it.
      
      NETIF_F_HW_SWITCH_OFFLOAD flag is added to the mask, so that
      netdev_increment_features does not ignore it.
      
      This also adds ndo_bridge_setlink and ndo_bridge_dellink handlers.
      These currently point to the default handlers provided by the
      switchdev api.
      Signed-off-by: NRoopa Prabhu <roopa@cumulusnetworks.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c158cba3
    • R
      rocker: set feature NETIF_F_HW_SWITCH_OFFLOAD · eb0ac420
      Roopa Prabhu 提交于
      This patch sets the NETIF_F_HW_SWITCH_OFFLOAD feature flag on rocker ports
      Signed-off-by: NRoopa Prabhu <roopa@cumulusnetworks.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      eb0ac420