Skip to contentSkip to conversation

Linux 5.9.9

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Nov 19, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.9.9 kernel.

All users of the 5.9 kernel series must upgrade.

The updated 5.9.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.9.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/networking/j1939.rst                               |    4 
 Makefile                                                         |    6 
 arch/arc/kernel/head.S                                           |   17 
 arch/arc/plat-hsdk/platform.c                                    |   17 
 arch/arm/include/asm/kprobes.h                                   |   22 -
 arch/arm/probes/kprobes/opt-arm.c                                |   18 
 arch/arm/vdso/Makefile                                           |    2 
 arch/arm64/kernel/kexec_image.c                                  |   41 +
 arch/arm64/kernel/machine_kexec_file.c                           |    9 
 arch/arm64/kernel/vdso/Makefile                                  |    2 
 arch/arm64/kernel/vdso32/Makefile                                |    2 
 arch/arm64/kvm/hypercalls.c                                      |    2 
 arch/arm64/kvm/mmu.c                                             |    1 
 arch/arm64/kvm/sys_regs.c                                        |   18 
 arch/arm64/mm/mmu.c                                              |   17 
 arch/mips/vdso/Makefile                                          |    2 
 arch/powerpc/kernel/eeh_cache.c                                  |    5 
 arch/powerpc/kernel/head_32.S                                    |   12 
 arch/riscv/kernel/head.S                                         |    5 
 arch/riscv/kernel/vdso/.gitignore                                |    1 
 arch/riscv/kernel/vdso/Makefile                                  |   18 
 arch/riscv/kernel/vdso/so2s.sh                                   |    6 
 arch/s390/kernel/smp.c                                           |    3 
 arch/s390/kernel/vdso64/Makefile                                 |    2 
 arch/sparc/vdso/Makefile                                         |    2 
 arch/x86/boot/compressed/mem_encrypt.S                           |   16 
 arch/x86/entry/vdso/Makefile                                     |    2 
 arch/x86/kernel/cpu/bugs.c                                       |   51 +-
 block/genhd.c                                                    |    5 
 drivers/accessibility/speakup/main.c                             |    1 
 drivers/accessibility/speakup/selection.c                        |   11 
 drivers/accessibility/speakup/speakup.h                          |    1 
 drivers/accessibility/speakup/spk_ttyio.c                        |   10 
 drivers/accessibility/speakup/spk_types.h                        |    8 
 drivers/block/loop.c                                             |    3 
 drivers/block/nbd.c                                              |   10 
 drivers/block/null_blk.h                                         |    1 
 drivers/block/null_blk_zoned.c                                   |   31 +
 drivers/char/tpm/eventlog/efi.c                                  |    5 
 drivers/char/tpm/tpm_tis.c                                       |   29 +
 drivers/char/virtio_console.c                                    |    8 
 drivers/cpufreq/cpufreq.c                                        |    4 
 drivers/cpufreq/cpufreq_governor.h                               |    2 
 drivers/cpufreq/cpufreq_performance.c                            |    1 
 drivers/cpufreq/cpufreq_powersave.c                              |    1 
 drivers/cpufreq/intel_pstate.c                                   |   16 
 drivers/crypto/chelsio/chcr_ktls.c                               |   27 -
 drivers/firmware/xilinx/zynqmp.c                                 |    3 
 drivers/gpio/gpio-aspeed.c                                       |    1 
 drivers/gpio/gpio-pcie-idio-24.c                                 |   62 ++
 drivers/gpio/gpio-sifive.c                                       |    2 
 drivers/gpu/drm/amd/amdgpu/cik_sdma.c                            |   27 -
 drivers/gpu/drm/amd/amdgpu/soc15.c                               |    3 
 drivers/gpu/drm/amd/display/dc/irq/dcn30/irq_service_dcn30.c     |    4 
 drivers/gpu/drm/amd/powerplay/hwmgr/ci_baco.c                    |    7 
 drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c                 |    4 
 drivers/gpu/drm/amd/powerplay/inc/hwmgr.h                        |    1 
 drivers/gpu/drm/amd/powerplay/inc/smumgr.h                       |    2 
 drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c                 |   29 +
 drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c                    |    8 
 drivers/gpu/drm/gma500/psb_irq.c                                 |   34 -
 drivers/gpu/drm/i915/gem/i915_gem_domain.c                       |   28 -
 drivers/gpu/drm/i915/gt/intel_engine_cs.c                        |    3 
 drivers/gpu/drm/i915/i915_vma.c                                  |    6 
 drivers/gpu/drm/panfrost/panfrost_device.c                       |   40 +
 drivers/gpu/drm/panfrost/panfrost_drv.c                          |   20 
 drivers/gpu/drm/vc4/vc4_bo.c                                     |    5 
 drivers/gpu/drm/vc4/vc4_drv.c                                    |    1 
 drivers/gpu/drm/vc4/vc4_drv.h                                    |    2 
 drivers/hv/hv_balloon.c                                          |    2 
 drivers/hwmon/amd_energy.c                                       |    2 
 drivers/hwmon/applesmc.c                                         |  130 +++---
 drivers/hwtracing/coresight/coresight-etm-perf.c                 |    4 
 drivers/i2c/busses/i2c-designware-slave.c                        |   52 --
 drivers/i2c/busses/i2c-mt65xx.c                                  |    8 
 drivers/i2c/busses/i2c-sh_mobile.c                               |   86 +++-
 drivers/infiniband/ulp/srpt/ib_srpt.c                            |   13 
 drivers/iommu/amd/amd_iommu_types.h                              |    6 
 drivers/iommu/intel/svm.c                                        |    8 
 drivers/irqchip/irq-sifive-plic.c                                |   10 
 drivers/mfd/sprd-sc27xx-spi.c                                    |   28 +
 drivers/misc/mei/client.h                                        |    4 
 drivers/mmc/host/renesas_sdhi_core.c                             |    1 
 drivers/mmc/host/sdhci-of-esdhc.c                                |    2 
 drivers/mtd/spi-nor/core.c                                       |    8 
 drivers/net/can/dev.c                                            |   14 
 drivers/net/can/flexcan.c                                        |    5 
 drivers/net/can/peak_canfd/peak_canfd.c                          |   11 
 drivers/net/can/rx-offload.c                                     |    4 
 drivers/net/can/ti_hecc.c                                        |    8 
 drivers/net/can/usb/peak_usb/pcan_usb_core.c                     |   51 ++
 drivers/net/can/usb/peak_usb/pcan_usb_fd.c                       |   48 +-
 drivers/net/can/xilinx_can.c                                     |    6 
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c               |   26 +
 drivers/net/ethernet/intel/igc/igc_main.c                        |   14 
 drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c              |    6 
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c              |   72 ++-
 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c           |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c              |    4 
 drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c       |   14 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                |    1 
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.h                 |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c                  |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c                  |    2 
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c                |    2 
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c                |    7 
 drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c              |   23 -
 drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.h              |    2 
 drivers/net/ethernet/microchip/lan743x_main.c                    |   24 -
 drivers/net/ethernet/microchip/lan743x_main.h                    |    3 
 drivers/net/ethernet/realtek/r8169_main.c                        |   18 
 drivers/net/phy/realtek.c                                        |    2 
 drivers/net/vrf.c                                                |   92 +++-
 drivers/net/wan/cosa.c                                           |    1 
 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c                    |    2 
 drivers/nvme/host/core.c                                         |  106 +++-
 drivers/nvme/host/nvme.h                                         |    1 
 drivers/nvme/host/pci.c                                          |   23 -
 drivers/nvme/host/rdma.c                                         |   14 
 drivers/nvme/host/tcp.c                                          |   16 
 drivers/of/address.c                                             |    4 
 drivers/opp/core.c                                               |    7 
 drivers/pci/controller/pci-mvebu.c                               |   23 -
 drivers/pci/pci.c                                                |    9 
 drivers/pinctrl/aspeed/pinctrl-aspeed.c                          |    7 
 drivers/pinctrl/intel/pinctrl-intel.c                            |   40 +
 drivers/pinctrl/pinctrl-amd.c                                    |    6 
 drivers/pinctrl/pinctrl-mcp23s08_spi.c                           |    2 
 drivers/pinctrl/qcom/pinctrl-msm.c                               |   32 -
 drivers/pinctrl/qcom/pinctrl-sm8250.c                            |   18 
 drivers/scsi/device_handler/scsi_dh_alua.c                       |    9 
 drivers/scsi/hpsa.c                                              |    4 
 drivers/scsi/mpt3sas/mpt3sas_base.c                              |    7 
 drivers/scsi/ufs/ufshcd-crypto.c                                 |    4 
 drivers/spi/spi-bcm2835.c                                        |    3 
 drivers/spi/spi-fsl-dspi.c                                       |   10 
 drivers/spi/spi-imx.c                                            |   23 -
 drivers/thunderbolt/nhi.c                                        |   19 
 drivers/thunderbolt/xdomain.c                                    |    1 
 drivers/uio/uio.c                                                |   10 
 drivers/usb/class/cdc-acm.c                                      |    9 
 drivers/usb/dwc3/dwc3-pci.c                                      |    4 
 drivers/usb/gadget/legacy/raw_gadget.c                           |    5 
 drivers/usb/gadget/udc/fsl_udc_core.c                            |    2 
 drivers/usb/gadget/udc/goku_udc.c                                |    2 
 drivers/usb/host/xhci-histb.c                                    |    2 
 drivers/usb/misc/apple-mfi-fastcharge.c                          |    4 
 drivers/usb/musb/musb_dsps.c                                     |    4 
 drivers/usb/typec/ucsi/psy.c                                     |    9 
 drivers/usb/typec/ucsi/ucsi.c                                    |    7 
 drivers/usb/typec/ucsi/ucsi.h                                    |    2 
 drivers/vfio/pci/vfio_pci.c                                      |    2 
 drivers/vfio/pci/vfio_pci_rdwr.c                                 |   43 +-
 drivers/vfio/platform/vfio_platform_common.c                     |    3 
 fs/afs/write.c                                                   |    5 
 fs/afs/xattr.c                                                   |    7 
 fs/afs/yfsclient.c                                               |    1 
 fs/btrfs/dev-replace.c                                           |   26 +
 fs/btrfs/ioctl.c                                                 |   10 
 fs/btrfs/ref-verify.c                                            |    1 
 fs/btrfs/relocation.c                                            |    4 
 fs/btrfs/volumes.c                                               |   26 -
 fs/ceph/caps.c                                                   |    2 
 fs/ceph/mds_client.c                                             |   50 +-
 fs/ceph/mds_client.h                                             |    1 
 fs/ceph/quota.c                                                  |    2 
 fs/ceph/snap.c                                                   |    2 
 fs/cifs/cifs_unicode.c                                           |    8 
 fs/erofs/inode.c                                                 |   21 
 fs/erofs/zdata.c                                                 |    7 
 fs/ext4/inline.c                                                 |    1 
 fs/ext4/super.c                                                  |    4 
 fs/gfs2/rgrp.c                                                   |    5 
 fs/gfs2/super.c                                                  |    1 
 fs/io_uring.c                                                    |   29 -
 fs/iomap/buffered-io.c                                           |   15 
 fs/jbd2/checkpoint.c                                             |    2 
 fs/jbd2/transaction.c                                            |    4 
 fs/nfs/nfs42xattr.c                                              |    2 
 fs/nfs/nfs42xdr.c                                                |    4 
 fs/nfsd/nfs4proc.c                                               |    3 
 fs/ocfs2/super.c                                                 |    1 
 fs/xfs/libxfs/xfs_alloc.c                                        |    1 
 fs/xfs/libxfs/xfs_bmap.h                                         |    2 
 fs/xfs/libxfs/xfs_rmap.c                                         |    2 
 fs/xfs/libxfs/xfs_rmap_btree.c                                   |   16 
 fs/xfs/scrub/bmap.c                                              |    2 
 fs/xfs/scrub/inode.c                                             |    3 
 fs/xfs/scrub/refcount.c                                          |    8 
 fs/xfs/xfs_aops.c                                                |    6 
 fs/xfs/xfs_iops.c                                                |   10 
 fs/xfs/xfs_pnfs.c                                                |    2 
 include/linux/arm-smccc.h                                        |    2 
 include/linux/can/skb.h                                          |   20 
 include/linux/compiler-gcc.h                                     |    2 
 include/linux/compiler_types.h                                   |    4 
 include/linux/cpufreq.h                                          |   18 
 include/linux/genhd.h                                            |    2 
 include/linux/memcontrol.h                                       |   11 
 include/linux/netfilter/nfnetlink.h                              |    9 
 include/linux/netfilter_ipv4.h                                   |    2 
 include/linux/netfilter_ipv6.h                                   |   10 
 include/trace/events/sunrpc.h                                    |    8 
 init/main.c                                                      |   14 
 kernel/bpf/Makefile                                              |    6 
 kernel/bpf/core.c                                                |    2 
 kernel/bpf/hashtab.c                                             |   30 +
 kernel/dma/swiotlb.c                                             |    6 
 kernel/events/core.c                                             |   12 
 kernel/events/internal.h                                         |    2 
 kernel/exit.c                                                    |    5 
 kernel/futex.c                                                   |    5 
 kernel/irq/Kconfig                                               |    1 
 kernel/reboot.c                                                  |   28 -
 kernel/sched/cpufreq_schedutil.c                                 |    2 
 kernel/trace/trace.c                                             |    4 
 kernel/watchdog.c                                                |    4 
 mm/compaction.c                                                  |   12 
 mm/gup.c                                                         |   14 
 mm/hugetlb.c                                                     |   90 ----
 mm/memcontrol.c                                                  |   28 -
 mm/memory-failure.c                                              |   36 -
 mm/migrate.c                                                     |   44 +-
 mm/rmap.c                                                        |    5 
 mm/slub.c                                                        |    2 
 mm/vmscan.c                                                      |    5 
 net/can/j1939/socket.c                                           |    6 
 net/core/devlink.c                                               |    8 
 net/ethtool/features.c                                           |    2 
 net/ipv4/ip_tunnel_core.c                                        |    4 
 net/ipv4/netfilter.c                                             |    8 
 net/ipv4/netfilter/iptable_mangle.c                              |    2 
 net/ipv4/netfilter/nf_reject_ipv4.c                              |    2 
 net/ipv4/syncookies.c                                            |    9 
 net/ipv4/udp_offload.c                                           |   19 
 net/ipv4/xfrm4_tunnel.c                                          |    4 
 net/ipv6/netfilter.c                                             |    6 
 net/ipv6/netfilter/ip6table_mangle.c                             |    2 
 net/ipv6/sit.c                                                   |    2 
 net/ipv6/syncookies.c                                            |   10 
 net/ipv6/udp_offload.c                                           |   17 
 net/ipv6/xfrm6_tunnel.c                                          |    4 
 net/iucv/af_iucv.c                                               |    3 
 net/mac80211/mlme.c                                              |    3 
 net/mac80211/tx.c                                                |   37 +
 net/mptcp/protocol.c                                             |    1 
 net/netfilter/ipset/ip_set_core.c                                |    3 
 net/netfilter/ipvs/ip_vs_core.c                                  |    4 
 net/netfilter/nf_nat_proto.c                                     |    4 
 net/netfilter/nf_synproxy_core.c                                 |    2 
 net/netfilter/nf_tables_api.c                                    |   19 
 net/netfilter/nfnetlink.c                                        |   22 -
 net/netfilter/nft_chain_route.c                                  |    4 
 net/netfilter/utils.c                                            |    4 
 net/tipc/topsrv.c                                                |   10 
 net/wireless/core.c                                              |   57 +-
 net/wireless/core.h                                              |    5 
 net/wireless/nl80211.c                                           |    3 
 net/wireless/reg.c                                               |    2 
 net/x25/af_x25.c                                                 |    2 
 net/xfrm/xfrm_interface.c                                        |    8 
 net/xfrm/xfrm_state.c                                            |    8 
 security/selinux/ibpkey.c                                        |    4 
 sound/hda/ext/hdac_ext_controller.c                              |    2 
 sound/pci/hda/hda_controller.h                                   |    3 
 sound/pci/hda/hda_intel.c                                        |   63 +-
 sound/soc/codecs/cs42l51.c                                       |   22 -
 sound/soc/codecs/wcd9335.c                                       |    2 
 sound/soc/codecs/wcd934x.c                                       |    2 
 sound/soc/codecs/wsa881x.c                                       |    2 
 sound/soc/intel/boards/kbl_rt5663_max98927.c                     |   39 +
 sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c               |   31 +
 sound/soc/qcom/sdm845.c                                          |    2 
 sound/soc/sof/loader.c                                           |    5 
 tools/bpf/bpftool/prog.c                                         |    2 
 tools/lib/bpf/hashmap.h                                          |   15 
 tools/perf/builtin-trace.c                                       |   15 
 tools/perf/util/scripting-engines/trace-event-python.c           |    7 
 tools/perf/util/session.c                                        |   14 
 tools/testing/kunit/kunit_parser.py                              |    3 
 tools/testing/selftests/bpf/Makefile                             |    2 
 tools/testing/selftests/bpf/prog_tests/map_init.c                |  214 ++++++++++
 tools/testing/selftests/bpf/progs/test_map_init.c                |   33 +
 tools/testing/selftests/clone3/clone3_cap_checkpoint_restore.c   |    2 
 tools/testing/selftests/core/close_range_test.c                  |    8 
 tools/testing/selftests/filesystems/binderfs/binderfs_test.c     |    8 
 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_user.tc |    4 
 tools/testing/selftests/lib.mk                                   |    2 
 tools/testing/selftests/pidfd/pidfd_open_test.c                  |    1 
 tools/testing/selftests/pidfd/pidfd_poll_test.c                  |    1 
 tools/testing/selftests/proc/proc-loadavg-001.c                  |    1 
 tools/testing/selftests/proc/proc-self-syscall.c                 |    1 
 tools/testing/selftests/proc/proc-uptime-002.c                   |    1 
 tools/testing/selftests/tc-testing/tc-tests/filters/tests.json   |    4 
 tools/testing/selftests/wireguard/netns.sh                       |    8 
 tools/testing/selftests/wireguard/qemu/kernel.config             |    2 
 296 files changed, 2431 insertions(+), 1240 deletions(-)

Al Viro (1):
don't dump the threads that had been already exiting when zapped.

Alex Williamson (1):
vfio/pci: Implement ioeventfd thread handler for contended memory lock

Alexander Lobakin (4):
virtio: virtio_console: fix DMA memory allocation for rproc serial
ethtool: netlink: add missing netdev_features_change() call
net: udp: fix IP header access and skb lookup on Fast/frag0 UDP GRO
net: udp: fix UDP header access on Fast/frag0 UDP GRO

Alexander Usyskin (1):
mei: protect mei_cl_mtu from null dereference

Anand Jain (1):
btrfs: dev-replace: fail mount if we don't have replace item with target device

Anand K Mistry (1):
x86/speculation: Allow IBPB to be conditionally enabled on CPUs with always-on STIBP

Andrew Jeffery (1):
ARM: 9019/1: kprobes: Avoid fortify_panic() when copying optprobe template

Andrew Jones (1):
KVM: arm64: Don't hide ID registers from userspace

Andy Shevchenko (4):
kunit: Don't fail test suites if one of them is empty
pinctrl: intel: Fix 2 kOhm bias which is 833 Ohm
pinctrl: intel: Set default bias in case no particular value given
pinctrl: mcp23s08: Use full chunk of memory for regmap configuration

Anshuman Khandual (1):
arm64/mm: Validate hotplug range before creating linear mapping

Ard Biesheuvel (1):
bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE

Arnaldo Carvalho de Melo (1):
perf scripting python: Avoid declaring function pointers with a visibility attribute

Arnaud de Turckheim (3):
gpio: pcie-idio-24: Fix irq mask when masking
gpio: pcie-idio-24: Fix IRQ Enable Register value
gpio: pcie-idio-24: Enable PEX8311 interrupts

Arnd Bergmann (1):
firmware: xilinx: fix out-of-bounds access

Aya Levin (1):
net/mlx5e: Fix VXLAN synchronization after function reload

Baolin Wang (1):
mfd: sprd: Add wakeup capability for PMIC IRQ

Bard Liao (1):
ASoC: SOF: loader: handle all SOF_IPC_EXT types

Benjamin Gwin (1):
arm64: kexec_file: try more regions if loading segments fails

Bert Vermeulen (1):
mtd: spi-nor: Fix address width on flash chips > 16MB

Bhawanpreet Lakha (1):
drm/amd/display: Add missing pflip irq

Bill Wendling (1):
kbuild: explicitly specify the build id style

Billy Tsai (2):
gpio: aspeed: fix ast2600 bank properties
pinctrl: aspeed: Fix GPI only function problem.

Bjorn Andersson (1):
pinctrl: qcom: sm8250: Specify PDC map

