Skip to contentSkip to conversation

Linux 5.11.11

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Mar 30, 2021 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.11.11 kernel.

All users of the 5.11 kernel series must upgrade.

The updated 5.11.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.11.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/virt/kvm/api.rst                                 |    6 
 Makefile                                                       |    5 
 arch/arm/boot/dts/at91-sam9x60ek.dts                           |    8 
 arch/arm/boot/dts/at91-sama5d27_som1.dtsi                      |    4 
 arch/arm/boot/dts/imx6ull-myir-mys-6ulx-eval.dts               |    1 
 arch/arm/boot/dts/sam9x60.dtsi                                 |    9 
 arch/arm/mach-omap2/sr_device.c                                |   75 ++-
 arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi                 |    1 
 arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi                 |    1 
 arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi                 |    1 
 arch/arm64/kernel/crash_dump.c                                 |    2 
 arch/arm64/kernel/stacktrace.c                                 |    9 
 arch/ia64/include/asm/syscall.h                                |    2 
 arch/ia64/kernel/ptrace.c                                      |   24 -
 arch/powerpc/include/asm/dcr-native.h                          |    8 
 arch/sparc/kernel/traps_64.c                                   |   13 
 arch/x86/include/asm/kvm_host.h                                |   14 
 arch/x86/include/asm/static_call.h                             |    7 
 arch/x86/include/asm/xen/page.h                                |   12 
 arch/x86/kvm/x86.c                                             |  109 ++---
 arch/x86/mm/mem_encrypt.c                                      |    2 
 arch/x86/net/bpf_jit_comp.c                                    |   27 +
 arch/x86/xen/p2m.c                                             |    7 
 arch/x86/xen/setup.c                                           |   16 
 block/blk-cgroup-rwstat.c                                      |    3 
 block/blk-merge.c                                              |    8 
 block/blk-zoned.c                                              |    2 
 block/genhd.c                                                  |    4 
 drivers/acpi/acpica/nsaccess.c                                 |    3 
 drivers/acpi/internal.h                                        |    6 
 drivers/acpi/scan.c                                            |   88 ++--
 drivers/acpi/video_detect.c                                    |    1 
 drivers/atm/eni.c                                              |    3 
 drivers/atm/idt77105.c                                         |    4 
 drivers/atm/lanai.c                                            |    5 
 drivers/atm/uPD98402.c                                         |    2 
 drivers/base/power/runtime.c                                   |   45 +-
 drivers/block/umem.c                                           |    5 
 drivers/block/xen-blkback/blkback.c                            |    2 
 drivers/bus/omap_l3_noc.c                                      |    4 
 drivers/clk/qcom/gcc-sc7180.c                                  |    4 
 drivers/cpufreq/cpufreq-dt-platdev.c                           |    2 
 drivers/gpio/gpiolib-acpi.c                                    |    2 
 drivers/gpu/drm/Kconfig                                        |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                     |    8 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                        |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c                         |    2 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c              |    1 
 drivers/gpu/drm/amd/display/dc/dc.h                            |    1 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c              |   11 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.h              |    6 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c      |    7 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.c              |    1 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c             |    6 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_link_encoder.c      |    3 
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c              |    1 
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c          |    2 
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c              |    1 
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c          |   31 +
 drivers/gpu/drm/amd/display/dc/dcn301/dcn301_resource.c        |   96 ++++
 drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h                   |    2 
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c            |   54 ++
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c          |   74 ++-
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c          |   24 +
 drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c          |   25 +
 drivers/gpu/drm/etnaviv/etnaviv_gem.c                          |    2 
 drivers/gpu/drm/i915/display/intel_vdsc.c                      |   10 
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c                   |   13 
 drivers/gpu/drm/i915/intel_runtime_pm.c                        |   29 +
 drivers/gpu/drm/i915/intel_runtime_pm.h                        |    5 
 drivers/gpu/drm/msm/dsi/pll/dsi_pll.c                          |    2 
 drivers/gpu/drm/msm/dsi/pll/dsi_pll.h                          |    6 
 drivers/gpu/drm/msm/dsi/pll/dsi_pll_7nm.c                      |    5 
 drivers/gpu/drm/msm/msm_drv.c                                  |   12 
 drivers/gpu/drm/nouveau/dispnv50/disp.c                        |   13 
 drivers/infiniband/hw/cxgb4/cm.c                               |    4 
 drivers/irqchip/irq-ingenic-tcu.c                              |    1 
 drivers/irqchip/irq-ingenic.c                                  |    1 
 drivers/md/dm-ioctl.c                                          |    2 
 drivers/md/dm-table.c                                          |   33 +
 drivers/md/dm-verity-target.c                                  |    2 
 drivers/md/dm-zoned-target.c                                   |    2 
 drivers/md/dm.c                                                |    5 
 drivers/mfd/intel_quark_i2c_gpio.c                             |    6 
 drivers/misc/habanalabs/common/device.c                        |   40 +
 drivers/misc/habanalabs/common/habanalabs_ioctl.c              |   12 
 drivers/net/can/c_can/c_can.c                                  |   24 -
 drivers/net/can/c_can/c_can_pci.c                              |    3 
 drivers/net/can/c_can/c_can_platform.c                         |    6 
 drivers/net/can/dev.c                                          |    1 
 drivers/net/can/flexcan.c                                      |    8 
 drivers/net/can/kvaser_pciefd.c                                |    4 
 drivers/net/can/m_can/m_can.c                                  |    5 
 drivers/net/dsa/b53/b53_common.c                               |   14 
 drivers/net/dsa/bcm_sf2.c                                      |    6 
 drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c |    2 
 drivers/net/ethernet/davicom/dm9000.c                          |    2 
 drivers/net/ethernet/faraday/ftgmac100.c                       |    1 
 drivers/net/ethernet/freescale/enetc/enetc_hw.h                |    2 
 drivers/net/ethernet/freescale/enetc/enetc_pf.c                |    6 
 drivers/net/ethernet/freescale/fec_ptp.c                       |    7 
 drivers/net/ethernet/freescale/gianfar.c                       |   15 
 drivers/net/ethernet/hisilicon/hns/hns_enet.c                  |    4 
 drivers/net/ethernet/intel/e1000e/82571.c                      |    2 
 drivers/net/ethernet/intel/e1000e/netdev.c                     |    6 
 drivers/net/ethernet/intel/iavf/iavf_main.c                    |    3 
 drivers/net/ethernet/intel/ice/ice_base.c                      |    6 
 drivers/net/ethernet/intel/ice/ice_xsk.c                       |   10 
 drivers/net/ethernet/intel/igb/igb.h                           |    4 
 drivers/net/ethernet/intel/igb/igb_main.c                      |   33 -
 drivers/net/ethernet/intel/igb/igb_ptp.c                       |   31 +
 drivers/net/ethernet/intel/igc/igc.h                           |    2 
 drivers/net/ethernet/intel/igc/igc_ethtool.c                   |    7 
 drivers/net/ethernet/intel/igc/igc_main.c                      |    9 
 drivers/net/ethernet/intel/igc/igc_ptp.c                       |   72 +--
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c                  |    6 
 drivers/net/ethernet/marvell/octeontx2/af/npc_profile.h        |    2 
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c                |    6 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c        |   48 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c            |    2 
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c           |    5 
 drivers/net/ethernet/mellanox/mlx5/core/en.h                   |    7 
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c             |    3 
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c     |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c           |   11 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c              |   21 
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c                |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c                |   57 ++
 drivers/net/ethernet/netronome/nfp/flower/metadata.c           |   24 -
 drivers/net/ethernet/netronome/nfp/flower/offload.c            |   18 
 drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c        |   15 
 drivers/net/ethernet/pensando/ionic/ionic_txrx.c               |   13 
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c           |    3 
 drivers/net/ethernet/realtek/r8169_main.c                      |    6 
 drivers/net/ethernet/socionext/netsec.c                        |    9 
 drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c              |    2 
 drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c             |   50 +-
 drivers/net/ethernet/stmicro/stmmac/enh_desc.c                 |    9 
 drivers/net/ethernet/stmicro/stmmac/hwif.h                     |    3 
 drivers/net/ethernet/stmicro/stmmac/norm_desc.c                |    9 
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c              |   57 +-
 drivers/net/ethernet/sun/niu.c                                 |    2 
 drivers/net/ethernet/tehuti/tehuti.c                           |    1 
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c              |   35 +
 drivers/net/ipa/ipa_qmi.c                                      |    2 
 drivers/net/phy/broadcom.c                                     |  147 ++++--
 drivers/net/phy/dp83822.c                                      |    3 
 drivers/net/phy/dp83869.c                                      |    4 
 drivers/net/phy/lxt.c                                          |    1 
 drivers/net/phy/marvell.c                                      |    1 
 drivers/net/phy/marvell10g.c                                   |    2 
 drivers/net/phy/micrel.c                                       |   14 
 drivers/net/phy/phy.c                                          |    2 
 drivers/net/phy/phy_device.c                                   |    9 
 drivers/net/phy/phylink.c                                      |    2 
 drivers/net/usb/cdc-phonet.c                                   |    2 
 drivers/net/usb/r8152.c                                        |   40 -
 drivers/net/veth.c                                             |    3 
 drivers/net/wan/fsl_ucc_hdlc.c                                 |    8 
 drivers/net/wan/hdlc_x25.c                                     |   42 +
 drivers/net/wireless/mediatek/mt76/dma.c                       |   15 
 drivers/net/wireless/mediatek/mt76/mt7915/mac.c                |   10 
 drivers/nvme/host/core.c                                       |   15 
 drivers/nvme/host/fc.c                                         |    3 
 drivers/nvme/host/pci.c                                        |    1 
 drivers/nvme/target/rdma.c                                     |    5 
 drivers/platform/x86/dell-wmi-sysman/enum-attributes.c         |    3 
 drivers/platform/x86/dell-wmi-sysman/int-attributes.c          |    3 
 drivers/platform/x86/dell-wmi-sysman/passobj-attributes.c      |    3 
 drivers/platform/x86/dell-wmi-sysman/string-attributes.c       |    3 
 drivers/platform/x86/dell-wmi-sysman/sysman.c                  |   84 +--
 drivers/platform/x86/intel-vbtn.c                              |   12 
 drivers/platform/x86/intel_pmt_crashlog.c                      |   13 
 drivers/regulator/qcom-rpmh-regulator.c                        |    6 
 drivers/scsi/mpt3sas/mpt3sas_base.c                            |    8 
 drivers/scsi/qedi/qedi_main.c                                  |    1 
 drivers/scsi/qla2xxx/qla_target.c                              |   13 
 drivers/scsi/qla2xxx/tcm_qla2xxx.c                             |    4 
 drivers/scsi/ufs/ufs-qcom.c                                    |   10 
 drivers/soc/ti/omap_prm.c                                      |    8 
 drivers/staging/rtl8192e/Kconfig                               |    1 
 drivers/xen/Kconfig                                            |    4 
 fs/btrfs/dev-replace.c                                         |    3 
 fs/btrfs/disk-io.c                                             |   19 
 fs/btrfs/inode.c                                               |   14 
 fs/btrfs/qgroup.c                                              |   12 
 fs/btrfs/volumes.c                                             |    3 
 fs/cachefiles/rdwr.c                                           |    7 
 fs/cifs/cifsglob.h                                             |    4 
 fs/cifs/cifspdu.h                                              |    5 
 fs/cifs/smb2glob.h                                             |    1 
 fs/cifs/smb2ops.c                                              |   27 -
 fs/cifs/smb2pdu.c                                              |    6 
 fs/cifs/smb2transport.c                                        |   37 +
 fs/cifs/transport.c                                            |    2 
 fs/ext4/mballoc.c                                              |   11 
 fs/ext4/xattr.c                                                |    4 
 fs/gfs2/log.c                                                  |    4 
 fs/gfs2/trans.c                                                |    2 
 fs/io_uring.c                                                  |   14 
 fs/nfs/Kconfig                                                 |    2 
 fs/nfs/nfs3xdr.c                                               |    3 
 fs/nfs/nfs4proc.c                                              |    3 
 fs/squashfs/export.c                                           |    8 
 fs/squashfs/id.c                                               |    6 
 fs/squashfs/squashfs_fs.h                                      |    1 
 fs/squashfs/xattr_id.c                                         |    6 
 include/acpi/acpi_bus.h                                        |    1 
 include/asm-generic/vmlinux.lds.h                              |    5 
 include/linux/bpf.h                                            |   33 +
 include/linux/brcmphy.h                                        |    4 
 include/linux/device-mapper.h                                  |   15 
 include/linux/hugetlb_cgroup.h                                 |   15 
 include/linux/if_macvlan.h                                     |    3 
 include/linux/memblock.h                                       |    4 
 include/linux/mm.h                                             |   18 
 include/linux/mm_types.h                                       |    1 
 include/linux/mmu_notifier.h                                   |   10 
 include/linux/mutex.h                                          |    2 
 include/linux/netfilter/x_tables.h                             |    7 
 include/linux/pagemap.h                                        |    1 
 include/linux/phy.h                                            |    2 
 include/linux/static_call.h                                    |   43 -
 include/linux/static_call_types.h                              |   50 ++
 include/linux/u64_stats_sync.h                                 |    7 
 include/linux/usermode_driver.h                                |    1 
 include/net/dst.h                                              |   11 
 include/net/inet_connection_sock.h                             |    2 
 include/net/netfilter/nf_tables.h                              |    3 
 include/net/nexthop.h                                          |   24 +
 include/net/red.h                                              |   10 
 include/net/rtnetlink.h                                        |    2 
 include/uapi/linux/psample.h                                   |    5 
 kernel/bpf/bpf_inode_storage.c                                 |    2 
 kernel/bpf/bpf_struct_ops.c                                    |    2 
 kernel/bpf/core.c                                              |    4 
 kernel/bpf/preload/bpf_preload_kern.c                          |   19 
 kernel/bpf/syscall.c                                           |    5 
 kernel/bpf/trampoline.c                                        |  218 +++++++---
 kernel/bpf/verifier.c                                          |    4 
 kernel/fork.c                                                  |    8 
 kernel/gcov/clang.c                                            |   69 +++
 kernel/power/energy_model.c                                    |    2 
 kernel/static_call.c                                           |   71 ++-
 kernel/trace/ftrace.c                                          |   43 +
 kernel/usermode_driver.c                                       |   21 
 mm/highmem.c                                                   |    4 
 mm/hugetlb.c                                                   |   41 +
 mm/hugetlb_cgroup.c                                            |   10 
 mm/mmu_notifier.c                                              |   23 +
 mm/z3fold.c                                                    |   16 
 net/bridge/br_switchdev.c                                      |    2 
 net/can/isotp.c                                                |   18 
 net/core/dev.c                                                 |   14 
 net/core/drop_monitor.c                                        |   23 +
 net/core/dst.c                                                 |   59 +-
 net/core/flow_dissector.c                                      |    2 
 net/dccp/ipv6.c                                                |    5 
 net/ipv4/inet_connection_sock.c                                |    7 
 net/ipv4/netfilter/arp_tables.c                                |   16 
 net/ipv4/netfilter/ip_tables.c                                 |   16 
 net/ipv4/route.c                                               |   45 --
 net/ipv4/tcp_minisocks.c                                       |    7 
 net/ipv6/ip6_fib.c                                             |    2 
 net/ipv6/ip6_input.c                                           |   10 
 net/ipv6/netfilter/ip6_tables.c                                |   16 
 net/ipv6/route.c                                               |   36 -
 net/ipv6/tcp_ipv6.c                                            |    5 
 net/mac80211/cfg.c                                             |    4 
 net/mac80211/ibss.c                                            |    2 
 net/mac80211/mlme.c                                            |    2 
 net/mac80211/util.c                                            |    2 
 net/mptcp/options.c                                            |   24 -
 net/mptcp/subflow.c                                            |    5 
 net/netfilter/nf_conntrack_netlink.c                           |    1 
 net/netfilter/nf_flow_table_core.c                             |    2 
 net/netfilter/nf_tables_api.c                                  |   19 
 net/netfilter/x_tables.c                                       |   49 +-
 net/qrtr/qrtr.c                                                |    5 
 net/sched/cls_flower.c                                         |    2 
 net/sched/sch_choke.c                                          |    7 
 net/sched/sch_gred.c                                           |    2 
 net/sched/sch_red.c                                            |    7 
 net/sched/sch_sfq.c                                            |    2 
 net/sctp/output.c                                              |    7 
 net/sctp/outqueue.c                                            |    7 
 net/tipc/node.c                                                |   11 
 net/vmw_vsock/af_vsock.c                                       |    1 
 scripts/dummy-tools/gcc                                        |    5 
 security/integrity/iint.c                                      |    8 
 security/selinux/include/security.h                            |   15 
 security/selinux/selinuxfs.c                                   |   13 
 security/selinux/ss/services.c                                 |   63 +-
 sound/hda/intel-nhlt.c                                         |    5 
 tools/include/linux/static_call_types.h                        |   50 ++
 tools/lib/bpf/Makefile                                         |    2 
 tools/lib/bpf/btf_dump.c                                       |    2 
 tools/lib/bpf/libbpf.c                                         |    3 
 tools/lib/bpf/netlink.c                                        |    2 
 tools/objtool/check.c                                          |   17 
 tools/perf/util/auxtrace.c                                     |    4 
 tools/perf/util/synthetic-events.c                             |    9 
 tools/testing/kunit/configs/broken_on_uml.config               |    2 
 tools/testing/selftests/arm64/fp/sve-ptrace.c                  |    2 
 tools/testing/selftests/bpf/prog_tests/fexit_sleep.c           |   82 +++
 tools/testing/selftests/bpf/progs/fexit_sleep.c                |   31 +
 tools/testing/selftests/bpf/progs/test_tunnel_kern.c           |    6 
 tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh      |    2 
 tools/testing/selftests/net/reuseaddr_ports_exhausted.c        |   32 -
 309 files changed, 3092 insertions(+), 1105 deletions(-)

Adrian Hunter (1):
perf auxtrace: Fix auxtrace queue conflict

Alaa Hleihel (1):
net/mlx5e: Allow to match on MPLS parameters only for MPLS over UDP

Alex Deucher (2):
drm/amdgpu/display: restore AUX_DPHY_TX_CONTROL for DCN2.x drm/amdgpu: Add additional Sienna Cichlid PCI ID

Alex Elder (1):
net: ipa: terminate message handler arrays

Alex Marginean (1):
net: enetc: set MAC RX FIFO to recommended value

Alexander Lobakin (1):
flow_dissector: fix byteorder of dissected ICMP ID

Alexander Ovechkin (1):
tcp: relookup sock for RST+ACK packets handled by obsolete req sock

Alexei Starovoitov (4):
bpf: Dont allow vmlinux BTF to be used in map_create and prog_load.
ftrace: Fix modify_ftrace_direct.
bpf: Fix fexit trampoline.
selftest/bpf: Add a test to check trampoline freeing logic.

Andre Guedes (1):
igc: Fix igc_ptp_rx_pktstamp()

Andrey Konovalov (1):
kasan: fix per-page tags for non-page_alloc pages

Andy Shevchenko (2):
mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources"
ACPI: scan: Use unique number for instance_no

Angelo Dureghello (1):
can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing bitrate

Arnd Bergmann (1):
ch_ktls: fix enum-conversion warning

Aurelien Aptel (1):
cifs: ask for more credit on async read/write code paths

Aya Levin (2):
net/mlx5e: Set PTP channel pointer explicitly to NULL net/mlx5e: Fix error path for ethtool set-priv-flag

Bart Van Assche (1):
scsi: Revert "qla2xxx: Make sure that aborted commands are freed"

Bob Peterson (1):
gfs2: fix use-after-free in trans_drain

Brian Norris (1):
mac80211: Allow HE operation to be longer than expected.

Carlos Llamas (1):
selftests/net: fix warnings on reuseaddr_ports_exhausted

Chaitanya Kulkarni (1):
nvme-core: check ctrl css before setting up zns

Chris Chiu (1):
ACPI: video: Add missing callback back for Sony VPCEH3U1E

Christian König (1):
drm/radeon: fix AGP dependency

Christoph Hellwig (1):
nvme: fix the nsid value to print in nvme_validate_or_alloc_ns

Claudiu Beznea (1):
ARM: dts: at91-sama5d27_som1: fix phy address to 7

Colin Ian King (1):
octeontx2-af: Fix memory leak of object buf

Corentin Labbe (1):
net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes

Damien Le Moal (1):
block: Fix REQ_OP_ZONE_RESET_ALL handling

Daniel Borkmann (2):
net: Consolidate common blackhole dst ops
net, bpf: Fix ip6ip6 crash with collect_md populated skbs

Daniel Vetter (1):
drm/etnaviv: Use FOLL_FORCE for userptr

Daniel Wagner (1):
block: Suppress uevent for hidden device when removed

David Brazdil (1):
selinux: vsock: Set SID for socket returned by accept()

David E. Box (1):
platform/x86: intel_pmt_crashlog: Fix incorrect macros

David Gow (1):

      kunit: tool: Disable PAGE_POISONING under --alltests

David Jeffery (1):
block: recalculate segment count for multi-segment discards correctly

Davide Caratti (1):
mptcp: fix ADD_ADDR HMAC in case port is specified

Denis Efremov (1):
sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count

Dillon Varone (1):
drm/amd/display: Enabled pipe harvesting in dcn30

Dima Chumak (1):
net/mlx5e: Offload tuple rewrite for non-CT flows

Dinghao Liu (2):
ixgbe: Fix memleak in ixgbe_configure_clsu32
e1000e: Fix error handling in e1000_set_d0_lplu_state_82571

