1. 10 Jan, 2021 11 commits
  2. 09 Jan, 2021 18 commits
  3. 08 Jan, 2021 11 commits
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 833d22f2
      Jakub Kicinski authored
      Trivial conflict in CAN on file rename.
      
      Conflicts:
      	drivers/net/can/m_can/tcan4x5x-core.c
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      833d22f2
    • Linus Torvalds's avatar
      Merge tag 'net-5.11-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 6279d812
      Linus Torvalds authored
      Pull more networking fixes from Jakub Kicinski:
       "Slightly lighter pull request to get back into the Thursday cadence.
      
        Current release - always broken:
      
         - can: mcp251xfd: fix Tx/Rx ring buffer driver race conditions
      
         - dsa: hellcreek: fix led_classdev build errors
      
        Previous releases - regressions:
      
         - ipv6: fib: flush exceptions when purging route to avoid netdev
           reference leak
      
         - ip_tunnels: fix pmtu check in nopmtudisc mode
      
         - ip: always refragment ip defragmented packets to avoid MTU issues
           when forwarding through tunnels, correct "packet too big" message
           is prohibitively tricky to generate
      
         - s390/qeth: fix locking for discipline setup / removal and during
           recovery to prevent both deadlocks and races
      
         - mlx5: Use port_num 1 instead of 0 when delete a RoCE address
      
        Previous releases - always broken:
      
         - cdc_ncm: correct overhead calculation in delayed_ndp_size to
           prevent out of bound accesses with Huawei 909s-120 LTE module
      
         - fix stmmac dwmac-sun8i suspend/resume:
                 - PHY being left powered off
                 - MAC syscon configuration being reset
                 - reference to the reset controller being improperly dropped
      
         - qrtr: fix null-ptr-deref in qrtr_ns_remove
      
         - can: tcan4x5x: fix bittiming const, use common bittiming from m_can
           driver
      
         - mlx5e: CT: Use per flow counter when CT flow accounting is enabled
      
         - mlx5e: Fix SWP offsets when vlan inserted by driver
      
        Misc:
      
         - bpf: Fix a task_iter bug caused by a bpf -> net merge conflict
           resolution
      
        And the usual many fixes to various error paths"
      
      * tag 'net-5.11-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (69 commits)
        net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE
        s390/qeth: fix L2 header access in qeth_l3_osa_features_check()
        s390/qeth: fix locking for discipline setup / removal
        s390/qeth: fix deadlock during recovery
        selftests: fib_nexthops: Fix wrong mausezahn invocation
        nexthop: Bounce NHA_GATEWAY in FDB nexthop groups
        nexthop: Unlink nexthop group entry in error path
        nexthop: Fix off-by-one error in error path
        octeontx2-af: fix memory leak of lmac and lmac->name
        chtls: Fix chtls resources release sequence
        chtls: Added a check to avoid NULL pointer dereference
        chtls: Replace skb_dequeue with skb_peek
        chtls: Avoid unnecessary freeing of oreq pointer
        chtls: Fix panic when route to peer not configured
        chtls: Remove invalid set_tcb call
        chtls: Fix hardware tid leak
        net: ip: always refragment ip defragmented packets
        net: fix pmtu check in nopmtudisc mode
        selftests: netfilter: add selftest for ipip pmtu discovery with enabled connection tracking
        docs: octeontx2: tune rst markup
        ...
      6279d812
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · ea1c87c1
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes a functional bug in arm/chacha-neon as well as a potential
        buffer overflow in ecdh"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
        crypto: arm/chacha-neon - add missing counter increment
      ea1c87c1
    • Linus Torvalds's avatar
      poll: fix performance regression due to out-of-line __put_user() · ef0ba055
      Linus Torvalds authored
      The kernel test robot reported a -5.8% performance regression on the
      "poll2" test of will-it-scale, and bisected it to commit d55564cf
      ("x86: Make __put_user() generate an out-of-line call").
      
      I didn't expect an out-of-line __put_user() to matter, because no normal
      core code should use that non-checking legacy version of user access any
      more.  But I had overlooked the very odd poll() usage, which does a
      __put_user() to update the 'revents' values of the poll array.
      
      Now, Al Viro correctly points out that instead of updating just the
      'revents' field, it would be much simpler to just copy the _whole_
      pollfd entry, and then we could just use "copy_to_user()" on the whole
      array of entries, the same way we use "copy_from_user()" a few lines
      earlier to get the original values.
      
      But that is not what we've traditionally done, and I worry that threaded
      applications might be concurrently modifying the other fields of the
      pollfd array.  So while Al's suggestion is simpler - and perhaps worth
      trying in the future - this instead keeps the "just update revents"
      model.
      
      To fix the performance regression, use the modern "unsafe_put_user()"
      instead of __put_user(), with the proper "user_write_access_begin()"
      guarding in place. This improves code generation enormously.
      
      Link: https://lore.kernel.org/lkml/20210107134723.GA28532@xsang-OptiPlex-9020/Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Tested-by: default avatarOliver Sang <oliver.sang@intel.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: David Laight <David.Laight@aculab.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ef0ba055
    • Petr Mladek's avatar
      Revert "init/console: Use ttynull as a fallback when there is no console" · a91bd622
      Petr Mladek authored
      This reverts commit 757055ae.
      
      The commit caused that ttynull was used as the default console
      on several systems[1][2][3]. As a result, the console was
      blank even when a better alternative existed.
      
      It happened when there was no console configured
      on the command line and ttynull_init() was the first initcall
      calling register_console().
      
      Or it happened when /dev/ did not exist when console_on_rootfs()
      was called. It was not able to open /dev/console even though
      a console driver was registered. It tried to add ttynull console
      but it obviously did not help. But ttynull became the preferred
      console and was used by /dev/console when it was available later.
      
      The commit tried to fix a historical problem that have been there
      for ages. The primary motivation was the commit 3cffa06a
      ("printk/console: Allow to disable console output by using console=""
       or console=null"). It provided a clean solution for a workaround
       that was widely used and worked only by chance.
      
      This revert causes that the console="" or console=null command line
      options will again work only by chance. These options will cause that
      a particular console will be preferred and the default (tty) ones
      will not get enabled. There will be no console registered at
      all. As a result there won't be stdin, stdout, and stderr for
      the init process. But it worked exactly this way even before.
      
      The proper solution has to fulfill many conditions:
      
        + Register ttynull only when explicitly required or as
          the ultimate fallback.
      
        + ttynull should get associated with /dev/console but it must
          not become preferred console when used as a fallback.
          Especially, it must still be possible to replace it
          by a better console later.
      
      Such a change requires clean up of the register_console() code.
      Otherwise, it would be even harder to follow. Especially, the use
      of has_preferred_console and CON_CONSDEV flag is tricky. The clean
      up is risky. The ordering of consoles is not well defined. And
      any changes tend to break existing user settings.
      
      Do the revert at the least risky solution for now.
      
      [1] https://lore.kernel.org/linux-kselftest/20201221144302.GR4077@smile.fi.intel.com/
      [2] https://lore.kernel.org/lkml/d2a3b3c0-e548-7dd1-730f-59bc5c04e191@synopsys.com/
      [3] https://patchwork.ozlabs.org/project/linux-um/patch/20210105120128.10854-1-thomas@m3y3r.de/Reported-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Reported-by: default avatarVineet Gupta <vgupta@synopsys.com>
      Reported-by: default avatarThomas Meyer <thomas@m3y3r.de>
      Signed-off-by: default avatarPetr Mladek <pmladek@suse.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a91bd622
    • Jakub Kicinski's avatar
      Merge tag 'mlx5-fixes-2021-01-07' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 220efcf9
      Jakub Kicinski authored
      Saeed Mahameed says:
      
      ====================
      mlx5 fixes 2021-01-07
      
      * tag 'mlx5-fixes-2021-01-07' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
        net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups
        net/mlx5e: Fix two double free cases
        net/mlx5: Release devlink object if adev fails
        net/mlx5e: ethtool, Fix restriction of autoneg with 56G
        net/mlx5e: In skb build skip setting mark in switchdev mode
        net/mlx5: E-Switch, fix changing vf VLANID
        net/mlx5e: Fix SWP offsets when vlan inserted by driver
        net/mlx5e: CT: Use per flow counter when CT flow accounting is enabled
        net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address
        net/mlx5e: Add missing capability check for uplink follow
        net/mlx5: Check if lag is supported before creating one
      ====================
      
      Link: https://lore.kernel.org/r/20210107202845.470205-1-saeed@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      220efcf9
    • Aleksander Jan Bajkowski's avatar
      net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE · 3545454c
      Aleksander Jan Bajkowski authored
      Exclude RMII from modes that report 1 GbE support. Reduced MII supports
      up to 100 MbE.
      
      Fixes: 14fceff4 ("net: dsa: Add Lantiq / Intel DSA driver for vrx200")
      Signed-off-by: default avatarAleksander Jan Bajkowski <olek2@wp.pl>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Link: https://lore.kernel.org/r/20210107195818.3878-1-olek2@wp.plSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      3545454c
    • Jakub Kicinski's avatar
      Merge branch 's390-qeth-fixes-2021-01-07' · 286e95ee
      Jakub Kicinski authored
      Julian Wiedmann says:
      
      ====================
      s390/qeth: fixes 2021-01-07
      
      This brings two locking fixes for the device control path.
      Also one fix for a path where our .ndo_features_check() attempts to
      access a non-existent L2 header.
      ====================
      
      Link: https://lore.kernel.org/r/20210107172442.1737-1-jwi@linux.ibm.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      286e95ee
    • Julian Wiedmann's avatar
      s390/qeth: fix L2 header access in qeth_l3_osa_features_check() · f9c48453
      Julian Wiedmann authored
      ip_finish_output_gso() may call .ndo_features_check() even before the
      skb has a L2 header. This conflicts with qeth_get_ip_version()'s attempt
      to inspect the L2 header via vlan_eth_hdr().
      
      Switch to vlan_get_protocol(), as already used further down in the
      common qeth_features_check() path.
      
      Fixes: f13ade19 ("s390/qeth: run non-offload L3 traffic over common xmit path")
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f9c48453
    • Julian Wiedmann's avatar
      s390/qeth: fix locking for discipline setup / removal · b41b554c
      Julian Wiedmann authored
      Due to insufficient locking, qeth_core_set_online() and
      qeth_dev_layer2_store() can run in parallel, both attempting to load &
      setup the discipline (and stepping on each other toes along the way).
      A similar race can also occur between qeth_core_remove_device() and
      qeth_dev_layer2_store().
      
      Access to .discipline is meant to be protected by the discipline_mutex,
      so add/expand the locking in qeth_core_remove_device() and
      qeth_core_set_online().
      Adjust the locking in qeth_l*_remove_device() accordingly, as it's now
      handled by the callers in a consistent manner.
      
      Based on an initial patch by Ursula Braun.
      
      Fixes: 9dc48ccc ("qeth: serialize sysfs-triggered device configurations")
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Reviewed-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b41b554c
    • Julian Wiedmann's avatar
      s390/qeth: fix deadlock during recovery · 0b9902c1
      Julian Wiedmann authored
      When qeth_dev_layer2_store() - holding the discipline_mutex - waits
      inside qeth_l*_remove_device() for a qeth_do_reset() thread to complete,
      we can hit a deadlock if qeth_do_reset() concurrently calls
      qeth_set_online() and thus tries to aquire the discipline_mutex.
      
      Move the discipline_mutex locking outside of qeth_set_online() and
      qeth_set_offline(), and turn the discipline into a parameter so that
      callers understand the dependency.
      
      To fix the deadlock, we can now relax the locking:
      As already established, qeth_l*_remove_device() waits for
      qeth_do_reset() to complete. So qeth_do_reset() itself is under no risk
      of having card->discipline ripped out while it's running, and thus
      doesn't need to take the discipline_mutex.
      
      Fixes: 9dc48ccc ("qeth: serialize sysfs-triggered device configurations")
      Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
      Reviewed-by: default avatarAlexandra Winter <wintera@linux.ibm.com>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      0b9902c1