Bob Peterson (3):
gfs2: Free rd_bits later in gfs2_clear_rgrpd to fix use-after-free
gfs2: Add missing truncate_inode_pages_final for sd_aspace
gfs2: check for live vs. read-only file system in gfs2_fitrim

Boris Protopopov (1):
Convert trailing spaces and periods in path components

Brad Campbell (1):
hwmon: (applesmc) Re-work SMC comms

Brian Foster (2):
xfs: flush new eof page on truncate to avoid post-eof corruption
iomap: clean up writeback state logic on writepage error

Chao Leng (3):
nvme: introduce nvme_sync_io_queues
nvme-rdma: avoid race between time out and tear down
nvme-tcp: avoid race between time out and tear down

Chen Zhou (1):
selinux: Fix error return code in sel_ib_pkey_sid_slow()

Chris Brandt (1):
usb: cdc-acm: Add DISABLE_ECHO for Renesas USB Download mode

Chris Wilson (2):
drm/i915: Hold onto an explicit ref to i915_vma_work.pinned drm/i915/gem: Flush coherency domains on first set-domain-ioctl

Christoph Hellwig (4):
nbd: fix a block_device refcount leak in nbd_release
xfs: fix a missing unlock on error in xfs_fs_map_blocks
nvme: factor out a nvme_configure_metadata helper
block: add a return value to set_capacity_revalidate_and_notify

Christophe Leroy (1):
powerpc/603: Always fault when _PAGE_ACCESSED is not set

Chuck Lever (2):
SUNRPC: Fix general protection fault in trace_rpc_xdr_overflow()
NFS: Fix listxattr receive buffer size

Clément Péron (2):
drm/panfrost: rename error labels in device_init drm/panfrost: move devfreq_init()/fini() in device

Coiby Xu (2):
pinctrl: amd: use higher precision for 512 RtcClk
pinctrl: amd: fix incorrect way to disable debounce filter

Colin Ian King (1):
selftests/ftrace: check for do_sys_openat2 in user-memory test

Dai Ngo (2):
NFSD: Fix use-after-free warning when doing inter-server copy
NFSD: fix missing refcount in nfsd4_copy by nfsd4_do_async_copy

Damien Le Moal (2):
gpio: sifive: Fix SiFive gpio probe
null_blk: Fix scheduling in atomic with zoned mode

Dan Carpenter (3):
ALSA: hda: prevent undefined shift in snd_hdac_ext_bus_get_link()
can: peak_usb: add range checking in decode operations
futex: Don't enable IRQs unconditionally in put_pi_state()

Darrick J. Wong (7):
xfs: set xefi_discard when creating a deferred agfl free log intent item
xfs: fix missing CoW blocks writeback conversion retry
xfs: fix scrub flagging rtinherit even if there is no rt device
xfs: fix flags argument to rmap lookup when converting shared file rmaps
xfs: set the unwritten bit in rmap lookup flags in xchk_bmap_get_rmapextents
xfs: fix rmap key and record comparison functions
xfs: fix brainos in the refcount scrubber's rmap fragment processor

David Gow (1):

      kunit: Fix kunit.py --raw_output option

David Howells (3):
afs: Fix warning due to unadvanced marshalling pointer
afs: Fix incorrect freeing of the ACL passed to the YFS ACL store op
afs: Fix afs_write_end() when called with copied == 0 [ver #3]

David Verbeiren (1):
bpf: Zero-fill re-used per-cpu map element

Dinghao Liu (1):
btrfs: ref-verify: fix memory leak in btrfs_ref_tree_mod

Evan Nimmo (1):
of/address: Fix of_node memory leak in of_dma_is_coherent

Evan Quan (4):
drm/amdgpu: perform srbm soft reset always on SDMA resume drm/amd/pm: correct the baco reset sequence for CI ASICs drm/amd/pm: perform SMC reset on suspend/hibernation drm/amd/pm: do not use ixFEATURE_STATUS for checking smc running

Evgeny Novikov (1):
usb: gadget: goku_udc: fix potential crashes in probe

Fred Gao (1):
vfio/pci: Bypass IGD init in case of -ENODEV

Gao Xiang (2):
erofs: fix setting up pcluster for temporary pages
erofs: derive atime instead of leaving it empty

Geert Uytterhoeven (1):
Revert "usb: musb: convert to devm_platform_ioremap_resource_byname"

Greentime Hu (2):
irqchip/sifive-plic: Fix broken irq_set_affinity() callback irqchip/sifive-plic: Fix chip_data access within a hierarchy

Greg Kroah-Hartman (1):

      Linux 5.9.9

Hannes Reinecke (1):
scsi: scsi_dh_alua: Avoid crash during alua_bus_detach()

Heikki Krogerus (2):
usb: dwc3: pci: add support for the Intel Alder Lake-S
usb: typec: ucsi: Report power supply changes

Heiner Kallweit (3):
r8169: fix potential skb double free in an error path
r8169: disable hw csum for short packets on all chip versions
net: phy: realtek: support paged operations on RTL8201CP

Ian Rogers (1):
libbpf, hashmap: Fix undefined behavior in hash_bits

J. Bruce Fields (1):
NFSv4.2: fix failure to unregister shrinker

Jason A. Donenfeld (2):
netfilter: use actual socket sk rather than skb sk when routing harder
wireguard: selftests: check that route_me_harder packets use the right sk

Jason Gunthorpe (1):
mm/gup: use unpin_user_pages() in __gup_longterm_locked()

Jeff Layton (1):

      ceph: check session state after bumping session->s_seq

Jens Axboe (2):
io_uring: ensure consistent view of original task ->mm from SQPOLL
io_uring: round-up cq size before comparing with rounded sq size

Jerry Snitselaar (1):
tpm_tis: Disable interrupts on ThinkPad T490s

Jing Xiangfeng (1):
thunderbolt: Add the missed ida_simple_remove() in ring_request_msix()

Jiri Olsa (1):
perf tools: Add missing swap for ino_generation

Joakim Zhang (2):
can: flexcan: remove FLEXCAN_QUIRK_DISABLE_MECR quirk for LS1021A
can: flexcan: flexcan_remove(): disable wakeup completely

Joerg Roedel (1):
x86/boot/compressed/64: Introduce sev_status

Johannes Berg (3):
mac80211: don't require VHT elements for HE on 2.4 GHz
mac80211: fix use of skb payload instead of header
cfg80211: initialize wdev data earlier

Josef Bacik (1):
btrfs: fix min reserved size calculation in merge_reloc_root

Joseph Qi (1):
ext4: unlock xattr_sem properly in ext4_inline_data_truncate()

Kai-Heng Feng (2):
ALSA: hda: Separate runtime and system suspend
ALSA: hda: Reinstate runtime_allow() for all hda controllers

Kaixu Xia (1):
ext4: correctly report "not supported" for {usr,grp}jquota when !CONFIG_QUOTA

Keita Suzuki (1):
scsi: hpsa: Fix memory leak in hpsa_init_one()

Keith Busch (1):
Revert "nvme-pci: remove last_sq_tail"

Laurent Dufour (1):
mm/slub: fix panic in slab_alloc_node()

Linu Cherian (1):
coresight: etm: perf: Sink selection using sysfs is deprecated

Liu Yi L (1):
iommu/vt-d: Fix sid not set issue in intel_svm_bind_gpasid()

Liu, Yi L (1):
iommu/vt-d: Fix a bug for PDP check in prq_event_thread

Lorenz Bauer (1):
tools/bpftool: Fix attaching flow dissector

Mao Wenan (1):
net: Update window_clamp if SOCK_RCVBUF is set

Maor Dickman (1):
net/mlx5e: Fix modify header actions memory leak

Maor Gottlieb (2):
IB/srpt: Fix memory leak in srpt_add_one
net/mlx5: Fix deletion of duplicate rules

Marc Kleine-Budde (1):
can: rx-offload: don't call kfree_skb() from IRQ context

Marc Zyngier (1):
genirq: Let GENERIC_IRQ_IPI select IRQ_DOMAIN_HIERARCHY

Martin Hundebøll (1):
spi: bcm2835: remove use of uninitialized gpio flags variable

Martin Schiller (1):
net/x25: Fix null-ptr-deref in x25_connect

Martin Willi (1):
vrf: Fix fast path output packet handling with async Netfilter rules

Masami Hiramatsu (1):
bootconfig: Extend the magic check range to the preceding 3 bytes

Masashi Honma (1):
ath9k_htc: Use appropriate rs_datalen type

Matteo Croce (2):
Revert "kernel/reboot.c: convert simple_strtoul to kstrtoint"
reboot: fix overflow parsing reboot cpu number

Matthew Wilcox (Oracle) (1):
btrfs: fix potential overflow in cluster_pages_for_defrag on 32bit arch

Maulik Shah (1):
pinctrl: qcom: Move clearing pending IRQ to .irq_request_resources callback

Maxim Mikityanskiy (2):
net/mlx5e: Use spin_lock_bh for async_icosq_lock net/mlx5e: Fix incorrect access of RCU-protected xdp_prog

Maxime Ripard (1):
drm/vc4: bo: Add a managed action to cleanup the cache

Michael Wu (2):
i2c: designware: call i2c_dw_read_clear_intrbits_slave() once
i2c: designware: slave should do WRITE_REQUESTED before WRITE_RECEIVED

Mika Westerberg (1):
thunderbolt: Fix memory leak if ida_simple_get() fails in enumerate_services()

Mike Kravetz (1):
hugetlbfs: fix anon huge page migration race

Mike Leach (1):
coresight: Fix uninitialised pointer bug in etm_setup_aux()

Ming Lei (1):
nbd: don't update block size after device is started

Muchun Song (1):
mm: memcontrol: fix missing wakeup polling thread

Namhyung Kim (1):
perf tools: Add missing swap for cgroup events

Naveen Krishna Chatradhi (1):
hwmon: (amd_energy) modify the visibility of the counters

Navid Emamdoost (1):
can: xilinx_can: handle failure cases of pm_runtime_get_sync

Nicholas Piggin (1):
mm/vmscan: fix NR_ISOLATED_FILE corruption on 64-bit

Olaf Hering (1):
hv_balloon: disable warning when floor reached

Oleksij Rempel (1):
can: can_create_echo_skb(): fix echo skb generation: always use skb_clone()

Oliver Hartkopp (1):
can: dev: __can_get_echo_skb(): fix real payload length return value for RTR frames

Oliver Herms (1):
IPv6: Set SIT tunnel hard_header_len to zero

Olivier Moysan (1):
ASoC: cs42l51: manage mclk shutdown delay

Pablo Neira Ayuso (2):
netfilter: nftables: fix netlink report logic in flowtable and genid
netfilter: nf_tables: missing validation from the abort path

Palmer Dabbelt (1):
RISC-V: Fix the VDSO symbol generaton for binutils-2.35+

Paolo Abeni (1):
mptcp: provide rmem[0] limit

Parav Pandit (2):
net/mlx5: E-switch, Avoid extack error log for disabled vport
devlink: Avoid overwriting port attributes of registered port

Peter Zijlstra (3):
perf: Fix get_recursion_context()
perf: Simplify group_sched_in()
perf: Fix event multiplexing for exclusive groups

Petr Vorel (1):
loop: Fix occasional uevent drop

Pujin Shi (1):
scsi: ufs: Fix missing brace warning for old compilers

Qian Cai (2):
powerpc/eeh_cache: Fix a possible debugfs deadlock s390/smp: move rcu_cpu_starting() earlier

Qii Wang (1):
i2c: mediatek: move dma reset before i2c reset

Qiujun Huang (1):
tracing: Fix the checking of stackidx in __ftrace_trace_stack

Rafael J. Wysocki (4):
cpufreq: Introduce governor flags
cpufreq: Introduce CPUFREQ_GOV_STRICT_TARGET
cpufreq: Add strict_target to struct cpufreq_policy
cpufreq: intel_pstate: Take CPUFREQ_GOV_STRICT_TARGET into account

Rajat Jain (1):
PCI: Always enable ACS even if no ACS Capability

Ran Wang (1):
usb: gadget: fsl: fix null pointer checking

Rob Herring (1):
PCI: mvebu: Fix duplicate resource requests

Rohit Maheshwari (2):
ch_ktls: Update cheksum information
ch_ktls: tcb update fails sometimes

Roman Gushchin (1):
mm: memcg: link page counters to root if use_hierarchy is false

Sagi Grimberg (3):
nvme-rdma: avoid repeated request completion
nvme-tcp: avoid repeated request completion
nvme: fix incorrect behavior when BLKROSET is called by the user

Samuel Thibault (3):
speakup: Fix var_id_t values and thus keymap speakup ttyio: Do not schedule() in ttyio_in_nowait
speakup: Fix clearing selection in safe context

Santosh Shukla (1):
KVM: arm64: Force PTE mapping on fault resulting in a device mapping

Santosh Sivaraj (1):
kernel/watchdog: fix watchdog_allowed_mask not used warning

Sascha Hauer (1):
spi: imx: fix runtime pm support for !CONFIG_PM

Sasha Levin (1):

      nvme: freeze the queue over ->lba_shift updates

Sean Anderson (1):
riscv: Set text_offset correctly for M-Mode

Shin'ichiro Kawasaki (1):
uio: Fix use-after-free in uio_unregister_device()

Slawomir Laba (1):
i40e: Fix MAC address setting for a VF via Host/VM

Sreekanth Reddy (1):
scsi: mpt3sas: Fix timeouts observed while reenabling IRQ

Srinivas Kandagatla (4):
ASoC: codecs: wsa881x: add missing stream rates and format
ASoC: codecs: wcd934x: Set digital gain range correctly
ASoC: codecs: wcd9335: Set digital gain range correctly
ASoC: qcom: sdm845: set driver name correctly

Stanislav Ivanichkin (1):
perf trace: Fix segfault when trying to trace events by cgroup

Stefano Brivio (2):
netfilter: ipset: Update byte and packet counters regardless of whether they match
tunnels: Fix off-by-one in lower MTU bounds for ICMP/ICMPv6 replies

Stefano Stabellini (1):
swiotlb: fix "x86: Don't panic if can not alloc buffer for swiotlb"

Stephane Grosjean (2):
can: peak_usb: peak_usb_get_ts_time(): fix timestamp wrapping
can: peak_canfd: pucan_handle_can_rx(): fix echo management when loopback is on

Stephen Boyd (1):
KVM: arm64: ARM_SMCCC_ARCH_WORKAROUND_1 doesn't return SMCCC_RET_NOT_REQUIRED

Steven Price (1):
drm/panfrost: Fix module unload

Suravee Suthikulpanit (1):
iommu/amd: Increase interrupt remapping table limit to 512 entries

Sven Van Asbroeck (3):
lan743x: correctly handle chips with internal PHY
lan743x: fix "BUG: invalid wait context" when setting rx mode
lan743x: fix use of uninitialized variable

Theodore Ts'o (1):
jbd2: fix up sparse warnings in checkpoint code

Thomas Zimmermann (1):

      drm/gma500: Fix out-of-bounds access to struct drm_device.vblank[]

Tomasz Figa (1):
ASoC: Intel: kbl_rt5663_max98927: Fix kabylake_ssp_fixup function

Tommi Rantala (6):
selftests: filter kselftest headers from command in lib.mk
selftests: core: use SKIP instead of XFAIL in close_range_test.c
selftests: clone3: use SKIP instead of XFAIL
selftests: binderfs: use SKIP instead of XFAIL
selftests: pidfd: fix compilation errors due to wait.h
selftests: proc: fix warning: _GNU_SOURCE redefined

Tyler Hicks (1):
tpm: efi: Don't create binary_bios_measurements file for an empty log

Tzung-Bi Shih (1):

      ASoC: mediatek: mt8183-da7219: fix DAPM paths for rt1015

Ulrich Hecht (1):
i2c: sh_mobile: implement atomic transfers

Ursula Braun (1):
net/af_iucv: fix null pointer dereference on shutdown

Veerabadhran Gopalakrishnan (1):
amd/amdgpu: Disable VCN DPG mode for Picasso

Venkata Sandeep Dhanalakota (1):
drm/i915: Correctly set SFC capability for video engines

Vincent Mailhol (1):
can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context

Vineet Gupta (1):
ARC: [plat-hsdk] Remap CCMs super early in asm boot trampoline

Vinicius Costa Gomes (1):
igc: Fix returning wrong statistics

Viresh Kumar (1):
opp: Reduce the size of critical section in _opp_table_kref_release()

Vlad Buslov (2):
net/mlx5e: Protect encap route dev from concurrent release
selftest: fix flower terse dump tests

Wang Hai (2):
cosa: Add missing kfree in error path of cosa_write
tipc: fix memory leak in tipc_topsrv_start()

Wengang Wang (1):
ocfs2: initialize ip_next_orphan

Xin Long (1):
xfrm: interface: fix the priorities for ipip and ipv6 tunnels

Yangbo Lu (1):
mmc: sdhci-of-esdhc: Handle pulse width detection erratum for more SoCs

Ye Bin (1):
cfg80211: regulatory: Fix inconsistent format argument

Yegor Yefremov (1):
can: j1939: swap addr and pgn in the send example

Yoshihiro Shimoda (1):
mmc: renesas_sdhi_core: Add missing tmio_mmc_host_free() at remove

Zhang Changzhong (2):
can: j1939: j1939_sk_bind(): return failure if netdev is down
can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error path

Zhang Qilong (3):
USB: apple-mfi-fastcharge: fix reference leak in apple_mfi_fc_set_property
vfio: platform: fix reference leak in vfio_platform_open
xhci: hisilicon: fix refercence leak in xhci_histb_probe

Zhao Qiang (1):
spi: fsl-dspi: fix wrong pointer in suspend/resume

Zi Yan (2):
mm/compaction: count pages and stop correctly during page isolation mm/compaction: stop isolation if too many pages are isolated and we have pages to migrate

Zqiang (1):
usb: raw-gadget: fix memory leak in gadget_setup

zhongjiang-ali (1):
mm: memcontrol: correct the NR_ANON_THPS counter of hierarchical memcg

zhuoliang zhang (1):
net: xfrm: fix a race condition during allocing spi

author maintainer
#1 lore raw
Documentation/networking/j1939.rst +2 -2
index f5be243d250a..4b0db514b201 100644
@@ -414,8 +414,8 @@ Send:
 		.can_family = AF_CAN,
 		.can_addr.j1939 = {
 			.name = J1939_NO_NAME;
-			.pgn = 0x30,
-			.addr = 0x12300,
+			.addr = 0x30,
+			.pgn = 0x12300,
 		},
 	};
 
Makefile +3 -3
index ac292d6dd262..59728422b9db 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 9
-SUBLEVEL = 8
+SUBLEVEL = 9
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
@@ -973,8 +973,8 @@ KBUILD_CPPFLAGS += $(KCPPFLAGS)
 KBUILD_AFLAGS   += $(KAFLAGS)
 KBUILD_CFLAGS   += $(KCFLAGS)
 
-KBUILD_LDFLAGS_MODULE += --build-id
-LDFLAGS_vmlinux += --build-id
+KBUILD_LDFLAGS_MODULE += --build-id=sha1
+LDFLAGS_vmlinux += --build-id=sha1
 
 ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
 LDFLAGS_vmlinux	+= $(call ld-option, -X,)
arch/arc/kernel/head.S +16 -1
index 17fd1ed700cc..9152782444b5 100644
@@ -67,7 +67,22 @@
 	sr	r5, [ARC_REG_LPB_CTRL]
 1:
 #endif /* CONFIG_ARC_LPB_DISABLE */
-#endif
+
+	/* On HSDK, CCMs need to remapped super early */
+#ifdef CONFIG_ARC_SOC_HSDK
+	mov	r6, 0x60000000
+	lr	r5, [ARC_REG_ICCM_BUILD]
+	breq	r5, 0, 1f
+	sr	r6, [ARC_REG_AUX_ICCM]
+1:
+	lr	r5, [ARC_REG_DCCM_BUILD]
+	breq	r5, 0, 2f
+	sr	r6, [ARC_REG_AUX_DCCM]
+2:
+#endif	/* CONFIG_ARC_SOC_HSDK */
+
+#endif	/* CONFIG_ISA_ARCV2 */
+
 	; Config DSP_CTRL properly, so kernel may use integer multiply,
 	; multiply-accumulate, and divide operations
 	DSP_EARLY_INIT
arch/arc/plat-hsdk/platform.c +0 -17
index 0b961a2a10b8..22c9e2c9c028 100644
@@ -17,22 +17,6 @@ int arc_hsdk_axi_dmac_coherent __section(.data) = 0;
 
 #define ARC_CCM_UNUSED_ADDR	0x60000000
 