Dmitry Baryshkov (2):
drm/msm/dsi: fix check-before-set in the 7nm dsi_pll code drm/msm: fix shutdown hook in case GPU components failed to bind

Dmitry Monakhov (1):
nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a

Douglas Anderson (1):
clk: qcom: gcc-sc7180: Use floor ops for the correct sdcc1 clk

Dylan Hung (1):
ftgmac100: Restart MAC HW once

Eric Dumazet (4):
macvlan: macvlan_count_rx() needs to be aware of preemption
net: sched: validate stab values
net: qrtr: fix a kernel-infoleak in qrtr_recvmsg()
tipc: better validate user input in tipc_nl_retrieve_key()

Fabio Estevam (1):
drm/msm: Fix suspend/resume on i.MX5

Federico Pellegrin (1):
ARM: dts: at91: sam9x60: fix mux-mask for PA7 so it can be set to A, B and C

Felix Fietkau (2):
mt76: fix tx skb error handling in mt76_dma_tx_queue_skb
mt76: mt7915: only modify tx buffer list after allocating tx token id

Fenghua Yu (1):
mm/fork: clear PASID for new mm

Filipe Manana (2):
btrfs: fix sleep while in non-sleep context during qgroup removal
btrfs: fix subvolume/snapshot deletion not triggered on mount

Florian Fainelli (5):
net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port
net: phy: broadcom: Add power down exit reset state delay
net: phy: broadcom: Avoid forward for bcm54xx_config_clock_delay()
net: phy: broadcom: Fix RGMII delays for BCM50160 and BCM50610M
net: dsa: b53: VLAN filtering is global to all users

Florian Westphal (1):
netfilter: ctnetlink: fix dump of the expect mask attribute

Frank Sorenson (1):
NFS: Correct size calculation for create reply length

Geetha sowjanya (2):
octeontx2-af: Fix irq free in rvu teardown
octeontx2-pf: Clear RSS enable flag on interace down

Georgi Valkov (1):
libbpf: Fix INSTALL flag order

Greg Kroah-Hartman (1):

      Linux 5.11.11

Grygorii Strashko (1):
bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD

Hangbin Liu (2):
selftests/bpf: Set gopt opt_class to 0 if get tunnel opt failed
selftests: forwarding: vxlan_bridge_1d: Fix vxlan ecn decapsulate value

Hannes Reinecke (4):
nvme: simplify error logic in nvme_validate_ns()
nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()
nvme-fc: set NVME_REQ_CANCELLED in nvme_fc_terminate_exchange()
nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted

Hans de Goede (8):
platform/x86: intel-vbtn: Stop reporting SW_DOCK events
platform/x86: dell-wmi-sysman: Fix crash caused by calling kset_unregister twice
platform/x86: dell-wmi-sysman: Fix possible NULL pointer deref on exit
platform/x86: dell-wmi-sysman: Make it safe to call exit_foo_attributes() multiple times platform/x86: dell-wmi-sysman: Fix release_attributes_data() getting called twice on init_bios_attributes() failure platform/x86: dell-wmi-sysman: Cleanup sysman_init() error-exit handling
platform/x86: dell-wmi-sysman: Make sysman_init() return -ENODEV of the interfaces are not found platform/x86: dell-wmi-sysman: Cleanup create_attributes_level_sysfs_files()

Hariprasad Kelam (1):
octeontx2-af: fix infinite loop in unmapping NPC counter

Hayes Wang (2):
Revert "r8152: adjust the settings about MAC clock speed down for RTL8153"
r8152: limit the RX buffer size of RTL8153A for USB 2.0

Heiko Thiery (1):
net: fec: ptp: avoid register access when ipg clock is disabled

Heiner Kallweit (1):
r8169: fix DMA being used after buffer free if WoL is enabled

Horia Geantă (3):
arm64: dts: ls1046a: mark crypto engine dma coherent
arm64: dts: ls1012a: mark crypto engine dma coherent
arm64: dts: ls1043a: mark crypto engine dma coherent

Huy Nguyen (1):
net/mlx5: Add back multicast stats for uplink representor

Ian Rogers (1):
perf synthetic events: Avoid write of uninitialized memory when generating PERF_RECORD_MMAP* records

Ido Schimmel (2):
psample: Fix user API breakage
drop_monitor: Perform cleanup upon probe registration failure

Imre Deak (1):
drm/i915: Fix the GT fence revocation runtime PM logic

Ira Weiny (1):
mm/highmem: fix CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP

Isaku Yamahata (1):
x86/mem_encrypt: Correct physical address calculation in __set_clr_pte_enc()

J. Bruce Fields (1):
nfs: we don't support removing system.nfs4_acl

Jakub Kicinski (1):
ipv6: weaken the v4mapped source check

Jan Beulich (1):
xen-blkback: don't leak persistent grants from xen_blkbk_map()

Jan Kara (1):
ext4: add reclaim checks to xattr code

Jani Nikula (1):
drm/i915/dsc: fix DSS CTL register usage for ICL DSI transcoders

Jean-Philippe Brucker (1):
libbpf: Fix BTF dump of pointer-to-array-of-struct

JeongHyeon Lee (1):
dm verity: fix DM_VERITY_OPTS_MAX value

Jesse Brandeburg (1):
igb: check timestamp validity

Jia-Ju Bai (6):
net: tehuti: fix error return code in bdx_probe()
net: intel: iavf: fix error return code of iavf_init_get_resources()
net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch()
net: wan: fix error return code of uhdlc_init()
scsi: qedi: Fix error return code of qedi_alloc_global_queues()
scsi: mpt3sas: Fix error return code of mpt3sas_base_attach()

Jimmy Assarsson (1):
can: kvaser_pciefd: Always disable bus load reporting

Jiri Bohac (1):
net: check all name nodes in __dev_alloc_name

Jiri Slaby (1):
kbuild: dummy-tools: fix inverted tests for gcc

Joakim Zhang (1):
net: stmmac: fix dma physical address of descriptor when display ring

Johan Hovold (1):
net: cdc-phonet: fix data-interface release on probe failure

Johannes Berg (1):
mac80211: fix rate mask reset

Josef Bacik (3):
btrfs: do not initialize dev stats if we have no dev_root
btrfs: do not initialize dev replace for bad dev root
btrfs: initialize device::fs_info always

Josh Poimboeuf (1):
static_call: Allow module use without exposing static_call_key

Julian Braha (1):
staging: rtl8192e: fix kconfig dependency on CRYPTO

Kenneth Feng (1):
drm/amd/pm: workaround for audio noise issue

Kumar Kartikeya Dwivedi (1):
libbpf: Use SOCK_CLOEXEC when opening the netlink socket

Li RongQing (1):
igb: avoid premature Rx buffer reuse

Louis Peens (3):
nfp: flower: fix unsupported pre_tunnel flows
nfp: flower: add ipv6 bit to pre_tunnel control message
nfp: flower: fix pre_tun mask id allocation

Lukasz Luba (1):
PM: EM: postpone creating the debugfs dir till fs_initcall

Lv Yunlong (2):
nvme-rdma: Fix a use after free in nvmet_rdma_write_data_done net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template

Lyude Paul (1):

      drm/nouveau/kms/nve4-nv108: Limit cursors to 128x128

Maciej Fijalkowski (1):
veth: Store queue_mapping independently of XDP prog presence

Magnus Karlsson (1):
ice: fix napi work done reporting in xsk path

Maor Dickman (1):
net/mlx5e: Don't match on Geneve options in case option masks are all zero

Marc Kleine-Budde (3):
can: isotp: isotp_setsockopt(): only allow to set low level TX flags for CAN-FD
can: isotp: TX-path: ensure that CAN frame flags are initialized
can: peak_usb: Revert "can: peak_usb: add forgotten supported devices"

Mark Brown (1):
kselftest: arm64: Fix exit code of sve-ptrace

Mark Pearson (1):
ALSA: hda: ignore invalid NHLT table

Mark Rutland (1):
arm64: stacktrace: don't trace arch_stack_walk()

Mark Tomlinson (3):
Revert "netfilter: x_tables: Switch synchronization to RCU"
netfilter: x_tables: Use correct memory barriers. Revert "netfilter: x_tables: Update remaining dereference to RCU"

Markus Theil (1):
mac80211: fix double free in ibss_leave

Martin Willi (1):
can: dev: Move device back to init netns on owning netns delete

Masahiro Yamada (1):
kbuild: add image_name to no-sync-config-targets

Matthew Wilcox (Oracle) (1):
fs/cachefiles: Remove wait_bit_key layout dependency

Maxim Mikityanskiy (2):
net/mlx5e: When changing XDP program without reset, take refs for XSK RQs net/mlx5e: Revert parameters on errors when changing PTP state without reset

Mian Yousaf Kaukab (1):
netsec: restore phy power state after controller reset

Miaohe Lin (1):
hugetlb_cgroup: fix imbalanced css_get and css_put pair for shared mappings

Michael Braun (1):
gianfar: fix jumbo packets+napi+rx overrun crash

Michael Ellerman (1):
powerpc/4xx: Fix build errors from mfdcr()

Michael Walle (1):

      net: phy: introduce phydev->port

Mike Rapoport (1):
mm: memblock: fix section mismatch warning again

Mikulas Patocka (2):
dm: don't report "detected capacity change" on device creation dm ioctl: fix out of bounds array access when no devices

Mimi Zohar (1):
integrity: double check iint_cache was initialized

Muhammad Husaini Zulkifli (2):
igc: Fix Pause Frame Advertising
igc: Fix Supported Pause Frame Link Setting

Namhyung Kim (1):
libbpf: Fix error path in bpf_object__elf_init()

Nick Desaulniers (1):
gcov: fix clang-11+ support

Nicolas Ferre (1):
ARM: dts: at91: sam9x60: fix mux-mask to match product's datasheet

Nirmoy Das (1):
drm/amdgpu: fb BO should be ttm_bo_type_device

Nitin Rawat (1):
scsi: ufs: ufs-qcom: Disable interrupt in reset path

Oliver Hartkopp (1):
can: isotp: tx-path: zero initialize outgoing CAN frames

Omar Sandoval (1):
btrfs: fix check_data_csum() error message for direct I/O

Ondrej Mosnacek (2):
selinux: don't log MAC_POLICY_LOAD record on failed policy load
selinux: fix variable scope issue in live sidtab conversion

Ong Boon Leong (1):
net: phylink: Fix phylink_err() function name error in phylink_major_config

Pablo Neira Ayuso (2):
netfilter: nftables: report EOPNOTSUPP on unsupported flowtable flags
netfilter: nftables: allow to update flowtable flags

Parav Pandit (1):
net/mlx5e: E-switch, Fix rate calculation division

Paul Cercueil (2):
net: davicom: Use platform_get_irq_optional() irqchip/ingenic: Add support for the JZ4760

Paulo Alcantara (1):
cifs: change noisy error message to FYI

Pavel Begunkov (2):
io_uring: cancel deferred requests in try_cancel
io_uring: fix provide_buffers sign extension

Pavel Tatashin (1):
arm64: kdump: update ppos when reading elfcorehdr

Peter Zijlstra (4):
u64_stats,lockdep: Fix u64_stats_init() vs lockdep
static_call: Pull some static_call declarations to the type headers
static_call: Fix the module key fixup
static_call: Fix static_call_set_init()

Phillip Lougher (1):
squashfs: fix xattr id and id lookup sanity checks

Potnuri Bharat Teja (1):
RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server

Prike Liang (1):
drm/amdgpu: fix the hibernation suspend with s0ix

Qingqing Zhuo (1):
drm/amd/display: Enable pflip interrupt upon pipe enable

Rafael J. Wysocki (2):
PM: runtime: Defer suspending suppliers
ACPI: scan: Rearrange memory allocation in acpi_device_add()

Rakesh Babu (1):
octeontx2-af: Formatting debugfs entry rsrc_alloc.

Rob Gardner (1):
sparc64: Fix opcode filtering in handling of no fault loads

Robert Hancock (2):
net: axienet: Fix probe error cleanup
net: phy: broadcom: Set proper 1000BaseX/SGMII interface mode for BCM54616S

Roger Pau Monne (2):
xen/x86: make XEN_BALLOON_MEMORY_HOTPLUG_LIMIT depend on MEMORY_HOTPLUG Revert "xen: fix p2m size in dom0 for disabled memory hotplug case"

Sabyrzhan Tasbolatov (1):
fs/ext4: fix integer overflow in s_log_groups_per_flex

Sasha Levin (1):
bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs

Sasha Neftin (1):
igc: reinit_locked() should be called with rtnl_lock

Sean Christopherson (2):
KVM: x86: Protect userspace MSR filter with SRCU, and set atomically-ish mm/mmu_notifiers: ensure range_end() is paired with range_start()

Sean Nyekjaer (1):
squashfs: fix inode lookup sanity checks

Sergei Trofimovich (2):
ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign

Shannon Nelson (1):
ionic: linearize tso skb with too many frags

Shin'ichiro Kawasaki (1):
dm table: Fix zoned model check and zone sectors check

Shyam Prasad N (1):
cifs: Adjust key sizes and key generation routines for AES256 encryption

Stanislav Fomichev (1):
bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG

Stephane Grosjean (1):
can: peak_usb: add forgotten supported devices

Steve French (1):
smb3: fix cached file size problems in duplicate extents (reflink)

Subbaraya Sundeep (1):
octeontx2-af: Remove TOS field from MKEX TX

Sudeep Holla (1):
cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev

Sung Lee (1):
drm/amd/display: Revert dram_clock_change_latency for DCN2.1

Tal Lossos (1):
bpf: Change inode_storage's lookup_elem return value from NULL to -EBADF

Tariq Toukan (1):
net/mlx5e: RX, Mind the MPWQE gaps when calculating offsets

Thomas Gleixner (1):
locking/mutex: Fix non debug version of mutex_lock_io_nested()

Thomas Hebb (1):
z3fold: prevent reclaim/free race for headless pages

Timo Rothenpieler (1):
nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default

Tomer Tayar (2):
habanalabs: Call put_pid() when releasing control device
habanalabs: Disable file operations after device is removed

Tong Zhang (6):
atm: eni: dont release is never initialized
atm: lanai: dont run lanai_dev_close if not open
atm: uPD98402: fix incorrect allocation
atm: idt77252: fix null-ptr-dereference
can: c_can_pci: c_can_pci_remove(): fix use-after-free
can: c_can: move runtime PM enable/disable to c_can_platform

Tony Lindgren (3):
soc: ti: omap-prm: Fix reboot issue with invalid pcie reset map for dra7
ARM: OMAP2+: Fix smartreflex init regression after dropping legacy data
soc: ti: omap-prm: Fix occasional abort on reset deassert for dra7 iva

Torin Cooper-Bennun (2):
can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning
can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors

Vegard Nossum (1):
ACPICA: Always create namespace nodes using acpi_ns_create_node()

Vitaly Lifshits (1):

      e1000e: add rtnl_lock() to e1000_reset_task

Vladimir Oltean (1):
net: bridge: don't notify switchdev for local FDB addresses

Wei Wang (1):
ipv6: fix suspecious RCU usage warning

Wei Yongjun (1):
umem: fix error return code in mm_pci_probe()

Xie He (1):

      net: hdlc_x25: Prevent racing between "x25_close" and "x25_xmit"/"x25_rx"

Xin Long (1):
sctp: move sk_route_caps check and set into sctp_outq_flush_transports

Xunlei Pang (1):
blk-cgroup: Fix the recursive blkg rwstat

Yang Li (1):
gpiolib: acpi: Add missing IRQF_ONESHOT

Yinjun Zhang (1):
netfilter: flowtable: Make sure GC works periodically in idle system

Zhan Liu (1):
drm/amdgpu/display: Use wm_table.entries for dcn301 calculate_wm

Zqiang (1):
bpf: Fix umd memory leak in copy_process()

dillon min (1):
ARM: dts: imx6ull: fix ubi filesystem mount failed

satya priya (2):
regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck
regulator: qcom-rpmh: Use correct buck for S1C regulator

wenxu (1):
net/sched: cls_flower: fix only mask bit check in the validate_ct_state

author maintainer
#1 lore raw
Documentation/virt/kvm/api.rst +4 -2
index 5570887a2dce..66d38520e65a 100644
@@ -4831,8 +4831,10 @@ If an MSR access is not permitted through the filtering, it generates a
 allows user space to deflect and potentially handle various MSR accesses
 into user space.
 
-If a vCPU is in running state while this ioctl is invoked, the vCPU may
-experience inconsistent filtering behavior on MSR accesses.
+Note, invoking this ioctl with a vCPU is running is inherently racy.  However,
+KVM does guarantee that vCPUs will see either the previous filter or the new
+filter, e.g. MSRs with identical settings in both the old and new filter will
+have deterministic behavior.
 
 
 5. The kvm_run structure
Makefile +3 -2
index 824d15c14be0..7578e0d9622f 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 11
-SUBLEVEL = 10
+SUBLEVEL = 11
 EXTRAVERSION =
 NAME = 💕 Valentine's Day Edition 💕
 
@@ -265,7 +265,8 @@ no-dot-config-targets := $(clean-targets) \
 			 $(version_h) headers headers_% archheaders archscripts \
 			 %asm-generic kernelversion %src-pkg dt_binding_check \
 			 outputmakefile
-no-sync-config-targets := $(no-dot-config-targets) %install kernelrelease
+no-sync-config-targets := $(no-dot-config-targets) %install kernelrelease \
+			  image_name
 single-targets := %.a %.i %.ko %.lds %.ll %.lst %.mod %.o %.s %.symtypes %/
 
 config-build	:=
