1. 20 Apr, 2020 1 commit
    • Vladimir Oltean's avatar
      net: dsa: sja1105: enable internal pull-down for RX_DV/CRS_DV/RX_CTL and RX_ER · 135e3018
      Vladimir Oltean authored
      Some boards do not have the RX_ER MII signal connected. Normally in such
      situation, those pins would be grounded, but then again, some boards
      left it electrically floating.
      
      When sending traffic to those switch ports, one can see that the
      N_SOFERR statistics counter is incrementing once per each packet. The
      user manual states for this counter that it may count the number of
      frames "that have the MII error input being asserted prior to or
      up to the SOF delimiter byte". So the switch MAC is sampling an
      electrically floating signal, and preventing proper traffic reception
      because of that.
      
      As a workaround, enable the internal weak pull-downs on the input pads
      for the MII control signals. This way, a floating signal would be
      internally tied to ground.
      
      The logic levels of signals which _are_ externally driven should not be
      bothered by this 40-50 KOhm internal resistor. So it is not an issue to
      enable the internal pull-down unconditionally, irrespective of PHY
      interface type (MII, RMII, RGMII, SGMII) and of board layout.
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      135e3018
  2. 19 Apr, 2020 7 commits
  3. 18 Apr, 2020 7 commits
    • Vladimir Oltean's avatar
      enetc: permit configuration of rx-vlan-filter with ethtool · 7070eea5
      Vladimir Oltean authored
      Each ENETC station interface (SI) has a VLAN filter list and a port
      flag (PSIPVMR) by which it can be put in "VLAN promiscuous" mode, which
      enables the reception of VLAN-tagged traffic even if it is not in the
      VLAN filtering list.
      
      Currently the handling of this setting works like this: the port starts
      off as VLAN promiscuous, then it switches to enabling VLAN filtering as
      soon as the first VLAN is installed in its filter via
      .ndo_vlan_rx_add_vid. In practice that does not work out very well,
      because more often than not, the first VLAN to be installed is out of
      the control of the user: the 8021q module, if loaded, adds its rule for
      802.1p (VID 0) traffic upon bringing the interface up.
      
      What the user is currently seeing in ethtool is this:
      ethtool -k eno2
      rx-vlan-filter: on [fixed]
      
      which doesn't match the intention of the code, but the practical reality
      of having the 8021q module install its VID which has the side-effect of
      turning on VLAN filtering in this driver. All in all, a slightly
      confusing experience.
      
      So instead of letting this driver switch the VLAN filtering state by
      itself, just wire it up with the rx-vlan-filter feature from ethtool,
      and let it be user-configurable just through that knob, except for one
      case, see below.
      
      In promiscuous mode, it is more intuitive that all traffic is received,
      including VLAN tagged traffic. It appears that it is necessary to set
      the flag in PSIPVMR for that to be the case, so VLAN promiscuous mode is
      also temporarily enabled. On exit from promiscuous mode, the setting
      made by ethtool is restored.
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Reviewed-by: default avatarClaudiu Manoil <claudiu.manoil@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7070eea5
    • Vladimir Oltean's avatar
      net: mscc: ocelot: deal with problematic MAC_ETYPE VCAP IS2 rules · 89f9ffd3
      Vladimir Oltean authored
      By default, the VCAP IS2 will produce a single match for each frame, on
      the most specific classification.
      
      Example: a ping packet (ICMP over IPv4 over Ethernet) sent from an IP
      address of 10.0.0.1 and a MAC address of 96:18:82:00:04:01 will match
      this rule:
      
      tc filter add dev swp0 ingress protocol ipv4 \
      	flower skip_sw src_ip 10.0.0.1 action drop
      
      but not this one:
      
      tc filter add dev swp0 ingress \
      	flower skip_sw src_mac 96:18:82:00:04:01 action drop
      
      Currently the driver does not really warn the user in any way about
      this, and the behavior is rather strange anyway.
      
      The current patch is a workaround to force matches on MAC_ETYPE keys
      (DMAC and SMAC) for all packets irrespective of higher layer protocol.
      The setting is made at the port level.
      
      Of course this breaks all other non-src_mac and non-dst_mac matches, so
      rule exclusivity checks have been added to the driver, in order to never
      have rules of both types on any ingress port.
      
      The bits that discard higher-level protocol information are set only
      once a MAC_ETYPE rule is added to a filter block, and only for the ports
      that are bound to that filter block. Then all further non-MAC_ETYPE
      rules added to that filter block should be denied by the ports bound to
      it.
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      89f9ffd3
    • David S. Miller's avatar
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · f89370d4
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      1GbE Intel Wired LAN Driver Updates 2020-04-17
      
      This series contains updates to e1000e and igc only.
      
      Sasha adds partial generic segmentation offload (GSO partial) support to
      the igc driver.  Also added support for translating taprio schedules
      into i225 cycles in igc.  Did clean up of dead code or unused defines in
      the igc driver.  Refactored the code to avoid forward declarations where
      possible.  Enables the NETIF_F_HW_TC flag for igc by default.
      
      Vinicius adds support for ETF offloading using the similar approach that
      taprio offload used.
      
      Kees Cook fixes a clang warning in the e1000e driver by moving the
      declared variable either into the switch case that uses the variable or
      lift them up into the main function body, to help the compiler.
      
      Andre fixed some register overwriting when dumping registers via ethtool
      for igc driver.  Also fixed support for ethtool Network Flow
      Classification (NFC) queue redirection by adding the missing code needed
      to enable the queue selection feature from Receive Address High (RAH)
      register.  Cleans up code to remove the code bits designed to support
      tc-flower filters, since this client part does not support it.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f89370d4
    • Florian Fainelli's avatar
      net: phy: broadcom: Add support for BCM53125 internal PHYs · 123aff2a
      Florian Fainelli authored
      BCM53125 has internal Gigabit PHYs which support interrupts as well as
      statistics, make it possible to configure both of those features with a
      PHY driver entry.
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      123aff2a
    • Florian Fainelli's avatar
      net: phy: mdio-bcm-iproc: Do not show kernel pointer · c6f5f242
      Florian Fainelli authored
      Displaying the virtual address at which the MDIO base register address
      has been mapped is not useful and is not visible with pointer hashing in
      place, replace the message with something indicating successful
      registration instead.
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c6f5f242
    • Florian Fainelli's avatar
      net: dsa: b53: per-port interrupts are optional · 007fc3c0
      Florian Fainelli authored
      Make use of platform_get_irq_byname_optional() to avoid printing
      messages on the kernel console that interrupts cannot be found.
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      007fc3c0
    • David Bauer's avatar
      net: phy: at803x: add support for AR8032 PHY · 5800091a
      David Bauer authored
      This adds support for the Qualcomm Atheros AR8032 Fast Ethernet PHY.
      
      It shares many similarities with the already supported AR8030 PHY but
      additionally supports MII connection to the MAC.
      Signed-off-by: default avatarDavid Bauer <mail@david-bauer.net>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5800091a
  4. 17 Apr, 2020 15 commits
  5. 16 Apr, 2020 10 commits
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-fixes-for-v5.7-rc2' of... · 2fcd8014
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-fixes-for-v5.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome-platform fixes from Benson Leung:
       "Two small fixes for cros_ec_sensorhub_ring.c, addressing issues
        introduced in the cros_ec_sensorhub FIFO support commit"
      
      * tag 'tag-chrome-platform-fixes-for-v5.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: cros_ec_sensorhub: Add missing '\n' in log messages
        platform/chrome: cros_ec_sensorhub: Off by one in cros_sensorhub_send_sample()
      2fcd8014
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · c8372665
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Disable RISCV BPF JIT builds when !MMU, from Björn Töpel.
      
       2) nf_tables leaves dangling pointer after free, fix from Eric Dumazet.
      
       3) Out of boundary write in __xsk_rcv_memcpy(), fix from Li RongQing.
      
       4) Adjust icmp6 message source address selection when routes have a
          preferred source address set, from Tim Stallard.
      
       5) Be sure to validate HSR protocol version when creating new links,
          from Taehee Yoo.
      
       6) CAP_NET_ADMIN should be sufficient to manage l2tp tunnels even in
          non-initial namespaces, from Michael Weiß.
      
       7) Missing release firmware call in mlx5, from Eran Ben Elisha.
      
       8) Fix variable type in macsec_changelink(), caught by KASAN. Fix from
          Taehee Yoo.
      
       9) Fix pause frame negotiation in marvell phy driver, from Clemens
          Gruber.
      
      10) Record RX queue early enough in tun packet paths such that XDP
          programs will see the correct RX queue index, from Gilberto Bertin.
      
      11) Fix double unlock in mptcp, from Florian Westphal.
      
      12) Fix offset overflow in ARM bpf JIT, from Luke Nelson.
      
      13) marvell10g needs to soft reset PHY when coming out of low power
          mode, from Russell King.
      
      14) Fix MTU setting regression in stmmac for some chip types, from
          Florian Fainelli.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (101 commits)
        amd-xgbe: Use __napi_schedule() in BH context
        mISDN: make dmril and dmrim static
        net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes
        net: dsa: mt7530: fix tagged frames pass-through in VLAN-unaware mode
        tipc: fix incorrect increasing of link window
        Documentation: Fix tcp_challenge_ack_limit default value
        net: tulip: make early_486_chipsets static
        dt-bindings: net: ethernet-phy: add desciption for ethernet-phy-id1234.d400
        ipv6: remove redundant assignment to variable err
        net/rds: Use ERR_PTR for rds_message_alloc_sgs()
        net: mscc: ocelot: fix untagged packet drops when enslaving to vlan aware bridge
        selftests/bpf: Check for correct program attach/detach in xdp_attach test
        libbpf: Fix type of old_fd in bpf_xdp_set_link_opts
        libbpf: Always specify expected_attach_type on program load if supported
        xsk: Add missing check on user supplied headroom size
        mac80211: fix channel switch trigger from unknown mesh peer
        mac80211: fix race in ieee80211_register_hw()
        net: marvell10g: soft-reset the PHY when coming out of low power
        net: marvell10g: report firmware version
        net/cxgb4: Check the return from t4_query_params properly
        ...
      c8372665
    • Sebastian Andrzej Siewior's avatar
      amd-xgbe: Use __napi_schedule() in BH context · d518691c
      Sebastian Andrzej Siewior authored
      The driver uses __napi_schedule_irqoff() which is fine as long as it is
      invoked with disabled interrupts by everybody. Since the commit
      mentioned below the driver may invoke xgbe_isr_task() in tasklet/softirq
      context. This may lead to list corruption if another driver uses
      __napi_schedule_irqoff() in IRQ context.
      
      Use __napi_schedule() which safe to use from IRQ and softirq context.
      
      Fixes: 85b85c85 ("amd-xgbe: Re-issue interrupt if interrupt status not cleared")
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Acked-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d518691c
    • Jason Yan's avatar
      mISDN: make dmril and dmrim static · 05eab4f3
      Jason Yan authored
      Fix the following sparse warning:
      
      drivers/isdn/hardware/mISDN/mISDNisar.c:746:12: warning: symbol 'dmril'
      was not declared. Should it be static?
      drivers/isdn/hardware/mISDN/mISDNisar.c:749:12: warning: symbol 'dmrim'
      was not declared. Should it be static?
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarJason Yan <yanaijie@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      05eab4f3
    • Florian Fainelli's avatar
      net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes · 806fd188
      Florian Fainelli authored
      After commit bfcb8132 ("net: dsa:
      configure the MTU for switch ports") my Lamobo R1 platform which uses
      an allwinner,sun7i-a20-gmac compatible Ethernet MAC started to fail
      by rejecting a MTU of 1536. The reason for that is that the DMA
      capabilities are not readable on this version of the IP, and there
      is also no 'tx-fifo-depth' property being provided in Device Tree. The
      property is documented as optional, and is not provided.
      
      Chen-Yu indicated that the FIFO sizes are 4KB for TX and 16KB for RX, so
      provide these values through platform data as an immediate fix until
      various Device Tree sources get updated accordingly.
      
      Fixes: eaf4fac4 ("net: stmmac: Do not accept invalid MTU values")
      Suggested-by: default avatarChen-Yu Tsai <wens@csie.org>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Acked-by: default avatarChen-Yu Tsai <wens@csie.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      806fd188
    • DENG Qingfang's avatar
      net: dsa: mt7530: fix tagged frames pass-through in VLAN-unaware mode · e045124e
      DENG Qingfang authored
      In VLAN-unaware mode, the Egress Tag (EG_TAG) field in Port VLAN
      Control register must be set to Consistent to let tagged frames pass
      through as is, otherwise their tags will be stripped.
      
      Fixes: 83163f7d ("net: dsa: mediatek: add VLAN support for MT7530")
      Signed-off-by: default avatarDENG Qingfang <dqfext@gmail.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Tested-by: default avatarRené van Dorst <opensource@vdorst.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e045124e
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20200416' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 9786cab6
      Linus Torvalds authored
      Pull SELinux fix from Paul Moore:
       "One small SELinux fix to ensure we cleanup properly on an error
        condition"
      
      * tag 'selinux-pr-20200416' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: free str on error in str_read()
      9786cab6
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.7-rc2' of git://github.com/ceph/ceph-client · 3fa84bf9
      Linus Torvalds authored
      Pull ceph fixes from Ilya Dryomov:
      
       - a set of patches for a deadlock on "rbd map" error path
      
       - a fix for invalid pointer dereference and uninitialized variable use
         on asynchronous create and unlink error paths.
      
      * tag 'ceph-for-5.7-rc2' of git://github.com/ceph/ceph-client:
        ceph: fix potential bad pointer deref in async dirops cb's
        rbd: don't mess with a page vector in rbd_notify_op_lock()
        rbd: don't test rbd_dev->opts in rbd_dev_image_release()
        rbd: call rbd_dev_unprobe() after unwatching and flushing notifies
        rbd: avoid a deadlock on header_rwsem when flushing notifies
      3fa84bf9
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 4ede1259
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "This fixes a small race between allocating a snapshot buffer and
        setting the snapshot trigger.
      
        On a slow machine, the trigger can occur before the snapshot is
        allocated causing a warning to be displayed in the ring buffer, and no
        snapshot triggering. Reversing the allocation and the enabling of the
        trigger fixes the problem"
      
      * tag 'trace-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation
      4ede1259
    • Vasily Averin's avatar
      keys: Fix proc_keys_next to increase position index · 86d32f9a
      Vasily Averin authored
      If seq_file .next function does not change position index,
      read after some lseek can generate unexpected output:
      
          $ dd if=/proc/keys bs=1  # full usual output
          0f6bfdf5 I--Q---     2 perm 3f010000  1000  1000 user      4af2f79ab8848d0a: 740
          1fb91b32 I--Q---     3 perm 1f3f0000  1000 65534 keyring   _uid.1000: 2
          27589480 I--Q---     1 perm 0b0b0000     0     0 user      invocation_id: 16
          2f33ab67 I--Q---   152 perm 3f030000     0     0 keyring   _ses: 2
          33f1d8fa I--Q---     4 perm 3f030000  1000  1000 keyring   _ses: 1
          3d427fda I--Q---     2 perm 3f010000  1000  1000 user      69ec44aec7678e5a: 740
          3ead4096 I--Q---     1 perm 1f3f0000  1000 65534 keyring   _uid_ses.1000: 1
          521+0 records in
          521+0 records out
          521 bytes copied, 0,00123769 s, 421 kB/s
      
      But a read after lseek in middle of last line results in the partial
      last line and then a repeat of the final line:
      
          $ dd if=/proc/keys bs=500 skip=1
          dd: /proc/keys: cannot skip to specified offset
          g   _uid_ses.1000: 1
          3ead4096 I--Q---     1 perm 1f3f0000  1000 65534 keyring   _uid_ses.1000: 1
          0+1 records in
          0+1 records out
          97 bytes copied, 0,000135035 s, 718 kB/s
      
      and a read after lseek beyond end of file results in the last line being
      shown:
      
          $ dd if=/proc/keys bs=1000 skip=1   # read after lseek beyond end of file
          dd: /proc/keys: cannot skip to specified offset
          3ead4096 I--Q---     1 perm 1f3f0000  1000 65534 keyring   _uid_ses.1000: 1
          0+1 records in
          0+1 records out
          76 bytes copied, 0,000119981 s, 633 kB/s
      
      See https://bugzilla.kernel.org/show_bug.cgi?id=206283
      
      Fixes: 1f4aace6 ("fs/seq_file.c: simplify seq_file iteration code ...")
      Signed-off-by: default avatarVasily Averin <vvs@virtuozzo.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Reviewed-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      86d32f9a