-static void __init hsdk_init_per_cpu(unsigned int cpu)
-{
-	/*
-	 * By default ICCM is mapped to 0x7z while this area is used for
-	 * kernel virtual mappings, so move it to currently unused area.
-	 */
-	if (cpuinfo_arc700[cpu].iccm.sz)
-		write_aux_reg(ARC_REG_AUX_ICCM, ARC_CCM_UNUSED_ADDR);
-
-	/*
-	 * By default DCCM is mapped to 0x8z while this area is used by kernel,
-	 * so move it to currently unused area.
-	 */
-	if (cpuinfo_arc700[cpu].dccm.sz)
-		write_aux_reg(ARC_REG_AUX_DCCM, ARC_CCM_UNUSED_ADDR);
-}
 
 #define ARC_PERIPHERAL_BASE	0xf0000000
 #define CREG_BASE		(ARC_PERIPHERAL_BASE + 0x1000)
@@ -339,5 +323,4 @@ static const char *hsdk_compat[] __initconst = {
 MACHINE_START(SIMULATION, "hsdk")
 	.dt_compat	= hsdk_compat,
 	.init_early     = hsdk_init_early,
-	.init_per_cpu	= hsdk_init_per_cpu,
 MACHINE_END
arch/arm/include/asm/kprobes.h +11 -11
index 213607a1f45c..e26a278d301a 100644
@@ -44,20 +44,20 @@ int kprobe_exceptions_notify(struct notifier_block *self,
 			     unsigned long val, void *data);
 
 /* optinsn template addresses */
-extern __visible kprobe_opcode_t optprobe_template_entry;
-extern __visible kprobe_opcode_t optprobe_template_val;
-extern __visible kprobe_opcode_t optprobe_template_call;
-extern __visible kprobe_opcode_t optprobe_template_end;
-extern __visible kprobe_opcode_t optprobe_template_sub_sp;
-extern __visible kprobe_opcode_t optprobe_template_add_sp;
-extern __visible kprobe_opcode_t optprobe_template_restore_begin;
-extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn;
-extern __visible kprobe_opcode_t optprobe_template_restore_end;
+extern __visible kprobe_opcode_t optprobe_template_entry[];
+extern __visible kprobe_opcode_t optprobe_template_val[];
+extern __visible kprobe_opcode_t optprobe_template_call[];
+extern __visible kprobe_opcode_t optprobe_template_end[];
+extern __visible kprobe_opcode_t optprobe_template_sub_sp[];
+extern __visible kprobe_opcode_t optprobe_template_add_sp[];
+extern __visible kprobe_opcode_t optprobe_template_restore_begin[];
+extern __visible kprobe_opcode_t optprobe_template_restore_orig_insn[];
+extern __visible kprobe_opcode_t optprobe_template_restore_end[];
 
 #define MAX_OPTIMIZED_LENGTH	4
 #define MAX_OPTINSN_SIZE				\
-	((unsigned long)&optprobe_template_end -	\
-	 (unsigned long)&optprobe_template_entry)
+	((unsigned long)optprobe_template_end -	\
+	 (unsigned long)optprobe_template_entry)
 #define RELATIVEJUMP_SIZE	4
 
 struct arch_optimized_insn {
arch/arm/probes/kprobes/opt-arm.c +9 -9
index 7a449df0b359..c78180172120 100644
@@ -85,21 +85,21 @@ asm (
 			"optprobe_template_end:\n");
 
 #define TMPL_VAL_IDX \
-	((unsigned long *)&optprobe_template_val - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_val - (unsigned long *)optprobe_template_entry)
 #define TMPL_CALL_IDX \
-	((unsigned long *)&optprobe_template_call - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_call - (unsigned long *)optprobe_template_entry)
 #define TMPL_END_IDX \
-	((unsigned long *)&optprobe_template_end - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_end - (unsigned long *)optprobe_template_entry)
 #define TMPL_ADD_SP \
-	((unsigned long *)&optprobe_template_add_sp - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_add_sp - (unsigned long *)optprobe_template_entry)
 #define TMPL_SUB_SP \
-	((unsigned long *)&optprobe_template_sub_sp - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_sub_sp - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_BEGIN \
-	((unsigned long *)&optprobe_template_restore_begin - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_begin - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_ORIGN_INSN \
-	((unsigned long *)&optprobe_template_restore_orig_insn - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_orig_insn - (unsigned long *)optprobe_template_entry)
 #define TMPL_RESTORE_END \
-	((unsigned long *)&optprobe_template_restore_end - (unsigned long *)&optprobe_template_entry)
+	((unsigned long *)optprobe_template_restore_end - (unsigned long *)optprobe_template_entry)
 
 /*
  * ARM can always optimize an instruction when using ARM ISA, except
@@ -234,7 +234,7 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op, struct kprobe *or
 	}
 
 	/* Copy arch-dep-instance from template. */
-	memcpy(code, (unsigned long *)&optprobe_template_entry,
+	memcpy(code, (unsigned long *)optprobe_template_entry,
 			TMPL_END_IDX * sizeof(kprobe_opcode_t));
 
 	/* Adjust buffer according to instruction. */
arch/arm/vdso/Makefile +1 -1
index a54f70731d9f..150ce6e6a5d3 100644
@@ -19,7 +19,7 @@ ccflags-y += -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO32
 ldflags-$(CONFIG_CPU_ENDIAN_BE8) := --be8
 ldflags-y := -Bsymbolic --no-undefined -soname=linux-vdso.so.1 \
 	    -z max-page-size=4096 -nostdlib -shared $(ldflags-y) \
-	    --hash-style=sysv --build-id \
+	    --hash-style=sysv --build-id=sha1 \
 	    -T
 
 obj-$(CONFIG_VDSO) += vdso.o
arch/arm64/kernel/kexec_image.c +31 -10

61 lines not on this page · raw message

arch/arm64/kernel/machine_kexec_file.c +8 -1
index 361a1143e09e..e443df856988 100644
@@ -242,6 +242,11 @@ static int prepare_elf_headers(void **addr, unsigned long *sz)
 	return ret;
 }
 
+/*
+ * Tries to add the initrd and DTB to the image. If it is not possible to find
+ * valid locations, this function will undo changes to the image and return non
+ * zero.
+ */
 int load_other_segments(struct kimage *image,
 			unsigned long kernel_load_addr,
 			unsigned long kernel_size,
@@ -250,7 +255,8 @@ int load_other_segments(struct kimage *image,
 {
 	struct kexec_buf kbuf;
 	void *headers, *dtb = NULL;
-	unsigned long headers_sz, initrd_load_addr = 0, dtb_len;
+	unsigned long headers_sz, initrd_load_addr = 0, dtb_len,
+		      orig_segments = image->nr_segments;
 	int ret = 0;
 
 	kbuf.image = image;
@@ -336,6 +342,7 @@ int load_other_segments(struct kimage *image,
 	return 0;
 
 out_err:
+	image->nr_segments = orig_segments;
 	vfree(dtb);
 	return ret;
 }
arch/arm64/kernel/vdso/Makefile +1 -1
index 45d5cfe46429..871915097f9d 100644
@@ -24,7 +24,7 @@ btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
 # routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
 # preparation in build-time C")).
 ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv	\
-	     -Bsymbolic $(call ld-option, --no-eh-frame-hdr) --build-id -n	\
+	     -Bsymbolic $(call ld-option, --no-eh-frame-hdr) --build-id=sha1 -n	\
 	     $(btildflags-y) -T
 
 ccflags-y := -fno-common -fno-builtin -fno-stack-protector -ffixed-x18
arch/arm64/kernel/vdso32/Makefile +1 -1
index d6adb4677c25..4fa4b3fe8efb 100644
@@ -128,7 +128,7 @@ VDSO_LDFLAGS += -Wl,-Bsymbolic -Wl,--no-undefined -Wl,-soname=linux-vdso.so.1
 VDSO_LDFLAGS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
 VDSO_LDFLAGS += -nostdlib -shared -mfloat-abi=soft
 VDSO_LDFLAGS += -Wl,--hash-style=sysv
-VDSO_LDFLAGS += -Wl,--build-id
+VDSO_LDFLAGS += -Wl,--build-id=sha1
 VDSO_LDFLAGS += $(call cc32-ldoption,-fuse-ld=bfd)
 
 
arch/arm64/kvm/hypercalls.c +1 -1
index 550dfa3e53cd..b8e7f6c4524f 100644
@@ -31,7 +31,7 @@ int kvm_hvc_call_handler(struct kvm_vcpu *vcpu)
 				val = SMCCC_RET_SUCCESS;
 				break;
 			case KVM_BP_HARDEN_NOT_REQUIRED:
-				val = SMCCC_RET_NOT_REQUIRED;
+				val = SMCCC_ARCH_WORKAROUND_RET_UNAFFECTED;
 				break;
 			}
 			break;
arch/arm64/kvm/mmu.c +1 -0
index 3d26b47a1343..7a4ad984d54e 100644
@@ -1920,6 +1920,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa,
 	if (kvm_is_device_pfn(pfn)) {
 		mem_type = PAGE_S2_DEVICE;
 		flags |= KVM_S2PTE_FLAG_IS_IOMAP;
+		force_pte = true;
 	} else if (logging_active) {
 		/*
 		 * Faults on pages in a memslot with logging enabled
arch/arm64/kvm/sys_regs.c +1 -17
index de5a5a80ae99..f24f659f5a31 100644
@@ -1193,16 +1193,6 @@ static unsigned int sve_visibility(const struct kvm_vcpu *vcpu,
 	return REG_HIDDEN_USER | REG_HIDDEN_GUEST;
 }
 
-/* Visibility overrides for SVE-specific ID registers */
-static unsigned int sve_id_visibility(const struct kvm_vcpu *vcpu,
-				      const struct sys_reg_desc *rd)
-{
-	if (vcpu_has_sve(vcpu))
-		return 0;
-
-	return REG_HIDDEN_USER;
-}
-
 /* Generate the emulated ID_AA64ZFR0_EL1 value exposed to the guest */
 static u64 guest_id_aa64zfr0_el1(const struct kvm_vcpu *vcpu)
 {
@@ -1229,9 +1219,6 @@ static int get_id_aa64zfr0_el1(struct kvm_vcpu *vcpu,
 {
 	u64 val;
 
-	if (WARN_ON(!vcpu_has_sve(vcpu)))
-		return -ENOENT;
-
 	val = guest_id_aa64zfr0_el1(vcpu);
 	return reg_to_user(uaddr, &val, reg->id);
 }
@@ -1244,9 +1231,6 @@ static int set_id_aa64zfr0_el1(struct kvm_vcpu *vcpu,
 	int err;
 	u64 val;
 
-	if (WARN_ON(!vcpu_has_sve(vcpu)))
-		return -ENOENT;
-
 	err = reg_from_user(&val, uaddr, id);
 	if (err)
 		return err;
@@ -1509,7 +1493,7 @@ static const struct sys_reg_desc sys_reg_descs[] = {
 	ID_SANITISED(ID_AA64PFR1_EL1),
 	ID_UNALLOCATED(4,2),
 	ID_UNALLOCATED(4,3),
-	{ SYS_DESC(SYS_ID_AA64ZFR0_EL1), access_id_aa64zfr0_el1, .get_user = get_id_aa64zfr0_el1, .set_user = set_id_aa64zfr0_el1, .visibility = sve_id_visibility },
+	{ SYS_DESC(SYS_ID_AA64ZFR0_EL1), access_id_aa64zfr0_el1, .get_user = get_id_aa64zfr0_el1, .set_user = set_id_aa64zfr0_el1, },
 	ID_UNALLOCATED(4,5),
 	ID_UNALLOCATED(4,6),
 	ID_UNALLOCATED(4,7),
arch/arm64/mm/mmu.c +17 -0
index 75df62fea1b6..a834e7fb0e25 100644
@@ -1433,11 +1433,28 @@ static void __remove_pgd_mapping(pgd_t *pgdir, unsigned long start, u64 size)
 	free_empty_tables(start, end, PAGE_OFFSET, PAGE_END);
 }
 
+static bool inside_linear_region(u64 start, u64 size)
+{
+	/*
+	 * Linear mapping region is the range [PAGE_OFFSET..(PAGE_END - 1)]
+	 * accommodating both its ends but excluding PAGE_END. Max physical
+	 * range which can be mapped inside this linear mapping range, must
+	 * also be derived from its end points.
+	 */
+	return start >= __pa(_PAGE_OFFSET(vabits_actual)) &&
+	       (start + size - 1) <= __pa(PAGE_END - 1);
+}
+
 int arch_add_memory(int nid, u64 start, u64 size,
 		    struct mhp_params *params)
 {
 	int ret, flags = 0;
 
+	if (!inside_linear_region(start, size)) {
+		pr_err("[%llx %llx] is outside linear mapping region\n", start, start + size);
+		return -EINVAL;
+	}
+
 	if (rodata_full || debug_pagealloc_enabled())
 		flags = NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
 
arch/mips/vdso/Makefile +1 -1
index 57fe83235281..5810cc12bc1d 100644
@@ -61,7 +61,7 @@ endif
 # VDSO linker flags.
 ldflags-y := -Bsymbolic --no-undefined -soname=linux-vdso.so.1 \
 	$(filter -E%,$(KBUILD_CFLAGS)) -nostdlib -shared \
-	-G 0 --eh-frame-hdr --hash-style=sysv --build-id -T
+	-G 0 --eh-frame-hdr --hash-style=sysv --build-id=sha1 -T
 
 CFLAGS_REMOVE_vdso.o = -pg
 
arch/powerpc/kernel/eeh_cache.c +3 -2
index 6b50bf15d8c1..bf3270426d82 100644
@@ -264,8 +264,9 @@ static int eeh_addr_cache_show(struct seq_file *s, void *v)
 {
 	struct pci_io_addr_range *piar;
 	struct rb_node *n;
+	unsigned long flags;
 
-	spin_lock(&pci_io_addr_cache_root.piar_lock);
+	spin_lock_irqsave(&pci_io_addr_cache_root.piar_lock, flags);
 	for (n = rb_first(&pci_io_addr_cache_root.rb_root); n; n = rb_next(n)) {
 		piar = rb_entry(n, struct pci_io_addr_range, rb_node);
 
@@ -273,7 +274,7 @@ static int eeh_addr_cache_show(struct seq_file *s, void *v)
 		       (piar->flags & IORESOURCE_IO) ? "i/o" : "mem",
 		       &piar->addr_lo, &piar->addr_hi, pci_name(piar->pcidev));
 	}
-	spin_unlock(&pci_io_addr_cache_root.piar_lock);
+	spin_unlock_irqrestore(&pci_io_addr_cache_root.piar_lock, flags);
 
 	return 0;
 }
arch/powerpc/kernel/head_32.S +0 -12
index a5a612deef66..898c2fe4ac67 100644
@@ -472,11 +472,7 @@ InstructionTLBMiss:
 	cmplw	0,r1,r3
 #endif
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
 	li	r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
-#else
-	li	r1,_PAGE_PRESENT | _PAGE_EXEC
-#endif
 #if defined(CONFIG_MODULES) || defined(CONFIG_DEBUG_PAGEALLOC)
 	bgt-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
@@ -538,11 +534,7 @@ DataLoadTLBMiss:
 	lis	r1, TASK_SIZE@h		/* check if kernel address */
 	cmplw	0,r1,r3
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
 	li	r1, _PAGE_PRESENT | _PAGE_ACCESSED
-#else
-	li	r1, _PAGE_PRESENT
-#endif
 	bgt-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
 	addi	r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l	/* kernel page table */
@@ -618,11 +610,7 @@ DataStoreTLBMiss:
 	lis	r1, TASK_SIZE@h		/* check if kernel address */
 	cmplw	0,r1,r3
 	mfspr	r2, SPRN_SPRG_PGDIR
-#ifdef CONFIG_SWAP
 	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT | _PAGE_ACCESSED
-#else
-	li	r1, _PAGE_RW | _PAGE_DIRTY | _PAGE_PRESENT
-#endif
 	bgt-	112f
 	lis	r2, (swapper_pg_dir - PAGE_OFFSET)@ha	/* if kernel address, use */
 	addi	r2, r2, (swapper_pg_dir - PAGE_OFFSET)@l	/* kernel page table */
arch/riscv/kernel/head.S +5 -0
index 0a4e81b8dc79..5a0ae2eaf5e2 100644
@@ -27,12 +27,17 @@ ENTRY(_start)
 	/* reserved */
 	.word 0
 	.balign 8
+#ifdef CONFIG_RISCV_M_MODE
+	/* Image load offset (0MB) from start of RAM for M-mode */
+	.dword 0
+#else
 #if __riscv_xlen == 64
 	/* Image load offset(2MB) from start of RAM */
 	.dword 0x200000
 #else
 	/* Image load offset(4MB) from start of RAM */
 	.dword 0x400000
+#endif
 #endif
 	/* Effective size of kernel image */
 	.dword _end - _start
arch/riscv/kernel/vdso/.gitignore +1 -0
index 11ebee9e4c1d..3a19def868ec 100644
@@ -1,3 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0-only
 vdso.lds
 *.tmp
+vdso-syms.S
arch/riscv/kernel/vdso/Makefile +9 -9
index 478e7338ddc1..cb8f9e4cfcbf 100644
@@ -43,19 +43,14 @@ $(obj)/vdso.o: $(obj)/vdso.so
 SYSCFLAGS_vdso.so.dbg = $(c_flags)
 $(obj)/vdso.so.dbg: $(src)/vdso.lds $(obj-vdso) FORCE
 	$(call if_changed,vdsold)
+SYSCFLAGS_vdso.so.dbg = -shared -s -Wl,-soname=linux-vdso.so.1 \
+	-Wl,--build-id -Wl,--hash-style=both
 
 # We also create a special relocatable object that should mirror the symbol
 # table and layout of the linked DSO. With ld --just-symbols we can then
 # refer to these symbols in the kernel code rather than hand-coded addresses.
-
-SYSCFLAGS_vdso.so.dbg = -shared -s -Wl,-soname=linux-vdso.so.1 \
-	-Wl,--build-id -Wl,--hash-style=both
-$(obj)/vdso-dummy.o: $(src)/vdso.lds $(obj)/rt_sigreturn.o FORCE
-	$(call if_changed,vdsold)
-
-LDFLAGS_vdso-syms.o := -r --just-symbols
-$(obj)/vdso-syms.o: $(obj)/vdso-dummy.o FORCE
-	$(call if_changed,ld)
+$(obj)/vdso-syms.S: $(obj)/vdso.so FORCE
+	$(call if_changed,so2s)
 
 # strip rule for the .so file
 $(obj)/%.so: OBJCOPYFLAGS := -S
@@ -73,6 +68,11 @@ quiet_cmd_vdsold = VDSOLD  $@
                            $(patsubst %, -G __vdso_%, $(vdso-syms)) [email protected] $@ && \
                    rm [email protected]
 
+# Extracts symbol offsets from the VDSO, converting them into an assembly file
+# that contains the same symbols at the same offsets.
+quiet_cmd_so2s = SO2S    $@
+      cmd_so2s = $(NM) -D $< | $(srctree)/$(src)/so2s.sh > $@
+
 # install commands for the unstripped file
 quiet_cmd_vdso_install = INSTALL $@
       cmd_vdso_install = cp $(obj)/[email protected] $(MODLIB)/vdso/$@
arch/riscv/kernel/vdso/so2s.sh new file +6 -0
new file mode 100755
index 000000000000..e64cb6d9440e
@@ -0,0 +1,6 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0+
+# Copyright 2020 Palmer Dabbelt <[email protected]>
+
+sed 's!\([0-9a-f]*\) T \([a-z0-9_]*\)\(@@LINUX_4.15\)*!.global \2\n.set \2,0x\1!' \
+| grep '^\.'
arch/s390/kernel/smp.c +2 -1
index 85700bd85f98..3b4c3140c18e 100644
@@ -855,13 +855,14 @@ void __init smp_detect_cpus(void)
 
 static void smp_init_secondary(void)
 {
-	int cpu = smp_processor_id();
+	int cpu = raw_smp_processor_id();
 
 	S390_lowcore.last_update_clock = get_tod_clock();
 	restore_access_regs(S390_lowcore.access_regs_save_area);
 	set_cpu_flag(CIF_ASCE_PRIMARY);
 	set_cpu_flag(CIF_ASCE_SECONDARY);
 	cpu_init();
+	rcu_cpu_starting(cpu);
 	preempt_disable();
 	init_cpu_timer();
 	vtime_init();
arch/s390/kernel/vdso64/Makefile +1 -1
index 4a66a1cb919b..edc473b32e42 100644
@@ -19,7 +19,7 @@ KBUILD_AFLAGS_64 += -m64 -s
 KBUILD_CFLAGS_64 := $(filter-out -m64,$(KBUILD_CFLAGS))
 KBUILD_CFLAGS_64 += -m64 -fPIC -shared -fno-common -fno-builtin
 ldflags-y := -fPIC -shared -nostdlib -soname=linux-vdso64.so.1 \
-	     --hash-style=both --build-id -T
+	     --hash-style=both --build-id=sha1 -T
 
 $(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_64)
 $(targets:%=$(obj)/%.dbg): KBUILD_AFLAGS = $(KBUILD_AFLAGS_64)
arch/sparc/vdso/Makefile +1 -1
index f44355e46f31..469dd23887ab 100644
@@ -115,7 +115,7 @@ quiet_cmd_vdso = VDSO    $@
 		       -T $(filter %.lds,$^) $(filter %.o,$^) && \
 		sh $(srctree)/$(src)/checkundef.sh '$(OBJDUMP)' '$@'
 
-VDSO_LDFLAGS = -shared --hash-style=both --build-id -Bsymbolic
+VDSO_LDFLAGS = -shared --hash-style=both --build-id=sha1 -Bsymbolic
 GCOV_PROFILE := n
 
 #
arch/x86/boot/compressed/mem_encrypt.S +15 -1
index dd07e7b41b11..3092ae173f94 100644
@@ -81,6 +81,19 @@ SYM_FUNC_START(set_sev_encryption_mask)
 
 	bts	%rax, sme_me_mask(%rip)	/* Create the encryption mask */
 
+	/*
+	 * Read MSR_AMD64_SEV again and store it to sev_status. Can't do this in
+	 * get_sev_encryption_bit() because this function is 32-bit code and
+	 * shared between 64-bit and 32-bit boot path.
+	 */
+	movl	$MSR_AMD64_SEV, %ecx	/* Read the SEV MSR */
+	rdmsr
+
+	/* Store MSR value in sev_status */
+	shlq	$32, %rdx
+	orq	%rdx, %rax
+	movq	%rax, sev_status(%rip)
+
 .Lno_sev_mask:
 	movq	%rbp, %rsp		/* Restore original stack pointer */
 
@@ -96,5 +109,6 @@ SYM_FUNC_END(set_sev_encryption_mask)
 
 #ifdef CONFIG_AMD_MEM_ENCRYPT
 	.balign	8
-SYM_DATA(sme_me_mask, .quad 0)
+SYM_DATA(sme_me_mask,		.quad 0)
+SYM_DATA(sev_status,		.quad 0)
 #endif
arch/x86/entry/vdso/Makefile +1 -1
index 215376d975a2..ebba25ed9a38 100644
@@ -176,7 +176,7 @@ quiet_cmd_vdso = VDSO    $@
 		       -T $(filter %.lds,$^) $(filter %.o,$^) && \
 		 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
 
-VDSO_LDFLAGS = -shared --hash-style=both --build-id \
+VDSO_LDFLAGS = -shared --hash-style=both --build-id=sha1 \
 	$(call ld-option, --eh-frame-hdr) -Bsymbolic
 GCOV_PROFILE := n
 
arch/x86/kernel/cpu/bugs.c +33 -18

85 lines not on this page · raw message

block/genhd.c +4 -1
index 99c64641c314..c50ddbf2a229 100644
@@ -49,7 +49,7 @@ static void disk_release_events(struct gendisk *disk);
  * Set disk capacity and notify if the size is not currently
  * zero and will not be set to zero
  */
-void set_capacity_revalidate_and_notify(struct gendisk *disk, sector_t size,
+bool set_capacity_revalidate_and_notify(struct gendisk *disk, sector_t size,
 					bool revalidate)
 {
 	sector_t capacity = get_capacity(disk);
@@ -63,7 +63,10 @@ void set_capacity_revalidate_and_notify(struct gendisk *disk, sector_t size,
 		char *envp[] = { "RESIZE=1", NULL };
 
 		kobject_uevent_env(&disk_to_dev(disk)->kobj, KOBJ_CHANGE, envp);
+		return true;
 	}
+
+	return false;
 }
 
 EXPORT_SYMBOL_GPL(set_capacity_revalidate_and_notify);
drivers/accessibility/speakup/main.c +0 -1
index ddfd12afe3b9..9db09012a00e 100644
@@ -357,7 +357,6 @@ static void speakup_cut(struct vc_data *vc)
 	mark_cut_flag = 0;
 	synth_printf("%s\n", spk_msg_get(MSG_CUT));
 
-	speakup_clear_selection();
 	ret = speakup_set_selection(tty);
 
 	switch (ret) {
drivers/accessibility/speakup/selection.c +4 -7
index 032f3264fba1..7df7afad5ab4 100644
@@ -22,13 +22,6 @@ struct speakup_selection_work {
 	struct tty_struct *tty;
 };
 
-void speakup_clear_selection(void)
-{
-	console_lock();
-	clear_selection();
-	console_unlock();
-}
-
 static void __speakup_set_selection(struct work_struct *work)
 {
 	struct speakup_selection_work *ssw =
@@ -51,6 +44,10 @@ static void __speakup_set_selection(struct work_struct *work)
 		goto unref;
 	}
 
+	console_lock();
+	clear_selection();
+	console_unlock();
+
 	set_selection_kernel(&sel, tty);
 
 unref:
drivers/accessibility/speakup/speakup.h +0 -1
index 74fe49c2c511..33594f5a7983 100644
@@ -70,7 +70,6 @@ void spk_do_flush(void);
 void speakup_start_ttys(void);
 void synth_buffer_add(u16 ch);
 void synth_buffer_clear(void);
-void speakup_clear_selection(void);
 int speakup_set_selection(struct tty_struct *tty);
 void speakup_cancel_selection(void);
 int speakup_paste_selection(struct tty_struct *tty);
drivers/accessibility/speakup/spk_ttyio.c +6 -4
index a831ff64f8ba..ecc39983e946 100644
@@ -298,11 +298,13 @@ static unsigned char ttyio_in(int timeout)
 	struct spk_ldisc_data *ldisc_data = speakup_tty->disc_data;
 	char rv;
 
-	if (wait_for_completion_timeout(&ldisc_data->completion,
+	if (!timeout) {
+		if (!try_wait_for_completion(&ldisc_data->completion))
+			return 0xff;
+	} else if (wait_for_completion_timeout(&ldisc_data->completion,
 					usecs_to_jiffies(timeout)) == 0) {
-		if (timeout)
-			pr_warn("spk_ttyio: timeout (%d)  while waiting for input\n",
-				timeout);
+		pr_warn("spk_ttyio: timeout (%d)  while waiting for input\n",
+			timeout);
 		return 0xff;
 	}
 
drivers/accessibility/speakup/spk_types.h +6 -2
index 7398f1196e10..91fca3033a45 100644
@@ -32,6 +32,10 @@ enum {
 	E_NEW_DEFAULT,
 };
 
+/*
+ * Note: add new members at the end, speakupmap.h depends on the values of the
+ * enum starting from SPELL_DELAY (see inc_dec_var)
+ */
 enum var_id_t {
 	VERSION = 0, SYNTH, SILENT, SYNTH_DIRECT,
 	KEYMAP, CHARS,
@@ -42,9 +46,9 @@ enum var_id_t {
 	SAY_CONTROL, SAY_WORD_CTL, NO_INTERRUPT, KEY_ECHO,
 	SPELL_DELAY, PUNC_LEVEL, READING_PUNC,
 	ATTRIB_BLEEP, BLEEPS,
-	RATE, PITCH, INFLECTION, VOL, TONE, PUNCT, VOICE, FREQUENCY, LANG,
+	RATE, PITCH, VOL, TONE, PUNCT, VOICE, FREQUENCY, LANG,
 	DIRECT, PAUSE,
-	CAPS_START, CAPS_STOP, CHARTAB,
+	CAPS_START, CAPS_STOP, CHARTAB, INFLECTION,
 	MAXVARS
 };
 
drivers/block/loop.c +2 -1
index d3394191e168..32fa3062736c 100644
@@ -255,7 +255,8 @@ static void loop_set_size(struct loop_device *lo, loff_t size)
 
 	bd_set_size(bdev, size << SECTOR_SHIFT);
 
-	set_capacity_revalidate_and_notify(lo->lo_disk, size, false);
+	if (!set_capacity_revalidate_and_notify(lo->lo_disk, size, false))
+		kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE);
 }
 
 static inline int
drivers/block/nbd.c +6 -4
index f46e26c9d9b3..36c46fe07855 100644
@@ -296,7 +296,7 @@ static void nbd_size_clear(struct nbd_device *nbd)
 	}
 }
 
-static void nbd_size_update(struct nbd_device *nbd)
+static void nbd_size_update(struct nbd_device *nbd, bool start)
 {
 	struct nbd_config *config = nbd->config;
 	struct block_device *bdev = bdget_disk(nbd->disk, 0);
@@ -312,7 +312,8 @@ static void nbd_size_update(struct nbd_device *nbd)
 	if (bdev) {
 		if (bdev->bd_disk) {
 			bd_set_size(bdev, config->bytesize);
-			set_blocksize(bdev, config->blksize);
+			if (start)
+				set_blocksize(bdev, config->blksize);
 		} else
 			bdev->bd_invalidated = 1;
 		bdput(bdev);
@@ -327,7 +328,7 @@ static void nbd_size_set(struct nbd_device *nbd, loff_t blocksize,
 	config->blksize = blocksize;
 	config->bytesize = blocksize * nr_blocks;
 	if (nbd->task_recv != NULL)
-		nbd_size_update(nbd);
+		nbd_size_update(nbd, false);
 }
 
 static void nbd_complete_rq(struct request *req)
@@ -1307,7 +1308,7 @@ static int nbd_start_device(struct nbd_device *nbd)
 		args->index = i;
 		queue_work(nbd->recv_workq, &args->work);
 	}
-	nbd_size_update(nbd);
+	nbd_size_update(nbd, true);
 	return error;
 }
 
@@ -1516,6 +1517,7 @@ static void nbd_release(struct gendisk *disk, fmode_t mode)
 	if (test_bit(NBD_RT_DISCONNECT_ON_CLOSE, &nbd->config->runtime_flags) &&
 			bdev->bd_openers == 0)
 		nbd_disconnect_and_put(nbd);
+	bdput(bdev);
 
 	nbd_config_put(nbd);
 	nbd_put(nbd);
drivers/block/null_blk.h +1 -0
index 206309ecc7e4..7562cd6cd681 100644
@@ -44,6 +44,7 @@ struct nullb_device {
 	unsigned int nr_zones;
 	struct blk_zone *zones;
 	sector_t zone_size_sects;
+	spinlock_t zone_lock;
 	unsigned long *zone_locks;
 
 	unsigned long size; /* device size in MB */
drivers/block/null_blk_zoned.c +25 -6
index 495713d6c989..d9102327357c 100644
@@ -46,10 +46,20 @@ int null_init_zoned_dev(struct nullb_device *dev, struct request_queue *q)
 	if (!dev->zones)
 		return -ENOMEM;
 
-	dev->zone_locks = bitmap_zalloc(dev->nr_zones, GFP_KERNEL);
-	if (!dev->zone_locks) {
-		kvfree(dev->zones);
-		return -ENOMEM;
+	/*
+	 * With memory backing, the zone_lock spinlock needs to be temporarily
+	 * released to avoid scheduling in atomic context. To guarantee zone
+	 * information protection, use a bitmap to lock zones with
+	 * wait_on_bit_lock_io(). Sleeping on the lock is OK as memory backing
+	 * implies that the queue is marked with BLK_MQ_F_BLOCKING.
+	 */
+	spin_lock_init(&dev->zone_lock);
+	if (dev->memory_backed) {
+		dev->zone_locks = bitmap_zalloc(dev->nr_zones, GFP_KERNEL);
+		if (!dev->zone_locks) {
+			kvfree(dev->zones);
+			return -ENOMEM;
+		}
 	}
 
 	if (dev->zone_nr_conv >= dev->nr_zones) {
@@ -118,12 +128,16 @@ void null_free_zoned_dev(struct nullb_device *dev)
 
 static inline void null_lock_zone(struct nullb_device *dev, unsigned int zno)
 {
-	wait_on_bit_lock_io(dev->zone_locks, zno, TASK_UNINTERRUPTIBLE);
+	if (dev->memory_backed)
+		wait_on_bit_lock_io(dev->zone_locks, zno, TASK_UNINTERRUPTIBLE);
+	spin_lock_irq(&dev->zone_lock);
 }
 
 static inline void null_unlock_zone(struct nullb_device *dev, unsigned int zno)
 {
-	clear_and_wake_up_bit(zno, dev->zone_locks);
+	spin_unlock_irq(&dev->zone_lock);
+	if (dev->memory_backed)
+		clear_and_wake_up_bit(zno, dev->zone_locks);
 }
 
 int null_report_zones(struct gendisk *disk, sector_t sector,
@@ -233,7 +247,12 @@ static blk_status_t null_zone_write(struct nullb_cmd *cmd, sector_t sector,
 		if (zone->cond != BLK_ZONE_COND_EXP_OPEN)
 			zone->cond = BLK_ZONE_COND_IMP_OPEN;
 
+		if (dev->memory_backed)
+			spin_unlock_irq(&dev->zone_lock);
 		ret = null_process_cmd(cmd, REQ_OP_WRITE, sector, nr_sectors);
+		if (dev->memory_backed)
+			spin_lock_irq(&dev->zone_lock);
+
 		if (ret != BLK_STS_OK)
 			break;
 
drivers/char/tpm/eventlog/efi.c +5 -0
index 6bb023de17f1..35229e5143ca 100644
@@ -41,6 +41,11 @@ int tpm_read_log_efi(struct tpm_chip *chip)
 	log_size = log_tbl->size;
 	memunmap(log_tbl);
 
+	if (!log_size) {
+		pr_warn("UEFI TPM log area empty\n");
+		return -EIO;
+	}
+
 	log_tbl = memremap(efi.tpm_log, sizeof(*log_tbl) + log_size,
 			   MEMREMAP_WB);
 	if (!log_tbl) {
drivers/char/tpm/tpm_tis.c +27 -2
index 0b214963539d..4ed6e660273a 100644
@@ -27,6 +27,7 @@
 #include <linux/of.h>
 #include <linux/of_device.h>
 #include <linux/kernel.h>
+#include <linux/dmi.h>
 #include "tpm.h"
 #include "tpm_tis_core.h"
 
@@ -49,8 +50,8 @@ static inline struct tpm_tis_tcg_phy *to_tpm_tis_tcg_phy(struct tpm_tis_data *da
 	return container_of(data, struct tpm_tis_tcg_phy, priv);
 }
 
-static bool interrupts = true;
-module_param(interrupts, bool, 0444);
+static int interrupts = -1;
+module_param(interrupts, int, 0444);
 MODULE_PARM_DESC(interrupts, "Enable interrupts");
 
 static bool itpm;
@@ -63,6 +64,28 @@ module_param(force, bool, 0444);
 MODULE_PARM_DESC(force, "Force device probe rather than using ACPI entry");
 #endif
 
+static int tpm_tis_disable_irq(const struct dmi_system_id *d)
+{
+	if (interrupts == -1) {
+		pr_notice("tpm_tis: %s detected: disabling interrupts.\n", d->ident);
+		interrupts = 0;
+	}
+
+	return 0;
+}
+
+static const struct dmi_system_id tpm_tis_dmi_table[] = {
+	{
+		.callback = tpm_tis_disable_irq,
+		.ident = "ThinkPad T490s",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+			DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T490s"),
+		},
+	},
+	{}
+};
+
 #if defined(CONFIG_PNP) && defined(CONFIG_ACPI)
 static int has_hid(struct acpi_device *dev, const char *hid)
 {
@@ -192,6 +215,8 @@ static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info)
 	int irq = -1;
 	int rc;
 
+	dmi_check_system(tpm_tis_dmi_table);
+
 	rc = check_acpi_tpm2(dev);
 	if (rc)
 		return rc;
drivers/char/virtio_console.c +4 -4
index a2da8f768b94..1836cc56e357 100644
@@ -435,12 +435,12 @@ static struct port_buffer *alloc_buf(struct virtio_device *vdev, size_t buf_size
 		/*
 		 * Allocate DMA memory from ancestor. When a virtio
 		 * device is created by remoteproc, the DMA memory is
-		 * associated with the grandparent device:
-		 * vdev => rproc => platform-dev.
+		 * associated with the parent device:
+		 * virtioY => remoteprocX#vdevYbuffer.
 		 */
-		if (!vdev->dev.parent || !vdev->dev.parent->parent)
+		buf->dev = vdev->dev.parent;
+		if (!buf->dev)
 			goto free_buf;
-		buf->dev = vdev->dev.parent->parent;
 
 		/* Increase device refcnt to avoid freeing it */
 		get_device(buf->dev);
drivers/cpufreq/cpufreq.c +3 -1
index e97ff004ac6a..ac0d529902cc 100644
@@ -2233,7 +2233,7 @@ static int cpufreq_init_governor(struct cpufreq_policy *policy)
 		return -EINVAL;
 
 	/* Platform doesn't want dynamic frequency switching ? */
-	if (policy->governor->dynamic_switching &&
+	if (policy->governor->flags & CPUFREQ_GOV_DYNAMIC_SWITCHING &&
 	    cpufreq_driver->flags & CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING) {
 		struct cpufreq_governor *gov = cpufreq_fallback_governor();
 
@@ -2259,6 +2259,8 @@ static int cpufreq_init_governor(struct cpufreq_policy *policy)
 		}
 	}
 
+	policy->strict_target = !!(policy->governor->flags & CPUFREQ_GOV_STRICT_TARGET);
+
 	return 0;
 }
 
drivers/cpufreq/cpufreq_governor.h +1 -1
index c56773c25757..bab8e6140377 100644
@@ -156,7 +156,7 @@ void cpufreq_dbs_governor_limits(struct cpufreq_policy *policy);
 #define CPUFREQ_DBS_GOVERNOR_INITIALIZER(_name_)			\
 	{								\
 		.name = _name_,						\
-		.dynamic_switching = true,				\
+		.flags = CPUFREQ_GOV_DYNAMIC_SWITCHING,			\
 		.owner = THIS_MODULE,					\
 		.init = cpufreq_dbs_governor_init,			\
 		.exit = cpufreq_dbs_governor_exit,			\
drivers/cpufreq/cpufreq_performance.c +1 -0
index 71c1d9aba772..addd93f2a420 100644
@@ -20,6 +20,7 @@ static void cpufreq_gov_performance_limits(struct cpufreq_policy *policy)
 static struct cpufreq_governor cpufreq_gov_performance = {
 	.name		= "performance",
 	.owner		= THIS_MODULE,
+	.flags		= CPUFREQ_GOV_STRICT_TARGET,
 	.limits		= cpufreq_gov_performance_limits,
 };
 
drivers/cpufreq/cpufreq_powersave.c +1 -0
index 7749522355b5..8d830d860e91 100644
@@ -21,6 +21,7 @@ static struct cpufreq_governor cpufreq_gov_powersave = {
 	.name		= "powersave",
 	.limits		= cpufreq_gov_powersave_limits,
 	.owner		= THIS_MODULE,
+	.flags		= CPUFREQ_GOV_STRICT_TARGET,
 };
 
 MODULE_AUTHOR("Dominik Brodowski <[email protected]>");
drivers/cpufreq/intel_pstate.c +9 -7
index ef15ec4959c5..9397f5e75e7a 100644
@@ -2509,7 +2509,7 @@ static void intel_cpufreq_trace(struct cpudata *cpu, unsigned int trace_type, in
 }
 
 static void intel_cpufreq_adjust_hwp(struct cpudata *cpu, u32 target_pstate,
-				     bool fast_switch)
+				     bool strict, bool fast_switch)
 {
 	u64 prev = READ_ONCE(cpu->hwp_req_cached), value = prev;
 
@@ -2521,7 +2521,7 @@ static void intel_cpufreq_adjust_hwp(struct cpudata *cpu, u32 target_pstate,
 	 * field in it, so opportunistically update the max too if needed.
 	 */
 	value &= ~HWP_MAX_PERF(~0L);
-	value |= HWP_MAX_PERF(cpu->max_perf_ratio);
+	value |= HWP_MAX_PERF(strict ? target_pstate : cpu->max_perf_ratio);
 
 	if (value == prev)
 		return;
@@ -2544,14 +2544,16 @@ static void intel_cpufreq_adjust_perf_ctl(struct cpudata *cpu,
 			      pstate_funcs.get_val(cpu, target_pstate));
 }
 
-static int intel_cpufreq_update_pstate(struct cpudata *cpu, int target_pstate,
-				       bool fast_switch)
+static int intel_cpufreq_update_pstate(struct cpufreq_policy *policy,
+				       int target_pstate, bool fast_switch)
 {
+	struct cpudata *cpu = all_cpu_data[policy->cpu];
 	int old_pstate = cpu->pstate.current_pstate;
 
 	target_pstate = intel_pstate_prepare_request(cpu, target_pstate);
 	if (hwp_active) {
-		intel_cpufreq_adjust_hwp(cpu, target_pstate, fast_switch);
+		intel_cpufreq_adjust_hwp(cpu, target_pstate,
+					 policy->strict_target, fast_switch);
 		cpu->pstate.current_pstate = target_pstate;
 	} else if (target_pstate != old_pstate) {
 		intel_cpufreq_adjust_perf_ctl(cpu, target_pstate, fast_switch);
@@ -2591,7 +2593,7 @@ static int intel_cpufreq_target(struct cpufreq_policy *policy,
 		break;
 	}
 
-	target_pstate = intel_cpufreq_update_pstate(cpu, target_pstate, false);
+	target_pstate = intel_cpufreq_update_pstate(policy, target_pstate, false);
 
 	freqs.new = target_pstate * cpu->pstate.scaling;
 
@@ -2610,7 +2612,7 @@ static unsigned int intel_cpufreq_fast_switch(struct cpufreq_policy *policy,
 
 	target_pstate = DIV_ROUND_UP(target_freq, cpu->pstate.scaling);
 
-	target_pstate = intel_cpufreq_update_pstate(cpu, target_pstate, true);
+	target_pstate = intel_cpufreq_update_pstate(policy, target_pstate, true);
 
 	return target_pstate * cpu->pstate.scaling;
 }
drivers/crypto/chelsio/chcr_ktls.c +19 -8
index c5cce024886a..dc5e22bc64b3 100644
@@ -659,7 +659,8 @@ int chcr_ktls_cpl_set_tcb_rpl(struct adapter *adap, unsigned char *input)
 }
 
 static void *__chcr_write_cpl_set_tcb_ulp(struct chcr_ktls_info *tx_info,
-					u32 tid, void *pos, u16 word, u64 mask,
+					u32 tid, void *pos, u16 word,
+					struct sge_eth_txq *q, u64 mask,
 					u64 val, u32 reply)
 {
 	struct cpl_set_tcb_field_core *cpl;
@@ -668,7 +669,10 @@ static void *__chcr_write_cpl_set_tcb_ulp(struct chcr_ktls_info *tx_info,
 
 	/* ULP_TXPKT */
 	txpkt = pos;
-	txpkt->cmd_dest = htonl(ULPTX_CMD_V(ULP_TX_PKT) | ULP_TXPKT_DEST_V(0));
+	txpkt->cmd_dest = htonl(ULPTX_CMD_V(ULP_TX_PKT) |
+				ULP_TXPKT_CHANNELID_V(tx_info->port_id) |
+				ULP_TXPKT_FID_V(q->q.cntxt_id) |
+				ULP_TXPKT_RO_F);
 	txpkt->len = htonl(DIV_ROUND_UP(CHCR_SET_TCB_FIELD_LEN, 16));
 
 	/* ULPTX_IDATA sub-command */
@@ -723,7 +727,7 @@ static void *chcr_write_cpl_set_tcb_ulp(struct chcr_ktls_info *tx_info,
 		} else {
 			u8 buf[48] = {0};
 
-			__chcr_write_cpl_set_tcb_ulp(tx_info, tid, buf, word,
+			__chcr_write_cpl_set_tcb_ulp(tx_info, tid, buf, word, q,
 						     mask, val, reply);
 
 			return chcr_copy_to_txd(buf, &q->q, pos,
@@ -731,7 +735,7 @@ static void *chcr_write_cpl_set_tcb_ulp(struct chcr_ktls_info *tx_info,
 		}
 	}
 
-	pos = __chcr_write_cpl_set_tcb_ulp(tx_info, tid, pos, word,
+	pos = __chcr_write_cpl_set_tcb_ulp(tx_info, tid, pos, word, q,
 					   mask, val, reply);
 
 	/* check again if we are at the end of the queue */
@@ -926,6 +930,7 @@ chcr_ktls_write_tcp_options(struct chcr_ktls_info *tx_info, struct sk_buff *skb,
 	struct iphdr *ip;
 	int credits;
 	u8 buf[150];
+	u64 cntrl1;
 	void *pos;
 
 	iplen = skb_network_header_len(skb);
@@ -964,22 +969,28 @@ chcr_ktls_write_tcp_options(struct chcr_ktls_info *tx_info, struct sk_buff *skb,
 			   TXPKT_PF_V(tx_info->adap->pf));
 	cpl->pack = 0;
 	cpl->len = htons(pktlen);
-	/* checksum offload */
-	cpl->ctrl1 = 0;
-
-	pos = cpl + 1;
 
 	memcpy(buf, skb->data, pktlen);
 	if (tx_info->ip_family == AF_INET) {
 		/* we need to correct ip header len */
 		ip = (struct iphdr *)(buf + maclen);
 		ip->tot_len = htons(pktlen - maclen);
+		cntrl1 = TXPKT_CSUM_TYPE_V(TX_CSUM_TCPIP);
 #if IS_ENABLED(CONFIG_IPV6)
 	} else {
 		ip6 = (struct ipv6hdr *)(buf + maclen);
 		ip6->payload_len = htons(pktlen - maclen - iplen);
+		cntrl1 = TXPKT_CSUM_TYPE_V(TX_CSUM_TCPIP6);
 #endif
 	}
+
+	cntrl1 |= T6_TXPKT_ETHHDR_LEN_V(maclen - ETH_HLEN) |
+		  TXPKT_IPHDR_LEN_V(iplen);
+	/* checksum offload */
+	cpl->ctrl1 = cpu_to_be64(cntrl1);
+
+	pos = cpl + 1;
+
 	/* now take care of the tcp header, if fin is not set then clear push
 	 * bit as well, and if fin is set, it will be sent at the last so we
 	 * need to update the tcp sequence number as per the last packet.
drivers/firmware/xilinx/zynqmp.c +3 -0
index 8d1ff2454e2e..efb8a66efc68 100644
@@ -147,6 +147,9 @@ static int zynqmp_pm_feature(u32 api_id)
 		return 0;
 
 	/* Return value if feature is already checked */
+	if (api_id > ARRAY_SIZE(zynqmp_pm_features))
+		return PM_FEATURE_INVALID;
+
 	if (zynqmp_pm_features[api_id] != PM_FEATURE_UNCHECKED)
 		return zynqmp_pm_features[api_id];
 
drivers/gpio/gpio-aspeed.c +1 -0
index e44d5de2a120..b966f5e28ebf 100644
@@ -1114,6 +1114,7 @@ static const struct aspeed_gpio_config ast2500_config =
 
 static const struct aspeed_bank_props ast2600_bank_props[] = {
 	/*     input	  output   */
+	{4, 0xffffffff,  0x00ffffff}, /* Q/R/S/T */
 	{5, 0xffffffff,  0xffffff00}, /* U/V/W/X */
 	{6, 0x0000ffff,  0x0000ffff}, /* Y/Z */
 	{ },
drivers/gpio/gpio-pcie-idio-24.c +56 -6

117 lines not on this page · raw message

drivers/gpio/gpio-sifive.c +1 -1
index c54dd08f2cbf..d5eb9ca11901 100644
@@ -183,7 +183,7 @@ static int sifive_gpio_probe(struct platform_device *pdev)
 		return PTR_ERR(chip->regs);
 
 	ngpio = of_irq_count(node);
-	if (ngpio >= SIFIVE_GPIO_MAX) {
+	if (ngpio > SIFIVE_GPIO_MAX) {
 		dev_err(dev, "Too many GPIO interrupts (max=%d)\n",
 			SIFIVE_GPIO_MAX);
 		return -ENXIO;
drivers/gpu/drm/amd/amdgpu/cik_sdma.c +12 -15
index 20f108818b2b..a3c3fe96515f 100644
@@ -1071,22 +1071,19 @@ static int cik_sdma_soft_reset(void *handle)
 {
 	u32 srbm_soft_reset = 0;
 	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-	u32 tmp = RREG32(mmSRBM_STATUS2);
+	u32 tmp;
 
-	if (tmp & SRBM_STATUS2__SDMA_BUSY_MASK) {
-		/* sdma0 */
-		tmp = RREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET);
-		tmp |= SDMA0_F32_CNTL__HALT_MASK;
-		WREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET, tmp);
-		srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA_MASK;
-	}
-	if (tmp & SRBM_STATUS2__SDMA1_BUSY_MASK) {
-		/* sdma1 */
-		tmp = RREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET);
-		tmp |= SDMA0_F32_CNTL__HALT_MASK;
-		WREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET, tmp);
-		srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA1_MASK;
-	}
+	/* sdma0 */
+	tmp = RREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET);
+	tmp |= SDMA0_F32_CNTL__HALT_MASK;
+	WREG32(mmSDMA0_F32_CNTL + SDMA0_REGISTER_OFFSET, tmp);
+	srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA_MASK;
+
+	/* sdma1 */
+	tmp = RREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET);
+	tmp |= SDMA0_F32_CNTL__HALT_MASK;
+	WREG32(mmSDMA0_F32_CNTL + SDMA1_REGISTER_OFFSET, tmp);
+	srbm_soft_reset |= SRBM_SOFT_RESET__SOFT_RESET_SDMA1_MASK;
 
 	if (srbm_soft_reset) {
 		tmp = RREG32(mmSRBM_SOFT_RESET);
drivers/gpu/drm/amd/amdgpu/soc15.c +1 -2
index c28ebf41530a..254ab2ada70a 100644
@@ -1220,8 +1220,7 @@ static int soc15_common_early_init(void *handle)
 
 			adev->pg_flags = AMD_PG_SUPPORT_SDMA |
 				AMD_PG_SUPPORT_MMHUB |
-				AMD_PG_SUPPORT_VCN |
-				AMD_PG_SUPPORT_VCN_DPG;
+				AMD_PG_SUPPORT_VCN;
 		} else {
 			adev->cg_flags = AMD_CG_SUPPORT_GFX_MGCG |
 				AMD_CG_SUPPORT_GFX_MGLS |
drivers/gpu/drm/amd/display/dc/irq/dcn30/irq_service_dcn30.c +2 -2
index 49689f71f4f1..0effbb2bd74a 100644
@@ -306,8 +306,8 @@ irq_source_info_dcn30[DAL_IRQ_SOURCES_NUMBER] = {
 	pflip_int_entry(1),
 	pflip_int_entry(2),
 	pflip_int_entry(3),
-	[DC_IRQ_SOURCE_PFLIP5] = dummy_irq_entry(),
-	[DC_IRQ_SOURCE_PFLIP6] = dummy_irq_entry(),
+	pflip_int_entry(4),
+	pflip_int_entry(5),
 	[DC_IRQ_SOURCE_PFLIP_UNDERLAY0] = dummy_irq_entry(),
 	gpio_pad_int_entry(0),
 	gpio_pad_int_entry(1),
drivers/gpu/drm/amd/powerplay/hwmgr/ci_baco.c +4 -3
index 3be40114e63d..45f608838f6e 100644
@@ -142,12 +142,12 @@ static const struct baco_cmd_entry exit_baco_tbl[] =
 	{ CMD_READMODIFYWRITE, mmBACO_CNTL, BACO_CNTL__BACO_BCLK_OFF_MASK,           BACO_CNTL__BACO_BCLK_OFF__SHIFT, 0, 0x00 },
 	{ CMD_READMODIFYWRITE, mmBACO_CNTL, BACO_CNTL__BACO_POWER_OFF_MASK,          BACO_CNTL__BACO_POWER_OFF__SHIFT, 0, 0x00 },
 	{ CMD_DELAY_MS, 0, 0, 0, 20, 0 },
-	{ CMD_WAITFOR, mmBACO_CNTL, BACO_CNTL__PWRGOOD_BF_MASK, 0, 0xffffffff, 0x20 },
+	{ CMD_WAITFOR, mmBACO_CNTL, BACO_CNTL__PWRGOOD_BF_MASK, 0, 0xffffffff, 0x200 },
 	{ CMD_READMODIFYWRITE, mmBACO_CNTL, BACO_CNTL__BACO_ISO_DIS_MASK, BACO_CNTL__BACO_ISO_DIS__SHIFT, 0, 0x01 },
-	{ CMD_WAITFOR, mmBACO_CNTL, BACO_CNTL__PWRGOOD_MASK, 0, 5, 0x1c },
+	{ CMD_WAITFOR, mmBACO_CNTL, BACO_CNTL__PWRGOOD_MASK, 0, 5, 0x1c00 },
 	{ CMD_READMODIFYWRITE, mmBACO_CNTL, BACO_CNTL__BACO_ANA_ISO_DIS_MASK, BACO_CNTL__BACO_ANA_ISO_DIS__SHIFT, 0, 0x01 },
 	{ CMD_READMODIFYWRITE, mmBACO_CNTL, BACO_CNTL__BACO_RESET_EN_MASK, BACO_CNTL__BACO_RESET_EN__SHIFT, 0, 0x00 },
-	{ CMD_WAITFOR, mmBACO_CNTL, BACO_CNTL__RCU_BIF_CONFIG_DONE_MASK, 0, 5, 0x10 },
+	{ CMD_WAITFOR, mmBACO_CNTL, BACO_CNTL__RCU_BIF_CONFIG_DONE_MASK, 0, 5, 0x100 },
 	{ CMD_READMODIFYWRITE, mmBACO_CNTL, BACO_CNTL__BACO_EN_MASK, BACO_CNTL__BACO_EN__SHIFT, 0, 0x00 },
 	{ CMD_WAITFOR, mmBACO_CNTL, BACO_CNTL__BACO_MODE_MASK, 0, 0xffffffff, 0x00 }
 };
@@ -155,6 +155,7 @@ static const struct baco_cmd_entry exit_baco_tbl[] =
 static const struct baco_cmd_entry clean_baco_tbl[] =
 {
 	{ CMD_WRITE, mmBIOS_SCRATCH_6, 0, 0, 0, 0 },
+	{ CMD_WRITE, mmBIOS_SCRATCH_7, 0, 0, 0, 0 },
 	{ CMD_WRITE, mmCP_PFP_UCODE_ADDR, 0, 0, 0, 0 }
 };
 
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +4 -0
index fc63d9e32e1f..c8ee931075e5 100644
@@ -1541,6 +1541,10 @@ static int smu7_disable_dpm_tasks(struct pp_hwmgr *hwmgr)
 	PP_ASSERT_WITH_CODE((tmp_result == 0),
 			"Failed to reset to default!", result = tmp_result);
 
+	tmp_result = smum_stop_smc(hwmgr);
+	PP_ASSERT_WITH_CODE((tmp_result == 0),
+			"Failed to stop smc!", result = tmp_result);
+
 	tmp_result = smu7_force_switch_to_arbf0(hwmgr);
 	PP_ASSERT_WITH_CODE((tmp_result == 0),
 			"Failed to force to switch arbf0!", result = tmp_result);
drivers/gpu/drm/amd/powerplay/inc/hwmgr.h +1 -0
index 15ed6cbdf366..91cdc53472f0 100644
@@ -229,6 +229,7 @@ struct pp_smumgr_func {
 	bool (*is_hw_avfs_present)(struct pp_hwmgr  *hwmgr);
 	int (*update_dpm_settings)(struct pp_hwmgr *hwmgr, void *profile_setting);
 	int (*smc_table_manager)(struct pp_hwmgr *hwmgr, uint8_t *table, uint16_t table_id, bool rw); /*rw: true for read, false for write */
+	int (*stop_smc)(struct pp_hwmgr *hwmgr);
 };
 
 struct pp_hwmgr_func {
drivers/gpu/drm/amd/powerplay/inc/smumgr.h +2 -0
index ad100b533d04..5f46f1a4f38e 100644
@@ -113,4 +113,6 @@ extern int smum_update_dpm_settings(struct pp_hwmgr *hwmgr, void *profile_settin
 
 extern int smum_smc_table_manager(struct pp_hwmgr *hwmgr, uint8_t *table, uint16_t table_id, bool rw);
 
+extern int smum_stop_smc(struct pp_hwmgr *hwmgr);
+
 #endif
drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c +25 -4
index e4d1f3d66ef4..329bf4d44bbc 100644
@@ -2726,10 +2726,7 @@ static int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
 
 static bool ci_is_dpm_running(struct pp_hwmgr *hwmgr)
 {
-	return (1 == PHM_READ_INDIRECT_FIELD(hwmgr->device,
-					     CGS_IND_REG__SMC, FEATURE_STATUS,
-					     VOLTAGE_CONTROLLER_ON))
-		? true : false;
+	return ci_is_smc_ram_running(hwmgr);
 }
 
 static int ci_smu_init(struct pp_hwmgr *hwmgr)
@@ -2939,6 +2936,29 @@ static int ci_update_smc_table(struct pp_hwmgr *hwmgr, uint32_t type)
 	return 0;
 }
 
+static void ci_reset_smc(struct pp_hwmgr *hwmgr)
+{
+	PHM_WRITE_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC,
+				  SMC_SYSCON_RESET_CNTL,
+				  rst_reg, 1);
+}
+
+
+static void ci_stop_smc_clock(struct pp_hwmgr *hwmgr)
+{
+	PHM_WRITE_INDIRECT_FIELD(hwmgr->device, CGS_IND_REG__SMC,
+				  SMC_SYSCON_CLOCK_CNTL_0,
+				  ck_disable, 1);
+}
+
+static int ci_stop_smc(struct pp_hwmgr *hwmgr)
+{
+	ci_reset_smc(hwmgr);
+	ci_stop_smc_clock(hwmgr);
+
+	return 0;
+}
+
 const struct pp_smumgr_func ci_smu_funcs = {
 	.name = "ci_smu",
 	.smu_init = ci_smu_init,
@@ -2964,4 +2984,5 @@ const struct pp_smumgr_func ci_smu_funcs = {
 	.is_dpm_running = ci_is_dpm_running,
 	.update_dpm_settings = ci_update_dpm_settings,
 	.update_smc_table = ci_update_smc_table,
+	.stop_smc = ci_stop_smc,
 };
drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c +8 -0
index b6fb48066841..b6921db3c130 100644
@@ -245,3 +245,11 @@ int smum_smc_table_manager(struct pp_hwmgr *hwmgr, uint8_t *table, uint16_t tabl
 
 	return -EINVAL;
 }
+
+int smum_stop_smc(struct pp_hwmgr *hwmgr)
+{
+	if (hwmgr->smumgr_funcs->stop_smc)
+		return hwmgr->smumgr_funcs->stop_smc(hwmgr);
+
+	return 0;
+}
drivers/gpu/drm/gma500/psb_irq.c +12 -22
index 15eb3770d817..361e3a0c5ab6 100644
@@ -347,6 +347,7 @@ int psb_irq_postinstall(struct drm_device *dev)
 {
 	struct drm_psb_private *dev_priv = dev->dev_private;
 	unsigned long irqflags;
+	unsigned int i;
 
 	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
 
@@ -359,20 +360,12 @@ int psb_irq_postinstall(struct drm_device *dev)
 	PSB_WVDC32(dev_priv->vdc_irq_mask, PSB_INT_ENABLE_R);
 	PSB_WVDC32(0xFFFFFFFF, PSB_HWSTAM);
 
-	if (dev->vblank[0].enabled)
-		psb_enable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[1].enabled)
-		psb_enable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[2].enabled)
-		psb_enable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
-	else
-		psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
+	for (i = 0; i < dev->num_crtcs; ++i) {
+		if (dev->vblank[i].enabled)
+			psb_enable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+		else
+			psb_disable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+	}
 
 	if (dev_priv->ops->hotplug_enable)
 		dev_priv->ops->hotplug_enable(dev, true);
@@ -385,6 +378,7 @@ void psb_irq_uninstall(struct drm_device *dev)
 {
 	struct drm_psb_private *dev_priv = dev->dev_private;
 	unsigned long irqflags;
+	unsigned int i;
 
 	spin_lock_irqsave(&dev_priv->irqmask_lock, irqflags);
 
@@ -393,14 +387,10 @@ void psb_irq_uninstall(struct drm_device *dev)
 
 	PSB_WVDC32(0xFFFFFFFF, PSB_HWSTAM);
 
-	if (dev->vblank[0].enabled)
-		psb_disable_pipestat(dev_priv, 0, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[1].enabled)
-		psb_disable_pipestat(dev_priv, 1, PIPE_VBLANK_INTERRUPT_ENABLE);
-
-	if (dev->vblank[2].enabled)
-		psb_disable_pipestat(dev_priv, 2, PIPE_VBLANK_INTERRUPT_ENABLE);
+	for (i = 0; i < dev->num_crtcs; ++i) {
+		if (dev->vblank[i].enabled)
+			psb_disable_pipestat(dev_priv, i, PIPE_VBLANK_INTERRUPT_ENABLE);
+	}
 
 	dev_priv->vdc_irq_mask &= _PSB_IRQ_SGX_FLAG |
 				  _PSB_IRQ_MSVDX_FLAG |
drivers/gpu/drm/i915/gem/i915_gem_domain.c +13 -15
index 7f76fc68f498..ba8758011e29 100644
@@ -484,21 +484,6 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
 	if (!obj)
 		return -ENOENT;
 
-	/*
-	 * Already in the desired write domain? Nothing for us to do!
-	 *
-	 * We apply a little bit of cunning here to catch a broader set of
-	 * no-ops. If obj->write_domain is set, we must be in the same
-	 * obj->read_domains, and only that domain. Therefore, if that
-	 * obj->write_domain matches the request read_domains, we are
-	 * already in the same read/write domain and can skip the operation,
-	 * without having to further check the requested write_domain.
-	 */
-	if (READ_ONCE(obj->write_domain) == read_domains) {
-		err = 0;
-		goto out;
-	}
-
 	/*
 	 * Try to flush the object off the GPU without holding the lock.
 	 * We will repeat the flush holding the lock in the normal manner
@@ -536,6 +521,19 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
 	if (err)
 		goto out;
 
+	/*
+	 * Already in the desired write domain? Nothing for us to do!
+	 *
+	 * We apply a little bit of cunning here to catch a broader set of
+	 * no-ops. If obj->write_domain is set, we must be in the same
+	 * obj->read_domains, and only that domain. Therefore, if that
+	 * obj->write_domain matches the request read_domains, we are
+	 * already in the same read/write domain and can skip the operation,
+	 * without having to further check the requested write_domain.
+	 */
+	if (READ_ONCE(obj->write_domain) == read_domains)
+		goto out_unpin;
+
 	err = i915_gem_object_lock_interruptible(obj);
 	if (err)
 		goto out_unpin;
drivers/gpu/drm/i915/gt/intel_engine_cs.c +2 -1
index 26087dd79782..3b841eddce25 100644
@@ -370,7 +370,8 @@ static void __setup_engine_capabilities(struct intel_engine_cs *engine)
 		 * instances.
 		 */
 		if ((INTEL_GEN(i915) >= 11 &&
-		     engine->gt->info.vdbox_sfc_access & engine->mask) ||
+		     (engine->gt->info.vdbox_sfc_access &
+		      BIT(engine->instance))) ||
 		    (INTEL_GEN(i915) >= 9 && engine->instance == 0))
 			engine->uabi_capabilities |=
 				I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC;
drivers/gpu/drm/i915/i915_vma.c +4 -2
index bc64f773dcdb..034d0a8d24c8 100644
@@ -315,8 +315,10 @@ static void __vma_release(struct dma_fence_work *work)
 {
 	struct i915_vma_work *vw = container_of(work, typeof(*vw), base);
 
-	if (vw->pinned)
+	if (vw->pinned) {
 		__i915_gem_object_unpin_pages(vw->pinned);
+		i915_gem_object_put(vw->pinned);
+	}
 }
 
 static const struct dma_fence_work_ops bind_ops = {
@@ -430,7 +432,7 @@ int i915_vma_bind(struct i915_vma *vma,
 
 		if (vma->obj) {
 			__i915_gem_object_pin_pages(vma->obj);
-			work->pinned = vma->obj;
+			work->pinned = i915_gem_object_get(vma->obj);
 		}
 	} else {
 		ret = vma->ops->bind_vma(vma->vm, vma, cache_level, bind_flags);
drivers/gpu/drm/panfrost/panfrost_device.c +25 -15
index b172087eee6a..36b5c8fea3eb 100644
@@ -214,58 +214,67 @@ int panfrost_device_init(struct panfrost_device *pfdev)
 		return err;
 	}
 
+	err = panfrost_devfreq_init(pfdev);
+	if (err) {
+		if (err != -EPROBE_DEFER)
+			dev_err(pfdev->dev, "devfreq init failed %d\n", err);
+		goto out_clk;
+	}
+
 	err = panfrost_regulator_init(pfdev);
 	if (err)
-		goto err_out0;
+		goto out_devfreq;
 
 	err = panfrost_reset_init(pfdev);
 	if (err) {
 		dev_err(pfdev->dev, "reset init failed %d\n", err);
-		goto err_out1;
+		goto out_regulator;
 	}
 
 	err = panfrost_pm_domain_init(pfdev);
 	if (err)
-		goto err_out2;
+		goto out_reset;
 
 	res = platform_get_resource(pfdev->pdev, IORESOURCE_MEM, 0);
 	pfdev->iomem = devm_ioremap_resource(pfdev->dev, res);
 	if (IS_ERR(pfdev->iomem)) {
 		dev_err(pfdev->dev, "failed to ioremap iomem\n");
 		err = PTR_ERR(pfdev->iomem);
-		goto err_out3;
+		goto out_pm_domain;
 	}
 
 	err = panfrost_gpu_init(pfdev);
 	if (err)
-		goto err_out3;
+		goto out_pm_domain;
 
 	err = panfrost_mmu_init(pfdev);
 	if (err)
-		goto err_out4;
+		goto out_gpu;
 
 	err = panfrost_job_init(pfdev);
 	if (err)
-		goto err_out5;
+		goto out_mmu;
 
 	err = panfrost_perfcnt_init(pfdev);
 	if (err)
-		goto err_out6;
+		goto out_job;
 
 	return 0;
-err_out6:
+out_job:
 	panfrost_job_fini(pfdev);
-err_out5:
+out_mmu:
 	panfrost_mmu_fini(pfdev);
-err_out4:
+out_gpu:
 	panfrost_gpu_fini(pfdev);
-err_out3:
+out_pm_domain:
 	panfrost_pm_domain_fini(pfdev);
-err_out2:
+out_reset:
 	panfrost_reset_fini(pfdev);
-err_out1:
+out_regulator:
 	panfrost_regulator_fini(pfdev);
-err_out0:
+out_devfreq:
+	panfrost_devfreq_fini(pfdev);
+out_clk:
 	panfrost_clk_fini(pfdev);
 	return err;
 }
@@ -278,6 +287,7 @@ void panfrost_device_fini(struct panfrost_device *pfdev)
 	panfrost_gpu_fini(pfdev);
 	panfrost_pm_domain_fini(pfdev);
 	panfrost_reset_fini(pfdev);
+	panfrost_devfreq_fini(pfdev);
 	panfrost_regulator_fini(pfdev);
 	panfrost_clk_fini(pfdev);
 }
drivers/gpu/drm/panfrost/panfrost_drv.c +5 -15
index f6d5d03201fa..5d95917f923a 100644
@@ -14,7 +14,6 @@
 #include <drm/drm_utils.h>
 
 #include "panfrost_device.h"
-#include "panfrost_devfreq.h"
 #include "panfrost_gem.h"
 #include "panfrost_mmu.h"
 #include "panfrost_job.h"
@@ -606,13 +605,6 @@ static int panfrost_probe(struct platform_device *pdev)
 		goto err_out0;
 	}
 
-	err = panfrost_devfreq_init(pfdev);
-	if (err) {
-		if (err != -EPROBE_DEFER)
-			dev_err(&pdev->dev, "Fatal error during devfreq init\n");
-		goto err_out1;
-	}
-
 	pm_runtime_set_active(pfdev->dev);
 	pm_runtime_mark_last_busy(pfdev->dev);
 	pm_runtime_enable(pfdev->dev);
@@ -625,17 +617,16 @@ static int panfrost_probe(struct platform_device *pdev)
 	 */
 	err = drm_dev_register(ddev, 0);
 	if (err < 0)
-		goto err_out2;
+		goto err_out1;
 
 	panfrost_gem_shrinker_init(ddev);
 
 	return 0;
 
-err_out2:
-	pm_runtime_disable(pfdev->dev);
-	panfrost_devfreq_fini(pfdev);
 err_out1:
+	pm_runtime_disable(pfdev->dev);
 	panfrost_device_fini(pfdev);
+	pm_runtime_set_suspended(pfdev->dev);
 err_out0:
 	drm_dev_put(ddev);
 	return err;
@@ -650,10 +641,9 @@ static int panfrost_remove(struct platform_device *pdev)
 	panfrost_gem_shrinker_cleanup(ddev);
 
 	pm_runtime_get_sync(pfdev->dev);
-	panfrost_devfreq_fini(pfdev);
-	panfrost_device_fini(pfdev);
-	pm_runtime_put_sync_suspend(pfdev->dev);
 	pm_runtime_disable(pfdev->dev);
+	panfrost_device_fini(pfdev);
+	pm_runtime_set_suspended(pfdev->dev);
 
 	drm_dev_put(ddev);
 	return 0;
drivers/gpu/drm/vc4/vc4_bo.c +3 -2
index 74ceebd62fbc..073b528f3333 100644
@@ -1005,6 +1005,7 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data,
 	return 0;
 }
 
+static void vc4_bo_cache_destroy(struct drm_device *dev, void *unused);
 int vc4_bo_cache_init(struct drm_device *dev)
 {
 	struct vc4_dev *vc4 = to_vc4_dev(dev);
@@ -1033,10 +1034,10 @@ int vc4_bo_cache_init(struct drm_device *dev)
 	INIT_WORK(&vc4->bo_cache.time_work, vc4_bo_cache_time_work);
 	timer_setup(&vc4->bo_cache.time_timer, vc4_bo_cache_time_timer, 0);
 
-	return 0;
+	return drmm_add_action_or_reset(dev, vc4_bo_cache_destroy, NULL);
 }
 
-void vc4_bo_cache_destroy(struct drm_device *dev)
+static void vc4_bo_cache_destroy(struct drm_device *dev, void *unused)
 {
 	struct vc4_dev *vc4 = to_vc4_dev(dev);
 	int i;
drivers/gpu/drm/vc4/vc4_drv.c +0 -1
index f6995e7f6eb6..c7aeaba3fabe 100644
@@ -311,7 +311,6 @@ static int vc4_drm_bind(struct device *dev)
 gem_destroy:
 	vc4_gem_destroy(drm);
 	drm_mode_config_cleanup(drm);
-	vc4_bo_cache_destroy(drm);
 dev_put:
 	drm_dev_put(drm);
 	return ret;
drivers/gpu/drm/vc4/vc4_drv.h +1 -1
index fa19160c801f..528c28895a8e 100644
@@ -14,6 +14,7 @@
 #include <drm/drm_device.h>
 #include <drm/drm_encoder.h>
 #include <drm/drm_gem_cma_helper.h>
+#include <drm/drm_managed.h>
 #include <drm/drm_mm.h>
 #include <drm/drm_modeset_lock.h>
 
@@ -786,7 +787,6 @@ struct drm_gem_object *vc4_prime_import_sg_table(struct drm_device *dev,
 						 struct sg_table *sgt);
 void *vc4_prime_vmap(struct drm_gem_object *obj);
 int vc4_bo_cache_init(struct drm_device *dev);
-void vc4_bo_cache_destroy(struct drm_device *dev);
 int vc4_bo_inc_usecnt(struct vc4_bo *bo);
 void vc4_bo_dec_usecnt(struct vc4_bo *bo);
 void vc4_bo_add_to_purgeable_pool(struct vc4_bo *bo);
drivers/hv/hv_balloon.c +1 -1
index 32e3bc0aa665..0f50295d0214 100644
@@ -1275,7 +1275,7 @@ static void balloon_up(struct work_struct *dummy)
 
 	/* Refuse to balloon below the floor. */
 	if (avail_pages < num_pages || avail_pages - num_pages < floor) {
-		pr_warn("Balloon request will be partially fulfilled. %s\n",
+		pr_info("Balloon request will be partially fulfilled. %s\n",
 			avail_pages < num_pages ? "Not enough memory." :
 			"Balloon floor reached.");
 
drivers/hwmon/amd_energy.c +1 -1
index 29603742c858..0dee535e6c85 100644
@@ -209,7 +209,7 @@ static umode_t amd_energy_is_visible(const void *_data,
 				     enum hwmon_sensor_types type,
 				     u32 attr, int channel)
 {
-	return 0444;
+	return 0440;
 }
 
 static int energy_accumulator(void *p)
drivers/hwmon/applesmc.c +82 -48

202 lines not on this page · raw message

drivers/hwtracing/coresight/coresight-etm-perf.c +1 -3
index be591b557df9..9a8d03e62a75 100644
@@ -210,7 +210,7 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
 	u32 id;
 	int cpu = event->cpu;
 	cpumask_t *mask;
-	struct coresight_device *sink;
+	struct coresight_device *sink = NULL;
 	struct etm_event_data *event_data = NULL;
 
 	event_data = alloc_event_data(cpu);
@@ -222,8 +222,6 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
 	if (event->attr.config2) {
 		id = (u32)event->attr.config2;
 		sink = coresight_get_sink_by_id(id);
-	} else {
-		sink = coresight_get_enabled_sink(true);
 	}
 
 	mask = &event_data->mask;
drivers/i2c/busses/i2c-designware-slave.c +19 -33

86 lines not on this page · raw message

drivers/i2c/busses/i2c-mt65xx.c +4 -4
index 0cbdfbe605b5..33de99b7bc20 100644
@@ -475,6 +475,10 @@ static void mtk_i2c_init_hw(struct mtk_i2c *i2c)
 {
 	u16 control_reg;
 
+	writel(I2C_DMA_HARD_RST, i2c->pdmabase + OFFSET_RST);
+	udelay(50);
+	writel(I2C_DMA_CLR_FLAG, i2c->pdmabase + OFFSET_RST);
+
 	mtk_i2c_writew(i2c, I2C_SOFT_RST, OFFSET_SOFTRESET);
 
 	/* Set ioconfig */
@@ -529,10 +533,6 @@ static void mtk_i2c_init_hw(struct mtk_i2c *i2c)
 
 	mtk_i2c_writew(i2c, control_reg, OFFSET_CONTROL);
 	mtk_i2c_writew(i2c, I2C_DELAY_LEN, OFFSET_DELAY_LEN);
-
-	writel(I2C_DMA_HARD_RST, i2c->pdmabase + OFFSET_RST);
-	udelay(50);
-	writel(I2C_DMA_CLR_FLAG, i2c->pdmabase + OFFSET_RST);
 }
 
 static const struct i2c_spec_values *mtk_i2c_get_spec(unsigned int speed)
drivers/i2c/busses/i2c-sh_mobile.c +66 -20

142 lines not on this page · raw message

drivers/infiniband/ulp/srpt/ib_srpt.c +8 -5
index 0065eb17ae36..1b096305de1a 100644
@@ -622,10 +622,11 @@ static int srpt_refresh_port(struct srpt_port *sport)
 /**
  * srpt_unregister_mad_agent - unregister MAD callback functions
  * @sdev: SRPT HCA pointer.
+ * #port_cnt: number of ports with registered MAD
  *
  * Note: It is safe to call this function more than once for the same device.
  */
-static void srpt_unregister_mad_agent(struct srpt_device *sdev)
+static void srpt_unregister_mad_agent(struct srpt_device *sdev, int port_cnt)
 {
 	struct ib_port_modify port_modify = {
 		.clr_port_cap_mask = IB_PORT_DEVICE_MGMT_SUP,
@@ -633,7 +634,7 @@ static void srpt_unregister_mad_agent(struct srpt_device *sdev)
 	struct srpt_port *sport;
 	int i;
 
-	for (i = 1; i <= sdev->device->phys_port_cnt; i++) {
+	for (i = 1; i <= port_cnt; i++) {
 		sport = &sdev->port[i - 1];
 		WARN_ON(sport->port != i);
 		if (sport->mad_agent) {
@@ -3185,7 +3186,8 @@ static int srpt_add_one(struct ib_device *device)
 		if (ret) {
 			pr_err("MAD registration failed for %s-%d.\n",
 			       dev_name(&sdev->device->dev), i);
-			goto err_event;
+			i--;
+			goto err_port;
 		}
 	}
 
@@ -3197,7 +3199,8 @@ static int srpt_add_one(struct ib_device *device)
 	pr_debug("added %s.\n", dev_name(&device->dev));
 	return 0;
 
-err_event:
+err_port:
+	srpt_unregister_mad_agent(sdev, i);
 	ib_unregister_event_handler(&sdev->event_handler);
 err_cm:
 	if (sdev->cm_id)
@@ -3221,7 +3224,7 @@ static void srpt_remove_one(struct ib_device *device, void *client_data)
 	struct srpt_device *sdev = client_data;
 	int i;
 
-	srpt_unregister_mad_agent(sdev);
+	srpt_unregister_mad_agent(sdev, sdev->device->phys_port_cnt);
 
 	ib_unregister_event_handler(&sdev->event_handler);
 
drivers/iommu/amd/amd_iommu_types.h +5 -1
index 30a5d412255a..427484c45589 100644
@@ -406,7 +406,11 @@ extern bool amd_iommu_np_cache;
 /* Only true if all IOMMUs support device IOTLBs */
 extern bool amd_iommu_iotlb_sup;
 
-#define MAX_IRQS_PER_TABLE	256
+/*
+ * AMD IOMMU hardware only support 512 IRTEs despite
+ * the architectural limitation of 2048 entries.
+ */
+#define MAX_IRQS_PER_TABLE	512
 #define IRQ_TABLE_ALIGNMENT	128
 
 struct irq_remap_table {
drivers/iommu/intel/svm.c +7 -1
index 95c3164a2302..20fa8c7fcd8e 100644
@@ -278,6 +278,7 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
 	struct intel_iommu *iommu = device_to_iommu(dev, NULL, NULL);
 	struct intel_svm_dev *sdev = NULL;
 	struct dmar_domain *dmar_domain;
+	struct device_domain_info *info;
 	struct intel_svm *svm = NULL;
 	int ret = 0;
 
@@ -302,6 +303,10 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
 	if (data->hpasid <= 0 || data->hpasid >= PASID_MAX)
 		return -EINVAL;
 
+	info = get_domain_info(dev);
+	if (!info)
+		return -EINVAL;
+
 	dmar_domain = to_dmar_domain(domain);
 
 	mutex_lock(&pasid_mutex);
@@ -349,6 +354,7 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
 		goto out;
 	}
 	sdev->dev = dev;
+	sdev->sid = PCI_DEVID(info->bus, info->devfn);
 
 	/* Only count users if device has aux domains */
 	if (iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX))
@@ -995,7 +1001,7 @@ static irqreturn_t prq_event_thread(int irq, void *d)
 			resp.qw0 = QI_PGRP_PASID(req->pasid) |
 				QI_PGRP_DID(req->rid) |
 				QI_PGRP_PASID_P(req->pasid_present) |
-				QI_PGRP_PDP(req->pasid_present) |
+				QI_PGRP_PDP(req->priv_data_present) |
 				QI_PGRP_RESP_CODE(result) |
 				QI_PGRP_RESP_TYPE;
 			resp.qw1 = QI_PGRP_IDX(req->prg_index) |
drivers/irqchip/irq-sifive-plic.c +5 -5
index eaa3e9fe54e9..6f432d2a5ceb 100644
@@ -99,7 +99,7 @@ static inline void plic_irq_toggle(const struct cpumask *mask,
 				   struct irq_data *d, int enable)
 {
 	int cpu;
-	struct plic_priv *priv = irq_get_chip_data(d->irq);
+	struct plic_priv *priv = irq_data_get_irq_chip_data(d);
 
 	writel(enable, priv->regs + PRIORITY_BASE + d->hwirq * PRIORITY_PER_ID);
 	for_each_cpu(cpu, mask) {
@@ -115,7 +115,7 @@ static void plic_irq_unmask(struct irq_data *d)
 {
 	struct cpumask amask;
 	unsigned int cpu;
-	struct plic_priv *priv = irq_get_chip_data(d->irq);
+	struct plic_priv *priv = irq_data_get_irq_chip_data(d);
 
 	cpumask_and(&amask, &priv->lmask, cpu_online_mask);
 	cpu = cpumask_any_and(irq_data_get_affinity_mask(d),
@@ -127,7 +127,7 @@ static void plic_irq_unmask(struct irq_data *d)
 
 static void plic_irq_mask(struct irq_data *d)
 {
-	struct plic_priv *priv = irq_get_chip_data(d->irq);
+	struct plic_priv *priv = irq_data_get_irq_chip_data(d);
 
 	plic_irq_toggle(&priv->lmask, d, 0);
 }
@@ -138,7 +138,7 @@ static int plic_set_affinity(struct irq_data *d,
 {
 	unsigned int cpu;
 	struct cpumask amask;
-	struct plic_priv *priv = irq_get_chip_data(d->irq);
+	struct plic_priv *priv = irq_data_get_irq_chip_data(d);
 
 	cpumask_and(&amask, &priv->lmask, mask_val);
 
@@ -151,7 +151,7 @@ static int plic_set_affinity(struct irq_data *d,
 		return -EINVAL;
 
 	plic_irq_toggle(&priv->lmask, d, 0);
-	plic_irq_toggle(cpumask_of(cpu), d, 1);
+	plic_irq_toggle(cpumask_of(cpu), d, !irqd_irq_masked(d));
 
 	irq_data_update_effective_affinity(d, cpumask_of(cpu));
 
drivers/mfd/sprd-sc27xx-spi.c +27 -1
index f8a8b918c60d..6b7956604a0f 100644
@@ -189,7 +189,7 @@ static int sprd_pmic_probe(struct spi_device *spi)
 		ddata->irqs[i].mask = BIT(i);
 
 	ret = devm_regmap_add_irq_chip(&spi->dev, ddata->regmap, ddata->irq,
-				       IRQF_ONESHOT | IRQF_NO_SUSPEND, 0,
+				       IRQF_ONESHOT, 0,
 				       &ddata->irq_chip, &ddata->irq_data);
 	if (ret) {
 		dev_err(&spi->dev, "Failed to add PMIC irq chip %d\n", ret);
@@ -202,9 +202,34 @@ static int sprd_pmic_probe(struct spi_device *spi)
 		return ret;
 	}
 
+	device_init_wakeup(&spi->dev, true);
 	return 0;
 }
 
+#ifdef CONFIG_PM_SLEEP
+static int sprd_pmic_suspend(struct device *dev)
+{
+	struct sprd_pmic *ddata = dev_get_drvdata(dev);
+
+	if (device_may_wakeup(dev))
+		enable_irq_wake(ddata->irq);
+
+	return 0;
+}
+
+static int sprd_pmic_resume(struct device *dev)
+{
+	struct sprd_pmic *ddata = dev_get_drvdata(dev);
+
+	if (device_may_wakeup(dev))
+		disable_irq_wake(ddata->irq);
+
+	return 0;
+}
+#endif
+
+static SIMPLE_DEV_PM_OPS(sprd_pmic_pm_ops, sprd_pmic_suspend, sprd_pmic_resume);
+
 static const struct of_device_id sprd_pmic_match[] = {
 	{ .compatible = "sprd,sc2731", .data = &sc2731_data },
 	{},
@@ -215,6 +240,7 @@ static struct spi_driver sprd_pmic_driver = {
 	.driver = {
 		.name = "sc27xx-pmic",
 		.of_match_table = sprd_pmic_match,
+		.pm = &sprd_pmic_pm_ops,
 	},
 	.probe = sprd_pmic_probe,
 };
drivers/misc/mei/client.h +2 -2
index 2f8954def591..98ff7af531a1 100644
@@ -164,11 +164,11 @@ static inline u8 mei_cl_me_id(const struct mei_cl *cl)
  *
  * @cl: host client
  *
- * Return: mtu
+ * Return: mtu or 0 if client is not connected
  */
 static inline size_t mei_cl_mtu(const struct mei_cl *cl)
 {
-	return cl->me_cl->props.max_msg_length;
+	return cl->me_cl ? cl->me_cl->props.max_msg_length : 0;
 }
 
 /**
drivers/mmc/host/renesas_sdhi_core.c +1 -0
index 904f5237d8f7..13880fc76d34 100644
@@ -997,6 +997,7 @@ int renesas_sdhi_remove(struct platform_device *pdev)
 
 	tmio_mmc_host_remove(host);
 	renesas_sdhi_clk_disable(host);
+	tmio_mmc_host_free(host);
 
 	return 0;
 }
drivers/mmc/host/sdhci-of-esdhc.c +2 -0
index 156e75302df5..856e888d2195 100644
@@ -1324,6 +1324,8 @@ static struct soc_device_attribute soc_fixup_sdhc_clkdivs[] = {
 
 static struct soc_device_attribute soc_unreliable_pulse_detection[] = {
 	{ .family = "QorIQ LX2160A", .revision = "1.0", },
+	{ .family = "QorIQ LX2160A", .revision = "2.0", },
+	{ .family = "QorIQ LS1028A", .revision = "1.0", },
 	{ },
 };
 
drivers/mtd/spi-nor/core.c +5 -3
index b37d6c1936de..f0ae7a01703a 100644
@@ -3008,13 +3008,15 @@ static int spi_nor_set_addr_width(struct spi_nor *nor)
 		/* already configured from SFDP */
 	} else if (nor->info->addr_width) {
 		nor->addr_width = nor->info->addr_width;
-	} else if (nor->mtd.size > 0x1000000) {
-		/* enable 4-byte addressing if the device exceeds 16MiB */
-		nor->addr_width = 4;
 	} else {
 		nor->addr_width = 3;
 	}
 
+	if (nor->addr_width == 3 && nor->mtd.size > 0x1000000) {
+		/* enable 4-byte addressing if the device exceeds 16MiB */
+		nor->addr_width = 4;
+	}
+
 	if (nor->addr_width > SPI_NOR_MAX_ADDR_WIDTH) {
 		dev_dbg(nor->dev, "address width is too large: %u\n",
 			nor->addr_width);
drivers/net/can/dev.c +11 -3
index 68834a2853c9..d5e52ffc7ed2 100644
@@ -486,9 +486,13 @@ __can_get_echo_skb(struct net_device *dev, unsigned int idx, u8 *len_ptr)
 		 */
 		struct sk_buff *skb = priv->echo_skb[idx];
 		struct canfd_frame *cf = (struct canfd_frame *)skb->data;
-		u8 len = cf->len;
 
-		*len_ptr = len;
+		/* get the real payload length for netdev statistics */
+		if (cf->can_id & CAN_RTR_FLAG)
+			*len_ptr = 0;
+		else
+			*len_ptr = cf->len;
+
 		priv->echo_skb[idx] = NULL;
 
 		return skb;
@@ -512,7 +516,11 @@ unsigned int can_get_echo_skb(struct net_device *dev, unsigned int idx)
 	if (!skb)
 		return 0;
 
-	netif_rx(skb);
+	skb_get(skb);
+	if (netif_rx(skb) == NET_RX_SUCCESS)
+		dev_consume_skb_any(skb);
+	else
+		dev_kfree_skb_any(skb);
 
 	return len;
 }
drivers/net/can/flexcan.c +3 -2
index bc21a82cf3a7..a330d6c56242 100644
@@ -321,8 +321,7 @@ static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
 
 static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = {
 	.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
-		FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_BROKEN_PERR_STATE |
-		FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
+		FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
 };
 
 static const struct can_bittiming_const flexcan_bittiming_const = {
@@ -1696,6 +1695,8 @@ static int flexcan_remove(struct platform_device *pdev)
 {
 	struct net_device *dev = platform_get_drvdata(pdev);
 
+	device_set_wakeup_enable(&pdev->dev, false);
+	device_set_wakeup_capable(&pdev->dev, false);
 	unregister_flexcandev(dev);
 	pm_runtime_disable(&pdev->dev);
 	free_candev(dev);
drivers/net/can/peak_canfd/peak_canfd.c +8 -3
index 10aa3e457c33..40c33b8a5fda 100644
@@ -262,8 +262,7 @@ static int pucan_handle_can_rx(struct peak_canfd_priv *priv,
 		cf_len = get_can_dlc(pucan_msg_get_dlc(msg));
 
 	/* if this frame is an echo, */
-	if ((rx_msg_flags & PUCAN_MSG_LOOPED_BACK) &&
-	    !(rx_msg_flags & PUCAN_MSG_SELF_RECEIVE)) {
+	if (rx_msg_flags & PUCAN_MSG_LOOPED_BACK) {
 		unsigned long flags;
 
 		spin_lock_irqsave(&priv->echo_lock, flags);
@@ -277,7 +276,13 @@ static int pucan_handle_can_rx(struct peak_canfd_priv *priv,
 		netif_wake_queue(priv->ndev);
 
 		spin_unlock_irqrestore(&priv->echo_lock, flags);
-		return 0;
+
+		/* if this frame is only an echo, stop here. Otherwise,
+		 * continue to push this application self-received frame into
+		 * its own rx queue.
+		 */
+		if (!(rx_msg_flags & PUCAN_MSG_SELF_RECEIVE))
+			return 0;
 	}
 
 	/* otherwise, it should be pushed into rx fifo */
drivers/net/can/rx-offload.c +2 -2
index e8328910a234..0283b5cad746 100644
@@ -245,7 +245,7 @@ int can_rx_offload_queue_sorted(struct can_rx_offload *offload,
 
 	if (skb_queue_len(&offload->skb_queue) >
 	    offload->skb_queue_len_max) {
-		kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 		return -ENOBUFS;
 	}
 
@@ -290,7 +290,7 @@ int can_rx_offload_queue_tail(struct can_rx_offload *offload,
 {
 	if (skb_queue_len(&offload->skb_queue) >
 	    offload->skb_queue_len_max) {
-		kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 		return -ENOBUFS;
 	}
 
drivers/net/can/ti_hecc.c +5 -3
index 94b1491b569f..228ecd45ca6c 100644
@@ -950,7 +950,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
 	err = clk_prepare_enable(priv->clk);
 	if (err) {
 		dev_err(&pdev->dev, "clk_prepare_enable() failed\n");
-		goto probe_exit_clk;
+		goto probe_exit_release_clk;
 	}
 
 	priv->offload.mailbox_read = ti_hecc_mailbox_read;
@@ -959,7 +959,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
 	err = can_rx_offload_add_timestamp(ndev, &priv->offload);
 	if (err) {
 		dev_err(&pdev->dev, "can_rx_offload_add_timestamp() failed\n");
-		goto probe_exit_clk;
+		goto probe_exit_disable_clk;
 	}
 
 	err = register_candev(ndev);
@@ -977,7 +977,9 @@ static int ti_hecc_probe(struct platform_device *pdev)
 
 probe_exit_offload:
 	can_rx_offload_del(&priv->offload);
-probe_exit_clk:
+probe_exit_disable_clk:
+	clk_disable_unprepare(priv->clk);
+probe_exit_release_clk:
 	clk_put(priv->clk);
 probe_exit_candev:
 	free_candev(ndev);
drivers/net/can/usb/peak_usb/pcan_usb_core.c +46 -5

60 lines not on this page · raw message

drivers/net/can/usb/peak_usb/pcan_usb_fd.c +37 -11

90 lines not on this page · raw message

drivers/net/can/xilinx_can.c +3 -3
index c1dbab8c896d..748ff70f6a7b 100644
@@ -1391,7 +1391,7 @@ static int xcan_open(struct net_device *ndev)
 	if (ret < 0) {
 		netdev_err(ndev, "%s: pm_runtime_get failed(%d)\n",
 			   __func__, ret);
-		return ret;
+		goto err;
 	}
 
 	ret = request_irq(ndev->irq, xcan_interrupt, priv->irq_flags,
@@ -1475,6 +1475,7 @@ static int xcan_get_berr_counter(const struct net_device *ndev,
 	if (ret < 0) {
 		netdev_err(ndev, "%s: pm_runtime_get failed(%d)\n",
 			   __func__, ret);
+		pm_runtime_put(priv->dev);
 		return ret;
 	}
 
@@ -1789,7 +1790,7 @@ static int xcan_probe(struct platform_device *pdev)
 	if (ret < 0) {
 		netdev_err(ndev, "%s: pm_runtime_get failed(%d)\n",
 			   __func__, ret);
-		goto err_pmdisable;
+		goto err_disableclks;
 	}
 
 	if (priv->read_reg(priv, XCAN_SR_OFFSET) != XCAN_SR_CONFIG_MASK) {
@@ -1824,7 +1825,6 @@ static int xcan_probe(struct platform_device *pdev)
 
 err_disableclks:
 	pm_runtime_put(priv->dev);
-err_pmdisable:
 	pm_runtime_disable(&pdev->dev);
 err_free:
 	free_candev(ndev);
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +24 -2
index 47bfb2e95e2d..343177d71f70 100644
@@ -2712,6 +2712,10 @@ static int i40e_vc_add_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
 				spin_unlock_bh(&vsi->mac_filter_hash_lock);
 				goto error_param;
 			}
+			if (is_valid_ether_addr(al->list[i].addr) &&
+			    is_zero_ether_addr(vf->default_lan_addr.addr))
+				ether_addr_copy(vf->default_lan_addr.addr,
+						al->list[i].addr);
 		}
 	}
 	spin_unlock_bh(&vsi->mac_filter_hash_lock);
@@ -2739,6 +2743,7 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
 {
 	struct virtchnl_ether_addr_list *al =
 	    (struct virtchnl_ether_addr_list *)msg;
+	bool was_unimac_deleted = false;
 	struct i40e_pf *pf = vf->pf;
 	struct i40e_vsi *vsi = NULL;
 	i40e_status ret = 0;
@@ -2758,6 +2763,8 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
 			ret = I40E_ERR_INVALID_MAC_ADDR;
 			goto error_param;
 		}
+		if (ether_addr_equal(al->list[i].addr, vf->default_lan_addr.addr))
+			was_unimac_deleted = true;
 	}
 	vsi = pf->vsi[vf->lan_vsi_idx];
 
@@ -2778,10 +2785,25 @@ static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg)
 		dev_err(&pf->pdev->dev, "Unable to program VF %d MAC filters, error %d\n",
 			vf->vf_id, ret);
 
+	if (vf->trusted && was_unimac_deleted) {
+		struct i40e_mac_filter *f;
+		struct hlist_node *h;
+		u8 *macaddr = NULL;
+		int bkt;
+
+		/* set last unicast mac address as default */
+		spin_lock_bh(&vsi->mac_filter_hash_lock);
+		hash_for_each_safe(vsi->mac_filter_hash, bkt, h, f, hlist) {
+			if (is_valid_ether_addr(f->macaddr))
+				macaddr = f->macaddr;
+		}
+		if (macaddr)
+			ether_addr_copy(vf->default_lan_addr.addr, macaddr);
+		spin_unlock_bh(&vsi->mac_filter_hash_lock);
+	}
 error_param:
 	/* send the response to the VF */
-	return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DEL_ETH_ADDR,
-				       ret);
+	return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DEL_ETH_ADDR, ret);
 }
 
 /**
drivers/net/ethernet/intel/igc/igc_main.c +8 -6
index 9593aa4eea36..1358a39c34ad 100644
@@ -3890,21 +3890,23 @@ static int igc_change_mtu(struct net_device *netdev, int new_mtu)
 }
 
 /**
- * igc_get_stats - Get System Network Statistics
+ * igc_get_stats64 - Get System Network Statistics
  * @netdev: network interface device structure
+ * @stats: rtnl_link_stats64 pointer
  *
  * Returns the address of the device statistics structure.
  * The statistics are updated here and also from the timer callback.
  */
-static struct net_device_stats *igc_get_stats(struct net_device *netdev)
+static void igc_get_stats64(struct net_device *netdev,
+			    struct rtnl_link_stats64 *stats)
 {
 	struct igc_adapter *adapter = netdev_priv(netdev);
 
+	spin_lock(&adapter->stats64_lock);
 	if (!test_bit(__IGC_RESETTING, &adapter->state))
 		igc_update_stats(adapter);
-
-	/* only return the current stats */
-	return &netdev->stats;
+	memcpy(stats, &adapter->stats64, sizeof(*stats));
+	spin_unlock(&adapter->stats64_lock);
 }
 
 static netdev_features_t igc_fix_features(struct net_device *netdev,
@@ -4833,7 +4835,7 @@ static const struct net_device_ops igc_netdev_ops = {
 	.ndo_set_rx_mode	= igc_set_rx_mode,
 	.ndo_set_mac_address	= igc_set_mac,
 	.ndo_change_mtu		= igc_change_mtu,
-	.ndo_get_stats		= igc_get_stats,
+	.ndo_get_stats64	= igc_get_stats64,
 	.ndo_fix_features	= igc_fix_features,
 	.ndo_set_features	= igc_set_features,
 	.ndo_features_check	= igc_features_check,
drivers/net/ethernet/mellanox/mlx5/core/en/rep/tc.c +5 -1
index 79cc42d88eec..38ea249159f6 100644
@@ -107,12 +107,16 @@ void mlx5e_rep_update_flows(struct mlx5e_priv *priv,
 		mlx5e_tc_encap_flows_del(priv, e, &flow_list);
 
 	if (neigh_connected && !(e->flags & MLX5_ENCAP_ENTRY_VALID)) {
+		struct net_device *route_dev;
+
 		ether_addr_copy(e->h_dest, ha);
 		ether_addr_copy(eth->h_dest, ha);
 		/* Update the encap source mac, in case that we delete
 		 * the flows when encap source mac changed.
 		 */
-		ether_addr_copy(eth->h_source, e->route_dev->dev_addr);
+		route_dev = __dev_get_by_index(dev_net(priv->netdev), e->route_dev_ifindex);
+		if (route_dev)
+			ether_addr_copy(eth->h_source, route_dev->dev_addr);
 
 		mlx5e_tc_encap_flows_add(priv, e, &flow_list);
 	}
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c +46 -26

161 lines not on this page · raw message

drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c +2 -2
index 55e65a438de7..fcaeb30778bc 100644
@@ -122,9 +122,9 @@ void mlx5e_activate_xsk(struct mlx5e_channel *c)
 	set_bit(MLX5E_RQ_STATE_ENABLED, &c->xskrq.state);
 	/* TX queue is created active. */
 
-	spin_lock(&c->async_icosq_lock);
+	spin_lock_bh(&c->async_icosq_lock);
 	mlx5e_trigger_irq(&c->async_icosq);
-	spin_unlock(&c->async_icosq_lock);
+	spin_unlock_bh(&c->async_icosq_lock);
 }
 
 void mlx5e_deactivate_xsk(struct mlx5e_channel *c)
drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c +2 -2
index 4d892f6cecb3..4de70cee80c0 100644
@@ -36,9 +36,9 @@ int mlx5e_xsk_wakeup(struct net_device *dev, u32 qid, u32 flags)
 		if (test_and_set_bit(MLX5E_SQ_STATE_PENDING_XSK_TX, &c->async_icosq.state))
 			return 0;
 
-		spin_lock(&c->async_icosq_lock);
+		spin_lock_bh(&c->async_icosq_lock);
 		mlx5e_trigger_irq(&c->async_icosq);
-		spin_unlock(&c->async_icosq_lock);
+		spin_unlock_bh(&c->async_icosq_lock);
 	}
 
 	return 0;
drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c +7 -7
index 6bbfcf18107d..979ff5658a3f 100644
@@ -188,7 +188,7 @@ static int post_rx_param_wqes(struct mlx5e_channel *c,
 
 	err = 0;
 	sq = &c->async_icosq;
-	spin_lock(&c->async_icosq_lock);
+	spin_lock_bh(&c->async_icosq_lock);
 
 	cseg = post_static_params(sq, priv_rx);
 	if (IS_ERR(cseg))
@@ -199,7 +199,7 @@ static int post_rx_param_wqes(struct mlx5e_channel *c,
 
 	mlx5e_notify_hw(&sq->wq, sq->pc, sq->uar_map, cseg);
 unlock:
-	spin_unlock(&c->async_icosq_lock);
+	spin_unlock_bh(&c->async_icosq_lock);
 
 	return err;
 
@@ -265,10 +265,10 @@ resync_post_get_progress_params(struct mlx5e_icosq *sq,
 
 	BUILD_BUG_ON(MLX5E_KTLS_GET_PROGRESS_WQEBBS != 1);
 
-	spin_lock(&sq->channel->async_icosq_lock);
+	spin_lock_bh(&sq->channel->async_icosq_lock);
 
 	if (unlikely(!mlx5e_wqc_has_room_for(&sq->wq, sq->cc, sq->pc, 1))) {
-		spin_unlock(&sq->channel->async_icosq_lock);
+		spin_unlock_bh(&sq->channel->async_icosq_lock);
 		err = -ENOSPC;
 		goto err_dma_unmap;
 	}
@@ -299,7 +299,7 @@ resync_post_get_progress_params(struct mlx5e_icosq *sq,
 	icosq_fill_wi(sq, pi, &wi);
 	sq->pc++;
 	mlx5e_notify_hw(&sq->wq, sq->pc, sq->uar_map, cseg);
-	spin_unlock(&sq->channel->async_icosq_lock);
+	spin_unlock_bh(&sq->channel->async_icosq_lock);
 
 	return 0;
 
@@ -360,7 +360,7 @@ static int resync_handle_seq_match(struct mlx5e_ktls_offload_context_rx *priv_rx
 	err = 0;
 
 	sq = &c->async_icosq;
-	spin_lock(&c->async_icosq_lock);
+	spin_lock_bh(&c->async_icosq_lock);
 
 	cseg = post_static_params(sq, priv_rx);
 	if (IS_ERR(cseg)) {
@@ -372,7 +372,7 @@ static int resync_handle_seq_match(struct mlx5e_ktls_offload_context_rx *priv_rx
 	mlx5e_notify_hw(&sq->wq, sq->pc, sq->uar_map, cseg);
 	priv_rx->stats->tls_resync_res_ok++;
 unlock:
-	spin_unlock(&c->async_icosq_lock);
+	spin_unlock_bh(&c->async_icosq_lock);
 
 	return err;
 }
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +1 -0
index 42ec28e29834..f399973a44eb 100644
@@ -5226,6 +5226,7 @@ static void mlx5e_nic_disable(struct mlx5e_priv *priv)
 
 	mlx5e_disable_async_events(priv);
[… more lines in the raw message]

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

drivers/net/ethernet/mellanox/mlx5/core/en_rep.h +1 -1
index 0d1562e20118..963a6d98840a 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +1 -1
index 64c8ac5eabf6..a0a4398408b8 100644

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

drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +2 -0
index 1c93f92d9210..44947b054dc4 100644

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

drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +0 -2
index 6e6a9a563992..e8e6294c7cca 100644

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

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +4 -3
index 75fa44eee434..d4755d61dd74 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.c +17 -6
index 3315afe2f8dc..38084400ee8f 100644

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

drivers/net/ethernet/mellanox/mlx5/core/lib/vxlan.h +2 -0
index ec766529f49b..34ef662da35e 100644

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

drivers/net/ethernet/microchip/lan743x_main.c +10 -14
index de93cc6ebc1a..bc368136bccc 100644

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

drivers/net/ethernet/microchip/lan743x_main.h +0 -3
index c61a40411317..a536f4a4994d 100644

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

drivers/net/ethernet/realtek/r8169_main.c +5 -13
index c74d9c02a805..515d9116dfad 100644

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

drivers/net/phy/realtek.c +2 -0
index 0f0960971800..81a614f903c4 100644

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

drivers/net/vrf.c +69 -23

92 lines not on this page · raw message

drivers/net/wan/cosa.c +1 -0
index f8aed0696d77..2369ca250cd6 100644

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

drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +1 -1
index b353995bdd45..f4c2a8d83f50 100644

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

drivers/nvme/host/core.c +66 -40

106 lines not on this page · raw message

drivers/nvme/host/nvme.h +1 -0
index 2aaedfa43ed8..97fbd61191b3 100644

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

drivers/nvme/host/pci.c +19 -4
index 8984796db0c8..a6af96aaa0eb 100644

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

drivers/nvme/host/rdma.c +3 -11
index 3a598e91e816..f91c20e3daf7 100644

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

drivers/nvme/host/tcp.c +4 -12
index d6a3e1487354..c0c33320fe65 100644

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

drivers/of/address.c +3 -1
index da4f7341323f..37ac31184309 100644

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

drivers/opp/core.c +4 -3
index 1a95ad40795b..a963df7bd274 100644

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

drivers/pci/controller/pci-mvebu.c +10 -13
index c39978b750ec..653c0b3d2912 100644

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

drivers/pci/pci.c +7 -2
index e39c5499770f..b2fed944903e 100644

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

drivers/pinctrl/aspeed/pinctrl-aspeed.c +4 -3
index 3e6567355d97..1d603732903f 100644

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

drivers/pinctrl/intel/pinctrl-intel.c +30 -10
index b64997b303e0..31e7840bc5e2 100644

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

drivers/pinctrl/pinctrl-amd.c +3 -3
index 9a760f5cd7ed..4aea3e05e8c6 100644

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

drivers/pinctrl/pinctrl-mcp23s08_spi.c +1 -1
index 1f47a661b0a7..7c72cffe1412 100644

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

drivers/pinctrl/qcom/pinctrl-msm.c +19 -13
index 1df232266f63..1554f0275067 100644

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

drivers/pinctrl/qcom/pinctrl-sm8250.c +18 -0
index 826df0d637ea..af144e724bd9 100644

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

drivers/scsi/device_handler/scsi_dh_alua.c +5 -4
index f32da0ca529e..308bda2e9c00 100644

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

drivers/scsi/hpsa.c +3 -1
index 48d5da59262b..aed59ec20ad9 100644

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

drivers/scsi/mpt3sas/mpt3sas_base.c +7 -0
index e86682dc34ec..87d05c195087 100644

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

drivers/scsi/ufs/ufshcd-crypto.c +2 -2
index d2edbd960ebf..07310b12a5dc 100644

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

drivers/spi/spi-bcm2835.c +1 -2
index 8ed3623be8a4..9605abaaec67 100644

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

drivers/spi/spi-fsl-dspi.c +4 -6
index 108a7d50d2c3..a96762ffb70b 100644

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

drivers/spi/spi-imx.c +15 -8
index e38e5ad3c706..9aac515b718c 100644

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

drivers/thunderbolt/nhi.c +15 -4
index 5f7489fa1327..a331e52789e3 100644

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

drivers/thunderbolt/xdomain.c +1 -0
index 48907853732a..c00ad817042e 100644

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

drivers/uio/uio.c +6 -4
index 6dca744e39e9..be06f1a961c2 100644

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

drivers/usb/class/cdc-acm.c +9 -0
index 71664bfcf1bd..ce73f7d588c9 100644

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

drivers/usb/dwc3/dwc3-pci.c +4 -0
index 242b6210380a..bae6a70664c8 100644

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

drivers/usb/gadget/legacy/raw_gadget.c +4 -1
index e01e366d89cd..062dfac30399 100644

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

drivers/usb/gadget/udc/fsl_udc_core.c +1 -1
index a6f7b2594c09..c0cb007b749f 100644

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

drivers/usb/gadget/udc/goku_udc.c +1 -1
index 25c1d6ab5adb..3e1267d38774 100644

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

drivers/usb/host/xhci-histb.c +1 -1
index 5546e7e013a8..08369857686e 100644

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

drivers/usb/misc/apple-mfi-fastcharge.c +3 -1
index 579d8c84de42..9de0171b5177 100644

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

drivers/usb/musb/musb_dsps.c +3 -1
index 30085b2be7b9..5892f3ce0cdc 100644

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

drivers/usb/typec/ucsi/psy.c +9 -0
index 26ed0b520749..571a51e16234 100644

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

drivers/usb/typec/ucsi/ucsi.c +6 -1
index 758b988ac518..51a570d40a42 100644

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

drivers/usb/typec/ucsi/ucsi.h +2 -0
index cba6f77bea61..b7a92f246050 100644

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

drivers/vfio/pci/vfio_pci.c +1 -1
index 1ab1f5cda4ac..bfdc010a6b04 100644

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

drivers/vfio/pci/vfio_pci_rdwr.c +35 -8

43 lines not on this page · raw message

drivers/vfio/platform/vfio_platform_common.c +1 -2
index c0771a9567fb..fb4b385191f2 100644

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

fs/afs/write.c +4 -1
index 50371207f327..c9195fc67fd8 100644

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

fs/afs/xattr.c +1 -6
index 38884d6c57cd..95c573dcda11 100644

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

fs/afs/yfsclient.c +1 -0
index 3b1239b7e90d..bd787e71a657 100644

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

fs/btrfs/dev-replace.c +24 -2
index b58b33051a89..fb1833bccd04 100644

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

fs/btrfs/ioctl.c +4 -6
index 2a5dc42f0750..daa1e1638a92 100644

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

fs/btrfs/ref-verify.c +1 -0
index 7f03dbe5b609..78693d3dd15b 100644

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

fs/btrfs/relocation.c +3 -1
index 4ba1ab9cc76d..5df1cf6bd274 100644

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

fs/btrfs/volumes.c +7 -19
index 309734fdd158..578bbe544c8b 100644

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

fs/ceph/caps.c +1 -1
index 034b3f4fdd3a..64a64a29f5c7 100644

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

fs/ceph/mds_client.c +35 -15

50 lines not on this page · raw message

fs/ceph/mds_client.h +1 -0
index 658800605bfb..11f20a4d36bc 100644

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

fs/ceph/quota.c +1 -1
index cc2c4d40b022..2b213f864c56 100644

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

fs/ceph/snap.c +1 -1
index 923be9399b21..cc9a9bfc790a 100644

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

fs/cifs/cifs_unicode.c +7 -1
index 498777d859eb..9bd03a231032 100644

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

fs/erofs/inode.c +11 -10
index 139d0bed42f8..3e21c0e8adae 100644

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

fs/erofs/zdata.c +5 -2
index 6c939def00f9..118d9fe02c4e 100644

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

fs/ext4/inline.c +1 -0
index 75c97bca0815..9ebdb8684bbb 100644

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

fs/ext4/super.c +2 -2
index 20378050df09..0925bc1deee0 100644

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

fs/gfs2/rgrp.c +4 -1
index 1bba5a9d45fa..ac306895bbbc 100644

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

fs/gfs2/super.c +1 -0
index 32ae1a7cdaed..831f6e31d682 100644

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

fs/io_uring.c +21 -8
index 1033e0e18f24..352bd3ad446b 100644

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

fs/iomap/buffered-io.c +2 -13
index b115e7d47fce..238613443bec 100644

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

fs/jbd2/checkpoint.c +2 -0
index 263f02ad8ebf..472932b9e6bc 100644

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

fs/jbd2/transaction.c +3 -1
index 43985738aa86..d54f04674e8e 100644

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

fs/nfs/nfs42xattr.c +2 -0
index 86777996cfec..55b44a42d625 100644

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

fs/nfs/nfs42xdr.c +2 -2
index cc50085e151c..d0ddf90c9be4 100644

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

fs/nfsd/nfs4proc.c +2 -1
index 84e10aef1417..3ba17b5fc928 100644

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

fs/ocfs2/super.c +1 -0
index 1d91dd1e8711..2febc76e9de7 100644

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

fs/xfs/libxfs/xfs_alloc.c +1 -0
index 852b536551b5..15640015be9d 100644

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

fs/xfs/libxfs/xfs_bmap.h +1 -1
index e1bd484e5548..6747e97a7949 100644

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

fs/xfs/libxfs/xfs_rmap.c +1 -1
index 27c39268c31f..82117b1ee34c 100644

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

fs/xfs/libxfs/xfs_rmap_btree.c +8 -8
index beb81c84a937..577a66381327 100644

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

fs/xfs/scrub/bmap.c +2 -0
index 955302e7cdde..412e2ec55e38 100644

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

fs/xfs/scrub/inode.c +1 -2
index 6d483ab29e63..1bea029b634a 100644

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

fs/xfs/scrub/refcount.c +3 -5
index beaeb6fa3119..dd672e6bbc75 100644

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

fs/xfs/xfs_aops.c +4 -2
index b35611882ff9..e4210779cd79 100644

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

fs/xfs/xfs_iops.c +10 -0
index 80a13c8561d8..bf93a7152181 100644

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

fs/xfs/xfs_pnfs.c +1 -1
index b101feb2aab4..f3082a957d5e 100644

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

include/linux/arm-smccc.h +2 -0
index 15c706fb0a37..0e50ba3e88d7 100644

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

include/linux/can/skb.h +8 -12
index 900b9f4e0605..fc61cf4eff1c 100644

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

include/linux/compiler-gcc.h +0 -2
index 7a3769040d7d..3017ebd40054 100644

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

include/linux/compiler_types.h +0 -4
index 6e390d58a9f8..ac3fa37a84f9 100644

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

include/linux/cpufreq.h +16 -2
index 2e900fd461f2..e7170bf019eb 100644

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

include/linux/genhd.h +1 -1
index 4ab853461dff..475b286ea10b 100644

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

include/linux/memcontrol.h +9 -2
index d0b036123c6a..fa635207fe96 100644

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

include/linux/netfilter/nfnetlink.h +8 -1
index 89016d08f6a2..f6267e2883f2 100644

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

include/linux/netfilter_ipv4.h +1 -1
index 082e2c41b7ff..5b70ca868bb1 100644

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

include/linux/netfilter_ipv6.h +5 -5
index 9b67394471e1..48314ade1506 100644

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

include/trace/events/sunrpc.h +4 -4
index 65d7dfbbc9cd..ca2f27b9f919 100644

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

init/main.c +12 -2
index e880b4ecb314..ddfd6421c70a 100644

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

kernel/bpf/Makefile +5 -1
index e6eb9c0402da..0cc0de72163d 100644

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

kernel/bpf/core.c +1 -1
index ed0b3578867c..3cb26e82549a 100644

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

kernel/bpf/hashtab.c +28 -2
index 7df28a45c66b..15364543b2c0 100644

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

kernel/dma/swiotlb.c +5 -1
index c19379fabd20..9924214df60a 100644

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

kernel/events/core.c +4 -8
index 98a603098f23..a06ac60d346f 100644

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

kernel/events/internal.h +1 -1
index fcbf5616a441..402054e755f2 100644

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

kernel/exit.c +4 -1
index 733e80f334e7..f5d2333cb5db 100644

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

kernel/futex.c +3 -2
index 6c00c0952313..139953d456e3 100644

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

kernel/irq/Kconfig +1 -0
index 10a5aff4eecc..164a031cfdb6 100644

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

kernel/reboot.c +14 -14
index e7b78d5ae1ab..af6f23d8bea1 100644

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

kernel/sched/cpufreq_schedutil.c +1 -1
index 59d511e32673..4e4d052ebaf3 100644

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

kernel/trace/trace.c +2 -2
index 6e2fb7dc41bf..1c76a0faf3cd 100644

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

kernel/watchdog.c +2 -2
index 5abb5b22ad13..71109065bd8e 100644

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

mm/compaction.c +8 -4
index 176dcded298e..cc1a7f600a86 100644

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

mm/gup.c +10 -4
index e869c634cc9a..094e8ce99acb 100644

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

mm/hugetlb.c +5 -85

90 lines not on this page · raw message

mm/memcontrol.c +20 -8
index 9eefdb9cc230..51ce5d172855 100644

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

mm/memory-failure.c +17 -19
index f1aa6433f404..665431272de9 100644

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

mm/migrate.c +24 -20

44 lines not on this page · raw message

mm/rmap.c +1 -4
index 9425260774a1..5ebf78ae01cb 100644

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

mm/slub.c +1 -1
index 0cbe67f13946..50cab2089067 100644

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

mm/vmscan.c +3 -2
index 466fc3144fff..8b11736c4c43 100644

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

net/can/j1939/socket.c +6 -0
index 1be4c898b2fa..f23966526a88 100644

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

net/core/devlink.c +6 -2
index 80ec1cd81c64..9a8abc30659c 100644

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

net/ethtool/features.c +1 -1
index 495635f152ba..1b2a3fb6e7f6 100644

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

net/ipv4/ip_tunnel_core.c +2 -2
index b2ea1a8c5fd6..22c3e9e23dc9 100644

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

net/ipv4/netfilter.c +5 -3
index a058213b77a7..7c841037c533 100644

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

net/ipv4/netfilter/iptable_mangle.c +1 -1
index f703a717ab1d..833079589273 100644

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

net/ipv4/netfilter/nf_reject_ipv4.c +1 -1
index 9dcfa4e461b6..93b07739807b 100644

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

net/ipv4/syncookies.c +7 -2
index e03756631541..8ff92f96ccdd 100644

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

net/ipv4/udp_offload.c +16 -3
index e67a66fbf27b..c62805cd3131 100644

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

net/ipv4/xfrm4_tunnel.c +2 -2
index dc19aff7c2e0..fb0648e7fb32 100644

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

net/ipv6/netfilter.c +3 -3
index 6d0e942d082d..ab9a279dd6d4 100644

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

net/ipv6/netfilter/ip6table_mangle.c +1 -1
index 1a2748611e00..cee74803d7a1 100644

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

net/ipv6/sit.c +0 -2
index 5e2c34c0ac97..5e7983cb6154 100644

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

net/ipv6/syncookies.c +8 -2
index e796a64be308..9b6cae1e49d9 100644

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

net/ipv6/udp_offload.c +15 -2
index 584157a07759..f9e888d1b9af 100644

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

net/ipv6/xfrm6_tunnel.c +2 -2
index 25b7ebda2fab..f696d46e6910 100644

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

net/iucv/af_iucv.c +2 -1
index a95af62acb52..6214d083279b 100644

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

net/mac80211/mlme.c +2 -1
index 2e400b0ff696..0f30f50c46b1 100644

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

net/mac80211/tx.c +24 -13
index aa486e202a57..ca1e8cd75b22 100644

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

net/mptcp/protocol.c +1 -0
index b295eb6e9580..9adfa8a18579 100644

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

net/netfilter/ipset/ip_set_core.c +2 -1
index 920b7c4331f0..2643dc982eb4 100644

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

net/netfilter/ipvs/ip_vs_core.c +2 -2
index e3668a6e54e4..570d8ef6fb8b 100644

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

net/netfilter/nf_nat_proto.c +2 -2
index 59151dc07fdc..e87b6bd6b3cd 100644

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

net/netfilter/nf_synproxy_core.c +1 -1
index 9cca35d22927..d7d34a62d3bf 100644

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

net/netfilter/nf_tables_api.c +12 -7
index 72f3ee47e478..4305d9633408 100644

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

net/netfilter/nfnetlink.c +18 -4
index 3a2e64e13b22..212c37f53f5f 100644

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

net/netfilter/nft_chain_route.c +2 -2
index 8826bbe71136..edd02cda57fc 100644

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

net/netfilter/utils.c +2 -2
index cedf47ab3c6f..2182d361e273 100644

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

net/tipc/topsrv.c +8 -2
index 1489cfb941d8..d29b962264c3 100644

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

net/wireless/core.c +31 -26

57 lines not on this page · raw message

net/wireless/core.h +3 -2
index 67b0389fca4d..8cd4a9793298 100644

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

net/wireless/nl80211.c +2 -1
index e14307f2bddc..8eb43c47e582 100644

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

net/wireless/reg.c +1 -1
index d8a90d397423..763a45655ac2 100644

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

net/x25/af_x25.c +1 -1
index 0bbb283f23c9..046d3fee66a9 100644

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

net/xfrm/xfrm_interface.c +4 -4
index a8f66112c52b..0bb7963b9f6b 100644

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

net/xfrm/xfrm_state.c +5 -3
index efc89a92961d..ee6ac32bb06d 100644

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

security/selinux/ibpkey.c +3 -1
index f68a7617cfb9..3a63a989e55e 100644

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

sound/hda/ext/hdac_ext_controller.c +2 -0
index 4d060d5b1db6..b0c0ef824d7d 100644

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

sound/pci/hda/hda_controller.h +2 -1
index be63ead8161f..68f9668788ea 100644

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

sound/pci/hda/hda_intel.c +35 -28

63 lines not on this page · raw message

sound/soc/codecs/cs42l51.c +21 -1
index 764f2ef8f59d..2b617993b0ad 100644

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

sound/soc/codecs/wcd9335.c +1 -1
index f2d9d52ee171..4d2b1ec7c03b 100644

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

sound/soc/codecs/wcd934x.c +1 -1
index 35697b072367..40f682f5dab8 100644

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

sound/soc/codecs/wsa881x.c +2 -0
index d39d479e2378..5456124457a7 100644

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

sound/soc/intel/boards/kbl_rt5663_max98927.c +31 -8
index 3ea4602dfb3e..9a4b3d0973f6 100644

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

sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c +25 -6
index a6c690c5308d..58b76e985f7f 100644

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

sound/soc/qcom/sdm845.c +2 -0
index ab1bf23c21a6..6c2760e27ea6 100644

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

sound/soc/sof/loader.c +5 -0
index b94fa5f5d480..c90c3f3a3b3e 100644

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

tools/bpf/bpftool/prog.c +1 -1
index d393eb8263a6..994506540e56 100644

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

tools/lib/bpf/hashmap.h +9 -6
index e0af36b0e5d8..6a3c3d8bb4ab 100644

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

tools/perf/builtin-trace.c +9 -6
index 44a75f234db1..de80534473af 100644

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

tools/perf/util/scripting-engines/trace-event-python.c +2 -5
index 739516fdf6e3..dd5414d4d360 100644

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

tools/perf/util/session.c +14 -0
index 7a5f03764702..098080287c68 100644

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

tools/testing/kunit/kunit_parser.py +1 -2
index f13e0c0d6663..91036d5d51cf 100644

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

tools/testing/selftests/bpf/Makefile +1 -1
index fc946b7ac288..daf186f88a63 100644

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

tools/testing/selftests/bpf/prog_tests/map_init.c new file +214 -0

214 lines not on this page · raw message

tools/testing/selftests/bpf/progs/test_map_init.c new file +33 -0
new file mode 100644
index 000000000000..c89d28ead673

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

tools/testing/selftests/clone3/clone3_cap_checkpoint_restore.c +1 -1
index 9562425aa0a9..614091de4c54 100644

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

tools/testing/selftests/core/close_range_test.c +4 -4
index c99b98b0d461..575b391ddc78 100644

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

tools/testing/selftests/filesystems/binderfs/binderfs_test.c +4 -4
index 1d27f52c61e6..477cbb042f5b 100644

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

tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_user.tc +4 -0
index a30a9c07290d..d25d01a19778 100644

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

tools/testing/selftests/lib.mk +1 -1
index 7a17ea815736..66f3317dc365 100644

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

tools/testing/selftests/pidfd/pidfd_open_test.c +0 -1
index b9fe75fc3e51..8a59438ccc78 100644

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

tools/testing/selftests/pidfd/pidfd_poll_test.c +0 -1
index 4b115444dfe9..610811275357 100644

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

tools/testing/selftests/proc/proc-loadavg-001.c +0 -1
index 471e2aa28077..fb4fe9188806 100644

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

tools/testing/selftests/proc/proc-self-syscall.c +0 -1
index 9f6d000c0245..8511dcfe67c7 100644

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

tools/testing/selftests/proc/proc-uptime-002.c +0 -1
index 30e2b7849089..e7ceabed7f51 100644

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

tools/testing/selftests/tc-testing/tc-tests/filters/tests.json +2 -2
index bb543bf69d69..361235ad574b 100644

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

tools/testing/selftests/wireguard/netns.sh +8 -0
index d77f4829f1e0..74c69b75f6f5 100755

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

tools/testing/selftests/wireguard/qemu/kernel.config +2 -0
index d531de13c95b..4eecb432a66c 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.