1. 08 2月, 2019 5 次提交
    • S
      mac80211: pass bssids to elements parsing function · 4abb52a4
      Sara Sharon 提交于
      In multiple BSSID, we have nested IEs inside the multiple
      BSSID IE, that override the external ones for that specific
      BSS. As preparation for supporting that, pass 2 BSSIDs to the
      parse function, the transmitter, and the selected BSSID, so
      it can know which IEs to choose. If the selected BSSID is
      NULL, the outer ones will be applied.
      
      Change ieee80211_bss_info_update to parse elements itself,
      instead of receiving them parsed, so we have the relevant
      bss entry in hand.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      4abb52a4
    • J
      nl80211: use for_each_element() in validate_ie_attr() · 9f308616
      Johannes Berg 提交于
      This makes for much simpler code, simply walk through all
      the elements and check that the last one found ends with
      the end of the data. This works because if any element is
      malformed the walk is aborted, we end up with a mismatch.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      9f308616
    • J
      cfg80211: add various struct element finding helpers · 49a68e0d
      Johannes Berg 提交于
      We currently have a number of helpers to find elements that just
      return a u8 *, change those to return a struct element and add
      inlines to deal with the u8 * compatibility.
      
      Note that the match behaviour is changed to start the natch at
      the data, so conversion from _ie_match to _elem_match need to
      be done carefully.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      49a68e0d
    • J
      mac80211: use element iteration macro in parsing · c17e28d1
      Johannes Berg 提交于
      Instead of open-coding the element walk, use the new macro.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      c17e28d1
    • J
      cfg80211: add and use strongly typed element iteration macros · 0f3b07f0
      Johannes Berg 提交于
      Rather than always iterating elements from frames with pure
      u8 pointers, add a type "struct element" that encapsulates
      the id/datalen/data format of them.
      
      Then, add the element iteration macros
       * for_each_element
       * for_each_element_id
       * for_each_element_extid
      
      which take, as their first 'argument', such a structure and
      iterate through a given u8 array interpreting it as elements.
      
      While at it and since we'll need it, also add
       * for_each_subelement
       * for_each_subelement_id
       * for_each_subelement_extid
      
      which instead of taking data/length just take an outer element
      and use its data/datalen.
      
      Also add for_each_element_completed() to determine if any of
      the loops above completed, i.e. it was able to parse all of
      the elements successfully and no data remained.
      
      Use for_each_element_id() in cfg80211_find_ie_match() as the
      first user of this.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      0f3b07f0
  2. 06 2月, 2019 7 次提交
  3. 05 2月, 2019 10 次提交
    • L
      net: phy: fixed-phy: Drop GPIO from fixed_phy_add() · 5468e82f
      Linus Walleij 提交于
      All users of the fixed_phy_add() pass -1 as GPIO number
      to the fixed phy driver, and all users of fixed_phy_register()
      pass -1 as GPIO number as well, except for the device
      tree MDIO bus.
      
      Any new users should create a proper device and pass the
      GPIO as a descriptor associated with the device so delete
      the GPIO argument from the calls and drop the code looking
      requesting a GPIO in fixed_phy_add().
      
      In fixed phy_register(), investigate the "fixed-link"
      node and pick the GPIO descriptor from "link-gpios" if
      this property exists. Move the corresponding code out
      of of_mdio.c as the fixed phy code anyways requires
      OF to be in use.
      Tested-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5468e82f
    • T
      net/mlx5: Fix code style issue in mlx driver · fc9c5a4a
      Tonghao Zhang 提交于
      Add the tab before '}' and keep the code style consistent.
      Signed-off-by: NTonghao Zhang <xiangxia.m.yue@gmail.com>
      Reviewed-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Acked-by: NSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fc9c5a4a
    • D
      Merge branch 'sh_eth-implement-simple-RX-checksum-offload' · d3ab9df5
      David S. Miller 提交于
      Sergei Shtylyov says:
      
      ====================
      sh_eth: implement simple RX checksum offload
      
      Here's a set of 7 patches against DaveM's 'net-next.git' repo. I'm implemeting
      the simple RX checksum offload (like was done for the 'ravb' driver by Simon
      Horman); it has been only tested on the R8A7740 and R8A77980 SoCs, the other
      SoCs should just work (according to their manuals)...
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d3ab9df5
    • S
      sh_eth: offload RX checksum on SH7763 · 997feb11
      Sergei Shtylyov 提交于
      The SH7763 SoC manual describes the Ether MAC's RX checksum offload
      the same way as it's implemented in the EtherAVB MACs...
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      997feb11
    • S
      sh_eth: offload RX checksum on SH7734 · 06240e1b
      Sergei Shtylyov 提交于
      The SH7734 SoC manual describes the Ether MAC's RX checksum offload
      the same way as it's implemented in the EtherAVB MACs...
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      06240e1b
    • S
      sh_eth: offload RX checksum on R8A77980 · 0da843ad
      Sergei Shtylyov 提交于
      The R-Car V3H (R8A77980) SoC manual describes the Ether MAC's RX checksum
      offload the same way as it's implemented in the EtherAVB MAC...
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0da843ad
    • S
      sh_eth: offload RX checksum on R8A7740 · 040c16fd
      Sergei Shtylyov 提交于
      The R-Mobile A1 (R8A7740) SoC manual describes the Ether MAC's RX checksum
      offload the same way as it's implemented in the EtherAVB MAC...
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Tested-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      040c16fd
    • S
      sh_eth: offload RX checksum on R7S72100 · 48132cd0
      Sergei Shtylyov 提交于
      The RZ/A1H (R7S721000) SoC manual describes the Ether MAC's RX checksum
      offload the same way as it's implemented in the EtherAVB MACs...
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      48132cd0
    • S
      sh_eth: RX checksum offload support · f8e022db
      Sergei Shtylyov 提交于
      Add support for the RX checksum offload. This is enabled by default and
      may be disabled and re-enabled using 'ethtool':
      
      # ethtool -K eth0 rx off
      # ethtool -K eth0 rx on
      
      Some Ether MACs provide a simple checksumming scheme which appears to be
      completely compatible with CHECKSUM_COMPLETE: sum of all packet data after
      the L2 header is appended to packet data; this may be trivially read by
      the driver and used to update the skb accordingly. The same checksumming
      scheme is implemented in the EtherAVB MACs and now supported by the 'ravb'
      driver.
      
      In terms of performance, throughput is close to gigabit line rate with the
      RX checksum offload both enabled and disabled.  The 'perf' output, however,
      appears to indicate that significantly less time is spent in do_csum() --
      this is as expected.
      
      Test results with RX checksum offload enabled:
      
      ~/netperf-2.2pl4# perf record -a ./netperf -t TCP_MAERTS -H 192.168.2.4
      TCP MAERTS TEST to 192.168.2.4
      Recv   Send    Send
      Socket Socket  Message  Elapsed
      Size   Size    Size     Time     Throughput
      bytes  bytes   bytes    secs.    10^6bits/sec
      
      131072  16384  16384    10.01     933.93
      [ perf record: Woken up 8 times to write data ]
      [ perf record: Captured and wrote 1.955 MB perf.data (41940 samples) ]
      ~/netperf-2.2pl4# perf report
      Samples: 41K of event 'cycles:ppp', Event count (approx.): 9915302763
      Overhead  Command          Shared Object             Symbol
         9.44%  netperf          [kernel.kallsyms]         [k] __arch_copy_to_user
         7.75%  swapper          [kernel.kallsyms]         [k] _raw_spin_unlock_irq
         6.31%  swapper          [kernel.kallsyms]         [k] default_idle_call
         5.89%  swapper          [kernel.kallsyms]         [k] arch_cpu_idle
         4.37%  swapper          [kernel.kallsyms]         [k] tick_nohz_idle_exit
         4.02%  netperf          [kernel.kallsyms]         [k] _raw_spin_unlock_irq
         2.52%  netperf          [kernel.kallsyms]         [k] preempt_count_sub
         1.81%  netperf          [kernel.kallsyms]         [k] tcp_recvmsg
         1.80%  netperf          [kernel.kallsyms]         [k] _raw_spin_unlock_irqres
         1.78%  netperf          [kernel.kallsyms]         [k] preempt_count_add
         1.36%  netperf          [kernel.kallsyms]         [k] __tcp_transmit_skb
         1.20%  netperf          [kernel.kallsyms]         [k] __local_bh_enable_ip
         1.10%  netperf          [kernel.kallsyms]         [k] sh_eth_start_xmit
      
      Test results with RX checksum offload disabled:
      
      ~/netperf-2.2pl4# perf record -a ./netperf -t TCP_MAERTS -H 192.168.2.4
      TCP MAERTS TEST to 192.168.2.4
      Recv   Send    Send
      Socket Socket  Message  Elapsed
      Size   Size    Size     Time     Throughput
      bytes  bytes   bytes    secs.    10^6bits/sec
      131072  16384  16384    10.01     932.04
      [ perf record: Woken up 14 times to write data ]
      [ perf record: Captured and wrote 3.642 MB perf.data (78817 samples) ]
      ~/netperf-2.2pl4# perf report
      Samples: 78K of event 'cycles:ppp', Event count (approx.): 18091442796
      Overhead  Command          Shared Object       Symbol
         7.00%  swapper          [kernel.kallsyms]   [k] do_csum
         3.94%  swapper          [kernel.kallsyms]   [k] sh_eth_poll
         3.83%  ksoftirqd/0      [kernel.kallsyms]   [k] do_csum
         3.23%  swapper          [kernel.kallsyms]   [k] _raw_spin_unlock_irq
         2.87%  netperf          [kernel.kallsyms]   [k] __arch_copy_to_user
         2.86%  swapper          [kernel.kallsyms]   [k] arch_cpu_idle
         2.13%  swapper          [kernel.kallsyms]   [k] default_idle_call
         2.12%  ksoftirqd/0      [kernel.kallsyms]   [k] sh_eth_poll
         2.02%  swapper          [kernel.kallsyms]   [k] _raw_spin_unlock_irqrestore
         1.84%  swapper          [kernel.kallsyms]   [k] __softirqentry_text_start
         1.64%  swapper          [kernel.kallsyms]   [k] tick_nohz_idle_exit
         1.53%  netperf          [kernel.kallsyms]   [k] _raw_spin_unlock_irq
         1.32%  netperf          [kernel.kallsyms]   [k] preempt_count_sub
         1.27%  swapper          [kernel.kallsyms]   [k] __pi___inval_dcache_area
         1.22%  swapper          [kernel.kallsyms]   [k] check_preemption_disabled
         1.01%  ksoftirqd/0      [kernel.kallsyms]   [k] _raw_spin_unlock_irqrestore
      
      The above results collected on the R-Car V3H Starter Kit board.
      
      Based on the commit 4d86d381 ("ravb: RX checksum offload")...
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f8e022db
    • S
      sh_eth: rename sh_eth_cpu_data::hw_checksum · 2c2ab5af
      Sergei Shtylyov 提交于
      Commit 62e04b7e ("sh_eth: rename 'sh_eth_cpu_data::hw_crc'") renamed
      the field to 'hw_checksum' for the Ether DMAC "intelligent checksum",
      however some Ether MACs implement a simpler checksumming scheme, so that
      name now seems misleading. Rename that field to 'csmr' as the "intelligent
      checksum" is always controlled by the CSMR register.
      Signed-off-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Reviewed-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2c2ab5af
  4. 04 2月, 2019 18 次提交