arch/arm/boot/dts/at91-sam9x60ek.dts +0 -8
index 73b6b1f89de9..775ceb3acb6c 100644
@@ -334,14 +334,6 @@ ethernet-phy@0 {
 };
 
 &pinctrl {
-	atmel,mux-mask = <
-			 /*	A	B	C	*/
-			 0xFFFFFE7F 0xC0E0397F 0xEF00019D	/* pioA */
-			 0x03FFFFFF 0x02FC7E68 0x00780000	/* pioB */
-			 0xffffffff 0xF83FFFFF 0xB800F3FC	/* pioC */
-			 0x003FFFFF 0x003F8000 0x00000000	/* pioD */
-			 >;
-
 	adc {
 		pinctrl_adc_default: adc_default {
 			atmel,pins = <AT91_PIOB 15 AT91_PERIPH_A AT91_PINCTRL_NONE>;
arch/arm/boot/dts/at91-sama5d27_som1.dtsi +2 -2
index 1b1163858b1d..e3251f3e3eaa 100644
@@ -84,8 +84,8 @@ macb0: ethernet@f8008000 {
 				pinctrl-0 = <&pinctrl_macb0_default>;
 				phy-mode = "rmii";
 
-				ethernet-phy@0 {
-					reg = <0x0>;
+				ethernet-phy@7 {
+					reg = <0x7>;
 					interrupt-parent = <&pioA>;
 					interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>;
 					pinctrl-names = "default";
arch/arm/boot/dts/imx6ull-myir-mys-6ulx-eval.dts +1 -0
index ecbb2cc5b9ab..79cc45728cd2 100644
@@ -14,5 +14,6 @@ / {
 };
 
 &gpmi {
+	fsl,use-minimum-ecc;
 	status = "okay";
 };
arch/arm/boot/dts/sam9x60.dtsi +9 -0
index 84066c1298df..ec45ced3cde6 100644
@@ -606,6 +606,15 @@ pinctrl: pinctrl@fffff400 {
 				compatible = "microchip,sam9x60-pinctrl", "atmel,at91sam9x5-pinctrl", "atmel,at91rm9200-pinctrl", "simple-bus";
 				ranges = <0xfffff400 0xfffff400 0x800>;
 
+				/* mux-mask corresponding to sam9x60 SoC in TFBGA228L package */
+				atmel,mux-mask = <
+						 /*	A	B	C	*/
+						 0xffffffff 0xffe03fff 0xef00019d	/* pioA */
+						 0x03ffffff 0x02fc7e7f 0x00780000	/* pioB */
+						 0xffffffff 0xffffffff 0xf83fffff	/* pioC */
+						 0x003fffff 0x003f8000 0x00000000	/* pioD */
+						 >;
+
 				pioA: gpio@fffff400 {
 					compatible = "microchip,sam9x60-gpio", "atmel,at91sam9x5-gpio", "atmel,at91rm9200-gpio";
 					reg = <0xfffff400 0x200>;
arch/arm/mach-omap2/sr_device.c +58 -17

115 lines not on this page · raw message

arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +1 -0
index 626b709d1fb9..03de3a34276a 100644
@@ -192,6 +192,7 @@ crypto: crypto@1700000 {
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +1 -0
index bbae4b353d3f..c3c34e519e90 100644
@@ -322,6 +322,7 @@ crypto: crypto@1700000 {
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <0 75 0x4>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +1 -0
index 565934cbfa28..719451ee09d0 100644
@@ -325,6 +325,7 @@ crypto: crypto@1700000 {
 			ranges = <0x0 0x00 0x1700000 0x100000>;
 			reg = <0x00 0x1700000 0x0 0x100000>;
 			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+			dma-coherent;
 
 			sec_jr0: jr@10000 {
 				compatible = "fsl,sec-v5.4-job-ring",
arch/arm64/kernel/crash_dump.c +2 -0
index e6e284265f19..58303a9ec32c 100644
@@ -64,5 +64,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
 ssize_t elfcorehdr_read(char *buf, size_t count, u64 *ppos)
 {
 	memcpy(buf, phys_to_virt((phys_addr_t)*ppos), count);
+	*ppos += count;
+
 	return count;
 }
arch/arm64/kernel/stacktrace.c +5 -4
index fa56af1a59c3..dbce0dcf4cc0 100644
@@ -199,8 +199,9 @@ void show_stack(struct task_struct *tsk, unsigned long *sp, const char *loglvl)
 
 #ifdef CONFIG_STACKTRACE
 
-void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
-		     struct task_struct *task, struct pt_regs *regs)
+noinline void arch_stack_walk(stack_trace_consume_fn consume_entry,
+			      void *cookie, struct task_struct *task,
+			      struct pt_regs *regs)
 {
 	struct stackframe frame;
 
@@ -208,8 +209,8 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 		start_backtrace(&frame, regs->regs[29], regs->pc);
 	else if (task == current)
 		start_backtrace(&frame,
-				(unsigned long)__builtin_frame_address(0),
-				(unsigned long)arch_stack_walk);
+				(unsigned long)__builtin_frame_address(1),
+				(unsigned long)__builtin_return_address(0));
 	else
 		start_backtrace(&frame, thread_saved_fp(task),
 				thread_saved_pc(task));
arch/ia64/include/asm/syscall.h +1 -1
index 6c6f16e409a8..0d23c0049301 100644
@@ -32,7 +32,7 @@ static inline void syscall_rollback(struct task_struct *task,
 static inline long syscall_get_error(struct task_struct *task,
 				     struct pt_regs *regs)
 {
-	return regs->r10 == -1 ? regs->r8:0;
+	return regs->r10 == -1 ? -regs->r8:0;
 }
 
 static inline long syscall_get_return_value(struct task_struct *task,
arch/ia64/kernel/ptrace.c +18 -6
index c3490ee2daa5..e14f5653393a 100644
@@ -2013,27 +2013,39 @@ static void syscall_get_set_args_cb(struct unw_frame_info *info, void *data)
 {
 	struct syscall_get_set_args *args = data;
 	struct pt_regs *pt = args->regs;
-	unsigned long *krbs, cfm, ndirty;
+	unsigned long *krbs, cfm, ndirty, nlocals, nouts;
 	int i, count;
 
 	if (unw_unwind_to_user(info) < 0)
 		return;
 
+	/*
+	 * We get here via a few paths:
+	 * - break instruction: cfm is shared with caller.
+	 *   syscall args are in out= regs, locals are non-empty.
+	 * - epsinstruction: cfm is set by br.call
+	 *   locals don't exist.
+	 *
+	 * For both cases argguments are reachable in cfm.sof - cfm.sol.
+	 * CFM: [ ... | sor: 17..14 | sol : 13..7 | sof : 6..0 ]
+	 */
 	cfm = pt->cr_ifs;
+	nlocals = (cfm >> 7) & 0x7f; /* aka sol */
+	nouts = (cfm & 0x7f) - nlocals; /* aka sof - sol */
 	krbs = (unsigned long *)info->task + IA64_RBS_OFFSET/8;
 	ndirty = ia64_rse_num_regs(krbs, krbs + (pt->loadrs >> 19));
 
 	count = 0;
 	if (in_syscall(pt))
-		count = min_t(int, args->n, cfm & 0x7f);
+		count = min_t(int, args->n, nouts);
 
+	/* Iterate over outs. */
 	for (i = 0; i < count; i++) {
+		int j = ndirty + nlocals + i + args->i;
 		if (args->rw)
-			*ia64_rse_skip_regs(krbs, ndirty + i + args->i) =
-				args->args[i];
+			*ia64_rse_skip_regs(krbs, j) = args->args[i];
 		else
-			args->args[i] = *ia64_rse_skip_regs(krbs,
-				ndirty + i + args->i);
+			args->args[i] = *ia64_rse_skip_regs(krbs, j);
 	}
 
 	if (!args->rw) {
arch/powerpc/include/asm/dcr-native.h +4 -4
index 7141ccea8c94..a92059964579 100644
@@ -53,8 +53,8 @@ static inline void mtdcrx(unsigned int reg, unsigned int val)
 #define mfdcr(rn)						\
 	({unsigned int rval;					\
 	if (__builtin_constant_p(rn) && rn < 1024)		\
-		asm volatile("mfdcr %0," __stringify(rn)	\
-		              : "=r" (rval));			\
+		asm volatile("mfdcr %0, %1" : "=r" (rval)	\
+			      : "n" (rn));			\
 	else if (likely(cpu_has_feature(CPU_FTR_INDEXED_DCR)))	\
 		rval = mfdcrx(rn);				\
 	else							\
@@ -64,8 +64,8 @@ static inline void mtdcrx(unsigned int reg, unsigned int val)
 #define mtdcr(rn, v)						\
 do {								\
 	if (__builtin_constant_p(rn) && rn < 1024)		\
-		asm volatile("mtdcr " __stringify(rn) ",%0"	\
-			      : : "r" (v)); 			\
+		asm volatile("mtdcr %0, %1"			\
+			      : : "n" (rn), "r" (v));		\
 	else if (likely(cpu_has_feature(CPU_FTR_INDEXED_DCR)))	\
 		mtdcrx(rn, v);					\
 	else							\
arch/sparc/kernel/traps_64.c +6 -7
index d92e5eaa4c1d..a850dccd78ea 100644
@@ -275,14 +275,13 @@ bool is_no_fault_exception(struct pt_regs *regs)
 			asi = (regs->tstate >> 24); /* saved %asi       */
 		else
 			asi = (insn >> 5);	    /* immediate asi    */
-		if ((asi & 0xf2) == ASI_PNF) {
-			if (insn & 0x1000000) {     /* op3[5:4]=3       */
-				handle_ldf_stq(insn, regs);
-				return true;
-			} else if (insn & 0x200000) { /* op3[2], stores */
+		if ((asi & 0xf6) == ASI_PNF) {
+			if (insn & 0x200000)        /* op3[2], stores   */
 				return false;
-			}
-			handle_ld_nf(insn, regs);
+			if (insn & 0x1000000)       /* op3[5:4]=3 (fp)  */
+				handle_ldf_stq(insn, regs);
+			else
+				handle_ld_nf(insn, regs);
 			return true;
 		}
 	}
arch/x86/include/asm/kvm_host.h +9 -5
index 3d6616f6f6ef..e0cfd620b293 100644
@@ -894,6 +894,12 @@ enum kvm_irqchip_mode {
 	KVM_IRQCHIP_SPLIT,        /* created with KVM_CAP_SPLIT_IRQCHIP */
 };
 
+struct kvm_x86_msr_filter {
+	u8 count;
+	bool default_allow:1;
+	struct msr_bitmap_range ranges[16];
+};
+
 #define APICV_INHIBIT_REASON_DISABLE    0
 #define APICV_INHIBIT_REASON_HYPERV     1
 #define APICV_INHIBIT_REASON_NESTED     2
@@ -989,14 +995,12 @@ struct kvm_arch {
 	bool guest_can_read_msr_platform_info;
 	bool exception_payload_enabled;
 
+	bool bus_lock_detection_enabled;
+
 	/* Deflect RDMSR and WRMSR to user space when they trigger a #GP */
 	u32 user_space_msr_mask;
 
-	struct {
-		u8 count;
-		bool default_allow:1;
-		struct msr_bitmap_range ranges[16];
-	} msr_filter;
+	struct kvm_x86_msr_filter __rcu *msr_filter;
 
 	struct kvm_pmu_event_filter *pmu_event_filter;
 	struct task_struct *nx_lpage_recovery_thread;
arch/x86/include/asm/static_call.h +7 -0
index c37f11999d0c..cbb67b6030f9 100644
@@ -37,4 +37,11 @@
 #define ARCH_DEFINE_STATIC_CALL_NULL_TRAMP(name)			\
 	__ARCH_DEFINE_STATIC_CALL_TRAMP(name, "ret; nop; nop; nop; nop")
 
+
+#define ARCH_ADD_TRAMP_KEY(name)					\
+	asm(".pushsection .static_call_tramp_key, \"a\"		\n"	\
+	    ".long " STATIC_CALL_TRAMP_STR(name) " - .		\n"	\
+	    ".long " STATIC_CALL_KEY_STR(name) " - .		\n"	\
+	    ".popsection					\n")
+
 #endif /* _ASM_STATIC_CALL_H */
arch/x86/include/asm/xen/page.h +0 -12
index 7068e4bb057d..1a162e559753 100644
@@ -86,18 +86,6 @@ clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
 }
 #endif
 
-/*
- * The maximum amount of extra memory compared to the base size.  The
- * main scaling factor is the size of struct page.  At extreme ratios
- * of base:extra, all the base memory can be filled with page
- * structures for the extra memory, leaving no space for anything
- * else.
- *
- * 10x seems like a reasonable balance between scaling flexibility and
- * leaving a practically usable system.
- */
-#define XEN_EXTRA_MEM_RATIO	(10)
-
 /*
  * Helper functions to write or read unsigned long values to/from
  * memory, when the access may fault.
arch/x86/kvm/x86.c +65 -44

187 lines not on this page · raw message

arch/x86/mm/mem_encrypt.c +1 -1
index c3d5f0236f35..868fd69814bf 100644
@@ -262,7 +262,7 @@ static void __init __set_clr_pte_enc(pte_t *kpte, int level, bool enc)
 	if (pgprot_val(old_prot) == pgprot_val(new_prot))
 		return;
 
-	pa = pfn << page_level_shift(level);
+	pa = pfn << PAGE_SHIFT;
 	size = page_level_size(level);
 
 	/*
arch/x86/net/bpf_jit_comp.c +23 -4
index 796506dcfc42..023ac12f54a2 100644
@@ -1735,7 +1735,7 @@ static int invoke_bpf_mod_ret(const struct btf_func_model *m, u8 **pprog,
  * add rsp, 8                      // skip eth_type_trans's frame
  * ret                             // return to its caller
  */
-int arch_prepare_bpf_trampoline(void *image, void *image_end,
+int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *image, void *image_end,
 				const struct btf_func_model *m, u32 flags,
 				struct bpf_tramp_progs *tprogs,
 				void *orig_call)
@@ -1774,6 +1774,15 @@ int arch_prepare_bpf_trampoline(void *image, void *image_end,
 
 	save_regs(m, &prog, nr_args, stack_size);
 
+	if (flags & BPF_TRAMP_F_CALL_ORIG) {
+		/* arg1: mov rdi, im */
+		emit_mov_imm64(&prog, BPF_REG_1, (long) im >> 32, (u32) (long) im);
+		if (emit_call(&prog, __bpf_tramp_enter, prog)) {
+			ret = -EINVAL;
+			goto cleanup;
+		}
+	}
+
 	if (fentry->nr_progs)
 		if (invoke_bpf(m, &prog, fentry, stack_size))
 			return -EINVAL;
@@ -1792,8 +1801,7 @@ int arch_prepare_bpf_trampoline(void *image, void *image_end,
 	}
 
 	if (flags & BPF_TRAMP_F_CALL_ORIG) {
-		if (fentry->nr_progs || fmod_ret->nr_progs)
-			restore_regs(m, &prog, nr_args, stack_size);
+		restore_regs(m, &prog, nr_args, stack_size);
 
 		/* call original function */
 		if (emit_call(&prog, orig_call, prog)) {
@@ -1802,6 +1810,9 @@ int arch_prepare_bpf_trampoline(void *image, void *image_end,
 		}
 		/* remember return value in a stack for bpf prog to access */
 		emit_stx(&prog, BPF_DW, BPF_REG_FP, BPF_REG_0, -8);
+		im->ip_after_call = prog;
+		memcpy(prog, ideal_nops[NOP_ATOMIC5], X86_PATCH_SIZE);
+		prog += X86_PATCH_SIZE;
 	}
 
 	if (fmod_ret->nr_progs) {
@@ -1832,9 +1843,17 @@ int arch_prepare_bpf_trampoline(void *image, void *image_end,
 	 * the return value is only updated on the stack and still needs to be
 	 * restored to R0.
 	 */
-	if (flags & BPF_TRAMP_F_CALL_ORIG)
+	if (flags & BPF_TRAMP_F_CALL_ORIG) {
+		im->ip_epilogue = prog;
+		/* arg1: mov rdi, im */
+		emit_mov_imm64(&prog, BPF_REG_1, (long) im >> 32, (u32) (long) im);
+		if (emit_call(&prog, __bpf_tramp_exit, prog)) {
+			ret = -EINVAL;
+			goto cleanup;
+		}
 		/* restore original return value back into RAX */
 		emit_ldx(&prog, BPF_DW, BPF_REG_0, BPF_REG_FP, -8);
+	}
 
 	EMIT1(0x5B); /* pop rbx */
 	EMIT1(0xC9); /* leave */
arch/x86/xen/p2m.c +2 -5
index a3cc33091f46..8bdba2564cf9 100644
@@ -98,8 +98,8 @@ EXPORT_SYMBOL_GPL(xen_p2m_size);
 unsigned long xen_max_p2m_pfn __read_mostly;
 EXPORT_SYMBOL_GPL(xen_max_p2m_pfn);
 
-#ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT
-#define P2M_LIMIT CONFIG_XEN_BALLOON_MEMORY_HOTPLUG_LIMIT
+#ifdef CONFIG_XEN_MEMORY_HOTPLUG_LIMIT
+#define P2M_LIMIT CONFIG_XEN_MEMORY_HOTPLUG_LIMIT
 #else
 #define P2M_LIMIT 0
 #endif
@@ -416,9 +416,6 @@ void __init xen_vmalloc_p2m_tree(void)
 	xen_p2m_last_pfn = xen_max_p2m_pfn;
 
 	p2m_limit = (phys_addr_t)P2M_LIMIT * 1024 * 1024 * 1024 / PAGE_SIZE;
-	if (!p2m_limit && IS_ENABLED(CONFIG_XEN_UNPOPULATED_ALLOC))
-		p2m_limit = xen_start_info->nr_pages * XEN_EXTRA_MEM_RATIO;
-
 	vm.flags = VM_ALLOC;
 	vm.size = ALIGN(sizeof(unsigned long) * max(xen_max_p2m_pfn, p2m_limit),
 			PMD_SIZE * PMDS_PER_MID_PAGE);
arch/x86/xen/setup.c +14 -2
index 1a3b75652fa4..8bfc10330107 100644
@@ -59,6 +59,18 @@ static struct {
 } xen_remap_buf __initdata __aligned(PAGE_SIZE);
 static unsigned long xen_remap_mfn __initdata = INVALID_P2M_ENTRY;
 
+/*
+ * The maximum amount of extra memory compared to the base size.  The
+ * main scaling factor is the size of struct page.  At extreme ratios
+ * of base:extra, all the base memory can be filled with page
+ * structures for the extra memory, leaving no space for anything
+ * else.
+ *
+ * 10x seems like a reasonable balance between scaling flexibility and
+ * leaving a practically usable system.
+ */
+#define EXTRA_MEM_RATIO		(10)
+
 static bool xen_512gb_limit __initdata = IS_ENABLED(CONFIG_XEN_512GB);
 
 static void __init xen_parse_512gb(void)
@@ -778,13 +790,13 @@ char * __init xen_memory_setup(void)
 		extra_pages += max_pages - max_pfn;
 
 	/*
-	 * Clamp the amount of extra memory to a XEN_EXTRA_MEM_RATIO
+	 * Clamp the amount of extra memory to a EXTRA_MEM_RATIO
 	 * factor the base size.
 	 *
 	 * Make sure we have no memory above max_pages, as this area
 	 * isn't handled by the p2m management.
 	 */
-	extra_pages = min3(XEN_EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)),
+	extra_pages = min3(EXTRA_MEM_RATIO * min(max_pfn, PFN_DOWN(MAXMEM)),
 			   extra_pages, max_pages - max_pfn);
 	i = 0;
 	addr = xen_e820_table.entries[0].addr;
block/blk-cgroup-rwstat.c +2 -1
index 85d5790ac49b..3304e841df7c 100644
@@ -109,6 +109,7 @@ void blkg_rwstat_recursive_sum(struct blkcg_gq *blkg, struct blkcg_policy *pol,
 
 	lockdep_assert_held(&blkg->q->queue_lock);
 
+	memset(sum, 0, sizeof(*sum));
 	rcu_read_lock();
 	blkg_for_each_descendant_pre(pos_blkg, pos_css, blkg) {
 		struct blkg_rwstat *rwstat;
@@ -122,7 +123,7 @@ void blkg_rwstat_recursive_sum(struct blkcg_gq *blkg, struct blkcg_policy *pol,
 			rwstat = (void *)pos_blkg + off;
 
 		for (i = 0; i < BLKG_RWSTAT_NR; i++)
-			sum->cnt[i] = blkg_rwstat_read_counter(rwstat, i);
+			sum->cnt[i] += blkg_rwstat_read_counter(rwstat, i);
 	}
 	rcu_read_unlock();
 }
block/blk-merge.c +8 -0
index 808768f6b174..756473295f19 100644
@@ -383,6 +383,14 @@ unsigned int blk_recalc_rq_segments(struct request *rq)
 	switch (bio_op(rq->bio)) {
 	case REQ_OP_DISCARD:
 	case REQ_OP_SECURE_ERASE:
+		if (queue_max_discard_segments(rq->q) > 1) {
+			struct bio *bio = rq->bio;
+
+			for_each_bio(bio)
+				nr_phys_segs++;
+			return nr_phys_segs;
+		}
+		return 1;
 	case REQ_OP_WRITE_ZEROES:
 		return 0;
 	case REQ_OP_WRITE_SAME:
block/blk-zoned.c +1 -1
index df0ecf6790d3..fc925f73d694 100644
@@ -240,7 +240,7 @@ int blkdev_zone_mgmt(struct block_device *bdev, enum req_opf op,
 		 */
 		if (op == REQ_OP_ZONE_RESET &&
 		    blkdev_allow_reset_all_zones(bdev, sector, nr_sectors)) {
-			bio->bi_opf = REQ_OP_ZONE_RESET_ALL;
+			bio->bi_opf = REQ_OP_ZONE_RESET_ALL | REQ_SYNC;
 			break;
 		}
 
block/genhd.c +1 -3
index 07a0ef741de1..12940cfa68af 100644
@@ -658,10 +658,8 @@ static void register_disk(struct device *parent, struct gendisk *disk,
 		kobject_create_and_add("holders", &ddev->kobj);
 	disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj);
 
-	if (disk->flags & GENHD_FL_HIDDEN) {
-		dev_set_uevent_suppress(ddev, 0);
+	if (disk->flags & GENHD_FL_HIDDEN)
 		return;
-	}
 
 	disk_scan_partitions(disk);
 
drivers/acpi/acpica/nsaccess.c +1 -2
index 3f045b5953b2..a0c1a665dfc1 100644
@@ -99,13 +99,12 @@ acpi_status acpi_ns_root_initialize(void)
 		 * just create and link the new node(s) here.
 		 */
 		new_node =
-		    ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_namespace_node));
+		    acpi_ns_create_node(*ACPI_CAST_PTR(u32, init_val->name));
 		if (!new_node) {
 			status = AE_NO_MEMORY;
 			goto unlock_and_exit;
 		}
 
-		ACPI_COPY_NAMESEG(new_node->name.ascii, init_val->name);
 		new_node->descriptor_type = ACPI_DESC_TYPE_NAMED;
 		new_node->type = init_val->type;
 
drivers/acpi/internal.h +5 -1
index e6a5d997241c..cb8f70842249 100644
@@ -9,6 +9,8 @@
 #ifndef _ACPI_INTERNAL_H_
 #define _ACPI_INTERNAL_H_
 
+#include <linux/idr.h>
+
 #define PREFIX "ACPI: "
 
 int early_acpi_osi_init(void);
@@ -96,9 +98,11 @@ void acpi_scan_table_handler(u32 event, void *table, void *context);
 
 extern struct list_head acpi_bus_id_list;
 
+#define ACPI_MAX_DEVICE_INSTANCES	4096
+
 struct acpi_device_bus_id {
 	const char *bus_id;
-	unsigned int instance_no;
+	struct ida instance_ida;
 	struct list_head node;
 };
 
drivers/acpi/scan.c +53 -35

128 lines not on this page · raw message

drivers/acpi/video_detect.c +1 -0
index 811d298637cb..83cd4c95faf0 100644
@@ -147,6 +147,7 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
 		},
 	},
 	{
+	.callback = video_detect_force_vendor,
 	.ident = "Sony VPCEH3U1E",
 	.matches = {
 		DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
drivers/atm/eni.c +2 -1
index 316a9947541f..b574cce98dc3 100644
@@ -2260,7 +2260,8 @@ static int eni_init_one(struct pci_dev *pci_dev,
 	return rc;
 
 err_eni_release:
-	eni_do_release(dev);
+	dev->phy = NULL;
+	iounmap(ENI_DEV(dev)->ioaddr);
 err_unregister:
 	atm_dev_deregister(dev);
 err_free_consistent:
drivers/atm/idt77105.c +2 -2
index 3c081b6171a8..bfca7b8a6f31 100644
@@ -262,7 +262,7 @@ static int idt77105_start(struct atm_dev *dev)
 {
 	unsigned long flags;
 
-	if (!(dev->dev_data = kmalloc(sizeof(struct idt77105_priv),GFP_KERNEL)))
+	if (!(dev->phy_data = kmalloc(sizeof(struct idt77105_priv),GFP_KERNEL)))
 		return -ENOMEM;
 	PRIV(dev)->dev = dev;
 	spin_lock_irqsave(&idt77105_priv_lock, flags);
@@ -337,7 +337,7 @@ static int idt77105_stop(struct atm_dev *dev)
                 else
                     idt77105_all = walk->next;
 	        dev->phy = NULL;
-                dev->dev_data = NULL;
+                dev->phy_data = NULL;
                 kfree(walk);
                 break;
             }
drivers/atm/lanai.c +4 -1
index d7277c26e423..32d7aa141d96 100644
@@ -2233,6 +2233,7 @@ static int lanai_dev_open(struct atm_dev *atmdev)
 	conf1_write(lanai);
 #endif
 	iounmap(lanai->base);
+	lanai->base = NULL;
     error_pci:
 	pci_disable_device(lanai->pci);
     error:
@@ -2245,6 +2246,8 @@ static int lanai_dev_open(struct atm_dev *atmdev)
 static void lanai_dev_close(struct atm_dev *atmdev)
 {
 	struct lanai_dev *lanai = (struct lanai_dev *) atmdev->dev_data;
+	if (lanai->base==NULL)
+		return;
 	printk(KERN_INFO DEV_LABEL "(itf %d): shutting down interface\n",
 	    lanai->number);
 	lanai_timed_poll_stop(lanai);
@@ -2552,7 +2555,7 @@ static int lanai_init_one(struct pci_dev *pci,
 	struct atm_dev *atmdev;
 	int result;
 
-	lanai = kmalloc(sizeof(*lanai), GFP_KERNEL);
+	lanai = kzalloc(sizeof(*lanai), GFP_KERNEL);
 	if (lanai == NULL) {
 		printk(KERN_ERR DEV_LABEL
 		       ": couldn't allocate dev_data structure!\n");
drivers/atm/uPD98402.c +1 -1
index 7850758b5bb8..239852d85558 100644
@@ -211,7 +211,7 @@ static void uPD98402_int(struct atm_dev *dev)
 static int uPD98402_start(struct atm_dev *dev)
 {
 	DPRINTK("phy_start\n");
-	if (!(dev->dev_data = kmalloc(sizeof(struct uPD98402_priv),GFP_KERNEL)))
+	if (!(dev->phy_data = kmalloc(sizeof(struct uPD98402_priv),GFP_KERNEL)))
 		return -ENOMEM;
 	spin_lock_init(&PRIV(dev)->lock);
 	memset(&PRIV(dev)->sonet_stats,0,sizeof(struct k_sonet_stats));
drivers/base/power/runtime.c +39 -6

87 lines not on this page · raw message

drivers/block/umem.c +4 -1
index 2b95d7b33b91..5eb44e4a91ee 100644
@@ -877,6 +877,7 @@ static int mm_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	if (card->mm_pages[0].desc == NULL ||
 	    card->mm_pages[1].desc == NULL) {
 		dev_printk(KERN_ERR, &card->dev->dev, "alloc failed\n");
+		ret = -ENOMEM;
 		goto failed_alloc;
 	}
 	reset_page(&card->mm_pages[0]);
@@ -888,8 +889,10 @@ static int mm_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	spin_lock_init(&card->lock);
 
 	card->queue = blk_alloc_queue(NUMA_NO_NODE);
-	if (!card->queue)
+	if (!card->queue) {
+		ret = -ENOMEM;
 		goto failed_alloc;
+	}
 
 	tasklet_init(&card->tasklet, process_page, (unsigned long)card);
 
drivers/block/xen-blkback/blkback.c +1 -1
index da16121140ca..3874233f7194 100644
@@ -891,7 +891,7 @@ static int xen_blkbk_map(struct xen_blkif_ring *ring,
 out:
 	for (i = last_map; i < num; i++) {
 		/* Don't zap current batch's valid persistent grants. */
-		if(i >= last_map + segs_to_map)
+		if(i >= map_until)
 			pages[i]->persistent_gnt = NULL;
 		pages[i]->handle = BLKBACK_INVALID_HANDLE;
 	}
drivers/bus/omap_l3_noc.c +2 -2
index b040447575ad..dcfb32ee5cb6 100644
@@ -285,7 +285,7 @@ static int omap_l3_probe(struct platform_device *pdev)
 	 */
 	l3->debug_irq = platform_get_irq(pdev, 0);
 	ret = devm_request_irq(l3->dev, l3->debug_irq, l3_interrupt_handler,
-			       0x0, "l3-dbg-irq", l3);
+			       IRQF_NO_THREAD, "l3-dbg-irq", l3);
 	if (ret) {
 		dev_err(l3->dev, "request_irq failed for %d\n",
 			l3->debug_irq);
@@ -294,7 +294,7 @@ static int omap_l3_probe(struct platform_device *pdev)
 
 	l3->app_irq = platform_get_irq(pdev, 1);
 	ret = devm_request_irq(l3->dev, l3->app_irq, l3_interrupt_handler,
-			       0x0, "l3-app-irq", l3);
+			       IRQF_NO_THREAD, "l3-app-irq", l3);
 	if (ret)
 		dev_err(l3->dev, "request_irq failed for %d\n", l3->app_irq);
 
drivers/clk/qcom/gcc-sc7180.c +2 -2
index 88e896abb663..da8b627ca156 100644
@@ -620,7 +620,7 @@ static struct clk_rcg2 gcc_sdcc1_apps_clk_src = {
 		.name = "gcc_sdcc1_apps_clk_src",
 		.parent_data = gcc_parent_data_1,
 		.num_parents = 5,
-		.ops = &clk_rcg2_ops,
+		.ops = &clk_rcg2_floor_ops,
 	},
 };
 
@@ -642,7 +642,7 @@ static struct clk_rcg2 gcc_sdcc1_ice_core_clk_src = {
 		.name = "gcc_sdcc1_ice_core_clk_src",
 		.parent_data = gcc_parent_data_0,
 		.num_parents = 4,
-		.ops = &clk_rcg2_floor_ops,
+		.ops = &clk_rcg2_ops,
 	},
 };
 
drivers/cpufreq/cpufreq-dt-platdev.c +2 -0
index bd2db0188cbb..91e6a0c10dbf 100644
@@ -103,6 +103,8 @@ static const struct of_device_id whitelist[] __initconst = {
 static const struct of_device_id blacklist[] __initconst = {
 	{ .compatible = "allwinner,sun50i-h6", },
 
+	{ .compatible = "arm,vexpress", },
+
 	{ .compatible = "calxeda,highbank", },
 	{ .compatible = "calxeda,ecx-2000", },
 
drivers/gpio/gpiolib-acpi.c +1 -1
index 495f779b2ab9..1aacd2a5a1fd 100644
@@ -174,7 +174,7 @@ static void acpi_gpiochip_request_irq(struct acpi_gpio_chip *acpi_gpio,
 	int ret, value;
 
 	ret = request_threaded_irq(event->irq, NULL, event->handler,
-				   event->irqflags, "ACPI:Event", event);
+				   event->irqflags | IRQF_ONESHOT, "ACPI:Event", event);
 	if (ret) {
 		dev_err(acpi_gpio->chip->parent,
 			"Failed to setup interrupt handler for %d\n",
drivers/gpu/drm/Kconfig +1 -0
index af6c6d214d91..f0c0ccdc8a10 100644
@@ -232,6 +232,7 @@ source "drivers/gpu/drm/arm/Kconfig"
 config DRM_RADEON
 	tristate "ATI Radeon"
 	depends on DRM && PCI && MMU
+	depends on AGP || !AGP
 	select FW_LOADER
         select DRM_KMS_HELPER
         select DRM_TTM
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +6 -2
index bc5b644ddda3..eacfca776249 100644
@@ -2666,7 +2666,7 @@ static int amdgpu_device_ip_suspend_phase1(struct amdgpu_device *adev)
 {
 	int i, r;
 
-	if (adev->in_poweroff_reboot_com ||
+	if (adev->in_poweroff_reboot_com || adev->in_hibernate ||
 	    !amdgpu_acpi_is_s0ix_supported(adev) || amdgpu_in_reset(adev)) {
 		amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE);
 		amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE);
@@ -3727,7 +3727,11 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon)
 
 	amdgpu_fence_driver_suspend(adev);
 
-	if (adev->in_poweroff_reboot_com ||
+	/*
+	 * TODO: Need figure out the each GNB IP idle off dependency and then
+	 * improve the AMDGPU suspend/resume sequence for system-wide Sx entry/exit.
+	 */
+	if (adev->in_poweroff_reboot_com || adev->in_hibernate ||
 	    !amdgpu_acpi_is_s0ix_supported(adev) || amdgpu_in_reset(adev))
 		r = amdgpu_device_ip_suspend_phase2(adev);
 	else
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +1 -0
index 1aed641a3eec..82cb2ade83b0 100644
@@ -1102,6 +1102,7 @@ static const struct pci_device_id pciidlist[] = {
 	{0x1002, 0x73A3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
 	{0x1002, 0x73AB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
 	{0x1002, 0x73AE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
+	{0x1002, 0x73AF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
 	{0x1002, 0x73BF, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SIENNA_CICHLID},
 
 	/* Van Gogh */
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +1 -1
index 0bf7d36c6686..5b716404eee1 100644
@@ -146,7 +146,7 @@ static int amdgpufb_create_pinned_object(struct amdgpu_fbdev *rfbdev,
 	size = mode_cmd->pitches[0] * height;
 	aligned_size = ALIGN(size, PAGE_SIZE);
 	ret = amdgpu_gem_object_create(adev, aligned_size, 0, domain, flags,
-				       ttm_bo_type_kernel, NULL, &gobj);
+				       ttm_bo_type_device, NULL, &gobj);
 	if (ret) {
 		pr_err("failed to allocate framebuffer (%d)\n", aligned_size);
 		return -ENOMEM;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -0
index 1d26e82602f7..ad4afbc37d51 100644
@@ -4616,6 +4616,7 @@ static int fill_dc_plane_attributes(struct amdgpu_device *adev,
 	dc_plane_state->global_alpha_value = plane_info.global_alpha_value;
 	dc_plane_state->dcc = plane_info.dcc;
 	dc_plane_state->layer_index = plane_info.layer_index; // Always returns 0
+	dc_plane_state->flip_int_enabled = true;
 
 	/*
 	 * Always set input transfer function, since plane state is refreshed
drivers/gpu/drm/amd/display/dc/dc.h +1 -0
index 3aedadb34548..414b44b4ced4 100644
@@ -889,6 +889,7 @@ struct dc_plane_state {
 	int layer_index;
 
 	union surface_update_flags update_flags;
+	bool flip_int_enabled;
 	/* private to DC core */
 	struct dc_plane_status status;
 	struct dc_context *ctx;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.c +11 -0
index 9e796dfeac20..714c71a5fbde 100644
@@ -1257,6 +1257,16 @@ void hubp1_soft_reset(struct hubp *hubp, bool reset)
 	REG_UPDATE(DCHUBP_CNTL, HUBP_DISABLE, reset ? 1 : 0);
 }
 
+void hubp1_set_flip_int(struct hubp *hubp)
+{
+	struct dcn10_hubp *hubp1 = TO_DCN10_HUBP(hubp);
+
+	REG_UPDATE(DCSURF_SURFACE_FLIP_INTERRUPT,
+		SURFACE_FLIP_INT_MASK, 1);
+
+	return;
+}
+
 void hubp1_init(struct hubp *hubp)
 {
 	//do nothing
@@ -1290,6 +1300,7 @@ static const struct hubp_funcs dcn10_hubp_funcs = {
 	.dmdata_load = NULL,
 	.hubp_soft_reset = hubp1_soft_reset,
 	.hubp_in_blank = hubp1_in_blank,
+	.hubp_set_flip_int = hubp1_set_flip_int,
 };
 
 /*****************************************/
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hubp.h +6 -0
index a9a6ed7f4f99..e2f2f6995935 100644
@@ -74,6 +74,7 @@
 	SRI(DCSURF_SURFACE_EARLIEST_INUSE_C, HUBPREQ, id),\
 	SRI(DCSURF_SURFACE_EARLIEST_INUSE_HIGH_C, HUBPREQ, id),\
 	SRI(DCSURF_SURFACE_CONTROL, HUBPREQ, id),\
+	SRI(DCSURF_SURFACE_FLIP_INTERRUPT, HUBPREQ, id),\
 	SRI(HUBPRET_CONTROL, HUBPRET, id),\
 	SRI(DCN_EXPANSION_MODE, HUBPREQ, id),\
 	SRI(DCHUBP_REQ_SIZE_CONFIG, HUBP, id),\
@@ -183,6 +184,7 @@
 	uint32_t DCSURF_SURFACE_EARLIEST_INUSE_C; \
 	uint32_t DCSURF_SURFACE_EARLIEST_INUSE_HIGH_C; \
 	uint32_t DCSURF_SURFACE_CONTROL; \
+	uint32_t DCSURF_SURFACE_FLIP_INTERRUPT; \
 	uint32_t HUBPRET_CONTROL; \
 	uint32_t DCN_EXPANSION_MODE; \
 	uint32_t DCHUBP_REQ_SIZE_CONFIG; \
@@ -332,6 +334,7 @@
 	HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_META_SURFACE_TMZ_C, mask_sh),\
 	HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_DCC_EN, mask_sh),\
 	HUBP_SF(HUBPREQ0_DCSURF_SURFACE_CONTROL, SECONDARY_SURFACE_DCC_IND_64B_BLK, mask_sh),\
+	HUBP_SF(HUBPREQ0_DCSURF_SURFACE_FLIP_INTERRUPT, SURFACE_FLIP_INT_MASK, mask_sh),\
 	HUBP_SF(HUBPRET0_HUBPRET_CONTROL, DET_BUF_PLANE1_BASE_ADDRESS, mask_sh),\
 	HUBP_SF(HUBPRET0_HUBPRET_CONTROL, CROSSBAR_SRC_CB_B, mask_sh),\
 	HUBP_SF(HUBPRET0_HUBPRET_CONTROL, CROSSBAR_SRC_CR_R, mask_sh),\
@@ -531,6 +534,7 @@
 	type PRIMARY_SURFACE_DCC_IND_64B_BLK;\
 	type SECONDARY_SURFACE_DCC_EN;\
 	type SECONDARY_SURFACE_DCC_IND_64B_BLK;\
+	type SURFACE_FLIP_INT_MASK;\
 	type DET_BUF_PLANE1_BASE_ADDRESS;\
 	type CROSSBAR_SRC_CB_B;\
 	type CROSSBAR_SRC_CR_R;\
@@ -777,4 +781,6 @@ void hubp1_read_state_common(struct hubp *hubp);
 bool hubp1_in_blank(struct hubp *hubp);
 void hubp1_soft_reset(struct hubp *hubp, bool reset);
 
+void hubp1_set_flip_int(struct hubp *hubp);
+
 #endif
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +7 -0
index 017b67b830e6..3e86e042de0d 100644
@@ -2195,6 +2195,13 @@ static void dcn10_enable_plane(
 	if (dc->debug.sanity_checks) {
 		hws->funcs.verify_allow_pstate_change_high(dc);
 	}
+
+	if (!pipe_ctx->top_pipe
+		&& pipe_ctx->plane_state
+		&& pipe_ctx->plane_state->flip_int_enabled
+		&& pipe_ctx->plane_res.hubp->funcs->hubp_set_flip_int)
+			pipe_ctx->plane_res.hubp->funcs->hubp_set_flip_int(pipe_ctx->plane_res.hubp);
+
 }
 
 void dcn10_program_gamut_remap(struct pipe_ctx *pipe_ctx)
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hubp.c +1 -0
index 0df0da2e6a4d..bec7059f6d5d 100644
@@ -1597,6 +1597,7 @@ static struct hubp_funcs dcn20_hubp_funcs = {
 	.validate_dml_output = hubp2_validate_dml_output,
 	.hubp_in_blank = hubp1_in_blank,
 	.hubp_soft_reset = hubp1_soft_reset,
+	.hubp_set_flip_int = hubp1_set_flip_int,
 };
 
 
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +6 -0
index 09b9732424e1..077ba9cf69c5 100644
@@ -1146,6 +1146,12 @@ void dcn20_enable_plane(
 		pipe_ctx->plane_res.hubp->funcs->hubp_set_vm_system_aperture_settings(pipe_ctx->plane_res.hubp, &apt);
 	}
 
+	if (!pipe_ctx->top_pipe
+		&& pipe_ctx->plane_state
+		&& pipe_ctx->plane_state->flip_int_enabled
+		&& pipe_ctx->plane_res.hubp->funcs->hubp_set_flip_int)
+			pipe_ctx->plane_res.hubp->funcs->hubp_set_flip_int(pipe_ctx->plane_res.hubp);
+
 //	if (dc->debug.sanity_checks) {
 //		dcn10_verify_allow_pstate_change_high(dc);
 //	}
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_link_encoder.c +1 -2
index 15c2ff264ff6..1a347484cf2a 100644
@@ -341,8 +341,7 @@ void enc2_hw_init(struct link_encoder *enc)
 	} else {
 		AUX_REG_WRITE(AUX_DPHY_RX_CONTROL0, 0x103d1110);
 
-		AUX_REG_WRITE(AUX_DPHY_TX_CONTROL, 0x21c4d);
-
+		AUX_REG_WRITE(AUX_DPHY_TX_CONTROL, 0x21c7a);
 	}
 
 	//AUX_DPHY_TX_REF_CONTROL'AUX_TX_REF_DIV HW default is 0x32;
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c +1 -0
index f9045852728f..b0c9180b808f 100644
@@ -838,6 +838,7 @@ static struct hubp_funcs dcn21_hubp_funcs = {
 	.hubp_set_flip_control_surface_gsl = hubp2_set_flip_control_surface_gsl,
 	.hubp_init = hubp21_init,
 	.validate_dml_output = hubp21_validate_dml_output,
+	.hubp_set_flip_int = hubp1_set_flip_int,
 };
 
 bool hubp21_construct(
drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c +1 -1
index 4caeab6a09b3..4a3df13c9e49 100644
@@ -296,7 +296,7 @@ struct _vcs_dpi_soc_bounding_box_st dcn2_1_soc = {
 	.num_banks = 8,
 	.num_chans = 4,
 	.vmm_page_size_bytes = 4096,
-	.dram_clock_change_latency_us = 11.72,
+	.dram_clock_change_latency_us = 23.84,
 	.return_bus_width_bytes = 64,
 	.dispclk_dppclk_vco_speed_mhz = 3600,
 	.xfc_bus_transport_time_us = 4,
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c +1 -0
index 88ffa9ff1ed1..f24612523248 100644
@@ -511,6 +511,7 @@ static struct hubp_funcs dcn30_hubp_funcs = {
 	.hubp_init = hubp3_init,
 	.hubp_in_blank = hubp1_in_blank,
 	.hubp_soft_reset = hubp1_soft_reset,
+	.hubp_set_flip_int = hubp1_set_flip_int,
 };
 
 bool hubp3_construct(
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c +31 -0
index 5e126fdf6ec1..7ec8936346b2 100644
@@ -2601,6 +2601,19 @@ static const struct resource_funcs dcn30_res_pool_funcs = {
 	.patch_unknown_plane_state = dcn20_patch_unknown_plane_state,
 };
 
+#define CTX ctx
+
+#define REG(reg_name) \
+	(DCN_BASE.instance[0].segment[mm ## reg_name ## _BASE_IDX] + mm ## reg_name)
+
+static uint32_t read_pipe_fuses(struct dc_context *ctx)
+{
+	uint32_t value = REG_READ(CC_DC_PIPE_DIS);
+	/* Support for max 6 pipes */
+	value = value & 0x3f;
+	return value;
+}
+
 static bool dcn30_resource_construct(
 	uint8_t num_virtual_links,
 	struct dc *dc,
@@ -2610,6 +2623,15 @@ static bool dcn30_resource_construct(
 	struct dc_context *ctx = dc->ctx;
 	struct irq_service_init_data init_data;
 	struct ddc_service_init_data ddc_init_data;
+	uint32_t pipe_fuses = read_pipe_fuses(ctx);
+	uint32_t num_pipes = 0;
+
+	if (!(pipe_fuses == 0 || pipe_fuses == 0x3e)) {
+		BREAK_TO_DEBUGGER();
+		dm_error("DC: Unexpected fuse recipe for navi2x !\n");
+		/* fault to single pipe */
+		pipe_fuses = 0x3e;
+	}
 
 	DC_FP_START();
 
@@ -2739,6 +2761,15 @@ static bool dcn30_resource_construct(
 	/* PP Lib and SMU interfaces */
 	init_soc_bounding_box(dc, pool);
 
+	num_pipes = dcn3_0_ip.max_num_dpp;
+
+	for (i = 0; i < dcn3_0_ip.max_num_dpp; i++)
+		if (pipe_fuses & 1 << i)
+			num_pipes--;
+
+	dcn3_0_ip.max_num_dpp = num_pipes;
+	dcn3_0_ip.max_num_otg = num_pipes;
+
 	dml_init_instance(&dc->dml, &dcn3_0_soc, &dcn3_0_ip, DML_PROJECT_DCN30);
 
 	/* IRQ */
drivers/gpu/drm/amd/display/dc/dcn301/dcn301_resource.c +95 -1

107 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h +2 -0
index 22f3f643ed1b..346dcd87dc10 100644
@@ -191,6 +191,8 @@ struct hubp_funcs {
 	bool (*hubp_in_blank)(struct hubp *hubp);
 	void (*hubp_soft_reset)(struct hubp *hubp, bool reset);
 
+	void (*hubp_set_flip_int)(struct hubp *hubp);
+
 };
 
 #endif
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c +54 -0

72 lines not on this page · raw message

drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c +63 -11

118 lines not on this page · raw message

drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_hwmgr.c +24 -0
index 62076035029a..e68651fb7ca4 100644
@@ -133,6 +133,7 @@ static void vega12_set_default_registry_data(struct pp_hwmgr *hwmgr)
 	data->registry_data.auto_wattman_debug = 0;
 	data->registry_data.auto_wattman_sample_period = 100;
 	data->registry_data.auto_wattman_threshold = 50;
+	data->registry_data.pcie_dpm_key_disabled = !(hwmgr->feature_mask & PP_PCIE_DPM_MASK);
 }
 
 static int vega12_set_features_platform_caps(struct pp_hwmgr *hwmgr)
@@ -539,6 +540,29 @@ static int vega12_override_pcie_parameters(struct pp_hwmgr *hwmgr)
 		pp_table->PcieLaneCount[i] = pcie_width_arg;
 	}
 
+	/* override to the highest if it's disabled from ppfeaturmask */
+	if (data->registry_data.pcie_dpm_key_disabled) {
+		for (i = 0; i < NUM_LINK_LEVELS; i++) {
+			smu_pcie_arg = (i << 16) | (pcie_gen << 8) | pcie_width;
+			ret = smum_send_msg_to_smc_with_parameter(hwmgr,
+				PPSMC_MSG_OverridePcieParameters, smu_pcie_arg,
+				NULL);
+			PP_ASSERT_WITH_CODE(!ret,
+				"[OverridePcieParameters] Attempt to override pcie params failed!",
+				return ret);
+
+			pp_table->PcieGenSpeed[i] = pcie_gen;
+			pp_table->PcieLaneCount[i] = pcie_width;
+		}
+		ret = vega12_enable_smc_features(hwmgr,
+				false,
+				data->smu_features[GNLD_DPM_LINK].smu_feature_bitmap);
+		PP_ASSERT_WITH_CODE(!ret,
+				"Attempt to Disable DPM LINK Failed!",
+				return ret);
+		data->smu_features[GNLD_DPM_LINK].enabled = false;
+		data->smu_features[GNLD_DPM_LINK].supported = false;
+	}
 	return 0;
 }
 
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c +25 -0
index 251979c059c8..60cde0c52825 100644
@@ -171,6 +171,7 @@ static void vega20_set_default_registry_data(struct pp_hwmgr *hwmgr)
 	data->registry_data.gfxoff_controlled_by_driver = 1;
 	data->gfxoff_allowed = false;
 	data->counter_gfxoff = 0;
+	data->registry_data.pcie_dpm_key_disabled = !(hwmgr->feature_mask & PP_PCIE_DPM_MASK);
 }
 
 static int vega20_set_features_platform_caps(struct pp_hwmgr *hwmgr)
@@ -885,6 +886,30 @@ static int vega20_override_pcie_parameters(struct pp_hwmgr *hwmgr)
 		pp_table->PcieLaneCount[i] = pcie_width_arg;
 	}
 
+	/* override to the highest if it's disabled from ppfeaturmask */
+	if (data->registry_data.pcie_dpm_key_disabled) {
+		for (i = 0; i < NUM_LINK_LEVELS; i++) {
+			smu_pcie_arg = (i << 16) | (pcie_gen << 8) | pcie_width;
+			ret = smum_send_msg_to_smc_with_parameter(hwmgr,
+				PPSMC_MSG_OverridePcieParameters, smu_pcie_arg,
+				NULL);
+			PP_ASSERT_WITH_CODE(!ret,
+				"[OverridePcieParameters] Attempt to override pcie params failed!",
+				return ret);
+
+			pp_table->PcieGenSpeed[i] = pcie_gen;
+			pp_table->PcieLaneCount[i] = pcie_width;
+		}
+		ret = vega20_enable_smc_features(hwmgr,
+				false,
+				data->smu_features[GNLD_DPM_LINK].smu_feature_bitmap);
+		PP_ASSERT_WITH_CODE(!ret,
+				"Attempt to Disable DPM LINK Failed!",
+				return ret);
+		data->smu_features[GNLD_DPM_LINK].enabled = false;
+		data->smu_features[GNLD_DPM_LINK].supported = false;
+	}
+
 	return 0;
 }
 
drivers/gpu/drm/etnaviv/etnaviv_gem.c +1 -1
index 6d38c5c17f23..a9e696d05b33 100644
@@ -689,7 +689,7 @@ static int etnaviv_gem_userptr_get_pages(struct etnaviv_gem_object *etnaviv_obj)
 		struct page **pages = pvec + pinned;
 
 		ret = pin_user_pages_fast(ptr, num_pages,
-					  !userptr->ro ? FOLL_WRITE : 0, pages);
+					  FOLL_WRITE | FOLL_FORCE, pages);
 		if (ret < 0) {
 			unpin_user_pages(pvec, pinned);
 			kvfree(pvec);
drivers/gpu/drm/i915/display/intel_vdsc.c +2 -8
index e2716a67b281..d017d341c593 100644
@@ -1016,20 +1016,14 @@ static i915_reg_t dss_ctl1_reg(const struct intel_crtc_state *crtc_state)
 {
 	enum pipe pipe = to_intel_crtc(crtc_state->uapi.crtc)->pipe;
 
-	if (crtc_state->cpu_transcoder == TRANSCODER_EDP)
-		return DSS_CTL1;
-
-	return ICL_PIPE_DSS_CTL1(pipe);
+	return is_pipe_dsc(crtc_state) ? ICL_PIPE_DSS_CTL1(pipe) : DSS_CTL1;
 }
 
 static i915_reg_t dss_ctl2_reg(const struct intel_crtc_state *crtc_state)
 {
 	enum pipe pipe = to_intel_crtc(crtc_state->uapi.crtc)->pipe;
 
-	if (crtc_state->cpu_transcoder == TRANSCODER_EDP)
-		return DSS_CTL2;
-
-	return ICL_PIPE_DSS_CTL2(pipe);
+	return is_pipe_dsc(crtc_state) ? ICL_PIPE_DSS_CTL2(pipe) : DSS_CTL2;
 }
 
 void intel_dsc_enable(struct intel_encoder *encoder,
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c +12 -1
index 7fb36b12fe7a..6614f6736486 100644
@@ -316,7 +316,18 @@ void i915_vma_revoke_fence(struct i915_vma *vma)
 	WRITE_ONCE(fence->vma, NULL);
 	vma->fence = NULL;
 
-	with_intel_runtime_pm_if_in_use(fence_to_uncore(fence)->rpm, wakeref)
+	/*
+	 * Skip the write to HW if and only if the device is currently
+	 * suspended.
+	 *
+	 * If the driver does not currently hold a wakeref (if_in_use == 0),
+	 * the device may currently be runtime suspended, or it may be woken
+	 * up before the suspend takes place. If the device is not suspended
+	 * (powered down) and we skip clearing the fence register, the HW is
+	 * left in an undefined state where we may end up with multiple
+	 * registers overlapping.
+	 */
+	with_intel_runtime_pm_if_active(fence_to_uncore(fence)->rpm, wakeref)
 		fence_write(fence);
 }
 
drivers/gpu/drm/i915/intel_runtime_pm.c +24 -5
index 153ca9e65382..8b725efb2254 100644
@@ -412,12 +412,20 @@ intel_wakeref_t intel_runtime_pm_get(struct intel_runtime_pm *rpm)
 }
 
 /**
- * intel_runtime_pm_get_if_in_use - grab a runtime pm reference if device in use
+ * __intel_runtime_pm_get_if_active - grab a runtime pm reference if device is active
  * @rpm: the intel_runtime_pm structure
+ * @ignore_usecount: get a ref even if dev->power.usage_count is 0
  *
  * This function grabs a device-level runtime pm reference if the device is
- * already in use and ensures that it is powered up. It is illegal to try
- * and access the HW should intel_runtime_pm_get_if_in_use() report failure.
+ * already active and ensures that it is powered up. It is illegal to try
+ * and access the HW should intel_runtime_pm_get_if_active() report failure.
+ *
+ * If @ignore_usecount=true, a reference will be acquired even if there is no
+ * user requiring the device to be powered up (dev->power.usage_count == 0).
+ * If the function returns false in this case then it's guaranteed that the
+ * device's runtime suspend hook has been called already or that it will be
+ * called (and hence it's also guaranteed that the device's runtime resume
+ * hook will be called eventually).
  *
  * Any runtime pm reference obtained by this function must have a symmetric
  * call to intel_runtime_pm_put() to release the reference again.
@@ -425,7 +433,8 @@ intel_wakeref_t intel_runtime_pm_get(struct intel_runtime_pm *rpm)
  * Returns: the wakeref cookie to pass to intel_runtime_pm_put(), evaluates
  * as True if the wakeref was acquired, or False otherwise.
  */
-intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm)
+static intel_wakeref_t __intel_runtime_pm_get_if_active(struct intel_runtime_pm *rpm,
+							bool ignore_usecount)
 {
 	if (IS_ENABLED(CONFIG_PM)) {
 		/*
@@ -434,7 +443,7 @@ intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm)
 		 * function, since the power state is undefined. This applies
 		 * atm to the late/early system suspend/resume handlers.
 		 */
-		if (pm_runtime_get_if_in_use(rpm->kdev) <= 0)
+		if (pm_runtime_get_if_active(rpm->kdev, ignore_usecount) <= 0)
 			return 0;
 	}
 
@@ -443,6 +452,16 @@ intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm)
 	return track_intel_runtime_pm_wakeref(rpm);
 }
 
+intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm)
+{
+	return __intel_runtime_pm_get_if_active(rpm, false);
+}
+
+intel_wakeref_t intel_runtime_pm_get_if_active(struct intel_runtime_pm *rpm)
+{
+	return __intel_runtime_pm_get_if_active(rpm, true);
+}
+
 /**
  * intel_runtime_pm_get_noresume - grab a runtime pm reference
  * @rpm: the intel_runtime_pm structure
drivers/gpu/drm/i915/intel_runtime_pm.h +5 -0
index ae64ff14c642..1e4ddd11c12b 100644
@@ -177,6 +177,7 @@ void intel_runtime_pm_driver_release(struct intel_runtime_pm *rpm);
 
 intel_wakeref_t intel_runtime_pm_get(struct intel_runtime_pm *rpm);
 intel_wakeref_t intel_runtime_pm_get_if_in_use(struct intel_runtime_pm *rpm);
+intel_wakeref_t intel_runtime_pm_get_if_active(struct intel_runtime_pm *rpm);
 intel_wakeref_t intel_runtime_pm_get_noresume(struct intel_runtime_pm *rpm);
 intel_wakeref_t intel_runtime_pm_get_raw(struct intel_runtime_pm *rpm);
 
@@ -188,6 +189,10 @@ intel_wakeref_t intel_runtime_pm_get_raw(struct intel_runtime_pm *rpm);
 	for ((wf) = intel_runtime_pm_get_if_in_use(rpm); (wf); \
 	     intel_runtime_pm_put((rpm), (wf)), (wf) = 0)
 
+#define with_intel_runtime_pm_if_active(rpm, wf) \
+	for ((wf) = intel_runtime_pm_get_if_active(rpm); (wf); \
+	     intel_runtime_pm_put((rpm), (wf)), (wf) = 0)
+
 void intel_runtime_pm_put_unchecked(struct intel_runtime_pm *rpm);
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
 void intel_runtime_pm_put(struct intel_runtime_pm *rpm, intel_wakeref_t wref);
drivers/gpu/drm/msm/dsi/pll/dsi_pll.c +1 -1
index a45fe95aff49..3dc65877fa10 100644
@@ -163,7 +163,7 @@ struct msm_dsi_pll *msm_dsi_pll_init(struct platform_device *pdev,
 		break;
 	case MSM_DSI_PHY_7NM:
 	case MSM_DSI_PHY_7NM_V4_1:
-		pll = msm_dsi_pll_7nm_init(pdev, id);
+		pll = msm_dsi_pll_7nm_init(pdev, type, id);
 		break;
 	default:
 		pll = ERR_PTR(-ENXIO);
drivers/gpu/drm/msm/dsi/pll/dsi_pll.h +4 -2
index 3405982a092c..bbecb1de5678 100644
@@ -117,10 +117,12 @@ msm_dsi_pll_10nm_init(struct platform_device *pdev, int id)
 }
 #endif
 #ifdef CONFIG_DRM_MSM_DSI_7NM_PHY
-struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev, int id);
+struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev,
+					enum msm_dsi_phy_type type, int id);
 #else
 static inline struct msm_dsi_pll *
-msm_dsi_pll_7nm_init(struct platform_device *pdev, int id)
+msm_dsi_pll_7nm_init(struct platform_device *pdev,
+					enum msm_dsi_phy_type type, int id)
 {
 	return ERR_PTR(-ENODEV);
 }
drivers/gpu/drm/msm/dsi/pll/dsi_pll_7nm.c +3 -2
index 93bf142e4a4e..c1f6708367ae 100644
@@ -852,7 +852,8 @@ static int pll_7nm_register(struct dsi_pll_7nm *pll_7nm)
 	return ret;
 }
 
-struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev, int id)
+struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev,
+					enum msm_dsi_phy_type type, int id)
 {
 	struct dsi_pll_7nm *pll_7nm;
 	struct msm_dsi_pll *pll;
@@ -885,7 +886,7 @@ struct msm_dsi_pll *msm_dsi_pll_7nm_init(struct platform_device *pdev, int id)
 	pll = &pll_7nm->base;
 	pll->min_rate = 1000000000UL;
 	pll->max_rate = 3500000000UL;
-	if (pll->type == MSM_DSI_PHY_7NM_V4_1) {
+	if (type == MSM_DSI_PHY_7NM_V4_1) {
 		pll->min_rate = 600000000UL;
 		pll->max_rate = (unsigned long)5000000000ULL;
 		/* workaround for max rate overflowing on 32-bit builds: */
drivers/gpu/drm/msm/msm_drv.c +12 -0
index 94525ac76d4e..a5c6b8c23336 100644
@@ -1072,6 +1072,10 @@ static int __maybe_unused msm_pm_resume(struct device *dev)
 static int __maybe_unused msm_pm_prepare(struct device *dev)
 {
 	struct drm_device *ddev = dev_get_drvdata(dev);
+	struct msm_drm_private *priv = ddev ? ddev->dev_private : NULL;
+
+	if (!priv || !priv->kms)
+		return 0;
 
 	return drm_mode_config_helper_suspend(ddev);
 }
@@ -1079,6 +1083,10 @@ static int __maybe_unused msm_pm_prepare(struct device *dev)
 static void __maybe_unused msm_pm_complete(struct device *dev)
 {
 	struct drm_device *ddev = dev_get_drvdata(dev);
+	struct msm_drm_private *priv = ddev ? ddev->dev_private : NULL;
+
+	if (!priv || !priv->kms)
+		return;
 
 	drm_mode_config_helper_resume(ddev);
 }
@@ -1311,6 +1319,10 @@ static int msm_pdev_remove(struct platform_device *pdev)
 static void msm_pdev_shutdown(struct platform_device *pdev)
 {
 	struct drm_device *drm = platform_get_drvdata(pdev);
+	struct msm_drm_private *priv = drm ? drm->dev_private : NULL;
+
+	if (!priv || !priv->kms)
+		return;
 
 	drm_atomic_helper_shutdown(drm);
 }
drivers/gpu/drm/nouveau/dispnv50/disp.c +12 -1
index 5f4f09a601d4..f601e91241ac 100644
@@ -2663,9 +2663,20 @@ nv50_display_create(struct drm_device *dev)
 	else
 		nouveau_display(dev)->format_modifiers = disp50xx_modifiers;
 
-	if (disp->disp->object.oclass >= GK104_DISP) {
+	/* FIXME: 256x256 cursors are supported on Kepler, however unlike Maxwell and later
+	 * generations Kepler requires that we use small pages (4K) for cursor scanout surfaces. The
+	 * proper fix for this is to teach nouveau to migrate fbs being used for the cursor plane to
+	 * small page allocations in prepare_fb(). When this is implemented, we should also force
+	 * large pages (128K) for ovly fbs in order to fix Kepler ovlys.
+	 * But until then, just limit cursors to 128x128 - which is small enough to avoid ever using
+	 * large pages.
+	 */
+	if (disp->disp->object.oclass >= GM107_DISP) {
 		dev->mode_config.cursor_width = 256;
 		dev->mode_config.cursor_height = 256;
+	} else if (disp->disp->object.oclass >= GK104_DISP) {
+		dev->mode_config.cursor_width = 128;
+		dev->mode_config.cursor_height = 128;
 	} else {
 		dev->mode_config.cursor_width = 64;
 		dev->mode_config.cursor_height = 64;
drivers/infiniband/hw/cxgb4/cm.c +2 -2
index 8769e7aa097f..81903749d241 100644
@@ -3610,13 +3610,13 @@ int c4iw_destroy_listen(struct iw_cm_id *cm_id)
 	    ep->com.local_addr.ss_family == AF_INET) {
 		err = cxgb4_remove_server_filter(
 			ep->com.dev->rdev.lldi.ports[0], ep->stid,
-			ep->com.dev->rdev.lldi.rxq_ids[0], 0);
+			ep->com.dev->rdev.lldi.rxq_ids[0], false);
 	} else {
 		struct sockaddr_in6 *sin6;
 		c4iw_init_wr_wait(ep->com.wr_waitp);
 		err = cxgb4_remove_server(
 				ep->com.dev->rdev.lldi.ports[0], ep->stid,
-				ep->com.dev->rdev.lldi.rxq_ids[0], 0);
+				ep->com.dev->rdev.lldi.rxq_ids[0], true);
 		if (err)
 			goto done;
 		err = c4iw_wait_for_reply(&ep->com.dev->rdev, ep->com.wr_waitp,
drivers/irqchip/irq-ingenic-tcu.c +1 -0
index 7a7222d4c19c..b938d1d04d96 100644
@@ -179,5 +179,6 @@ static int __init ingenic_tcu_irq_init(struct device_node *np,
 }
 IRQCHIP_DECLARE(jz4740_tcu_irq, "ingenic,jz4740-tcu", ingenic_tcu_irq_init);
 IRQCHIP_DECLARE(jz4725b_tcu_irq, "ingenic,jz4725b-tcu", ingenic_tcu_irq_init);
+IRQCHIP_DECLARE(jz4760_tcu_irq, "ingenic,jz4760-tcu", ingenic_tcu_irq_init);
 IRQCHIP_DECLARE(jz4770_tcu_irq, "ingenic,jz4770-tcu", ingenic_tcu_irq_init);
 IRQCHIP_DECLARE(x1000_tcu_irq, "ingenic,x1000-tcu", ingenic_tcu_irq_init);
drivers/irqchip/irq-ingenic.c +1 -0
index b61a8901ef72..ea36bb00be80 100644
@@ -155,6 +155,7 @@ static int __init intc_2chip_of_init(struct device_node *node,
 {
 	return ingenic_intc_of_init(node, 2);
 }
+IRQCHIP_DECLARE(jz4760_intc, "ingenic,jz4760-intc", intc_2chip_of_init);
 IRQCHIP_DECLARE(jz4770_intc, "ingenic,jz4770-intc", intc_2chip_of_init);
 IRQCHIP_DECLARE(jz4775_intc, "ingenic,jz4775-intc", intc_2chip_of_init);
 IRQCHIP_DECLARE(jz4780_intc, "ingenic,jz4780-intc", intc_2chip_of_init);
drivers/md/dm-ioctl.c +1 -1
index 5e306bba4375..1ca65b434f1f 100644
@@ -529,7 +529,7 @@ static int list_devices(struct file *filp, struct dm_ioctl *param, size_t param_
 	 * Grab our output buffer.
 	 */
 	nl = orig_nl = get_result_buffer(param, param_size, &len);
-	if (len < needed) {
+	if (len < needed || len < sizeof(nl->dev)) {
 		param->flags |= DM_BUFFER_FULL_FLAG;
 		goto out;
 	}
drivers/md/dm-table.c +25 -8
index 77086db8b920..7291fd3106ff 100644
@@ -1380,6 +1380,13 @@ static int device_not_zoned_model(struct dm_target *ti, struct dm_dev *dev,
 	return !q || blk_queue_zoned_model(q) != *zoned_model;
 }
 
+/*
+ * Check the device zoned model based on the target feature flag. If the target
+ * has the DM_TARGET_ZONED_HM feature flag set, host-managed zoned devices are
+ * also accepted but all devices must have the same zoned model. If the target
+ * has the DM_TARGET_MIXED_ZONED_MODEL feature set, the devices can have any
+ * zoned model with all zoned devices having the same zone size.
+ */
 static bool dm_table_supports_zoned_model(struct dm_table *t,
 					  enum blk_zoned_model zoned_model)
 {
@@ -1389,13 +1396,15 @@ static bool dm_table_supports_zoned_model(struct dm_table *t,
 	for (i = 0; i < dm_table_get_num_targets(t); i++) {
 		ti = dm_table_get_target(t, i);
 
-		if (zoned_model == BLK_ZONED_HM &&
-		    !dm_target_supports_zoned_hm(ti->type))
-			return false;
-
-		if (!ti->type->iterate_devices ||
-		    ti->type->iterate_devices(ti, device_not_zoned_model, &zoned_model))
-			return false;
+		if (dm_target_supports_zoned_hm(ti->type)) {
+			if (!ti->type->iterate_devices ||
+			    ti->type->iterate_devices(ti, device_not_zoned_model,
+						      &zoned_model))
+				return false;
+		} else if (!dm_target_supports_mixed_zoned_model(ti->type)) {
+			if (zoned_model == BLK_ZONED_HM)
+				return false;
+		}
 	}
 
 	return true;
@@ -1407,9 +1416,17 @@ static int device_not_matches_zone_sectors(struct dm_target *ti, struct dm_dev *
 	struct request_queue *q = bdev_get_queue(dev->bdev);
 	unsigned int *zone_sectors = data;
 
+	if (!blk_queue_is_zoned(q))
+		return 0;
+
 	return !q || blk_queue_zone_sectors(q) != *zone_sectors;
 }
 
+/*
+ * Check consistency of zoned model and zone sectors across all targets. For
+ * zone sectors, if the destination device is a zoned block device, it shall
+ * have the specified zone_sectors.
+ */
 static int validate_hardware_zoned_model(struct dm_table *table,
 					 enum blk_zoned_model zoned_model,
 					 unsigned int zone_sectors)
@@ -1428,7 +1445,7 @@ static int validate_hardware_zoned_model(struct dm_table *table,
 		return -EINVAL;
 
 	if (dm_table_any_dev_attr(table, device_not_matches_zone_sectors, &zone_sectors)) {
-		DMERR("%s: zone sectors is not consistent across all devices",
+		DMERR("%s: zone sectors is not consistent across all zoned devices",
 		      dm_device_name(table->md));
 		return -EINVAL;
 	}
drivers/md/dm-verity-target.c +1 -1
index 6b8e5bdd8526..808a98ef624c 100644
@@ -34,7 +34,7 @@
 #define DM_VERITY_OPT_IGN_ZEROES	"ignore_zero_blocks"
 #define DM_VERITY_OPT_AT_MOST_ONCE	"check_at_most_once"
 
-#define DM_VERITY_OPTS_MAX		(2 + DM_VERITY_OPTS_FEC + \
+#define DM_VERITY_OPTS_MAX		(3 + DM_VERITY_OPTS_FEC + \
 					 DM_VERITY_ROOT_HASH_VERIFICATION_OPTS)
 
 static unsigned dm_verity_prefetch_cluster = DM_VERITY_DEFAULT_PREFETCH_SIZE;
drivers/md/dm-zoned-target.c +1 -1
index 697f9de37355..7e88df64d197 100644
@@ -1143,7 +1143,7 @@ static int dmz_message(struct dm_target *ti, unsigned int argc, char **argv,
 static struct target_type dmz_type = {
 	.name		 = "zoned",
 	.version	 = {2, 0, 0},
-	.features	 = DM_TARGET_SINGLETON | DM_TARGET_ZONED_HM,
+	.features	 = DM_TARGET_SINGLETON | DM_TARGET_MIXED_ZONED_MODEL,
 	.module		 = THIS_MODULE,
 	.ctr		 = dmz_ctr,
 	.dtr		 = dmz_dtr,
drivers/md/dm.c +4 -1
index 6f03adc12849..09542eabf725 100644
@@ -2016,7 +2016,10 @@ static struct dm_table *__bind(struct mapped_device *md, struct dm_table *t,
 	if (size != dm_get_size(md))
 		memset(&md->geometry, 0, sizeof(md->geometry));
 
-	set_capacity_and_notify(md->disk, size);
+	if (!get_capacity(md->disk))
+		set_capacity(md->disk, size);
+	else
+		set_capacity_and_notify(md->disk, size);
 
 	dm_table_event_callback(t, event_callback, md);
 
drivers/mfd/intel_quark_i2c_gpio.c +4 -2
index fe8ca945f367..b67cb0a3ab05 100644
@@ -72,7 +72,8 @@ static const struct dmi_system_id dmi_platform_info[] = {
 	{}
 };
 
-static const struct resource intel_quark_i2c_res[] = {
+/* This is used as a place holder and will be modified at run-time */
+static struct resource intel_quark_i2c_res[] = {
 	[INTEL_QUARK_IORES_MEM] = {
 		.flags = IORESOURCE_MEM,
 	},
@@ -85,7 +86,8 @@ static struct mfd_cell_acpi_match intel_quark_acpi_match_i2c = {
 	.adr = MFD_ACPI_MATCH_I2C,
 };
 
-static const struct resource intel_quark_gpio_res[] = {
+/* This is used as a place holder and will be modified at run-time */
+static struct resource intel_quark_gpio_res[] = {
 	[INTEL_QUARK_IORES_MEM] = {
 		.flags = IORESOURCE_MEM,
 	},
drivers/misc/habanalabs/common/device.c +35 -5
index 69d04eca767f..82c0306a9210 100644
@@ -93,12 +93,19 @@ void hl_hpriv_put(struct hl_fpriv *hpriv)
 static int hl_device_release(struct inode *inode, struct file *filp)
 {
 	struct hl_fpriv *hpriv = filp->private_data;
+	struct hl_device *hdev = hpriv->hdev;
+
+	filp->private_data = NULL;
+
+	if (!hdev) {
+		pr_crit("Closing FD after device was removed. Memory leak will occur and it is advised to reboot.\n");
+		put_pid(hpriv->taskpid);
+		return 0;
+	}
 
 	hl_cb_mgr_fini(hpriv->hdev, &hpriv->cb_mgr);
 	hl_ctx_mgr_fini(hpriv->hdev, &hpriv->ctx_mgr);
 
-	filp->private_data = NULL;
-
 	hl_hpriv_put(hpriv);
 
 	return 0;
@@ -107,15 +114,20 @@ static int hl_device_release(struct inode *inode, struct file *filp)
 static int hl_device_release_ctrl(struct inode *inode, struct file *filp)
 {
 	struct hl_fpriv *hpriv = filp->private_data;
-	struct hl_device *hdev;
+	struct hl_device *hdev = hpriv->hdev;
 
 	filp->private_data = NULL;
 
-	hdev = hpriv->hdev;
+	if (!hdev) {
+		pr_err("Closing FD after device was removed\n");
+		goto out;
+	}
 
 	mutex_lock(&hdev->fpriv_list_lock);
 	list_del(&hpriv->dev_node);
 	mutex_unlock(&hdev->fpriv_list_lock);
+out:
+	put_pid(hpriv->taskpid);
 
 	kfree(hpriv);
 
@@ -134,8 +146,14 @@ static int hl_device_release_ctrl(struct inode *inode, struct file *filp)
 static int hl_mmap(struct file *filp, struct vm_area_struct *vma)
 {
 	struct hl_fpriv *hpriv = filp->private_data;
+	struct hl_device *hdev = hpriv->hdev;
 	unsigned long vm_pgoff;
 
+	if (!hdev) {
+		pr_err_ratelimited("Trying to mmap after device was removed! Please close FD\n");
+		return -ENODEV;
+	}
+
 	vm_pgoff = vma->vm_pgoff;
 	vma->vm_pgoff = HL_MMAP_OFFSET_VALUE_GET(vm_pgoff);
 
@@ -882,6 +900,16 @@ static int device_kill_open_processes(struct hl_device *hdev, u32 timeout)
 	return -EBUSY;
 }
 
+static void device_disable_open_processes(struct hl_device *hdev)
+{
+	struct hl_fpriv *hpriv;
+
+	mutex_lock(&hdev->fpriv_list_lock);
+	list_for_each_entry(hpriv, &hdev->fpriv_list, dev_node)
+		hpriv->hdev = NULL;
+	mutex_unlock(&hdev->fpriv_list_lock);
+}
+
 /*
  * hl_device_reset - reset the device
  *
@@ -1536,8 +1564,10 @@ void hl_device_fini(struct hl_device *hdev)
 		HL_PENDING_RESET_LONG_SEC);
 
 	rc = device_kill_open_processes(hdev, HL_PENDING_RESET_LONG_SEC);
-	if (rc)
+	if (rc) {
 		dev_crit(hdev->dev, "Failed to kill all open processes\n");
+		device_disable_open_processes(hdev);
+	}
 
 	hl_cb_pool_fini(hdev);
 
drivers/misc/habanalabs/common/habanalabs_ioctl.c +12 -0
index d25892d61ec9..0805e1173d54 100644
@@ -5,6 +5,8 @@
  * All Rights Reserved.
  */
 
+#define pr_fmt(fmt)	"habanalabs: " fmt
+
 #include <uapi/misc/habanalabs.h>
 #include "habanalabs.h"
 
@@ -667,6 +669,11 @@ long hl_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
 	const struct hl_ioctl_desc *ioctl = NULL;
 	unsigned int nr = _IOC_NR(cmd);
 
+	if (!hdev) {
+		pr_err_ratelimited("Sending ioctl after device was removed! Please close FD\n");
+		return -ENODEV;
+	}
+
 	if ((nr >= HL_COMMAND_START) && (nr < HL_COMMAND_END)) {
 		ioctl = &hl_ioctls[nr];
 	} else {
@@ -685,6 +692,11 @@ long hl_ioctl_control(struct file *filep, unsigned int cmd, unsigned long arg)
 	const struct hl_ioctl_desc *ioctl = NULL;
 	unsigned int nr = _IOC_NR(cmd);
 
+	if (!hdev) {
+		pr_err_ratelimited("Sending ioctl after device was removed! Please close FD\n");
+		return -ENODEV;
+	}
+
 	if (nr == _IOC_NR(HL_IOCTL_INFO)) {
 		ioctl = &hl_ioctls_control[nr];
 	} else {
drivers/net/can/c_can/c_can.c +1 -23
index 63f48b016ecd..716d1a5bf17b 100644
@@ -212,18 +212,6 @@ static const struct can_bittiming_const c_can_bittiming_const = {
 	.brp_inc = 1,
 };
 
-static inline void c_can_pm_runtime_enable(const struct c_can_priv *priv)
-{
-	if (priv->device)
-		pm_runtime_enable(priv->device);
-}
-
-static inline void c_can_pm_runtime_disable(const struct c_can_priv *priv)
-{
-	if (priv->device)
-		pm_runtime_disable(priv->device);
-}
-
 static inline void c_can_pm_runtime_get_sync(const struct c_can_priv *priv)
 {
 	if (priv->device)
@@ -1335,7 +1323,6 @@ static const struct net_device_ops c_can_netdev_ops = {
 
 int register_c_can_dev(struct net_device *dev)
 {
-	struct c_can_priv *priv = netdev_priv(dev);
 	int err;
 
 	/* Deactivate pins to prevent DRA7 DCAN IP from being
@@ -1345,28 +1332,19 @@ int register_c_can_dev(struct net_device *dev)
 	 */
 	pinctrl_pm_select_sleep_state(dev->dev.parent);
 
-	c_can_pm_runtime_enable(priv);
-
 	dev->flags |= IFF_ECHO;	/* we support local echo */
 	dev->netdev_ops = &c_can_netdev_ops;
 
 	err = register_candev(dev);
-	if (err)
-		c_can_pm_runtime_disable(priv);
-	else
+	if (!err)
 		devm_can_led_init(dev);
-
 	return err;
 }
 EXPORT_SYMBOL_GPL(register_c_can_dev);
 
 void unregister_c_can_dev(struct net_device *dev)
 {
-	struct c_can_priv *priv = netdev_priv(dev);
-
 	unregister_candev(dev);
-
-	c_can_pm_runtime_disable(priv);
 }
 EXPORT_SYMBOL_GPL(unregister_c_can_dev);
 
drivers/net/can/c_can/c_can_pci.c +2 -1
index 406b4847e5dc..7efb60b50876 100644
@@ -239,12 +239,13 @@ static void c_can_pci_remove(struct pci_dev *pdev)
 {
 	struct net_device *dev = pci_get_drvdata(pdev);
 	struct c_can_priv *priv = netdev_priv(dev);
+	void __iomem *addr = priv->base;
 
 	unregister_c_can_dev(dev);
 
 	free_c_can_dev(dev);
 
-	pci_iounmap(pdev, priv->base);
+	pci_iounmap(pdev, addr);
 	pci_disable_msi(pdev);
 	pci_clear_master(pdev);
 	pci_release_regions(pdev);
drivers/net/can/c_can/c_can_platform.c +5 -1
index 05f425ceb53a..47b251b1607c 100644
@@ -29,6 +29,7 @@
 #include <linux/list.h>
 #include <linux/io.h>
 #include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
 #include <linux/clk.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
@@ -386,6 +387,7 @@ static int c_can_plat_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, dev);
 	SET_NETDEV_DEV(dev, &pdev->dev);
 
+	pm_runtime_enable(priv->device);
 	ret = register_c_can_dev(dev);
 	if (ret) {
 		dev_err(&pdev->dev, "registering %s failed (err=%d)\n",
@@ -398,6 +400,7 @@ static int c_can_plat_probe(struct platform_device *pdev)
 	return 0;
 
 exit_free_device:
+	pm_runtime_disable(priv->device);
 	free_c_can_dev(dev);
 exit:
 	dev_err(&pdev->dev, "probe failed\n");
@@ -408,9 +411,10 @@ static int c_can_plat_probe(struct platform_device *pdev)
 static int c_can_plat_remove(struct platform_device *pdev)
 {
 	struct net_device *dev = platform_get_drvdata(pdev);
+	struct c_can_priv *priv = netdev_priv(dev);
 
 	unregister_c_can_dev(dev);
-
+	pm_runtime_disable(priv->device);
 	free_c_can_dev(dev);
 
 	return 0;
drivers/net/can/dev.c +1 -0
index c73e2a65c904..2a4f12c3c28b 100644
@@ -1255,6 +1255,7 @@ static void can_dellink(struct net_device *dev, struct list_head *head)
 
 static struct rtnl_link_ops can_link_ops __read_mostly = {
 	.kind		= "can",
+	.netns_refund	= true,
 	.maxtype	= IFLA_CAN_MAX,
 	.policy		= can_policy,
 	.setup		= can_setup,
drivers/net/can/flexcan.c +7 -1
index 2893297555eb..a9502fbc6dd6 100644
@@ -697,9 +697,15 @@ static int flexcan_chip_disable(struct flexcan_priv *priv)
 static int flexcan_chip_freeze(struct flexcan_priv *priv)
 {
 	struct flexcan_regs __iomem *regs = priv->regs;
-	unsigned int timeout = 1000 * 1000 * 10 / priv->can.bittiming.bitrate;
+	unsigned int timeout;
+	u32 bitrate = priv->can.bittiming.bitrate;
 	u32 reg;
 
+	if (bitrate)
+		timeout = 1000 * 1000 * 10 / bitrate;
+	else
+		timeout = FLEXCAN_TIMEOUT_US / 10;
+
 	reg = priv->read(&regs->mcr);
 	reg |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT;
 	priv->write(reg, &regs->mcr);
drivers/net/can/kvaser_pciefd.c +4 -0
index 969cedb9b0b6..0d77c60f775e 100644
@@ -57,6 +57,7 @@ MODULE_DESCRIPTION("CAN driver for Kvaser CAN/PCIe devices");
 #define KVASER_PCIEFD_KCAN_STAT_REG 0x418
 #define KVASER_PCIEFD_KCAN_MODE_REG 0x41c
 #define KVASER_PCIEFD_KCAN_BTRN_REG 0x420
+#define KVASER_PCIEFD_KCAN_BUS_LOAD_REG 0x424
 #define KVASER_PCIEFD_KCAN_BTRD_REG 0x428
 #define KVASER_PCIEFD_KCAN_PWM_REG 0x430
 /* Loopback control register */
@@ -949,6 +950,9 @@ static int kvaser_pciefd_setup_can_ctrls(struct kvaser_pciefd *pcie)
 		timer_setup(&can->bec_poll_timer, kvaser_pciefd_bec_poll_timer,
 			    0);
 
+		/* Disable Bus load reporting */
+		iowrite32(0, can->reg_base + KVASER_PCIEFD_KCAN_BUS_LOAD_REG);
+
 		tx_npackets = ioread32(can->reg_base +
 				       KVASER_PCIEFD_KCAN_TX_NPACKETS_REG);
 		if (((tx_npackets >> KVASER_PCIEFD_KCAN_TX_NPACKETS_MAX_SHIFT) &
drivers/net/can/m_can/m_can.c +1 -4
index da551fd0f502..44b3f4b3aea5 100644
@@ -501,9 +501,6 @@ static int m_can_do_rx_poll(struct net_device *dev, int quota)
 	}
 
 	while ((rxfs & RXFS_FFL_MASK) && (quota > 0)) {
-		if (rxfs & RXFS_RFL)
-			netdev_warn(dev, "Rx FIFO 0 Message Lost\n");
-
 		m_can_read_fifo(dev, rxfs);
 
 		quota--;
@@ -876,7 +873,7 @@ static int m_can_rx_peripheral(struct net_device *dev)
 {
 	struct m_can_classdev *cdev = netdev_priv(dev);
 
-	m_can_rx_handler(dev, 1);
+	m_can_rx_handler(dev, M_CAN_NAPI_WEIGHT);
 
 	m_can_enable_all_interrupts(cdev);
 
drivers/net/dsa/b53/b53_common.c +7 -7
index f504b6858ed2..52100d4fe5a2 100644
@@ -1070,13 +1070,6 @@ static int b53_setup(struct dsa_switch *ds)
 			b53_disable_port(ds, port);
 	}
 
-	/* Let DSA handle the case were multiple bridges span the same switch
-	 * device and different VLAN awareness settings are requested, which
-	 * would be breaking filtering semantics for any of the other bridge
-	 * devices. (not hardware supported)
-	 */
-	ds->vlan_filtering_is_global = true;
-
 	return b53_setup_devlink_resources(ds);
 }
 
@@ -2627,6 +2620,13 @@ struct b53_device *b53_switch_alloc(struct device *base,
 	ds->configure_vlan_while_not_filtering = true;
 	ds->untag_bridge_pvid = true;
 	dev->vlan_enabled = ds->configure_vlan_while_not_filtering;
+	/* Let DSA handle the case were multiple bridges span the same switch
+	 * device and different VLAN awareness settings are requested, which
+	 * would be breaking filtering semantics for any of the other bridge
+	 * devices. (not hardware supported)
+	 */
+	ds->vlan_filtering_is_global = true;
+
 	mutex_init(&dev->reg_mutex);
 	mutex_init(&dev->stats_mutex);
 
drivers/net/dsa/bcm_sf2.c +4 -2
index edb0a1027b38..510324916e91 100644
@@ -584,8 +584,10 @@ static u32 bcm_sf2_sw_get_phy_flags(struct dsa_switch *ds, int port)
 	 * in bits 15:8 and the patch level in bits 7:0 which is exactly what
 	 * the REG_PHY_REVISION register layout is.
 	 */
-
-	return priv->hw_params.gphy_rev;
+	if (priv->int_phy_mask & BIT(port))
+		return priv->hw_params.gphy_rev;
+	else
+		return 0;
 }
 
 static void bcm_sf2_sw_validate(struct dsa_switch *ds, int port,
drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c +1 -1
index 1b7e8c91b541..423d6d78d15c 100644
@@ -727,7 +727,7 @@ static int chcr_ktls_cpl_set_tcb_rpl(struct adapter *adap, unsigned char *input)
 		kvfree(tx_info);
 		return 0;
 	}
-	tx_info->open_state = false;
+	tx_info->open_state = CH_KTLS_OPEN_SUCCESS;
 	spin_unlock(&tx_info->lock);
 
 	complete(&tx_info->completion);
drivers/net/ethernet/davicom/dm9000.c +1 -1
index a95e95ce9438..252adfa5d837 100644
@@ -1507,7 +1507,7 @@ dm9000_probe(struct platform_device *pdev)
 		goto out;
 	}
 
-	db->irq_wake = platform_get_irq(pdev, 1);
+	db->irq_wake = platform_get_irq_optional(pdev, 1);
 	if (db->irq_wake >= 0) {
 		dev_dbg(db->dev, "wakeup irq %d\n", db->irq_wake);
 
drivers/net/ethernet/faraday/ftgmac100.c +1 -0
index 88bfe2107938..04421aec2dfd 100644
@@ -1337,6 +1337,7 @@ static int ftgmac100_poll(struct napi_struct *napi, int budget)
 	 */
 	if (unlikely(priv->need_mac_restart)) {
 		ftgmac100_start_hw(priv);
+		priv->need_mac_restart = false;
 
 		/* Re-enable "bad" interrupts */
 		iowrite32(FTGMAC100_INT_BAD,
drivers/net/ethernet/freescale/enetc/enetc_hw.h +2 -0
index de0d20b0f489..00938f7960a4 100644
@@ -234,6 +234,8 @@ enum enetc_bdr_type {TX, RX};
 #define ENETC_PM0_MAXFRM	0x8014
 #define ENETC_SET_TX_MTU(val)	((val) << 16)
 #define ENETC_SET_MAXFRM(val)	((val) & 0xffff)
+#define ENETC_PM0_RX_FIFO	0x801c
+#define ENETC_PM0_RX_FIFO_VAL	1
 
 #define ENETC_PM_IMDIO_BASE	0x8030
 
drivers/net/ethernet/freescale/enetc/enetc_pf.c +6 -0
index ca02f033bea2..224fc37a6757 100644
@@ -490,6 +490,12 @@ static void enetc_configure_port_mac(struct enetc_hw *hw)
 
 	enetc_port_wr(hw, ENETC_PM1_CMD_CFG, ENETC_PM0_CMD_PHY_TX_EN |
 		      ENETC_PM0_CMD_TXP	| ENETC_PM0_PROMISC);
+
+	/* On LS1028A, the MAC RX FIFO defaults to 2, which is too high
+	 * and may lead to RX lock-up under traffic. Set it to 1 instead,
+	 * as recommended by the hardware team.
+	 */
+	enetc_port_wr(hw, ENETC_PM0_RX_FIFO, ENETC_PM0_RX_FIFO_VAL);
 }
 
 static void enetc_mac_config(struct enetc_hw *hw, phy_interface_t phy_mode)
drivers/net/ethernet/freescale/fec_ptp.c +7 -0
index 2e344aada4c6..1753807cbf97 100644
@@ -377,9 +377,16 @@ static int fec_ptp_gettime(struct ptp_clock_info *ptp, struct timespec64 *ts)
 	u64 ns;
 	unsigned long flags;
 
+	mutex_lock(&adapter->ptp_clk_mutex);
+	/* Check the ptp clock */
+	if (!adapter->ptp_clk_on) {
+		mutex_unlock(&adapter->ptp_clk_mutex);
+		return -EINVAL;
+	}
 	spin_lock_irqsave(&adapter->tmreg_lock, flags);
 	ns = timecounter_read(&adapter->tc);
 	spin_unlock_irqrestore(&adapter->tmreg_lock, flags);
+	mutex_unlock(&adapter->ptp_clk_mutex);
 
 	*ts = ns_to_timespec64(ns);
 
drivers/net/ethernet/freescale/gianfar.c +15 -0
index d391a45cebb6..4fab2ee5bbf5 100644
@@ -2391,6 +2391,10 @@ static bool gfar_add_rx_frag(struct gfar_rx_buff *rxb, u32 lstatus,
 		if (lstatus & BD_LFLAG(RXBD_LAST))
 			size -= skb->len;
 
+		WARN(size < 0, "gianfar: rx fragment size underflow");
+		if (size < 0)
+			return false;
+
 		skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page,
 				rxb->page_offset + RXBUF_ALIGNMENT,
 				size, GFAR_RXB_TRUESIZE);
@@ -2553,6 +2557,17 @@ static int gfar_clean_rx_ring(struct gfar_priv_rx_q *rx_queue,
 		if (lstatus & BD_LFLAG(RXBD_EMPTY))
 			break;
 
+		/* lost RXBD_LAST descriptor due to overrun */
+		if (skb &&
+		    (lstatus & BD_LFLAG(RXBD_FIRST))) {
+			/* discard faulty buffer */
+			dev_kfree_skb(skb);
+			skb = NULL;
+			rx_queue->stats.rx_dropped++;
+
+			/* can continue normally */
+		}
+
 		/* order rx buffer descriptor reads */
 		rmb();
 
drivers/net/ethernet/hisilicon/hns/hns_enet.c +3 -1
index 858cb293152a..8bce5f1510be 100644
@@ -1663,8 +1663,10 @@ static int hns_nic_clear_all_rx_fetch(struct net_device *ndev)
 			for (j = 0; j < fetch_num; j++) {
 				/* alloc one skb and init */
 				skb = hns_assemble_skb(ndev);
-				if (!skb)
+				if (!skb) {
+					ret = -ENOMEM;
 					goto out;
+				}
 				rd = &tx_ring_data(priv, skb->queue_mapping);
 				hns_nic_net_xmit_hw(ndev, skb, rd);
 
drivers/net/ethernet/intel/e1000e/82571.c +2 -0
index 88faf05e23ba..0b1e890dd583 100644
@@ -899,6 +899,8 @@ static s32 e1000_set_d0_lplu_state_82571(struct e1000_hw *hw, bool active)
 	} else {
 		data &= ~IGP02E1000_PM_D0_LPLU;
 		ret_val = e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, data);
+		if (ret_val)
+			return ret_val;
 		/* LPLU and SmartSpeed are mutually exclusive.  LPLU is used
 		 * during Dx states where the power conservation is most
 		 * important.  During driver activity we should enable
drivers/net/ethernet/intel/e1000e/netdev.c +5 -1
index e9b82c209c2d..a0948002ddf8 100644
@@ -5974,15 +5974,19 @@ static void e1000_reset_task(struct work_struct *work)
 	struct e1000_adapter *adapter;
 	adapter = container_of(work, struct e1000_adapter, reset_task);
 
+	rtnl_lock();
 	/* don't run the task if already down */
-	if (test_bit(__E1000_DOWN, &adapter->state))
+	if (test_bit(__E1000_DOWN, &adapter->state)) {
+		rtnl_unlock();
 		return;
+	}
 
 	if (!(adapter->flags & FLAG_RESTART_NOW)) {
 		e1000e_dump(adapter);
 		e_err("Reset adapter unexpectedly\n");
 	}
 	e1000e_reinit_locked(adapter);
+	rtnl_unlock();
 }
 
 /**
drivers/net/ethernet/intel/iavf/iavf_main.c +2 -1
index 0a867d64d467..dc5b3c06d1e0 100644
@@ -1776,7 +1776,8 @@ static int iavf_init_get_resources(struct iavf_adapter *adapter)
 		goto err_alloc;
 	}
 
-	if (iavf_process_config(adapter))
+	err = iavf_process_config(adapter);
+	if (err)
 		goto err_alloc;
 	adapter->current_op = VIRTCHNL_OP_UNKNOWN;
 
drivers/net/ethernet/intel/ice/ice_base.c +4 -2
index 3124a3bf519a..952e41a1e001 100644
@@ -418,6 +418,8 @@ int ice_setup_rx_ctx(struct ice_ring *ring)
 	writel(0, ring->tail);
 
 	if (ring->xsk_pool) {
+		bool ok;
+
 		if (!xsk_buff_can_alloc(ring->xsk_pool, num_bufs)) {
 			dev_warn(dev, "XSK buffer pool does not provide enough addresses to fill %d buffers on Rx ring %d\n",
 				 num_bufs, ring->q_index);
@@ -426,8 +428,8 @@ int ice_setup_rx_ctx(struct ice_ring *ring)
 			return 0;
 		}
 
-		err = ice_alloc_rx_bufs_zc(ring, num_bufs);
-		if (err)
+		ok = ice_alloc_rx_bufs_zc(ring, num_bufs);
+		if (!ok)
 			dev_info(dev, "Failed to allocate some buffers on XSK buffer pool enabled Rx ring %d (pf_q %d)\n",
 				 ring->q_index, pf_q);
 		return 0;
drivers/net/ethernet/intel/ice/ice_xsk.c +5 -5
index 1782146db644..69ee1a8e87ab 100644
@@ -408,18 +408,18 @@ int ice_xsk_pool_setup(struct ice_vsi *vsi, struct xsk_buff_pool *pool, u16 qid)
  * This function allocates a number of Rx buffers from the fill ring
  * or the internal recycle mechanism and places them on the Rx ring.
  *
- * Returns false if all allocations were successful, true if any fail.
+ * Returns true if all allocations were successful, false if any fail.
  */
 bool ice_alloc_rx_bufs_zc(struct ice_ring *rx_ring, u16 count)
 {
 	union ice_32b_rx_flex_desc *rx_desc;
 	u16 ntu = rx_ring->next_to_use;
 	struct ice_rx_buf *rx_buf;
-	bool ret = false;
+	bool ok = true;
 	dma_addr_t dma;
 
 	if (!count)
-		return false;
+		return true;
 
 	rx_desc = ICE_RX_DESC(rx_ring, ntu);
 	rx_buf = &rx_ring->rx_buf[ntu];
@@ -427,7 +427,7 @@ bool ice_alloc_rx_bufs_zc(struct ice_ring *rx_ring, u16 count)
 	do {
 		rx_buf->xdp = xsk_buff_alloc(rx_ring->xsk_pool);
 		if (!rx_buf->xdp) {
-			ret = true;
+			ok = false;
 			break;
 		}
 
@@ -452,7 +452,7 @@ bool ice_alloc_rx_bufs_zc(struct ice_ring *rx_ring, u16 count)
 		ice_release_rx_desc(rx_ring, ntu);
 	}
 
-	return ret;
+	return ok;
 }
 
 /**
drivers/net/ethernet/intel/igb/igb.h +2 -2
index aaa954aae574..7bda8c5edea5 100644
@@ -748,8 +748,8 @@ void igb_ptp_suspend(struct igb_adapter *adapter);
 void igb_ptp_rx_hang(struct igb_adapter *adapter);
 void igb_ptp_tx_hang(struct igb_adapter *adapter);
 void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector, struct sk_buff *skb);
-void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
-			 struct sk_buff *skb);
+int igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
+			struct sk_buff *skb);
 int igb_ptp_set_ts_config(struct net_device *netdev, struct ifreq *ifr);
 int igb_ptp_get_ts_config(struct net_device *netdev, struct ifreq *ifr);
 void igb_set_flag_queue_pairs(struct igb_adapter *, const u32);
drivers/net/ethernet/intel/igb/igb_main.c +21 -12
index 03f78fdb0dcd..0e8c17f7af28 100644
@@ -8232,7 +8232,8 @@ static inline bool igb_page_is_reserved(struct page *page)
 	return (page_to_nid(page) != numa_mem_id()) || page_is_pfmemalloc(page);
 }
 
-static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer)
+static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer,
+				  int rx_buf_pgcnt)
 {
 	unsigned int pagecnt_bias = rx_buffer->pagecnt_bias;
 	struct page *page = rx_buffer->page;
@@ -8243,7 +8244,7 @@ static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer)
 
 #if (PAGE_SIZE < 8192)
 	/* if we are only owner of page we can reuse it */
-	if (unlikely((page_ref_count(page) - pagecnt_bias) > 1))
+	if (unlikely((rx_buf_pgcnt - pagecnt_bias) > 1))
 		return false;
 #else
 #define IGB_LAST_OFFSET \
@@ -8319,9 +8320,10 @@ static struct sk_buff *igb_construct_skb(struct igb_ring *rx_ring,
 		return NULL;
 
 	if (unlikely(igb_test_staterr(rx_desc, E1000_RXDADV_STAT_TSIP))) {
-		igb_ptp_rx_pktstamp(rx_ring->q_vector, xdp->data, skb);
-		xdp->data += IGB_TS_HDR_LEN;
-		size -= IGB_TS_HDR_LEN;
+		if (!igb_ptp_rx_pktstamp(rx_ring->q_vector, xdp->data, skb)) {
+			xdp->data += IGB_TS_HDR_LEN;
+			size -= IGB_TS_HDR_LEN;
+		}
 	}
 
 	/* Determine available headroom for copy */
@@ -8382,8 +8384,8 @@ static struct sk_buff *igb_build_skb(struct igb_ring *rx_ring,
 
 	/* pull timestamp out of packet data */
 	if (igb_test_staterr(rx_desc, E1000_RXDADV_STAT_TSIP)) {
-		igb_ptp_rx_pktstamp(rx_ring->q_vector, skb->data, skb);
-		__skb_pull(skb, IGB_TS_HDR_LEN);
+		if (!igb_ptp_rx_pktstamp(rx_ring->q_vector, skb->data, skb))
+			__skb_pull(skb, IGB_TS_HDR_LEN);
 	}
 
 	/* update buffer offset */
@@ -8632,11 +8634,17 @@ static unsigned int igb_rx_offset(struct igb_ring *rx_ring)
 }
 
 static struct igb_rx_buffer *igb_get_rx_buffer(struct igb_ring *rx_ring,
-					       const unsigned int size)
+					       const unsigned int size, int *rx_buf_pgcnt)
 {
 	struct igb_rx_buffer *rx_buffer;
 
 	rx_buffer = &rx_ring->rx_buffer_info[rx_ring->next_to_clean];
+	*rx_buf_pgcnt =
+#if (PAGE_SIZE < 8192)
+		page_count(rx_buffer->page);
+#else
+		0;
+#endif
 	prefetchw(rx_buffer->page);
 
 	/* we are reusing so sync this buffer for CPU use */
@@ -8652,9 +8660,9 @@ static struct igb_rx_buffer *igb_get_rx_buffer(struct igb_ring *rx_ring,
 }
 
 static void igb_put_rx_buffer(struct igb_ring *rx_ring,
-			      struct igb_rx_buffer *rx_buffer)
+			      struct igb_rx_buffer *rx_buffer, int rx_buf_pgcnt)
 {
-	if (igb_can_reuse_rx_page(rx_buffer)) {
+	if (igb_can_reuse_rx_page(rx_buffer, rx_buf_pgcnt)) {
 		/* hand second half of page back to the ring */
 		igb_reuse_rx_page(rx_ring, rx_buffer);
 	} else {
@@ -8681,6 +8689,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
 	u16 cleaned_count = igb_desc_unused(rx_ring);
 	unsigned int xdp_xmit = 0;
 	struct xdp_buff xdp;
+	int rx_buf_pgcnt;
 
 	xdp.rxq = &rx_ring->xdp_rxq;
 
@@ -8711,7 +8720,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
 		 */
 		dma_rmb();
 
-		rx_buffer = igb_get_rx_buffer(rx_ring, size);
+		rx_buffer = igb_get_rx_buffer(rx_ring, size, &rx_buf_pgcnt);
 
 		/* retrieve a buffer from the ring */
 		if (!skb) {
@@ -8754,7 +8763,7 @@ static int igb_clean_rx_irq(struct igb_q_vector *q_vector, const int budget)
 			break;
 		}
 
-		igb_put_rx_buffer(rx_ring, rx_buffer);
+		igb_put_rx_buffer(rx_ring, rx_buffer, rx_buf_pgcnt);
 		cleaned_count++;
 
 		/* fetch next buffer in frame if non-eop */
drivers/net/ethernet/intel/igb/igb_ptp.c +24 -7
index 7cc5428c3b3d..86a576201f5f 100644
@@ -856,6 +856,9 @@ static void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter)
 	dev_kfree_skb_any(skb);
 }
 
+#define IGB_RET_PTP_DISABLED 1
+#define IGB_RET_PTP_INVALID 2
+
 /**
  * igb_ptp_rx_pktstamp - retrieve Rx per packet timestamp
  * @q_vector: Pointer to interrupt specific structure
@@ -864,19 +867,29 @@ static void igb_ptp_tx_hwtstamp(struct igb_adapter *adapter)
  *
  * This function is meant to retrieve a timestamp from the first buffer of an
  * incoming frame.  The value is stored in little endian format starting on
- * byte 8.
+ * byte 8
+ *
+ * Returns: 0 if success, nonzero if failure
  **/
-void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
-			 struct sk_buff *skb)
+int igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
+			struct sk_buff *skb)
 {
-	__le64 *regval = (__le64 *)va;
 	struct igb_adapter *adapter = q_vector->adapter;
+	__le64 *regval = (__le64 *)va;
 	int adjust = 0;
 
+	if (!(adapter->ptp_flags & IGB_PTP_ENABLED))
+		return IGB_RET_PTP_DISABLED;
+
 	/* The timestamp is recorded in little endian format.
 	 * DWORD: 0        1        2        3
 	 * Field: Reserved Reserved SYSTIML  SYSTIMH
 	 */
+
+	/* check reserved dwords are zero, be/le doesn't matter for zero */
+	if (regval[0])
+		return IGB_RET_PTP_INVALID;
+
 	igb_ptp_systim_to_hwtstamp(adapter, skb_hwtstamps(skb),
 				   le64_to_cpu(regval[1]));
 
@@ -896,6 +909,8 @@ void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
 	}
 	skb_hwtstamps(skb)->hwtstamp =
 		ktime_sub_ns(skb_hwtstamps(skb)->hwtstamp, adjust);
+
+	return 0;
 }
 
 /**
@@ -906,13 +921,15 @@ void igb_ptp_rx_pktstamp(struct igb_q_vector *q_vector, void *va,
  * This function is meant to retrieve a timestamp from the internal registers
  * of the adapter and store it in the skb.
  **/
-void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector,
-			 struct sk_buff *skb)
+void igb_ptp_rx_rgtstamp(struct igb_q_vector *q_vector, struct sk_buff *skb)
 {
 	struct igb_adapter *adapter = q_vector->adapter;
 	struct e1000_hw *hw = &adapter->hw;
-	u64 regval;
 	int adjust = 0;
+	u64 regval;
+
+	if (!(adapter->ptp_flags & IGB_PTP_ENABLED))
+		return;
 
 	/* If this bit is set, then the RX registers contain the time stamp. No
 	 * other packet will be time stamped until we read these registers, so
drivers/net/ethernet/intel/igc/igc.h +1 -1
index 35baae900c1f..6dca67d9c25d 100644
@@ -545,7 +545,7 @@ void igc_ptp_init(struct igc_adapter *adapter);
 void igc_ptp_reset(struct igc_adapter *adapter);
 void igc_ptp_suspend(struct igc_adapter *adapter);
 void igc_ptp_stop(struct igc_adapter *adapter);
-void igc_ptp_rx_pktstamp(struct igc_q_vector *q_vector, void *va,
+void igc_ptp_rx_pktstamp(struct igc_q_vector *q_vector, __le32 *va,
 			 struct sk_buff *skb);
 int igc_ptp_set_ts_config(struct net_device *netdev, struct ifreq *ifr);
 int igc_ptp_get_ts_config(struct net_device *netdev, struct ifreq *ifr);
drivers/net/ethernet/intel/igc/igc_ethtool.c +4 -3
index ec8cd69d4992..da259cd59add 100644
@@ -1695,6 +1695,9 @@ static int igc_ethtool_get_link_ksettings(struct net_device *netdev,
 						     Autoneg);
 	}
 
+	/* Set pause flow control settings */
+	ethtool_link_ksettings_add_link_mode(cmd, supported, Pause);
+
 	switch (hw->fc.requested_mode) {
 	case igc_fc_full:
 		ethtool_link_ksettings_add_link_mode(cmd, advertising, Pause);
@@ -1709,9 +1712,7 @@ static int igc_ethtool_get_link_ksettings(struct net_device *netdev,
 						     Asym_Pause);
 		break;
 	default:
-		ethtool_link_ksettings_add_link_mode(cmd, advertising, Pause);
-		ethtool_link_ksettings_add_link_mode(cmd, advertising,
-						     Asym_Pause);
+		break;
 	}
 
 	status = pm_runtime_suspended(&adapter->pdev->dev) ?
drivers/net/ethernet/intel/igc/igc_main.c +9 -0
index afd6a62da29d..93874e930abf 100644
@@ -3847,10 +3847,19 @@ static void igc_reset_task(struct work_struct *work)
 
 	adapter = container_of(work, struct igc_adapter, reset_task);
 
+	rtnl_lock();
+	/* If we're already down or resetting, just bail */
+	if (test_bit(__IGC_DOWN, &adapter->state) ||
+	    test_bit(__IGC_RESETTING, &adapter->state)) {
+		rtnl_unlock();
+		return;
+	}
+
 	igc_rings_dump(adapter);
 	igc_regs_dump(adapter);
 	netdev_err(adapter->netdev, "Reset adapter\n");
 	igc_reinit_locked(adapter);
+	rtnl_unlock();
 }
 
 /**
drivers/net/ethernet/intel/igc/igc_ptp.c +40 -32

86 lines not on this page · raw message

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +4 -2
index 393d1c2cd853..e9c2d28efc81 100644
@@ -9582,8 +9582,10 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter,
 	ixgbe_atr_compute_perfect_hash_82599(&input->filter, mask);
 	err = ixgbe_fdir_write_perfect_filter_82599(hw, &input->filter,
 						    input->sw_idx, queue);
-	if (!err)
-		ixgbe_update_ethtool_fdir_entry(adapter, input, input->sw_idx);
+	if (err)
+		goto err_out_w_lock;
+
+	ixgbe_update_ethtool_fdir_entry(adapter, input, input->sw_idx);
 	spin_unlock(&adapter->fdir_perfect_lock);
 
 	if ((uhtid != 0x800) && (adapter->jump_tables[uhtid]))
drivers/net/ethernet/marvell/octeontx2/af/npc_profile.h +0 -2
index b192692b4fc4..5c372d2c24a1 100644
@@ -13499,8 +13499,6 @@ static struct npc_mcam_kex npc_mkex_default = {
 			[NPC_LT_LC_IP] = {
 				/* SIP+DIP: 8 bytes, KW2[63:0] */
 				KEX_LD_CFG(0x07, 0xc, 0x1, 0x0, 0x10),
-				/* TOS: 1 byte, KW1[63:56] */
-				KEX_LD_CFG(0x0, 0x1, 0x1, 0x0, 0xf),
 			},
 			/* Layer C: IPv6 */
 			[NPC_LT_LC_IP6] = {
drivers/net/ethernet/marvell/octeontx2/af/rvu.c +4 -2
index e8fd712860a1..e3fc6d1c0ec3 100644
@@ -2358,8 +2358,10 @@ static void rvu_unregister_interrupts(struct rvu *rvu)
 		    INTR_MASK(rvu->hw->total_pfs) & ~1ULL);
 
 	for (irq = 0; irq < rvu->num_vec; irq++) {
-		if (rvu->irq_allocated[irq])
+		if (rvu->irq_allocated[irq]) {
 			free_irq(pci_irq_vector(rvu->pdev, irq), rvu);
+			rvu->irq_allocated[irq] = false;
+		}
 	}
 
 	pci_free_irq_vectors(rvu->pdev);
@@ -2873,8 +2875,8 @@ static void rvu_remove(struct pci_dev *pdev)
 	struct rvu *rvu = pci_get_drvdata(pdev);
 
 	rvu_dbg_exit(rvu);
-	rvu_unregister_interrupts(rvu);
 	rvu_unregister_dl(rvu);
+	rvu_unregister_interrupts(rvu);
 	rvu_flr_wq_destroy(rvu);
 	rvu_cgx_exit(rvu);
 	rvu_fwdata_exit(rvu);
drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +31 -17

76 lines not on this page · raw message

drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +1 -1
index 5cf9b7a907ae..b81539f3b2ac 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +5 -0
index 634d60655a74..07e841df5678 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en.h +4 -3
index 055baf3b6cb1..f258f2f9b8cf 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c +2 -1
index 24e2c0d955b9..b42396df3111 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_geneve.c +4 -0
index e472ed0eacfb..7ed3f9f79f11 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +10 -1
index 8612c388db7d..c9d01e705ab2 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_main.c +16 -5
index a2e0b548bf57..aaa5a56b44c7 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +2 -2
index 4864deed9dc9..b2e71a045df0 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +45 -12

57 lines not on this page · raw message

drivers/net/ethernet/netronome/nfp/flower/metadata.c +17 -7
index 5defd31d481c..aa06fcb38f8b 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/netronome/nfp/flower/offload.c +18 -0
index 1c59aff2163c..d72225d64a75 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +13 -2
index 7248d248f604..d19c02e99114 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/pensando/ionic/ionic_txrx.c +7 -6
index ac4cd5d82e69..b7601cadcb8c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c +3 -0
index 7760a3394e93..7ecb3dfe30bd 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/realtek/r8169_main.c +4 -2
index ea265b428c2f..7c1a057dcf3d 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/socionext/netsec.c +6 -3
index 19d20a6d0d44..3e172fc64976 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +2 -0
index a5e0eff4a387..9f5ccf1a0a54 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c +42 -8

50 lines not on this page · raw message

drivers/net/ethernet/stmicro/stmmac/enh_desc.c +6 -3
index d02cec296f51..6650edfab5bc 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/hwif.h +2 -1
index 15d7b8261189..979ac9fca23c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/norm_desc.c +6 -3
index f083360e4ba6..98ef43f35802 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +38 -19

57 lines not on this page · raw message

drivers/net/ethernet/sun/niu.c +0 -2
index 68695d4afacd..707ccdd03b19 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/tehuti/tehuti.c +1 -0
index b8f4f419173f..d054c6e83b1c 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/xilinx/xilinx_axienet_main.c +24 -11
index b4a0bfce5b76..4cd701a9277d 100644

Lines of this file are not shown. View the raw message.

drivers/net/ipa/ipa_qmi.c +2 -0
index 2fc64483f275..e594bf3b600f 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/broadcom.c +108 -39

147 lines not on this page · raw message

drivers/net/phy/dp83822.c +3 -0
index 423952cb9e1c..f7a2ec150e54 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/dp83869.c +4 -0
index b30bc142d82e..755220c6451f 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/lxt.c +1 -0
index 0ee23d29c0d4..bde3356a2f86 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/marvell.c +1 -0
index 620052c023a5..2afef45d15b1 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/marvell10g.c +2 -0
index 1901ba277413..b1bb9b8e1e4e 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/micrel.c +11 -3
index 57f8021b70af..a6c691938f94 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/phy.c +1 -1
index b79c4068ee61..c93c295db3dc 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/phy_device.c +9 -0
index 1c6ae845e03f..d2fd54e4c612 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/phylink.c +1 -1
index 84f6e197f965..add9156601af 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/cdc-phonet.c +2 -0
index 02e6bbb17b15..8d1f69dad603 100644

Lines of this file are not shown. View the raw message.

drivers/net/usb/r8152.c +10 -30
index 67cd6986634f..390d9e1fa7fe 100644

Lines of this file are not shown. View the raw message.

drivers/net/veth.c +1 -2
index 02bfcdf50a7a..36abe756282e 100644

Lines of this file are not shown. View the raw message.

drivers/net/wan/fsl_ucc_hdlc.c +6 -2
index dca97cd7c4e7..7eac6a3e1cde 100644

Lines of this file are not shown. View the raw message.

drivers/net/wan/hdlc_x25.c +41 -1

42 lines not on this page · raw message

drivers/net/wireless/mediatek/mt76/dma.c +6 -9
index 9bf13994c036..680c899a96d7 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/mediatek/mt76/mt7915/mac.c +5 -5
index 1b4d65310b88..c9dd6867e125 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/core.c +11 -4
index f848ba16427e..6199bce5d3a4 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/fc.c +2 -1
index 7ec6869b3e5b..ca75338f2367 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/pci.c +1 -0
index 806a5d071ef6..514dfd630035 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/target/rdma.c +2 -3
index 06b6b742bb21..6c1f3ab7649c 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/dell-wmi-sysman/enum-attributes.c +3 -0
index 80f4b7785c6c..091e48c217ed 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/dell-wmi-sysman/int-attributes.c +3 -0
index 75aedbb733be..8a49ba6e44f9 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/dell-wmi-sysman/passobj-attributes.c +3 -0
index 3abcd95477c0..834b3e82ad9f 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/dell-wmi-sysman/string-attributes.c +3 -0
index ac75dce88a4c..552537852459 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/dell-wmi-sysman/sysman.c +32 -52

84 lines not on this page · raw message

drivers/platform/x86/intel-vbtn.c +10 -2
index 30a9062d2b4b..a90c32d072da 100644

Lines of this file are not shown. View the raw message.

drivers/platform/x86/intel_pmt_crashlog.c +6 -7
index 97dd749c8290..92d315a16cfd 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/qcom-rpmh-regulator.c +3 -3
index 37a2abbe85c7..0fd3da36f62e 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/mpt3sas/mpt3sas_base.c +6 -2
index 6e23dc3209fe..340d435ac0ce 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qedi/qedi_main.c +1 -0
index 47ad64b06623..69c5b5ee2169 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/qla_target.c +5 -8
index 0d09480b66cd..17f541030f5b 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/qla2xxx/tcm_qla2xxx.c +0 -4
index b55fc768a2a7..8b4890cdd4ca 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufs-qcom.c +10 -0
index 2206b1e4b774..e55201f64c10 100644

Lines of this file are not shown. View the raw message.

drivers/soc/ti/omap_prm.c +6 -2
index bf1468e5bccb..51143a68a889 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8192e/Kconfig +1 -0
index 03fcc23516fd..6e7d84ac06f5 100644

Lines of this file are not shown. View the raw message.

drivers/xen/Kconfig +2 -2
index 41645fe6ad48..ea0efd290c37 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/dev-replace.c +3 -0
index 324f646d6e5e..02a68b04e43f 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/disk-io.c +17 -2
index 07a2b4f69b10..3cb73a0d12d0 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/inode.c +9 -5
index df25d3e300f0..fe723eadced7 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/qgroup.c +10 -2
index 14ff388fd3bd..f0b9ef13153a 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/volumes.c +3 -0
index d6c24c8ad749..93f2b030fb9d 100644

Lines of this file are not shown. View the raw message.

fs/cachefiles/rdwr.c +3 -4
index e027c718ca01..8ffc40e84a59 100644

Lines of this file are not shown. View the raw message.

fs/cifs/cifsglob.h +2 -2
index 089a3916c639..ca1af03e9370 100644

Lines of this file are not shown. View the raw message.

fs/cifs/cifspdu.h +5 -0
index 64fe5a47b5e8..9adc74bd9f8f 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2glob.h +1 -0
index 99a1951a01ec..d9a990c99121 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2ops.c +20 -7
index 463e81c35c42..7b614a7096cd 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2pdu.c +2 -4
index 794fc3b68b4f..6a1af5545f67 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2transport.c +28 -9
index ebccd71cc60a..e6fa76ab70be 100644

Lines of this file are not shown. View the raw message.

fs/cifs/transport.c +1 -1
index 64fccb8809ec..13d685f0ac8e 100644

Lines of this file are not shown. View the raw message.

fs/ext4/mballoc.c +9 -2
index 99bf091fee10..a02fadf4fc84 100644

Lines of this file are not shown. View the raw message.

fs/ext4/xattr.c +4 -0
index 6aef74f7c9ee..6c1018223c54 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/log.c +4 -0
index 2e9314091c81..1955dea999f7 100644

Lines of this file are not shown. View the raw message.

fs/gfs2/trans.c +2 -0
index 6d4bf7ea7b3b..7f850ff6a05d 100644

Lines of this file are not shown. View the raw message.

fs/io_uring.c +9 -5
index ef078182e7ca..5c4378694d54 100644

Lines of this file are not shown. View the raw message.

fs/nfs/Kconfig +1 -1
index e2a488d403a6..14a72224b657 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs3xdr.c +2 -1
index ca10072644ff..ed1c83738c30 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs4proc.c +3 -0
index 7eb44f37558c..95d3b8540f8e 100644

Lines of this file are not shown. View the raw message.

fs/squashfs/export.c +6 -2
index eb02072d28dd..723763746238 100644

Lines of this file are not shown. View the raw message.

fs/squashfs/id.c +4 -2
index 11581bf31af4..ea5387679723 100644

Lines of this file are not shown. View the raw message.

fs/squashfs/squashfs_fs.h +1 -0
index 8d64edb80ebf..b3fdc8212c5f 100644

Lines of this file are not shown. View the raw message.

fs/squashfs/xattr_id.c +4 -2
index ead66670b41a..087cab8c78f4 100644

Lines of this file are not shown. View the raw message.

include/acpi/acpi_bus.h +1 -0
index 6d1879bf9440..37dac195adbb 100644

Lines of this file are not shown. View the raw message.

include/asm-generic/vmlinux.lds.h +4 -1
index 34d8287cd774..d7efbc5490e8 100644

Lines of this file are not shown. View the raw message.

include/linux/bpf.h +25 -8
index 6e585dbc10df..564ebf91793e 100644

Lines of this file are not shown. View the raw message.

include/linux/brcmphy.h +4 -0
index d0bd226d6bd9..54665952d6ad 100644

Lines of this file are not shown. View the raw message.

include/linux/device-mapper.h +14 -1
index d2d7f9b6a276..50cc070cb1f7 100644

Lines of this file are not shown. View the raw message.

include/linux/hugetlb_cgroup.h +13 -2
index 2ad6e92f124a..0bff345c4bc6 100644

Lines of this file are not shown. View the raw message.

include/linux/if_macvlan.h +2 -1
index 96556c64c95d..10c94a3936ca 100644

Lines of this file are not shown. View the raw message.

include/linux/memblock.h +2 -2
index 7643d2dfa959..4ce9c8f9e684 100644

Lines of this file are not shown. View the raw message.

include/linux/mm.h +15 -3
index 24b292fce8e5..992c18d5e85d 100644

Lines of this file are not shown. View the raw message.

include/linux/mm_types.h +1 -0
index 07d9acb5b19c..61c77cfff8c2 100644

Lines of this file are not shown. View the raw message.

include/linux/mmu_notifier.h +5 -5
index b8200782dede..1a6a9eb6d3fa 100644

Lines of this file are not shown. View the raw message.

include/linux/mutex.h +1 -1
index dcd185cbfe79..4d671fba3cab 100644

Lines of this file are not shown. View the raw message.

include/linux/netfilter/x_tables.h +2 -5
index 8ebb64193757..8ec48466410a 100644

Lines of this file are not shown. View the raw message.

include/linux/pagemap.h +0 -1
index d5570deff400..b032f094a782 100644

Lines of this file are not shown. View the raw message.

include/linux/phy.h +2 -0
index 9effb511acde..d0e64f3b53b9 100644

Lines of this file are not shown. View the raw message.

include/linux/static_call.h +20 -23

43 lines not on this page · raw message

include/linux/static_call_types.h +50 -0

50 lines not on this page · raw message

include/linux/u64_stats_sync.h +4 -3
index c6abb79501b3..e81856c0ba13 100644

Lines of this file are not shown. View the raw message.

include/linux/usermode_driver.h +1 -0
index 073a9e0ec07d..ad970416260d 100644

Lines of this file are not shown. View the raw message.

include/net/dst.h +11 -0
index 10f0a8399867..8d7cf51766c4 100644

Lines of this file are not shown. View the raw message.

include/net/inet_connection_sock.h +1 -1
index 111d7771b208..aa92af3dd444 100644

Lines of this file are not shown. View the raw message.

include/net/netfilter/nf_tables.h +3 -0
index 4b6ecf532623..6799f95eea65 100644

Lines of this file are not shown. View the raw message.

include/net/nexthop.h +24 -0
index 226930d66b63..abd620103cec 100644

Lines of this file are not shown. View the raw message.

include/net/red.h +9 -1
index 932f0d79d60c..9e6647c4ccd1 100644

Lines of this file are not shown. View the raw message.

include/net/rtnetlink.h +2 -0
index e2091bb2b3a8..4da61c950e93 100644

Lines of this file are not shown. View the raw message.

include/uapi/linux/psample.h +1 -4
index aea26ab1431c..bff5032c98df 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/bpf_inode_storage.c +1 -1
index 6639640523c0..b58b2efb9b43 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/bpf_struct_ops.c +1 -1
index 1a666a975416..70f6fd4fa305 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/core.c +2 -2
index 261f8692d0d2..1de87fcaeabd 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/preload/bpf_preload_kern.c +15 -4
index 79c5772465f1..53736e52c1df 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/syscall.c +5 -0
index e5999d86c76e..32ca33539052 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/trampoline.c +168 -50

218 lines not on this page · raw message

kernel/bpf/verifier.c +4 -0
index ab23dfb9df1b..5b233e911c2c 100644

Lines of this file are not shown. View the raw message.

kernel/fork.c +8 -0
index d66cd1014211..808af2cc8ab6 100644

Lines of this file are not shown. View the raw message.

kernel/gcov/clang.c +69 -0

69 lines not on this page · raw message

kernel/power/energy_model.c +1 -1
index 1358fa4abfa8..0f4530b3a8cd 100644

Lines of this file are not shown. View the raw message.

kernel/static_call.c +63 -8

71 lines not on this page · raw message

kernel/trace/ftrace.c +38 -5

43 lines not on this page · raw message

kernel/usermode_driver.c +15 -6
index 0b35212ffc3d..bb7bb3b478ab 100644

Lines of this file are not shown. View the raw message.

mm/highmem.c +2 -2
index 86f2b9495f9c..6ef8f5e05e7e 100644

Lines of this file are not shown. View the raw message.

mm/hugetlb.c +37 -4

41 lines not on this page · raw message

mm/hugetlb_cgroup.c +8 -2
index 9182848dda3e..1348819f546c 100644

Lines of this file are not shown. View the raw message.

mm/mmu_notifier.c +23 -0
index 61ee40ed804e..459d195d2ff6 100644

Lines of this file are not shown. View the raw message.

mm/z3fold.c +15 -1
index dacb0d70fa61..36d810cac99d 100644

Lines of this file are not shown. View the raw message.

net/bridge/br_switchdev.c +2 -0
index 015209bf44aa..3c42095fa75f 100644

Lines of this file are not shown. View the raw message.

net/can/isotp.c +8 -10
index 3ef7f78e553b..15ea1234d457 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +13 -1
index a5a1dbe66b76..9e3be2ae8653 100644

Lines of this file are not shown. View the raw message.

net/core/drop_monitor.c +23 -0
index 571f191c06d9..db65ce62b625 100644

Lines of this file are not shown. View the raw message.

net/core/dst.c +42 -17

59 lines not on this page · raw message

net/core/flow_dissector.c +1 -1
index 6f1adba6695f..7a06d4301617 100644

Lines of this file are not shown. View the raw message.

net/dccp/ipv6.c +5 -0
index 1f73603913f5..2be5c69824f9 100644

Lines of this file are not shown. View the raw message.

net/ipv4/inet_connection_sock.c +5 -2
index 6bd7ca09af03..fd472eae4f5c 100644

Lines of this file are not shown. View the raw message.

net/ipv4/netfilter/arp_tables.c +8 -8
index c576a63d09db..d1e04d2b5170 100644

Lines of this file are not shown. View the raw message.

net/ipv4/netfilter/ip_tables.c +8 -8
index e8f6f9d86237..f15bc21d7301 100644

Lines of this file are not shown. View the raw message.

net/ipv4/route.c +8 -37

45 lines not on this page · raw message

net/ipv4/tcp_minisocks.c +5 -2
index 0055ae0a3bf8..7513ba45553d 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ip6_fib.c +1 -1
index f43e27555725..1fb79dbde0cb 100644

Lines of this file are not shown. View the raw message.

net/ipv6/ip6_input.c +0 -10
index e96304d8a4a7..06d60662717d 100644

Lines of this file are not shown. View the raw message.

net/ipv6/netfilter/ip6_tables.c +8 -8
index 0d453fa9e327..2e2119bfcf13 100644

Lines of this file are not shown. View the raw message.

net/ipv6/route.c +9 -27
index 188e114b29b4..0bbfaa55e3c8 100644

Lines of this file are not shown. View the raw message.

net/ipv6/tcp_ipv6.c +5 -0
index 0e1509b02cb3..c07e5e8d557b 100644

Lines of this file are not shown. View the raw message.

net/mac80211/cfg.c +2 -2
index c4c70e30ad7f..68a0de02b561 100644

Lines of this file are not shown. View the raw message.

net/mac80211/ibss.c +2 -0
index 1f552f374e97..a7ac53a2f00d 100644

Lines of this file are not shown. View the raw message.

net/mac80211/mlme.c +1 -1
index 0e4d950cf907..9db648a91a4f 100644

Lines of this file are not shown. View the raw message.

net/mac80211/util.c +1 -1
index 8d3ae6b2f95f..f4507a708965 100644

Lines of this file are not shown. View the raw message.

net/mptcp/options.c +14 -10
index 2e26e39169b8..37ef0bf098f6 100644

Lines of this file are not shown. View the raw message.

net/mptcp/subflow.c +5 -0
index c3090003a17b..96e040951cd4 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_conntrack_netlink.c +1 -0
index 84caf3316946..e0c566b3df90 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_flow_table_core.c +1 -1
index 4a4acbba78ff..b03feb6e1226 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nf_tables_api.c +18 -1
index 8ee9f40cc0ea..24a7a6b17268 100644

Lines of this file are not shown. View the raw message.

net/netfilter/x_tables.c +34 -15

49 lines not on this page · raw message

net/qrtr/qrtr.c +5 -0
index edb6ac17ceca..dfc820ee553a 100644

Lines of this file are not shown. View the raw message.

net/sched/cls_flower.c +1 -1
index 46c1b3e9f66a..14316ba9b3b3 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_choke.c +4 -3
index 50f680f03a54..2adbd945bf15 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_gred.c +1 -1
index e0bc77533acc..f4132dc25ac0 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_red.c +5 -2
index b4ae34d7aa96..40adf1f07a82 100644

Lines of this file are not shown. View the raw message.

net/sched/sch_sfq.c +1 -1
index b25e51440623..066754a18569 100644

Lines of this file are not shown. View the raw message.

net/sctp/output.c +0 -7
index 6614c9fdc51e..a6aa17df09ef 100644

Lines of this file are not shown. View the raw message.

net/sctp/outqueue.c +7 -0
index 3fd06a27105d..5cb1aa5f067b 100644

Lines of this file are not shown. View the raw message.

net/tipc/node.c +8 -3
index 008670d1f43e..136338b85504 100644

Lines of this file are not shown. View the raw message.

net/vmw_vsock/af_vsock.c +1 -0
index 5546710d8ac1..bc7fb9bf3351 100644

Lines of this file are not shown. View the raw message.

scripts/dummy-tools/gcc +5 -0
index 5c113cad5601..0d0589cf8184 100755

Lines of this file are not shown. View the raw message.

security/integrity/iint.c +8 -0
index 1d20003243c3..0ba01847e836 100644

Lines of this file are not shown. View the raw message.

security/selinux/include/security.h +11 -4
index 3cc8bab31ea8..63ca6e79daeb 100644

Lines of this file are not shown. View the raw message.

security/selinux/selinuxfs.c +6 -7
index 4bde570d56a2..2b745ae8cb98 100644

Lines of this file are not shown. View the raw message.

security/selinux/ss/services.c +39 -24

63 lines not on this page · raw message

sound/hda/intel-nhlt.c +5 -0
index d053beccfaec..e2237239d922 100644

Lines of this file are not shown. View the raw message.

tools/include/linux/static_call_types.h +50 -0

50 lines not on this page · raw message

tools/lib/bpf/Makefile +1 -1
index 55bd78b3496f..310f647c2d5b 100644

Lines of this file are not shown. View the raw message.

tools/lib/bpf/btf_dump.c +1 -1
index 2f9d685bd522..0911aea4cdbe 100644

Lines of this file are not shown. View the raw message.

tools/lib/bpf/libbpf.c +2 -1
index a0d4fc4de402..8913e5e7bedb 100644

Lines of this file are not shown. View the raw message.

tools/lib/bpf/netlink.c +1 -1
index 4dd73de00b6f..d2cb28e9ef52 100644

Lines of this file are not shown. View the raw message.

tools/objtool/check.c +15 -2
index dc24aac08edd..5c83f73ad668 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/auxtrace.c +0 -4
index a60878498139..2723082f3817 100644

Lines of this file are not shown. View the raw message.

tools/perf/util/synthetic-events.c +5 -4
index 2947e3f3c6d9..dda0a6a3173d 100644

Lines of this file are not shown. View the raw message.

tools/testing/kunit/configs/broken_on_uml.config +2 -0
index a7f0603d33f6..690870043ac0 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/arm64/fp/sve-ptrace.c +1 -1
index b2282be6f938..612d3899614a 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/prog_tests/fexit_sleep.c new file +82 -0

82 lines not on this page · raw message

tools/testing/selftests/bpf/progs/fexit_sleep.c new file +31 -0
new file mode 100644
index 000000000000..03a672d76353

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/progs/test_tunnel_kern.c +2 -4
index 9afe947cfae9..ba6eadfec565 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh +1 -1
index ce6bea9675c0..0ccb1dda099a 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/reuseaddr_ports_exhausted.c +16 -16
index 7b01b7c2ec10..066efd30e294 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.