1. 30 Sep, 2016 14 commits
  2. 29 Sep, 2016 12 commits
    • David Howells's avatar
      rxrpc: Note serial number being ACK'd in the congestion management trace · ed1e8679
      David Howells authored
      Note the serial number of the packet being ACK'd in the congestion
      management trace rather than the serial number of the ACK packet.  Whilst
      the serial number of the ACK packet is useful for matching ACK packet in
      the output of wireshark, the serial number that the ACK is in response to
      is of more use in working out how different trace lines relate.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      ed1e8679
    • David Howells's avatar
      rxrpc: Request more ACKs in slow-start mode · b112a670
      David Howells authored
      Set the request-ACK on more DATA packets whilst we're in slow start mode so
      that we get sufficient ACKs back to supply information to configure the
      window.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      b112a670
    • David Howells's avatar
      rxrpc: Reduce the rxrpc_local::services list to a pointer · 1e9e5c95
      David Howells authored
      Reduce the rxrpc_local::services list to just a pointer as we don't permit
      multiple service endpoints to bind to a single transport endpoints (this is
      excluded by rxrpc_lookup_local()).
      
      The reason we don't allow this is that if you send a request to an AFS
      filesystem service, it will try to talk back to your cache manager on the
      port you sent from (this is how file change notifications are handled).  To
      prevent someone from stealing your CM callbacks, we don't let AF_RXRPC
      sockets share a UDP socket if at least one of them has a service bound.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      1e9e5c95
    • David Howells's avatar
      rxrpc: When activating client conn channels, do state check inside lock · 2629c7fa
      David Howells authored
      In rxrpc_activate_channels(), the connection cache state is checked outside
      of the lock, which means it can change whilst we're waking calls up,
      thereby changing whether or not we're allowed to wake calls up.
      
      Fix this by moving the check inside the locked region.  The check to see if
      all the channels are currently busy can stay outside of the locked region.
      
      Whilst we're at it:
      
       (1) Split the locked section out into its own function so that we can call
           it from other places in a later patch.
      
       (2) Determine the mask of channels dependent on the state as we're going
           to add another state in a later patch that will restrict the number of
           simultaneous calls to 1 on a connection.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      2629c7fa
    • David Howells's avatar
      rxrpc: Make Tx loss-injection go through normal return and adjust tracing · a1767077
      David Howells authored
      In rxrpc_send_data_packet() make the loss-injection path return through the
      same code as the transmission path so that the RTT determination is
      initiated and any future timer shuffling will be done, despite the packet
      having been binned.
      
      Whilst we're at it:
      
       (1) Add to the tx_data tracepoint an indication of whether or not we're
           retransmitting a data packet.
      
       (2) When we're deciding whether or not to request an ACK, rather than
           checking if we're in fast-retransmit mode check instead if we're
           retransmitting.
      
       (3) Don't invoke the lose_skb tracepoint when losing a Tx packet as we're
           not altering the sk_buff refcount nor are we just seeing it after
           getting it off the Tx list.
      
       (4) The rxrpc_skb_tx_lost note is then no longer used so remove it.
      
       (5) rxrpc_lose_skb() no longer needs to deal with rxrpc_skb_tx_lost.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      a1767077
    • David Howells's avatar
      rxrpc: Fix exclusive client connections · 8732db67
      David Howells authored
      Exclusive connections are currently reusable (which they shouldn't be)
      because rxrpc_alloc_client_connection() checks the exclusive flag in the
      rxrpc_connection struct before it's initialised from the function
      parameters.  This means that the DONT_REUSE flag doesn't get set.
      
      Fix this by checking the function parameters for the exclusive flag.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      8732db67
    • David S. Miller's avatar
      Merge branch 'qcom-emac-acpi' · 31fbe81f
      David S. Miller authored
      Timur Tabi says:
      
      ====================
      Add basic ACPI support to the Qualcomm Technologies EMAC driver
      
      This patch series adds support to the EMAC driver for extracting addresses,
      interrupts, and some _DSDs (properties) from ACPI.  The first two patches
      clean up the code, and the third patch adds ACPI-specific functionality.
      
      The first patch fixes a bug with handling the platform_device for the
      internal PHY.  This phy is treated as a separate device in both DT and
      ACPI, but since the platform is not released automatically when the
      driver unloads, managed functions like devm_ioremap_resource cannot be
      used.
      
      The second patch replaces of_get_mac_address with its platform-independent
      equivalent device_get_mac_address.
      
      The third patch parses the ACPI tables to obtain the platform_device for
      the primary EMAC node ("QCOM8070") and the internal phy node ("QCOM8071").
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      31fbe81f
    • Timur Tabi's avatar
      net: qcom/emac: initial ACPI support · 5f3d3807
      Timur Tabi authored
      Add support for reading addresses, interrupts, and _DSD properties
      from ACPI tables, just like with device tree.  The HID for the
      EMAC device itself is QCOM8070.  The internal PHY is represented
      by a child node with a HID of QCOM8071.
      
      The EMAC also has some complex clock initialization requirements
      that are not represented by this patch.  This will be addressed
      in a future patch.
      Signed-off-by: default avatarTimur Tabi <timur@codeaurora.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5f3d3807
    • Timur Tabi's avatar
      net: qcom/emac: use device_get_mac_address · 0de709ac
      Timur Tabi authored
      Replace the DT-specific of_get_mac_address() function with
      device_get_mac_address, which works on both DT and ACPI platforms.  This
      change makes it easier to add ACPI support.
      Signed-off-by: default avatarTimur Tabi <timur@codeaurora.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0de709ac
    • Timur Tabi's avatar
      net: qcom/emac: do not use devm on internal phy pdev · 54e19bc7
      Timur Tabi authored
      The platform_device returned by of_find_device_by_node() is not
      automatically released when the driver unprobes.  Therefore,
      managed calls like devm_ioremap_resource() should not be used.
      Instead, we manually allocate the resources and then free them
      on driver release.
      Signed-off-by: default avatarTimur Tabi <timur@codeaurora.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      54e19bc7
    • Josef Bacik's avatar
      bpf: allow access into map value arrays · 48461135
      Josef Bacik authored
      Suppose you have a map array value that is something like this
      
      struct foo {
      	unsigned iter;
      	int array[SOME_CONSTANT];
      };
      
      You can easily insert this into an array, but you cannot modify the contents of
      foo->array[] after the fact.  This is because we have no way to verify we won't
      go off the end of the array at verification time.  This patch provides a start
      for this work.  We accomplish this by keeping track of a minimum and maximum
      value a register could be while we're checking the code.  Then at the time we
      try to do an access into a MAP_VALUE we verify that the maximum offset into that
      region is a valid access into that memory region.  So in practice, code such as
      this
      
      unsigned index = 0;
      
      if (foo->iter >= SOME_CONSTANT)
      	foo->iter = index;
      else
      	index = foo->iter++;
      foo->array[index] = bar;
      
      would be allowed, as we can verify that index will always be between 0 and
      SOME_CONSTANT-1.  If you wish to use signed values you'll have to have an extra
      check to make sure the index isn't less than 0, or do something like index %=
      SOME_CONSTANT.
      Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
      Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      48461135
    • Eric Dumazet's avatar
      net: do not export sk_stream_write_space · 7836667c
      Eric Dumazet authored
      Since commit 900f65d3 ("tcp: move duplicate code from
      tcp_v4_init_sock()/tcp_v6_init_sock()") we no longer need
      to export sk_stream_write_space()
      
      From: Eric Dumazet <edumazet@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7836667c
  3. 28 Sep, 2016 14 commits
    • Kalle Valo's avatar
      Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git · 15b95a15
      Kalle Valo authored
      ath.git patches for 4.9. Major changes:
      
      ath9k
      
      * disable RNG by default
      15b95a15
    • Lawrence Brakmo's avatar
      tcp: Change txhash on every SYN and RTO retransmit · 3acf3ec3
      Lawrence Brakmo authored
      The current code changes txhash (flowlables) on every retransmitted
      SYN/ACK, but only after the 2nd retransmitted SYN and only after
      tcp_retries1 RTO retransmits.
      
      With this patch:
      1) txhash is changed with every SYN retransmits
      2) txhash is changed with every RTO.
      
      The result is that we can start re-routing around failed (or very
      congested paths) as soon as possible. Otherwise application health
      checks may fail and the connection may be terminated before we start
      to change txhash.
      
      v4: Removed sysctl, txhash is changed for all RTOs
      v3: Removed text saying default value of sysctl is 0 (it is 100)
      v2: Added sysctl documentation and cleaned code
      
      Tested with packetdrill tests
      Signed-off-by: default avatarLawrence Brakmo <brakmo@fb.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3acf3ec3
    • Jouni Malinen's avatar
      MAINTAINERS: hostap: Mark the Host AP driver obsolete · ffd74aca
      Jouni Malinen authored
      This is old code for old hardware and it is not really accurate to claim
      this to be maintained anymore. Change the status to "Obsolete" to make
      it clearer that minor cleanup and other unnecessary changes from
      automated tools is not necessarily beneficial and has larger risk of
      breaking something without being quickly noticed due to lack of testing.
      
      In addition, remove the old mailing list that does not work anymore and
      point the web-page to a more accurate URL.
      Signed-off-by: default avatarJouni Malinen <j@w1.fi>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      ffd74aca
    • Chaehyun Lim's avatar
      ath6kl: fix return value in ath6kl_wmi_set_pvb_cmd · b9301505
      Chaehyun Lim authored
      When building with W=1, we got one warning as belows:
      drivers/net/wireless/ath/ath6kl/wmi.c:3509:6: warning: variable ‘ret’
      set but not used [-Wunused-but-set-variable]
      
      At the end of ath6kl_wmi_set_pvb_cmd, it is returned by 0 regardless of
      return value of ath6kl_wmi_cmd_send.
      This patch fixes return value from 0 to ret that has result of
      ath6kl_wmi_cmd_send execution.
      Signed-off-by: default avatarChaehyun Lim <chaehyun.lim@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      b9301505
    • Miaoqing Pan's avatar
      ath9k: disable RNG by default · 739ccd76
      Miaoqing Pan authored
      ath9k RNG will dominates all the noise sources from the real HW
      RNG, disable it by default. But we strongly recommand to enable
      it if the system without HW RNG, especially on embedded systems.
      Signed-off-by: default avatarMiaoqing Pan <miaoqing@codeaurora.org>
      Acked-by: default avatarStephan Mueller <smueller@chronox.de>
      Acked-by: default avatarStephan Mueller <smueller@chronox.de>
      Reviewed-by: default avatarJason Cooper <jason@lakedaemon.net>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      739ccd76
    • Rajkumar Manoharan's avatar
      ath10k: fix copy engine 5 destination ring stuck · 0628467f
      Rajkumar Manoharan authored
      Firmware is running watchdog timer for tracking copy engine ring index
      and write index. Whenever both indices are stuck at same location for
      given duration, watchdog will be trigger to assert target. While
      updating copy engine destination ring write index, driver ensures that
      write index will not be same as read index by finding delta between these
      two indices (CE_RING_DELTA).
      
      HTT target to host copy engine (CE5) is special case where ring buffers
      will be reused and delta check is not applied while updating write index.
      In rare scenario, whenever CE5 ring is full, both indices will be referring
      same location and this is causing CE ring stuck issue as explained
      above. This issue is originally reported on IPQ4019 during long hour stress
      testing and during veriwave max clients testsuites. The same issue is
      also observed in other chips as well. Fix this by ensuring that write
      index is one less than read index which means that full ring is
      available for receiving data.
      
      Cc: stable@vger.kernel.org
      Tested-by: default avatarTamizh chelvam <c_traja@qti.qualcomm.com>
      Signed-off-by: default avatarRajkumar Manoharan <rmanohar@qti.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      0628467f
    • Mohammed Shafi Shajakhan's avatar
      ath10k: Ignore SWBA event for a vif if its marked for no beacon · b63b33ec
      Mohammed Shafi Shajakhan authored
      Ignore processing further in SWBA event scheduled for a vif, if mac80211
      has marked the particular vif for stop beaconing and brought the vdev
      down in 'ath10k_control_beaconing'. This should potentially avoid ath10k
      warning/error messages while running continuous wifi down/up with max
      number of vaps configured. Found this change during code walk through
      and going through other beacon configuration related functions in ath10k
      Signed-off-by: default avatarMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      b63b33ec
    • Wei Yongjun's avatar
      ath10k: fix error return code in ahb · 931eb6b7
      Wei Yongjun authored
      Fix to return a negative error code from the error handling case
      instead of 0, as done elsewhere in function ath10k_ahb_probe() or
      ath10k_ahb_resource_init().
      Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      931eb6b7
    • Hadar Hen Zion's avatar
      net/sched: pkt_cls: change tc actions order to be as the user sets · fa5effe7
      Hadar Hen Zion authored
      Currently the created tc actions list is reversed against the order
      set by the user.
      Change the actions list order to be the same as was set by the user.
      
      This patch doesn't affect dump actions behavior.
      For dumping, action->order parameter is used so the list order doesn't
      matter.
      Signed-off-by: default avatarHadar Hen Zion <hadarh@mellanox.com>
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Acked-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fa5effe7
    • Sergei Shtylyov's avatar
      sh_eth: add R8A7743/5 support · c099ff3c
      Sergei Shtylyov authored
      Add support for the first two members of the Renesas RZ/G family, RZ/G1M/E
      (also known as  R8A7743/5). The Ether core is the same as in the R-Car gen2
      SoCs, so will share the code/data with them...
      Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c099ff3c
    • David S. Miller's avatar
      Merge branch 'fib-offload-notifications' · 9c5982fe
      David S. Miller authored
      Jiri Pirko says:
      
      ====================
      fib offload: switch to notifier
      
      The goal of this patchset is to allow driver to propagate all prefixes
      configured in kernel down HW. This is necessary for routing to work
      as expected. If we don't do that HW might forward prefixes known to kernel
      incorrectly. Take an example when default route is set in switch HW and there
      is an IP address set on a management (non-switch) port.
      
      Currently, only FIB entries related to the switch port netdev are
      offloaded using switchdev ops. This model is not extendable so the
      first patch introduces a replacement: notifier to propagate FIB entry
      additions and removals to whoever is interested.
      
      The second patch introduces couple of helpers to deal with RTNH_F_OFFLOAD
      flags. Currently it is set in switchdev core. There the assumption is
      that only one offload device exists. But for FIB notifier, we assume
      multiple offload devices. So the patch introduces a per FIB entry
      reference counter and helpers use it in order to achieve this:
         0 means RTNH_F_OFFLOAD is not set, no device offloads this entry
         n means RTNH_F_OFFLOAD is set and the entry is offloaded by n devices
      
      Patches 3 and 4 convert mlxsw and rocker to adopt this new way, registering
      one notifier block for each asic instance. Both of these patches also
      implement internal "abort" mechanism.
      
      Using switchdev ops, "abort" is called by switchdev core whenever there is
      an error during FIB entry add offload. This leads to removal of all
      offloaded entries on system by fib_trie code.
      
      Now the new notifier assumes the driver takes care of the abort action.
      Here's why:
      1) The fact that one HW cannot offload an entry does not mean that the
         others can't do it. So let only one entity to abort and leave the rest
         to work happily.
      2) The driver knows what to in order to properly abort. For example,
         currently abort is broken for mlxsw, as for Spectrum there is a need
         to set 0.0.0.0/0 trap in RALUE register.
      
      The fifth patch removes the old, no longer used FIB offload infrastructure.
      
      The last patch reflects the changes into switchdev documentation file.
      
      ---
      v2->v3:
       -patch 3/6
         -fixed offload inc/dec to be done in fib4_entry_init/fini and only
          in case !trap as suggested by Ido
      v1->v2:
       -patch 3/6:
         -fixed lpm tree setup and binding for abort and pointed out by Ido
         -do nexthop checks as suggested by Ido
         -fix use after free during abort
       -patch 6/6:
         -fixed texts as suggested by Ido
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9c5982fe
    • Jiri Pirko's avatar
      doc: update switchdev L3 section · fd41b0ea
      Jiri Pirko authored
      This is to reflect the change of FIB offload infrastructure from
      switchdev objects to FIB notifier.
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Reviewed-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fd41b0ea
    • Jiri Pirko's avatar
      switchdev: remove FIB offload infrastructure · 347e3b28
      Jiri Pirko authored
      Since this is now taken care of by FIB notifier, remove the code, with
      all unused dependencies.
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      347e3b28
    • Jiri Pirko's avatar
      rocker: use FIB notifications instead of switchdev calls · 936bd486
      Jiri Pirko authored
      Until now, in order to offload a FIB entry to HW we use switchdev op.
      Use the newly introduced FIB notifier infrasturucture to process
      FIB entries to offload the in HW.
      Abort mechanism is now handled within the rocker driver.
      Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      936bd486