1. 15 Aug, 2021 2 commits
  2. 14 Aug, 2021 3 commits
  3. 13 Aug, 2021 10 commits
    • Ilya Leoshkevich's avatar
      selftests/bpf: Fix test_core_autosize on big-endian machines · d164dd9a
      Ilya Leoshkevich authored
      The "probed" part of test_core_autosize copies an integer using
      bpf_core_read() into an integer of a potentially different size.
      On big-endian machines a destination offset is required for this to
      produce a sensible result.
      
      Fixes: 888d83b9 ("selftests/bpf: Validate libbpf's auto-sizing of LD/ST/STX instructions")
      Signed-off-by: default avatarIlya Leoshkevich <iii@linux.ibm.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/bpf/20210812224814.187460-1-iii@linux.ibm.com
      d164dd9a
    • Hao Luo's avatar
      libbpf: Support weak typed ksyms. · 2211c825
      Hao Luo authored
      Currently weak typeless ksyms have default value zero, when they don't
      exist in the kernel. However, weak typed ksyms are rejected by libbpf
      if they can not be resolved. This means that if a bpf object contains
      the declaration of a nonexistent weak typed ksym, it will be rejected
      even if there is no program that references the symbol.
      
      Nonexistent weak typed ksyms can also default to zero just like
      typeless ones. This allows programs that access weak typed ksyms to be
      accepted by verifier, if the accesses are guarded. For example,
      
      extern const int bpf_link_fops3 __ksym __weak;
      
      /* then in BPF program */
      
      if (&bpf_link_fops3) {
         /* use bpf_link_fops3 */
      }
      
      If actual use of nonexistent typed ksym is not guarded properly,
      verifier would see that register is not PTR_TO_BTF_ID and wouldn't
      allow to use it for direct memory reads or passing it to BPF helpers.
      Signed-off-by: default avatarHao Luo <haoluo@google.com>
      Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
      Link: https://lore.kernel.org/bpf/20210812003819.2439037-1-haoluo@google.com
      2211c825
    • Jussi Maki's avatar
      selftests/bpf: Fix running of XDP bonding tests · cf7a5cba
      Jussi Maki authored
      An "innocent" cleanup in the last version of the XDP bonding patchset moved
      the "test__start_subtest" calls to the test main function, but I forgot to
      reverse the condition, which lead to all tests being skipped. Fix it.
      
      Fixes: 6aab1c81 ("selftests/bpf: Add tests for XDP bonding")
      Signed-off-by: default avatarJussi Maki <joamaki@gmail.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Link: https://lore.kernel.org/bpf/20210811123627.20223-1-joamaki@gmail.com
      cf7a5cba
    • Changbin Du's avatar
      net: in_irq() cleanup · afa79d08
      Changbin Du authored
      Replace the obsolete and ambiguos macro in_irq() with new
      macro in_hardirq().
      Signed-off-by: default avatarChangbin Du <changbin.du@gmail.com>
      Link: https://lore.kernel.org/r/20210813145749.86512-1-changbin.du@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      afa79d08
    • Jussi Maki's avatar
      net, bonding: Disallow vlan+srcmac with XDP · 39a0876d
      Jussi Maki authored
      The new vlan+srcmac xmit policy is not implementable with XDP since
      in many cases the 802.1Q payload is not present in the packet. This
      can be for example due to hardware offload or in the case of veth
      due to use of skbuffs internally.
      
      This also fixes the NULL deref with the vlan+srcmac xmit policy
      reported by Jonathan Toppins by additionally checking the skb
      pointer.
      
      Fixes: a815bde5 ("net, bonding: Refactor bond_xmit_hash for use with xdp_buff")
      Reported-by: default avatarJonathan Toppins <jtoppins@redhat.com>
      Signed-off-by: default avatarJussi Maki <joamaki@gmail.com>
      Reviewed-by: default avatarJonathan Toppins <jtoppins@redhat.com>
      Link: https://lore.kernel.org/r/20210812145241.12449-1-joamaki@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      39a0876d
    • Rao Shoaib's avatar
      af_unix: fix holding spinlock in oob handling · 876c14ad
      Rao Shoaib authored
      syzkaller found that OOB code was holding spinlock
      while calling a function in which it could sleep.
      
      Reported-by: syzbot+8760ca6c1ee783ac4abd@syzkaller.appspotmail.com
      Fixes: 314001f0 ("af_unix: Add OOB support")
      Signed-off-by: default avatarRao Shoaib <rao.shoaib@oracle.com>
      Link: https://lore.kernel.org/r/20210811220652.567434-1-Rao.Shoaib@oracle.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      876c14ad
    • Jakub Kicinski's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · f4083a75
      Jakub Kicinski authored
      Conflicts:
      
      drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h
        9e266807 ("bnxt_en: Update firmware call to retrieve TX PTP timestamp")
        9e518f25 ("bnxt_en: 1PPS functions to configure TSIO pins")
        099fdeda ("bnxt_en: Event handler for PPS events")
      
      kernel/bpf/helpers.c
      include/linux/bpf-cgroup.h
        a2baf4e8 ("bpf: Fix potentially incorrect results with bpf_get_local_storage()")
        c7603cfa ("bpf: Add ambient BPF runtime context stored in current")
      
      drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c
        5957cc55 ("net/mlx5: Set all field of mlx5_irq before inserting it to the xarray")
        2d0b41a3 ("net/mlx5: Refcount mlx5_irq with integer")
      
      MAINTAINERS
        7b637cd5 ("MAINTAINERS: fix Microchip CAN BUS Analyzer Tool entry typo")
        7d901a1e ("net: phy: add Maxlinear GPY115/21x/24x driver")
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f4083a75
    • Linus Torvalds's avatar
      Merge tag 'net-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · f8e6dfc6
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "Networking fixes, including fixes from netfilter, bpf, can and
        ieee802154.
      
        The size of this is pretty normal, but we got more fixes for 5.14
        changes this week than last week. Nothing major but the trend is the
        opposite of what we like. We'll see how the next week goes..
      
        Current release - regressions:
      
         - r8169: fix ASPM-related link-up regressions
      
         - bridge: fix flags interpretation for extern learn fdb entries
      
         - phy: micrel: fix link detection on ksz87xx switch
      
         - Revert "tipc: Return the correct errno code"
      
         - ptp: fix possible memory leak caused by invalid cast
      
        Current release - new code bugs:
      
         - bpf: add missing bpf_read_[un]lock_trace() for syscall program
      
         - bpf: fix potentially incorrect results with bpf_get_local_storage()
      
         - page_pool: mask the page->signature before the checking, avoid dma
           mapping leaks
      
         - netfilter: nfnetlink_hook: 5 fixes to information in netlink dumps
      
         - bnxt_en: fix firmware interface issues with PTP
      
         - mlx5: Bridge, fix ageing time
      
        Previous releases - regressions:
      
         - linkwatch: fix failure to restore device state across
           suspend/resume
      
         - bareudp: fix invalid read beyond skb's linear data
      
        Previous releases - always broken:
      
         - bpf: fix integer overflow involving bucket_size
      
         - ppp: fix issues when desired interface name is specified via
           netlink
      
         - wwan: mhi_wwan_ctrl: fix possible deadlock
      
         - dsa: microchip: ksz8795: fix number of VLAN related bugs
      
         - dsa: drivers: fix broken backpressure in .port_fdb_dump
      
         - dsa: qca: ar9331: make proper initial port defaults
      
        Misc:
      
         - bpf: add lockdown check for probe_write_user helper
      
         - netfilter: conntrack: remove offload_pickup sysctl before 5.14 is
           out
      
         - netfilter: conntrack: collect all entries in one cycle,
           heuristically slow down garbage collection scans on idle systems to
           prevent frequent wake ups"
      
      * tag 'net-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (87 commits)
        vsock/virtio: avoid potential deadlock when vsock device remove
        wwan: core: Avoid returning NULL from wwan_create_dev()
        net: dsa: sja1105: unregister the MDIO buses during teardown
        Revert "tipc: Return the correct errno code"
        net: mscc: Fix non-GPL export of regmap APIs
        net: igmp: increase size of mr_ifc_count
        MAINTAINERS: switch to my OMP email for Renesas Ethernet drivers
        tcp_bbr: fix u32 wrap bug in round logic if bbr_init() called after 2B packets
        net: pcs: xpcs: fix error handling on failed to allocate memory
        net: linkwatch: fix failure to restore device state across suspend/resume
        net: bridge: fix memleak in br_add_if()
        net: switchdev: zero-initialize struct switchdev_notifier_fdb_info emitted by drivers towards the bridge
        net: bridge: fix flags interpretation for extern learn fdb entries
        net: dsa: sja1105: fix broken backpressure in .port_fdb_dump
        net: dsa: lantiq: fix broken backpressure in .port_fdb_dump
        net: dsa: lan9303: fix broken backpressure in .port_fdb_dump
        net: dsa: hellcreek: fix broken backpressure in .port_fdb_dump
        bpf, core: Fix kernel-doc notation
        net: igmp: fix data-race in igmp_ifc_timer_expire()
        net: Fix memory leak in ieee802154_raw_deliver
        ...
      f8e6dfc6
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.14-rc6' of git://github.com/ceph/ceph-client · 3a03c67d
      Linus Torvalds authored
      Pull ceph fixes from Ilya Dryomov:
       "A patch to avoid a soft lockup in ceph_check_delayed_caps() from Luis
        and a reference handling fix from Jeff that should address some memory
        corruption reports in the snaprealm area.
      
        Both marked for stable"
      
      * tag 'ceph-for-5.14-rc6' of git://github.com/ceph/ceph-client:
        ceph: take snap_empty_lock atomically with snaprealm refcount change
        ceph: reduce contention in ceph_check_delayed_caps()
      3a03c67d
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-08-13' of git://anongit.freedesktop.org/drm/drm · 82cce5f4
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Another week, another set of pretty regular fixes, nothing really
        stands out too much.
      
        amdgpu:
         - Yellow carp update
         - RAS EEPROM fixes
         - BACO/BOCO fixes
         - Fix a memory leak in an error path
         - Freesync fix
         - VCN harvesting fix
         - Display fixes
      
        i915:
         - GVT fix for Windows VM hang.
         - Display fix of 12 BPC bits for display 12 and newer.
         - Don't try to access some media register for fused off domains.
         - Fix kerneldoc build warnings.
      
        mediatek:
         - Fix dpi bridge bug.
         - Fix cursor plane no update.
      
        meson:
         - Fix colors when booting with HDR"
      
      * tag 'drm-fixes-2021-08-13' of git://anongit.freedesktop.org/drm/drm:
        drm/doc/rfc: drop lmem uapi section
        drm/i915: Only access SFC_DONE when media domain is not fused off
        drm/i915/display: Fix the 12 BPC bits for PIPE_MISC reg
        drm/amd/display: use GFP_ATOMIC in amdgpu_dm_irq_schedule_work
        drm/amd/display: Remove invalid assert for ODM + MPC case
        drm/amd/pm: bug fix for the runtime pm BACO
        drm/amdgpu: handle VCN instances when harvesting (v2)
        drm/meson: fix colour distortion from HDR set during vendor u-boot
        drm/i915/gvt: Fix cached atomics setting for Windows VM
        drm/amdgpu: Add preferred mode in modeset when freesync video mode's enabled.
        drm/amd/pm: Fix a memory leak in an error handling path in 'vangogh_tables_init()'
        drm/amdgpu: don't enable baco on boco platforms in runpm
        drm/amdgpu: set RAS EEPROM address from VBIOS
        drm/amd/pm: update smu v13.0.1 firmware header
        drm/mediatek: Fix cursor plane no update
        drm/mediatek: mtk-dpi: Set out_fmt from config if not the last bridge
        drm/mediatek: dpi: Fix NULL dereference in mtk_dpi_bridge_atomic_check
      82cce5f4
  4. 12 Aug, 2021 25 commits
    • Alex Elder's avatar
      dt-bindings: net: qcom,ipa: make imem interconnect optional · b769cf44
      Alex Elder authored
      On some newer SoCs, the interconnect between IPA and SoC internal
      memory (imem) is not used.  Update the binding to indicate that
      having just the memory and config interconnects is another allowed
      configuration.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Link: https://lore.kernel.org/r/20210811141802.2635424-1-elder@linaro.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b769cf44
    • Alex Elder's avatar
      net: ipa: always inline ipa_aggr_granularity_val() · 676eec8e
      Alex Elder authored
      It isn't required, but all callers of ipa_aggr_granularity_val()
      pass a constant value (IPA_AGGR_GRANULARITY) as the usec argument.
      Two of those callers are in ipa_validate_build(), with the result
      being passed to BUILD_BUG_ON().
      
      Evidently the "sparc64-linux-gcc" compiler (at least) doesn't always
      inline ipa_aggr_granularity_val(), so the result of the function is
      not constant at compile time, and that leads to build errors.
      
      Define the function with the __always_inline attribute to avoid the
      errors.  We can see by inspection that the value passed is never
      zero, so we can just remove its WARN_ON() call.
      
      Fixes: 5bc55884 ("net: ipa: use WARN_ON() rather than assertions")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Link: https://lore.kernel.org/r/20210811135948.2634264-1-elder@linaro.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      676eec8e
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2021-08-12' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · a1fa7268
      Dave Airlie authored
      Short summary of fixes pull:
      
       * meson: Fix colors when booting with HDR
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/YRTb+qUuBYWjJDVg@linux-uq9g.fritz.box
      a1fa7268
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2021-08-12' of... · 3e234e9f
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2021-08-12' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - GVT fix for Windows VM hang.
      - Display fix of 12 BPC bits for display 12 and newer.
      - Don't try to access some media register for fused off domains.
      - Fix kerneldoc build warnings.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/YRU/hnQ1sNr+j37x@intel.com
      3e234e9f
    • Jakub Kicinski's avatar
      Merge tag 'ieee802154-for-davem-2021-08-12' of... · a9a50701
      Jakub Kicinski authored
      Merge tag 'ieee802154-for-davem-2021-08-12' of git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan
      
      Stefan Schmidt says:
      
      ====================
      ieee802154 for net 2021-08-12
      
      Mostly fixes coming from bot reports. Dongliang Mu tackled some syzkaller
      reports in hwsim again and Takeshi Misawa a memory leak  in  ieee802154 raw.
      
      * tag 'ieee802154-for-davem-2021-08-12' of git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan:
        net: Fix memory leak in ieee802154_raw_deliver
        ieee802154: hwsim: fix GPF in hwsim_new_edge_nl
        ieee802154: hwsim: fix GPF in hwsim_set_edge_lqi
      ====================
      
      Link: https://lore.kernel.org/r/20210812183912.1663996-1-stefan@datenfreihafen.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      a9a50701
    • Longpeng(Mike)'s avatar
      vsock/virtio: avoid potential deadlock when vsock device remove · 49b0b6ff
      Longpeng(Mike) authored
      There's a potential deadlock case when remove the vsock device or
      process the RESET event:
      
        vsock_for_each_connected_socket:
            spin_lock_bh(&vsock_table_lock) ----------- (1)
            ...
                virtio_vsock_reset_sock:
                    lock_sock(sk) --------------------- (2)
            ...
            spin_unlock_bh(&vsock_table_lock)
      
      lock_sock() may do initiative schedule when the 'sk' is owned by
      other thread at the same time, we would receivce a warning message
      that "scheduling while atomic".
      
      Even worse, if the next task (selected by the scheduler) try to
      release a 'sk', it need to request vsock_table_lock and the deadlock
      occur, cause the system into softlockup state.
        Call trace:
         queued_spin_lock_slowpath
         vsock_remove_bound
         vsock_remove_sock
         virtio_transport_release
         __vsock_release
         vsock_release
         __sock_release
         sock_close
         __fput
         ____fput
      
      So we should not require sk_lock in this case, just like the behavior
      in vhost_vsock or vmci.
      
      Fixes: 0ea9e1d3 ("VSOCK: Introduce virtio_transport.ko")
      Cc: Stefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: default avatarLongpeng(Mike) <longpeng2@huawei.com>
      Reviewed-by: default avatarStefano Garzarella <sgarzare@redhat.com>
      Link: https://lore.kernel.org/r/20210812053056.1699-1-longpeng2@huawei.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      49b0b6ff
    • Linus Torvalds's avatar
      Merge branch 'for-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · f8fbb47c
      Linus Torvalds authored
      Pull ucounts fix from Eric Biederman:
       "This fixes the ucount sysctls on big endian architectures.
      
        The counts were expanded to be longs instead of ints, and the sysctl
        code was overlooked, so only the low 32bit were being processed. On
        litte endian just processing the low 32bits is fine, but on 64bit big
        endian processing just the low 32bits results in the high order bits
        instead of the low order bits being processed and nothing works
        proper.
      
        This change took a little bit to mature as we have the SYSCTL_ZERO,
        and SYSCTL_INT_MAX macros that are only usable for sysctls operating
        on ints, but unfortunately are not obviously broken. Which resulted in
        the versions of this change working on big endian and not on little
        endian, because the int SYSCTL_ZERO when extended 64bit wound up being
        0x100000000. So we only allowed values greater than 0x100000000 and
        less than 0faff. Which unfortunately broken everything that tried to
        set the sysctls. (First reported with the windows subsystem for
        linux).
      
        I have tested this on x86_64 64bit after first reproducing the
        problems with the earlier version of this change, and then verifying
        the problems do not exist when we use appropriate long min and max
        values for extra1 and extra2"
      
      * 'for-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        ucounts: add missing data type changes
      f8fbb47c
    • Linus Torvalds's avatar
      Merge tag 'sound-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 59cd4f43
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "This seems to be a usual bump in the middle, containing lots of
        pending ASoC fixes:
      
         - Yet another PCM mmap regression fix
      
         - Fix for ASoC DAPM prefix handling
      
         - Various cs42l42 codec fixes
      
         - PCM buffer reference fixes in a few ASoC drivers
      
         - Fixes for ASoC SOF, AMD, tlv320, WM
      
         - HD-audio quirks"
      
      * tag 'sound-5.14-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (32 commits)
        ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 650 G8 Notebook PC
        ALSA: pcm: Fix mmap breakage without explicit buffer setup
        ALSA: hda: Add quirk for ASUS Flow x13
        ASoC: cs42l42: Fix mono playback
        ASoC: cs42l42: Constrain sample rate to prevent illegal SCLK
        ASoC: cs42l42: Fix LRCLK frame start edge
        ASoC: cs42l42: PLL must be running when changing MCLK_SRC_SEL
        ASoC: cs42l42: Remove duplicate control for WNF filter frequency
        ASoC: cs42l42: Fix inversion of ADC Notch Switch control
        ASoC: SOF: Intel: hda-ipc: fix reply size checking
        ASoC: SOF: Intel: Kconfig: fix SoundWire dependencies
        ASoC: amd: Fix reference to PCM buffer address
        ASoC: nau8824: Fix open coded prefix handling
        ASoC: kirkwood: Fix reference to PCM buffer address
        ASoC: uniphier: Fix reference to PCM buffer address
        ASoC: xilinx: Fix reference to PCM buffer address
        ASoC: intel: atom: Fix reference to PCM buffer address
        ASoC: cs42l42: Fix bclk calculation for mono
        ASoC: cs42l42: Don't allow SND_SOC_DAIFMT_LEFT_J
        ASoC: cs42l42: Correct definition of ADC Volume control
        ...
      59cd4f43
    • Andy Shevchenko's avatar
      wwan: core: Avoid returning NULL from wwan_create_dev() · d9d5b896
      Andy Shevchenko authored
      Make wwan_create_dev() to return either valid or error pointer,
      In some cases it may return NULL. Prevent this by converting
      it to the respective error pointer.
      
      Fixes: 9a44c1cc ("net: Add a WWAN subsystem")
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Acked-by: default avatarSergey Ryazanov <ryazanov.s.a@gmail.com>
      Reviewed-by: default avatarLoic Poulain <loic.poulain@linaro.org>
      Link: https://lore.kernel.org/r/20210811124845.10955-1-andriy.shevchenko@linux.intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      d9d5b896
    • David S. Miller's avatar
      Merge tag 'mlx5-updates-2021-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · bed5a942
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      mlx5 updates 2021-08-11
      
      This series provides misc updates to mlx5.
      For more information please see tag log below.
      
      Please pull and let me know if there is any problem.
      
      mlx5-updates-2021-08-11
      
      Misc. cleanup for mlx5.
      
      1) Typos and use of netdev_warn()
      2) smatch cleanup
      3) Minor fix to inner TTC table creation
      4) Dynamic capability cache allocation
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bed5a942
    • David S. Miller's avatar
      Merge branch 'dsa-cross-chip-notifiers' · dea80774
      David S. Miller authored
      Vladimir Oltean says:
      
      ====================
      Improvements to the DSA tag_8021q cross-chip notifiers
      
      This series improves cross-chip notifier error messages and addresses a
      benign error message seen during reboot on a system with disjoint DSA
      trees.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dea80774
    • Vladimir Oltean's avatar
      net: dsa: tag_8021q: don't broadcast during setup/teardown · 724395f4
      Vladimir Oltean authored
      Currently, on my board with multiple sja1105 switches in disjoint trees
      described in commit f66a6a69 ("net: dsa: permit cross-chip bridging
      between all trees in the system"), rebooting the board triggers the
      following benign warnings:
      
      [   12.345566] sja1105 spi2.0: port 0 failed to notify tag_8021q VLAN 1088 deletion: -ENOENT
      [   12.353804] sja1105 spi2.0: port 0 failed to notify tag_8021q VLAN 2112 deletion: -ENOENT
      [   12.362019] sja1105 spi2.0: port 1 failed to notify tag_8021q VLAN 1089 deletion: -ENOENT
      [   12.370246] sja1105 spi2.0: port 1 failed to notify tag_8021q VLAN 2113 deletion: -ENOENT
      [   12.378466] sja1105 spi2.0: port 2 failed to notify tag_8021q VLAN 1090 deletion: -ENOENT
      [   12.386683] sja1105 spi2.0: port 2 failed to notify tag_8021q VLAN 2114 deletion: -ENOENT
      
      Basically switch 1 calls dsa_tag_8021q_unregister, and switch 1's TX and
      RX VLANs cannot be found on switch 2's CPU port.
      
      But why would switch 2 even attempt to delete switch 1's TX and RX
      tag_8021q VLANs from its CPU port? Well, because we use dsa_broadcast,
      and it is supposed that it had added those VLANs in the first place
      (because in dsa_port_tag_8021q_vlan_match, all CPU ports match
      regardless of their tree index or switch index).
      
      The two trees probe asynchronously, and when switch 1 probed, it called
      dsa_broadcast which did not notify the tree of switch 2, because that
      didn't probe yet. But during unbind, switch 2's tree _is_ probed, so it
      _is_ notified of the deletion.
      
      Before jumping to introduce a synchronization mechanism between the
      probing across disjoint switch trees, let's take a step back and see
      whether we _need_ to do that in the first place.
      
      The RX and TX VLANs of switch 1 would be needed on switch 2's CPU port
      only if switch 1 and 2 were part of a cross-chip bridge. And
      dsa_tag_8021q_bridge_join takes care precisely of that (but if probing
      was synchronous, the bridge_join would just end up bumping the VLANs'
      refcount, because they are already installed by the setup path).
      
      Since by the time the ports are bridged, all DSA trees are already set
      up, and we don't need the tag_8021q VLANs of one switch installed on the
      other switches during probe time, the answer is that we don't need to
      fix the synchronization issue.
      
      So make the setup and teardown code paths call dsa_port_notify, which
      notifies only the local tree, and the bridge code paths call
      dsa_broadcast, which let the other trees know as well.
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      724395f4
    • Vladimir Oltean's avatar
      net: dsa: print more information when a cross-chip notifier fails · ab97462b
      Vladimir Oltean authored
      Currently this error message does not say a lot:
      
      [   32.693498] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
      [   32.699725] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
      [   32.705931] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
      [   32.712139] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
      [   32.718347] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
      [   32.724554] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
      
      but in this form, it is immediately obvious (at least to me) what the
      problem is, even without further looking at the code:
      
      [   12.345566] sja1105 spi2.0: port 0 failed to notify tag_8021q VLAN 1088 deletion: -ENOENT
      [   12.353804] sja1105 spi2.0: port 0 failed to notify tag_8021q VLAN 2112 deletion: -ENOENT
      [   12.362019] sja1105 spi2.0: port 1 failed to notify tag_8021q VLAN 1089 deletion: -ENOENT
      [   12.370246] sja1105 spi2.0: port 1 failed to notify tag_8021q VLAN 2113 deletion: -ENOENT
      [   12.378466] sja1105 spi2.0: port 2 failed to notify tag_8021q VLAN 1090 deletion: -ENOENT
      [   12.386683] sja1105 spi2.0: port 2 failed to notify tag_8021q VLAN 2114 deletion: -ENOENT
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ab97462b
    • Daniel Vetter's avatar
      drm/doc/rfc: drop lmem uapi section · ffd5caa2
      Daniel Vetter authored
      We still have quite a bit more work to do with overall reworking of
      the ttm-based dg1 code, but the uapi stuff is now finalized with the
      latest pull. So remove that.
      
      This also fixes kerneldoc build warnings because we've included the
      same headers in two places, resulting in sphinx complaining about
      duplicated symbols. This regression has been created when we moved the
      uapi definitions to the real include/uapi/ folder in 727ecd99
      ("drm/doc/rfc: drop the i915_gem_lmem.h header")
      
      v2: Fix a few references that I missed, the htmldocs build took
      forever.
      Acked-by: default avatarJason Ekstrand <jason@jlekstrand.net>
      Acked-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Tested-by Stephen Rothwell <sfr@canb.auug.org.au> (v1)
      References: https://lore.kernel.org/dri-devel/20210603193242.1ce99344@canb.auug.org.au/Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Fixes: 727ecd99 ("drm/doc/rfc: drop the i915_gem_lmem.h header")
      Cc: Matthew Auld <matthew.auld@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210810142748.1983271-1-daniel.vetter@ffwll.ch
      (cherry picked from commit dae2d288)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      ffd5caa2
    • Matt Roper's avatar
      drm/i915: Only access SFC_DONE when media domain is not fused off · 24d032e2
      Matt Roper authored
      The SFC_DONE register lives within the corresponding VD0/VD2/VD4/VD6
      forcewake domain and is not accessible if the vdbox in that domain is
      fused off and the forcewake is not initialized.
      
      This mistake went unnoticed because until recently we were using the
      wrong register offset for the SFC_DONE register; once the register
      offset was corrected, we started hitting errors like
      
        <4> [544.989065] i915 0000:cc:00.0: Uninitialized forcewake domain(s) 0x80 accessed at 0x1ce000
      
      on parts with fused-off vdbox engines.
      
      Fixes: e50dbdbf ("drm/i915/tgl: Add SFC instdone to error state")
      Fixes: 9c9c6d0a ("drm/i915: Correct SFC_DONE register offset")
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210806174130.1058960-1-matthew.d.roper@intel.comReviewed-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
      (cherry picked from commit c5589bb5)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      [Changed Fixes tag to match the cherry-picked 82929a21]
      24d032e2
    • Andy Shevchenko's avatar
      wwan: core: Unshadow error code returned by ida_alloc_range() · 0de6fd5f
      Andy Shevchenko authored
      ida_alloc_range() may return other than -ENOMEM error code.
      Unshadow it in the wwan_create_port().
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Reviewed-by: default avatarSergey Ryazanov <ryazanov.s.a@gmail.com>
      Reviewed-by: default avatarLoic Poulain <loic.poulain@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0de6fd5f
    • Ankit Nautiyal's avatar
      drm/i915/display: Fix the 12 BPC bits for PIPE_MISC reg · abd9d66a
      Ankit Nautiyal authored
      Till DISPLAY12 the PIPE_MISC bits 5-7 are used to set the
      Dithering BPC, with valid values of 6, 8, 10 BPC.
      For ADLP+ these bits are used to set the PORT OUTPUT BPC, with valid
      values of: 6, 8, 10, 12 BPC, and need to be programmed whether
      dithering is enabled or not.
      
      This patch:
      -corrects the bits 5-7 for PIPE MISC register for 12 BPC.
      -renames the bits and mask to have generic names for these bits for
      dithering bpc and port output bpc.
      
      v3: Added a note for MIPI DSI which uses the PIPE_MISC for readout
      for pipe_bpp. (Uma Shankar)
      
      v2: Added 'display' to the subject and fixes tag. (Uma Shankar)
      
      Fixes: 756f85cf ("drm/i915/bdw: Broadwell has PIPEMISC")
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> (v1)
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: intel-gfx@lists.freedesktop.org
      Cc: <stable@vger.kernel.org> # v3.13+
      Signed-off-by: default avatarAnkit Nautiyal <ankit.k.nautiyal@intel.com>
      Reviewed-by: default avatarUma Shankar <uma.shankar@intel.com>
      Signed-off-by: default avatarUma Shankar <uma.shankar@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210811051857.109723-1-ankit.k.nautiyal@intel.com
      (cherry picked from commit 70418a68)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      abd9d66a
    • Vladimir Oltean's avatar
      net: dsa: sja1105: unregister the MDIO buses during teardown · 700fa08d
      Vladimir Oltean authored
      The call to sja1105_mdiobus_unregister is present in the error path but
      absent from the main driver unbind path.
      
      Fixes: 5a8f0974 ("net: dsa: sja1105: register the MDIO buses for 100base-T1 and 100base-TX")
      Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      700fa08d
    • DENG Qingfang's avatar
      net: dsa: mt7530: fix VLAN traffic leaks again · 7428022b
      DENG Qingfang authored
      When a port leaves a VLAN-aware bridge, the current code does not clear
      other ports' matrix field bit. If the bridge is later set to VLAN-unaware
      mode, traffic in the bridge may leak to that port.
      
      Remove the VLAN filtering check in mt7530_port_bridge_leave.
      
      Fixes: 474a2dda ("net: dsa: mt7530: fix VLAN traffic leaks")
      Fixes: 83163f7d ("net: dsa: mediatek: add VLAN support for MT7530")
      Signed-off-by: default avatarDENG Qingfang <dqfext@gmail.com>
      Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7428022b
    • Oleksij Rempel's avatar
      net: phy: nxp-tja11xx: log critical health state · e0ba6050
      Oleksij Rempel authored
      TJA1102 provides interrupt notification for the critical health states
      like overtemperature and undervoltage.
      
      The overtemperature bit is set if package temperature is beyond 155C°.
      This functionality was tested by heating the package up to 200C°
      
      The undervoltage bit is set if supply voltage drops beyond some critical
      threshold. Currently not tested.
      
      In a typical use case, both of this events should be logged and stored
      (or send to some remote system) for further investigations.
      Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e0ba6050
    • David S. Miller's avatar
      Merge branch 'pktgen-imix' · 445af0d2
      David S. Miller authored
      Nick Richardson says:
      
      ====================
      pktgen: Add IMIX mode
      
      Adds internet mix (IMIX) mode to pktgen. Internet mix is
      included in many user-space network perf testing tools. It allows
      for the user to specify a distribution of discrete packet sizes to be
      generated. This type of test is common among vendors when perf testing
      their devices.
      [RFC link: https://datatracker.ietf.org/doc/html/rfc2544#section-9.1]
      
      This allows users to get a
      more complete picture of how their device will perform in the
      real-world.
      
      This feature adds a command that allows users to specify an imix
      distribution in the following format:
        imix_weights size_1,weight_1 size_2,weight_2 ... size_n,weight_n
      
      The distribution of packets with size_i will be
      (weight_i / total_weights) where
      total_weights = weight_1 + weight_2 + ... + weight_n
      
      For example:
        imix_weights 40,7 576,4 1500,1
      
      The pkt_size "40" will account for 7 / (7 + 4 + 1) = ~58% of the total
      packets sent.
      
      This patch was tested with the following:
      1. imix_weights = 40,7 576,4 1500,1
      2. imix_weights = 0,7 576,4 1500,1
        - Packet size of 0 is resized to the minimum, 42
      3. imix_weights = 40,7 576,4 1500,1 count = 0
        - Zero count.
        - Runs until user stops pktgen.
      Invalid Configurations
      1. clone_skb = 200 imix_weights = 40,7 576,4 1500,1
          - Returns error code -524 (-ENOTSUPP) when setting imix_weights
      2. len(imix_weights) > MAX_IMIX_ENTRIES
          - Returns -7 (-E2BIG)
      
      This patch is split into three parts, each provide different aspects of
      required functionality:
        1. Parse internet mix input.
        2. Add IMIX Distribution representation.
        3. Process and output IMIX results.
      
      Changes in v2:
      * Remove __ prefix outside of uAPI.
      * Use seq_puts instead of seq_printf where necessary.
      * Reorder variable declaration.
      * Return -EINVAL instead of -ENOTSUPP when using IMIX with clone_skb > 0
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      445af0d2
    • Nick Richardson's avatar
      pktgen: Add output for imix results · 769afb3f
      Nick Richardson authored
      The bps for imix mode is calculated by:
      sum(imix_entry.size) / time_elapsed
      
      The actual counts of each imix_entry are displayed under the
      "Current:" section of the interface output in the following format:
      imix_size_counts: size_1,count_1 size_2,count_2 ... size_n,count_n
      
      Example (count = 200000):
      imix_weights: 256,1 859,3 205,2
      imix_size_counts: 256,32082 859,99796 205,68122
      Result: OK: 17992362(c17964678+d27684) usec, 200000 (859byte,0frags)
        11115pps 47Mb/sec (47977140bps) errors: 0
      
      Summary of changes:
      Calculate bps based on imix counters when in IMIX mode.
      Add output for IMIX counters.
      Signed-off-by: default avatarNick Richardson <richardsonnick@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      769afb3f
    • Nick Richardson's avatar
      pktgen: Add imix distribution bins · 90149031
      Nick Richardson authored
      In order to represent the distribution of imix packet sizes, a
      pre-computed data structure is used. It features 100 (IMIX_PRECISION)
      "bins". Contiguous ranges of these bins represent the respective
      packet size of each imix entry. This is done to avoid the overhead of
      selecting the correct imix packet size based on the corresponding weights.
      
      Example:
      imix_weights 40,7 576,4 1500,1
      total_weight = 7 + 4 + 1 = 12
      
      pkt_size 40 occurs 7/total_weight = 58% of the time
      pkt_size 576 occurs 4/total_weight = 33% of the time
      pkt_size 1500 occurs 1/total_weight = 9% of the time
      
      We generate a random number between 0-100 and select the corresponding
      packet size based on the specified weights.
      Eg. random number = 358723895 % 100 = 65
      Selects the packet size corresponding to index:65 in the pre-computed
      imix_distribution array.
      An example of the  pre-computed array is below:
      
      The imix_distribution will look like the following:
      0        ->  0 (index of imix_entry.size == 40)
      1        ->  0 (index of imix_entry.size == 40)
      2        ->  0 (index of imix_entry.size == 40)
      [...]    ->  0 (index of imix_entry.size == 40)
      57       ->  0 (index of imix_entry.size == 40)
      58       ->  1 (index of imix_entry.size == 576)
      [...]    ->  1 (index of imix_entry.size == 576)
      90       ->  1 (index of imix_entry.size == 576)
      91       ->  2 (index of imix_entry.size == 1500)
      [...]    ->  2 (index of imix_entry.size == 1500)
      99       ->  2 (index of imix_entry.size == 1500)
      
      Create and use "bin" representation of the imix distribution.
      Signed-off-by: default avatarNick Richardson <richardsonnick@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      90149031
    • Nick Richardson's avatar
      pktgen: Parse internet mix (imix) input · 52a62f86
      Nick Richardson authored
      Adds "imix_weights" command for specifying internet mix distribution.
      
      The command is in this format:
      "imix_weights size_1,weight_1 size_2,weight_2 ... size_n,weight_n"
      where the probability that packet size_i is picked is:
      weight_i / (weight_1 + weight_2 + .. + weight_n)
      
      The user may provide up to 100 imix entries (size_i,weight_i) in this
      command.
      
      The user specified imix entries will be displayed in the "Params"
      section of the interface output.
      
      Values for clone_skb > 0 is not supported in IMIX mode.
      
      Summary of changes:
      Add flag for enabling internet mix mode.
      Add command (imix_weights) for internet mix input.
      Return -ENOTSUPP when clone_skb > 0 in IMIX mode.
      Display imix_weights in Params.
      Create data structures to store imix entries and distribution.
      Signed-off-by: default avatarNick Richardson <richardsonnick@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      52a62f86
    • Hoang Le's avatar
      Revert "tipc: Return the correct errno code" · 86704993
      Hoang Le authored
      This reverts commit 0efea3c6 because of:
      - The returning -ENOBUF error is fine on socket buffer allocation.
      - There is side effect in the calling path
      tipc_node_xmit()->tipc_link_xmit() when checking error code returning.
      
      Fixes: 0efea3c6 ("tipc: Return the correct errno code")
      Acked-by: default avatarJon Maloy <jmaloy@redhat.com>
      Signed-off-by: default avatarHoang Le <hoang.h.le@dektech.com.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      86704993