Skip to content
Permalink
Vladimir-Oltea…
Switch branches/tags

Commits on Nov 19, 2021

  1. net: stmmac: retain PTP clock time during SIOCSHWTSTAMP ioctls

    Currently, when user space emits SIOCSHWTSTAMP ioctl calls such as
    enabling/disabling timestamping or changing filter settings, the driver
    reads the current CLOCK_REALTIME value and programming this into the
    NIC's hardware clock. This might be necessary during system
    initialization, but at runtime, when the PTP clock has already been
    synchronized to a grandmaster, a reset of the timestamp settings might
    result in a clock jump. Furthermore, if the clock is also controlled by
    phc2sys in automatic mode (where the UTC offset is queried from ptp4l),
    that UTC-to-TAI offset (currently 37 seconds in 2021) would be
    temporarily reset to 0, and it would take a long time for phc2sys to
    readjust so that CLOCK_REALTIME and the PHC are apart by 37 seconds
    again.
    
    To address the issue, we introduce a new function called
    stmmac_init_tstamp_counter(), which gets called during ndo_open().
    It contains the code snippet moved from stmmac_hwtstamp_set() that
    manages the time synchronization. Besides, the sub second increment
    configuration is also moved here since the related values are hardware
    dependent and runtime invariant.
    
    Furthermore, the hardware clock must be kept running even when no time
    stamping mode is selected in order to retain the synchronized time base.
    That way, timestamping can be enabled again at any time only with the
    need to compensate the clock's natural drifting.
    
    As a side effect, this patch fixes the issue that ptp_clock_info::enable
    can be called before SIOCSHWTSTAMP and the driver (which looks at
    priv->systime_flags) was not prepared to handle that ordering.
    
    Fixes: 92ba688 ("stmmac: add the support for PTP hw clock driver")
    Reported-by: Michael Olbrich <m.olbrich@pengutronix.de>
    Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
    Signed-off-by: Holger Assmann <h.assmann@pengutronix.de>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    h-assmann authored and intel-lab-lkp committed Nov 19, 2021
  2. stmmac_pci: Fix underflow size in stmmac_rx

    This bug report came up when we were testing the device driver
    by fuzzing. It shows that buf1_len can get underflowed and be
    0xfffffffc (4294967292).
    
    This bug is triggerable with a compromised/malfunctioning device.
    We found the bug through QEMU emulation tested the patch with
    emulation. We did NOT test it on real hardware.
    
    Attached is the bug report by fuzzing.
    
    BUG: KASAN: use-after-free in stmmac_napi_poll_rx+0x1c08/0x36e0 [stmmac]
    Read of size 4294967292 at addr ffff888016358000 by task ksoftirqd/0/9
    
    CPU: 0 PID: 9 Comm: ksoftirqd/0 Tainted: G        W         5.6.0 #1
    Call Trace:
     dump_stack+0x76/0xa0
     print_address_description.constprop.0+0x16/0x200
     ? stmmac_napi_poll_rx+0x1c08/0x36e0 [stmmac]
     ? stmmac_napi_poll_rx+0x1c08/0x36e0 [stmmac]
     __kasan_report.cold+0x37/0x7c
     ? stmmac_napi_poll_rx+0x1c08/0x36e0 [stmmac]
     kasan_report+0xe/0x20
     check_memory_region+0x15a/0x1d0
     memcpy+0x20/0x50
     stmmac_napi_poll_rx+0x1c08/0x36e0 [stmmac]
     ? stmmac_suspend+0x850/0x850 [stmmac]
     ? __next_timer_interrupt+0xba/0xf0
     net_rx_action+0x363/0xbd0
     ? call_timer_fn+0x240/0x240
     ? __switch_to_asm+0x40/0x70
     ? napi_busy_loop+0x520/0x520
     ? __schedule+0x839/0x15a0
     __do_softirq+0x18c/0x634
     ? takeover_tasklets+0x5f0/0x5f0
     run_ksoftirqd+0x15/0x20
     smpboot_thread_fn+0x2f1/0x6b0
     ? smpboot_unregister_percpu_thread+0x160/0x160
     ? __kthread_parkme+0x80/0x100
     ? smpboot_unregister_percpu_thread+0x160/0x160
     kthread+0x2b5/0x3b0
     ? kthread_create_on_node+0xd0/0xd0
     ret_from_fork+0x22/0x40
    
    Reported-by: Brendan Dolan-Gavitt <brendandg@nyu.edu>
    Signed-off-by: Zekun Shen <bruceshenzk@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    buszk authored and davem330 committed Nov 19, 2021
  3. atlantic: fix double-free in aq_ring_tx_clean

    We found this bug while fuzzing the device driver. Using and freeing
    the dangling pointer buff->skb would cause use-after-free and
    double-free.
    
    This bug is triggerable with compromised/malfunctioning devices. We
    found the bug with QEMU emulation and tested the patch by emulation.
    We did NOT test on a real device.
    
    Attached is the bug report.
    
    BUG: KASAN: double-free or invalid-free in consume_skb+0x6c/0x1c0
    
    Call Trace:
     dump_stack+0x76/0xa0
     print_address_description.constprop.0+0x16/0x200
     ? consume_skb+0x6c/0x1c0
     kasan_report_invalid_free+0x61/0xa0
     ? consume_skb+0x6c/0x1c0
     __kasan_slab_free+0x15e/0x170
     ? consume_skb+0x6c/0x1c0
     kfree+0x8c/0x230
     consume_skb+0x6c/0x1c0
     aq_ring_tx_clean+0x5c2/0xa80 [atlantic]
     aq_vec_poll+0x309/0x5d0 [atlantic]
     ? _sub_I_65535_1+0x20/0x20 [atlantic]
     ? __next_timer_interrupt+0xba/0xf0
     net_rx_action+0x363/0xbd0
     ? call_timer_fn+0x240/0x240
     ? __switch_to_asm+0x34/0x70
     ? napi_busy_loop+0x520/0x520
     ? net_tx_action+0x379/0x720
     __do_softirq+0x18c/0x634
     ? takeover_tasklets+0x5f0/0x5f0
     run_ksoftirqd+0x15/0x20
     smpboot_thread_fn+0x2f1/0x6b0
     ? smpboot_unregister_percpu_thread+0x160/0x160
     ? __kthread_parkme+0x80/0x100
     ? smpboot_unregister_percpu_thread+0x160/0x160
     kthread+0x2b5/0x3b0
     ? kthread_create_on_node+0xd0/0xd0
     ret_from_fork+0x22/0x40
    
    Reported-by: Brendan Dolan-Gavitt <brendandg@nyu.edu>
    Signed-off-by: Zekun Shen <bruceshenzk@gmail.com>
    Reviewed-by: Igor Russkikh <irusskikh@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    buszk authored and davem330 committed Nov 19, 2021
  4. net: marvell: prestera: fix double free issue on err path

    fix error path handling in prestera_bridge_port_join() that
    cases prestera driver to crash (see below).
    
     Trace:
       Internal error: Oops: 96000044 [#1] SMP
       Modules linked in: prestera_pci prestera uio_pdrv_genirq
       CPU: 1 PID: 881 Comm: ip Not tainted 5.15.0 #1
       pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
       pc : prestera_bridge_destroy+0x2c/0xb0 [prestera]
       lr : prestera_bridge_port_join+0x2cc/0x350 [prestera]
       sp : ffff800011a1b0f0
       ...
       x2 : ffff000109ca6c80 x1 : dead000000000100 x0 : dead000000000122
        Call trace:
       prestera_bridge_destroy+0x2c/0xb0 [prestera]
       prestera_bridge_port_join+0x2cc/0x350 [prestera]
       prestera_netdev_port_event.constprop.0+0x3c4/0x450 [prestera]
       prestera_netdev_event_handler+0xf4/0x110 [prestera]
       raw_notifier_call_chain+0x54/0x80
       call_netdevice_notifiers_info+0x54/0xa0
       __netdev_upper_dev_link+0x19c/0x380
    
    Fixes: e1189d9 ("net: marvell: prestera: Add Switchdev driver implementation")
    Signed-off-by: Volodymyr Mytnyk <vmytnyk@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Volodymyr Mytnyk authored and davem330 committed Nov 19, 2021
  5. net: marvell: prestera: fix brige port operation

    Return NOTIFY_DONE (dont't care) for switchdev notifications
    that prestera driver don't know how to handle them.
    
    With introduction of SWITCHDEV_BRPORT_[UN]OFFLOADED switchdev
    events, the driver rejects adding swport to bridge operation
    which is handled by prestera_bridge_port_join() func. The root
    cause of this is that prestera driver returns error (EOPNOTSUPP)
    in prestera_switchdev_blk_event() handler for unknown swdev
    events. This causes switchdev_bridge_port_offload() to fail
    when adding port to bridge in prestera_bridge_port_join().
    
    Fixes: 957e223 ("net: make switchdev_bridge_port_{,unoffload} loosely coupled with the bridge")
    Signed-off-by: Volodymyr Mytnyk <vmytnyk@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Volodymyr Mytnyk authored and davem330 committed Nov 19, 2021
  6. Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf

    Pablo Neira Ayuso says:
    
    ====================
    Netfilter fixes for net
    
    The following patchset contains Netfilter/IPVS fixes for net:
    
    1) Add selftest for vrf+conntrack, from Florian Westphal.
    
    2) Extend nfqueue selftest to cover nfqueue, also from Florian.
    
    3) Remove duplicated include in nft_payload, from Wan Jiabing.
    
    4) Several improvements to the nat port shadowing selftest,
       from Phil Sutter.
    
    5) Fix filtering of reply tuple in ctnetlink, from Florent Fourcot.
    
    6) Do not override error with -EINVAL in filter setup path, also
       from Florent.
    
    7) Honor sysctl_expire_nodest_conn regardless conn_reuse_mode for
       reused connections, from yangxingwu.
    
    8) Replace snprintf() by sysfs_emit() in xt_IDLETIMER as reported
       by Coccinelle, from Jing Yao.
    
    9) Incorrect IPv6 tunnel match in flowtable offload, from Will
       Mortensen.
    
    10) Switch port shadow selftest to use socat, from Florian Westphal.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 19, 2021

