1. 09 Jun, 2023 6 commits
    • Ratheesh Kannoth's avatar
      octeontx2-af: Fix promiscuous mode · c0e48937
      Ratheesh Kannoth authored
      CN10KB silicon introduced a new exact match feature,
      which is used for DMAC filtering. The state of installed
      DMAC filters in this exact match table is getting corrupted
      when promiscuous mode is toggled. Fix this by not touching
      Exact match related config when promiscuous mode is toggled.
      
      Fixes: 2dba9459 ("octeontx2-af: Wrapper functions for MAC addr add/del/update/reset")
      Signed-off-by: default avatarRatheesh Kannoth <rkannoth@marvell.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c0e48937
    • Yoshihiro Shimoda's avatar
      net: renesas: rswitch: Fix timestamp feature after all descriptors are used · 0ad4982c
      Yoshihiro Shimoda authored
      The timestamp descriptors were intended to act cyclically. Descriptors
      from index 0 through gq->ring_size - 1 contain actual information, and
      the last index (gq->ring_size) should have LINKFIX to indicate
      the first index 0 descriptor. However, the LINKFIX value is missing,
      causing the timestamp feature to stop after all descriptors are used.
      To resolve this issue, set the LINKFIX to the timestamp descritors.
      Reported-by: default avatarPhong Hoang <phong.hoang.wz@renesas.com>
      Fixes: 33f5d733 ("net: renesas: rswitch: Improve TX timestamp accuracy")
      Signed-off-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0ad4982c
    • Max Tottenham's avatar
      net/sched: act_pedit: Parse L3 Header for L4 offset · 6c02568f
      Max Tottenham authored
      Instead of relying on skb->transport_header being set correctly, opt
      instead to parse the L3 header length out of the L3 headers for both
      IPv4/IPv6 when the Extended Layer Op for tcp/udp is used. This fixes a
      bug if GRO is disabled, when GRO is disabled skb->transport_header is
      set by __netif_receive_skb_core() to point to the L3 header, it's later
      fixed by the upper protocol layers, but act_pedit will receive the SKB
      before the fixups are completed. The existing behavior causes the
      following to edit the L3 header if GRO is disabled instead of the UDP
      header:
      
          tc filter add dev eth0 ingress protocol ip flower ip_proto udp \
       dst_ip 192.168.1.3 action pedit ex munge udp set dport 18053
      
      Also re-introduce a rate-limited warning if we were unable to extract
      the header offset when using the 'ex' interface.
      
      Fixes: 71d0ed70 ("net/act_pedit: Support using offset relative to
      the conventional network headers")
      Signed-off-by: default avatarMax Tottenham <mtottenh@akamai.com>
      Reviewed-by: default avatarJosh Hunt <johunt@akamai.com>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Closes: https://lore.kernel.org/oe-kbuild-all/202305261541.N165u9TZ-lkp@intel.com/Reviewed-by: default avatarPedro Tammela <pctammela@mojatatu.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6c02568f
    • Wes Huang's avatar
      net: usb: qmi_wwan: add support for Compal RXM-G1 · 86319919
      Wes Huang authored
      Add support for Compal RXM-G1 which is based on Qualcomm SDX55 chip.
      This patch adds support for two compositions:
      
      0x9091: DIAG + MODEM + QMI_RMNET + ADB
      0x90db: DIAG + DUN + RMNET + DPL + QDSS(Trace) + ADB
      
      T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
      D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
      P:  Vendor=05c6 ProdID=9091 Rev= 4.14
      S:  Manufacturer=QCOM
      S:  Product=SDXPRAIRIE-MTP _SN:719AB680
      S:  SerialNumber=719ab680
      C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=896mA
      I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
      E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
      E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
      E:  Ad=84(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
      E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
      E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      
      T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
      D:  Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
      P:  Vendor=05c6 ProdID=90db Rev= 4.14
      S:  Manufacturer=QCOM
      S:  Product=SDXPRAIRIE-MTP _SN:719AB680
      S:  SerialNumber=719ab680
      C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=896mA
      I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
      E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
      E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
      E:  Ad=84(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
      E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 3 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=8f(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 4 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=85(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
      E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarWes Huang <wes.huang@moxa.com>
      Acked-by: default avatarBjørn Mork <bjorn@mork.no>
      Link: https://lore.kernel.org/r/20230608030141.3546-1-wes.huang@moxa.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      86319919
    • Yuezhen Luan's avatar
      igb: Fix extts capture value format for 82580/i354/i350 · 6292d743
      Yuezhen Luan authored
      82580/i354/i350 features circle-counter-like timestamp registers
      that are different with newer i210. The EXTTS capture value in
      AUXTSMPx should be converted from raw circle counter value to
      timestamp value in resolution of 1 nanosec by the driver.
      
      This issue can be reproduced on i350 nics, connecting an 1PPS
      signal to a SDP pin, and run 'ts2phc' command to read external
      1PPS timestamp value. On i210 this works fine, but on i350 the
      extts is not correctly converted.
      
      The i350/i354/82580's SYSTIM and other timestamp registers are
      40bit counters, presenting time range of 2^40 ns, that means these
      registers overflows every about 1099s. This causes all these regs
      can't be used directly in contrast to the newer i210/i211s.
      
      The igb driver needs to convert these raw register values to
      valid time stamp format by using kernel timecounter apis for i350s
      families. Here the igb_extts() just forgot to do the convert.
      
      Fixes: 38970eac ("igb: support EXTTS on 82580/i354/i350")
      Signed-off-by: default avatarYuezhen Luan <eggcar.luan@gmail.com>
      Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
      Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
      Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Link: https://lore.kernel.org/r/20230607164116.3768175-1-anthony.l.nguyen@intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      6292d743
    • Guillaume Nault's avatar
      ping6: Fix send to link-local addresses with VRF. · 91ffd1ba
      Guillaume Nault authored
      Ping sockets can't send packets when they're bound to a VRF master
      device and the output interface is set to a slave device.
      
      For example, when net.ipv4.ping_group_range is properly set, so that
      ping6 can use ping sockets, the following kind of commands fails:
        $ ip vrf exec red ping6 fe80::854:e7ff:fe88:4bf1%eth1
      
      What happens is that sk->sk_bound_dev_if is set to the VRF master
      device, but 'oif' is set to the real output device. Since both are set
      but different, ping_v6_sendmsg() sees their value as inconsistent and
      fails.
      
      Fix this by allowing 'oif' to be a slave device of ->sk_bound_dev_if.
      
      This fixes the following kselftest failure:
        $ ./fcnal-test.sh -t ipv6_ping
        [...]
        TEST: ping out, vrf device+address bind - ns-B IPv6 LLA        [FAIL]
      Reported-by: default avatarMirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
      Closes: https://lore.kernel.org/netdev/b6191f90-ffca-dbca-7d06-88a9788def9c@alu.unizg.hr/Tested-by: default avatarMirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
      Fixes: 5e457896 ("net: ipv6: Fix ping to link-local addresses.")
      Signed-off-by: default avatarGuillaume Nault <gnault@redhat.com>
      Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
      Link: https://lore.kernel.org/r/6c8b53108816a8d0d5705ae37bdc5a8322b5e3d9.1686153846.git.gnault@redhat.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      91ffd1ba
  2. 08 Jun, 2023 16 commits
  3. 07 Jun, 2023 18 commits