Commits on Nov 18, 2021

  1. Merge tag 'net-5.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/netdev/net
    
    Pull networking fixes from Jakub Kicinski:
     "Including fixes from bpf, mac80211.
    
      Current release - regressions:
    
       - devlink: don't throw an error if flash notification sent before
         devlink visible
    
       - page_pool: Revert "page_pool: disable dma mapping support...",
         turns out there are active arches who need it
    
      Current release - new code bugs:
    
       - amt: cancel delayed_work synchronously in amt_fini()
    
      Previous releases - regressions:
    
       - xsk: fix crash on double free in buffer pool
    
       - bpf: fix inner map state pruning regression causing program
         rejections
    
       - mac80211: drop check for DONT_REORDER in __ieee80211_select_queue,
         preventing mis-selecting the best effort queue
    
       - mac80211: do not access the IV when it was stripped
    
       - mac80211: fix radiotap header generation, off-by-one
    
       - nl80211: fix getting radio statistics in survey dump
    
       - e100: fix device suspend/resume
    
      Previous releases - always broken:
    
       - tcp: fix uninitialized access in skb frags array for Rx 0cp
    
       - bpf: fix toctou on read-only map's constant scalar tracking
    
       - bpf: forbid bpf_ktime_get_coarse_ns and bpf_timer_* in tracing
         progs
    
       - tipc: only accept encrypted MSG_CRYPTO msgs
    
       - smc: transfer remaining wait queue entries during fallback, fix
         missing wake ups
    
       - udp: validate checksum in udp_read_sock() (when sockmap is used)
    
       - sched: act_mirred: drop dst for the direction from egress to
         ingress
    
       - virtio_net_hdr_to_skb: count transport header in UFO, prevent
         allowing bad skbs into the stack
    
       - nfc: reorder the logic in nfc_{un,}register_device, fix unregister
    
       - ipsec: check return value of ipv6_skip_exthdr
    
       - usb: r8152: add MAC passthrough support for more Lenovo Docks"
    
    * tag 'net-5.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (96 commits)
      ptp: ocp: Fix a couple NULL vs IS_ERR() checks
      net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock()
      net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of bound
      ipv6: check return value of ipv6_skip_exthdr
      e100: fix device suspend/resume
      devlink: Don't throw an error if flash notification sent before devlink visible
      page_pool: Revert "page_pool: disable dma mapping support..."
      ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in hns_dsaf_ge_srst_by_port()
      octeontx2-af: debugfs: don't corrupt user memory
      NFC: add NCI_UNREG flag to eliminate the race
      NFC: reorder the logic in nfc_{un,}register_device
      NFC: reorganize the functions in nci_request
      tipc: check for null after calling kmemdup
      i40e: Fix display error code in dmesg
      i40e: Fix creation of first queue by omitting it if is not power of two
      i40e: Fix warning message and call stack during rmmod i40e driver
      i40e: Fix ping is lost after configuring ADq on VF
      i40e: Fix changing previously set num_queue_pairs for PFs
      i40e: Fix NULL ptr dereference on VSI filter sync
      i40e: Fix correct max_pkt_size on VF RX queue
      ...
    torvalds committed Nov 18, 2021
  2. Merge tag 'for-5.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/kdave/linux
    
    Pull btrfs fixes from David Sterba:
     "Several xes and one old ioctl deprecation. Namely there's fix for
      crashes/warnings with lzo compression that was suspected to be caused
      by first pull merge resolution, but it was a different bug.
    
      Summary:
    
       - regression fix for a crash in lzo due to missing boundary checks of
         the page array
    
       - fix crashes on ARM64 due to missing barriers when synchronizing
         status bits between work queues
    
       - silence lockdep when reading chunk tree during mount
    
       - fix false positive warning in integrity checker on devices with
         disabled write caching
    
       - fix signedness of bitfields in scrub
    
       - start deprecation of balance v1 ioctl"
    
    * tag 'for-5.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
      btrfs: deprecate BTRFS_IOC_BALANCE ioctl
      btrfs: make 1-bit bit-fields of scrub_page unsigned int
      btrfs: check-integrity: fix a warning on write caching disabled disk
      btrfs: silence lockdep when reading chunk tree during mount
      btrfs: fix memory ordering between normal and ordered work functions
      btrfs: fix a out-of-bound access in copy_compressed_data_to_page()
    torvalds committed Nov 18, 2021
  3. Merge tag 'fs_for_v5.16-rc2' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/jack/linux-fs
    
    Pull UDF fix from Jan Kara:
     "A fix for a long-standing UDF bug where we were not properly
      validating directory position inside readdir"
    
    * tag 'fs_for_v5.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
      udf: Fix crash after seekdir
    torvalds committed Nov 18, 2021
  4. Merge tag 'fs.idmapped.v5.16-rc2' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/brauner/linux
    
    Pull setattr idmapping fix from Christian Brauner:
     "This contains a simple fix for setattr. When determining the validity
      of the attributes the ia_{g,u}id fields contain the value that will be
      written to inode->i_{g,u}id. When the {g,u}id attribute of the file
      isn't altered and the caller's fs{g,u}id matches the current {g,u}id
      attribute the attribute change is allowed.
    
      The value in ia_{g,u}id does already account for idmapped mounts and
      will have taken the relevant idmapping into account. So in order to
      verify that the {g,u}id attribute isn't changed we simple need to
      compare the ia_{g,u}id value against the inode's i_{g,u}id value.
    
      This only has any meaning for idmapped mounts as idmapping helpers are
      idempotent without them. And for idmapped mounts this really only has
      a meaning when circular idmappings are used, i.e. mappings where e.g.
      id 1000 is mapped to id 1001 and id 1001 is mapped to id 1000. Such
      ciruclar mappings can e.g. be useful when sharing the same home
      directory between multiple users at the same time.
    
      Before this patch we could end up denying legitimate attribute changes
      and allowing invalid attribute changes when circular mappings are
      used. To even get into this situation the caller must've been
      privileged both to create that mapping and to create that idmapped
      mount.
    
      This hasn't been seen in the wild anywhere but came up when expanding
      the fstest suite during work on a series of hardening patches. All
      idmapped fstests pass without any regressions and we're adding new
      tests to verify the behavior of circular mappings.
    
      The new tests can be found at [1]"
    
    Link: https://lore.kernel.org/linux-fsdevel/20211109145713.1868404-2-brauner@kernel.org [1]
    
    * tag 'fs.idmapped.v5.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
      fs: handle circular mappings correctly
    torvalds committed Nov 18, 2021
  5. Merge tag 'for-5.16/parisc-4' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/deller/parisc-linux
    
    Pull parisc fixes from Helge Deller:
     "parisc bug and warning fixes and wire up futex_waitv.
    
      Fix some warnings which showed up with allmodconfig builds, a revert
      of a change to the sigreturn trampoline which broke signal handling,
      wire up futex_waitv and add CONFIG_PRINTK_TIME=y to 32bit defconfig"
    
    * tag 'for-5.16/parisc-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
      parisc: Enable CONFIG_PRINTK_TIME=y in 32bit defconfig
      Revert "parisc: Reduce sigreturn trampoline to 3 instructions"
      parisc: Wrap assembler related defines inside __ASSEMBLY__
      parisc: Wire up futex_waitv
      parisc: Include stringify.h to avoid build error in crypto/api.c
      parisc/sticon: fix reverse colors
    torvalds committed Nov 18, 2021
  6. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

    Pull KVM fixes from Paolo Bonzini:
     "Selftest changes:
    
       - Cleanups for the perf test infrastructure and mapping hugepages
    
       - Avoid contention on mmap_sem when the guests start to run
    
       - Add event channel upcall support to xen_shinfo_test
    
      x86 changes:
    
       - Fixes for Xen emulation
    
       - Kill kvm_map_gfn() / kvm_unmap_gfn() and broken gfn_to_pfn_cache
    
       - Fixes for migration of 32-bit nested guests on 64-bit hypervisor
    
       - Compilation fixes
    
       - More SEV cleanups
    
      Generic:
    
       - Cap the return value of KVM_CAP_NR_VCPUS to both KVM_CAP_MAX_VCPUS
         and num_online_cpus(). Most architectures were only using one of
         the two"
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (42 commits)
      KVM: x86: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS
      KVM: s390: Cap KVM_CAP_NR_VCPUS by num_online_cpus()
      KVM: RISC-V: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS
      KVM: PPC: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS
      KVM: MIPS: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS
      KVM: arm64: Cap KVM_CAP_NR_VCPUS by kvm_arm_default_max_vcpus()
      KVM: x86: Assume a 64-bit hypercall for guests with protected state
      selftests: KVM: Add /x86_64/sev_migrate_tests to .gitignore
      riscv: kvm: fix non-kernel-doc comment block
      KVM: SEV: Fix typo in and tweak name of cmd_allowed_from_miror()
      KVM: SEV: Drop a redundant setting of sev->asid during initialization
      KVM: SEV: WARN if SEV-ES is marked active but SEV is not
      KVM: SEV: Set sev_info.active after initial checks in sev_guest_init()
      KVM: SEV: Disallow COPY_ENC_CONTEXT_FROM if target has created vCPUs
      KVM: Kill kvm_map_gfn() / kvm_unmap_gfn() and gfn_to_pfn_cache
      KVM: nVMX: Use a gfn_to_hva_cache for vmptrld
      KVM: nVMX: Use kvm_read_guest_offset_cached() for nested VMCS check
      KVM: x86/xen: Use sizeof_field() instead of open-coding it
      KVM: nVMX: Use kvm_{read,write}_guest_cached() for shadow_vmcs12
      KVM: x86/xen: Fix get_attr of KVM_XEN_ATTR_TYPE_SHARED_INFO
      ...
    torvalds committed Nov 18, 2021
  7. Merge tag 'docs-5.16-2' of git://git.lwn.net/linux

    Pull documentation fixes from Jonathan Corbet:
     "A handful of documentation fixes for 5.16"
    
    * tag 'docs-5.16-2' of git://git.lwn.net/linux:
      Documentation/process: fix a cross reference
      Documentation: update vcpu-requests.rst reference
      docs: accounting: update delay-accounting.rst reference
      libbpf: update index.rst reference
      docs: filesystems: Fix grammatical error "with" to "which"
      doc/zh_CN: fix a translation error in management-style
      docs: ftrace: fix the wrong path of tracefs
      Documentation: arm: marvell: Fix link to armada_1000_pb.pdf document
      Documentation: arm: marvell: Put Armada XP section between Armada 370 and 375
      Documentation: arm: marvell: Add some links to homepage / product infos
      docs: Update Sphinx requirements
    torvalds committed Nov 18, 2021
  8. Merge tag 'printk-for-5.16-fixup' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/printk/linux
    
    Pull printk fixes from Petr Mladek:
    
     - Try to flush backtraces from other CPUs also on the local one. This
       was a regression caused by printk_safe buffers removal.
    
     - Remove header dependency warning.
    
    * tag 'printk-for-5.16-fixup' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
      printk: Remove printk.h inclusion in percpu.h
      printk: restore flushing of NMI buffers on remote CPUs after NMI backtraces
    torvalds committed Nov 18, 2021
  9. ptp: ocp: Fix a couple NULL vs IS_ERR() checks

    The ptp_ocp_get_mem() function does not return NULL, it returns error
    pointers.
    
    Fixes: 773bda9 ("ptp: ocp: Expose various resources on the timecard.")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    error27 authored and davem330 committed Nov 18, 2021
  10. net: ethernet: dec: tulip: de4x5: fix possible array overflows in typ…

    …e3_infoblock()
    
    The definition of macro MOTO_SROM_BUG is:
      #define MOTO_SROM_BUG    (lp->active == 8 && (get_unaligned_le32(
      dev->dev_addr) & 0x00ffffff) == 0x3e0008)
    
    and the if statement
      if (MOTO_SROM_BUG) lp->active = 0;
    
    using this macro indicates lp->active could be 8. If lp->active is 8 and
    the second comparison of this macro is false. lp->active will remain 8 in:
      lp->phy[lp->active].gep = (*p ? p : NULL); p += (2 * (*p) + 1);
      lp->phy[lp->active].rst = (*p ? p : NULL); p += (2 * (*p) + 1);
      lp->phy[lp->active].mc  = get_unaligned_le16(p); p += 2;
      lp->phy[lp->active].ana = get_unaligned_le16(p); p += 2;
      lp->phy[lp->active].fdx = get_unaligned_le16(p); p += 2;
      lp->phy[lp->active].ttm = get_unaligned_le16(p); p += 2;
      lp->phy[lp->active].mci = *p;
    
    However, the length of array lp->phy is 8, so array overflows can occur.
    To fix these possible array overflows, we first check lp->active and then
    return -EINVAL if it is greater or equal to ARRAY_SIZE(lp->phy) (i.e. 8).
    
    Reported-by: TOTE Robot <oslab@tsinghua.edu.cn>
    Signed-off-by: Teng Qi <starmiku1207184332@gmail.com>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Teng Qi authored and davem330 committed Nov 18, 2021
  11. net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be…

    … out of bound
    
    In line 5001, if all id in the array 'lp->phy[8]' is not 0, when the
    'for' end, the 'k' is 8.
    
    At this time, the array 'lp->phy[8]' may be out of bound.
    
    Signed-off-by: zhangyue <zhangyue1@kylinos.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    zhangyue authored and davem330 committed Nov 18, 2021
  12. Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/tnguy/net-
    
    queue
    
    Tony Nguyen says:
    
    ====================
    Intel Wired LAN Driver Updates 2021-11-17
    
    This series contains updates to i40e driver only.
    
    Eryk adds accounting for VLAN header in packet size when VF port VLAN is
    configured. He also fixes TC queue distribution when the user has changed
    queue counts as well as for configuration of VF ADQ which caused dropped
    packets.
    
    Michal adds tracking for when a VSI is being released to prevent null
    pointer dereference when managing filters.
    
    Karen ensures PF successfully initiates VF requested reset which could
    cause a call trace otherwise.
    
    Jedrzej moves validation of channel queue value earlier to prevent
    partial configuration when the value is invalid.
    
    Grzegorz corrects the reported error when adding filter fails.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 18, 2021
  13. ipv6: check return value of ipv6_skip_exthdr

    The offset value is used in pointer math on skb->data.
    Since ipv6_skip_exthdr may return -1 the pointer to uh and th
    may not point to the actual udp and tcp headers and potentially
    overwrite other stuff. This is why I think this should be checked.
    
    EDIT:  added {}'s, thanks Kees
    
    Signed-off-by: Jordy Zomer <jordy@pwning.systems>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    JordyZomer authored and davem330 committed Nov 18, 2021
  14. e100: fix device suspend/resume

    As reported in [1], e100 was no longer working for suspend/resume
    cycles. The previous commit mentioned in the fixes appears to have
    broken things and this attempts to practice best known methods for
    device power management and keep wake-up working while allowing
    suspend/resume to work. To do this, I reorder a little bit of code
    and fix the resume path to make sure the device is enabled.
    
    [1] https://bugzilla.kernel.org/show_bug.cgi?id=214933
    
    Fixes: 69a74ae ("e100: use generic power management")
    Cc: Vaibhav Gupta <vaibhavgupta40@gmail.com>
    Reported-by: Alexey Kuznetsov <axet@me.com>
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Tested-by: Alexey Kuznetsov <axet@me.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jbrandeb authored and davem330 committed Nov 18, 2021
  15. devlink: Don't throw an error if flash notification sent before devli…

    …nk visible
    
    The mlxsw driver calls to various devlink flash routines even before
    users can get any access to the devlink instance itself. For example,
    mlxsw_core_fw_rev_validate() one of such functions.
    
    __mlxsw_core_bus_device_register
     -> mlxsw_core_fw_rev_validate
      -> mlxsw_core_fw_flash
       -> mlxfw_firmware_flash
        -> mlxfw_status_notify
         -> devlink_flash_update_status_notify
          -> __devlink_flash_update_notify
           -> WARN_ON(...)
    
    It causes to the WARN_ON to trigger warning about devlink not registered.
    
    Fixes: cf53021 ("devlink: Notify users when objects are accessible")
    Reported-by: Danielle Ratson <danieller@nvidia.com>
    Tested-by: Danielle Ratson <danieller@nvidia.com>
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Acked-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Leon Romanovsky authored and davem330 committed Nov 18, 2021
  16. page_pool: Revert "page_pool: disable dma mapping support..."

    This reverts commit d00e60e.
    
    As reported by Guillaume in [1]:
    Enabling LPAE always enables CONFIG_ARCH_DMA_ADDR_T_64BIT
    in 32-bit systems, which breaks the bootup proceess when a
    ethernet driver is using page pool with PP_FLAG_DMA_MAP flag.
    As we were hoping we had no active consumers for such system
    when we removed the dma mapping support, and LPAE seems like
    a common feature for 32 bits system, so revert it.
    
    1. https://www.spinics.net/lists/netdev/msg779890.html
    
    Fixes: d00e60e ("page_pool: disable dma mapping support for 32-bit arch with 64-bit DMA")
    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    Reported-by: "kernelci.org bot" <bot@kernelci.org>
    Tested-by: "kernelci.org bot" <bot@kernelci.org>
    Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Yunsheng Lin authored and davem330 committed Nov 18, 2021
  17. ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflo…

    …w in hns_dsaf_ge_srst_by_port()
    
    The if statement:
      if (port >= DSAF_GE_NUM)
            return;
    
    limits the value of port less than DSAF_GE_NUM (i.e., 8).
    However, if the value of port is 6 or 7, an array overflow could occur:
      port_rst_off = dsaf_dev->mac_cb[port]->port_rst_off;
    
    because the length of dsaf_dev->mac_cb is DSAF_MAX_PORT_NUM (i.e., 6).
    
    To fix this possible array overflow, we first check port and if it is
    greater than or equal to DSAF_MAX_PORT_NUM, the function returns.
    
    Reported-by: TOTE Robot <oslab@tsinghua.edu.cn>
    Signed-off-by: Teng Qi <starmiku1207184332@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Teng Qi authored and davem330 committed Nov 18, 2021
  18. parisc: Enable CONFIG_PRINTK_TIME=y in 32bit defconfig

    Signed-off-by: Helge Deller <deller@gmx.de>
    hdeller committed Nov 18, 2021
  19. Revert "parisc: Reduce sigreturn trampoline to 3 instructions"

    This reverts commit e4f2006.
    
    This patch shows problems with signal handling. Revert it for now.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Cc: <stable@vger.kernel.org> # v5.15
    hdeller committed Nov 18, 2021
  20. parisc: Wrap assembler related defines inside __ASSEMBLY__

    Building allmodconfig shows errors in the gpu/drm/msm snapdragon drivers,
    because a COND() define is used there which conflicts with the COND() for
    PA-RISC assembly.  Although the snapdragon driver isn't relevant for parisc, it
    is nevertheless compiled when CONFIG_COMPILE_TEST is defined.
    
    Move the COND() define and other PA-RISC mnemonics inside the #ifdef
    __ASSEMBLY__ part to avoid this conflict.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Reported-by: kernel test robot <lkp@intel.com>
    hdeller committed Nov 18, 2021
  21. parisc: Wire up futex_waitv

    Signed-off-by: Helge Deller <deller@gmx.de>
    hdeller committed Nov 18, 2021
  22. parisc: Include stringify.h to avoid build error in crypto/api.c

    Include stringify.h to avoid this build error:
     arch/parisc/include/asm/jump_label.h: error: expected ':' before '__stringify'
     arch/parisc/include/asm/jump_label.h: error: label 'l_yes' defined but not used [-Werror=unused-label]
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Reported-by: kernel test robot <lkp@intel.com>
    hdeller committed Nov 18, 2021
  23. KVM: x86: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS

    It doesn't make sense to return the recommended maximum number of
    vCPUs which exceeds the maximum possible number of vCPUs.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20211116163443.88707-7-vkuznets@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    vittyvk authored and bonzini committed Nov 18, 2021
  24. KVM: s390: Cap KVM_CAP_NR_VCPUS by num_online_cpus()

    KVM_CAP_NR_VCPUS is a legacy advisory value which on other architectures
    return num_online_cpus() caped by KVM_CAP_NR_VCPUS or something else
    (ppc and arm64 are special cases). On s390, KVM_CAP_NR_VCPUS returns
    the same as KVM_CAP_MAX_VCPUS and this may turn out to be a bad
    'advice'. Switch s390 to returning caped num_online_cpus() too.
    
    Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
    Message-Id: <20211116163443.88707-6-vkuznets@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    vittyvk authored and bonzini committed Nov 18, 2021
  25. KVM: RISC-V: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS

    It doesn't make sense to return the recommended maximum number of
    vCPUs which exceeds the maximum possible number of vCPUs.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Acked-by: Anup Patel <anup.patel@wdc.com>
    Reviewed-by: Anup Patel <anup.patel@wdc.com>
    Message-Id: <20211116163443.88707-5-vkuznets@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    vittyvk authored and bonzini committed Nov 18, 2021
  26. KVM: PPC: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS

    It doesn't make sense to return the recommended maximum number of
    vCPUs which exceeds the maximum possible number of vCPUs.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20211116163443.88707-4-vkuznets@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    vittyvk authored and bonzini committed Nov 18, 2021
  27. KVM: MIPS: Cap KVM_CAP_NR_VCPUS by KVM_CAP_MAX_VCPUS

    It doesn't make sense to return the recommended maximum number of
    vCPUs which exceeds the maximum possible number of vCPUs.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20211116163443.88707-3-vkuznets@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    vittyvk authored and bonzini committed Nov 18, 2021
  28. KVM: arm64: Cap KVM_CAP_NR_VCPUS by kvm_arm_default_max_vcpus()

    Generally, it doesn't make sense to return the recommended maximum number
    of vCPUs which exceeds the maximum possible number of vCPUs.
    
    Note: ARM64 is special as the value returned by KVM_CAP_MAX_VCPUS differs
    depending on whether it is a system-wide ioctl or a per-VM one. Previously,
    KVM_CAP_NR_VCPUS didn't have this difference and it seems preferable to
    keep the status quo. Cap KVM_CAP_NR_VCPUS by kvm_arm_default_max_vcpus()
    which is what gets returned by system-wide KVM_CAP_MAX_VCPUS.
    
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Message-Id: <20211116163443.88707-2-vkuznets@redhat.com>
    Acked-by: Marc Zyngier <maz@kernel.org>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    vittyvk authored and bonzini committed Nov 18, 2021
Older