Skip to contentSkip to conversation

Linux 5.8.3

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Aug 21, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.8.3 kernel.

All users of the 5.8 kernel series must upgrade.

The updated 5.8.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.8.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/admin-guide/hw-vuln/multihit.rst                       |    4 
 Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt |    2 
 Makefile                                                             |    2 
 arch/arm64/boot/dts/qcom/sc7180-idp.dts                              |    2 
 arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi                           |    2 
 arch/arm64/kernel/perf_event.c                                       |   13 
 arch/mips/Kconfig                                                    |    1 
 arch/mips/boot/dts/ingenic/qi_lb60.dts                               |    2 
 arch/mips/kernel/topology.c                                          |    2 
 arch/openrisc/kernel/stacktrace.c                                    |   18 +
 arch/powerpc/include/asm/percpu.h                                    |    4 
 arch/powerpc/mm/fault.c                                              |    7 
 arch/powerpc/mm/ptdump/hashpagetable.c                               |    2 
 arch/powerpc/platforms/pseries/hotplug-memory.c                      |    2 
 arch/s390/Kconfig                                                    |    1 
 arch/s390/lib/test_unwind.c                                          |    1 
 arch/sh/boards/mach-landisk/setup.c                                  |    3 
 arch/sh/mm/fault.c                                                   |    1 
 arch/x86/events/rapl.c                                               |    2 
 arch/x86/kernel/apic/vector.c                                        |    4 
 arch/x86/kernel/cpu/bugs.c                                           |    8 
 arch/x86/kernel/tsc_msr.c                                            |    9 
 arch/xtensa/include/asm/thread_info.h                                |    4 
 arch/xtensa/kernel/asm-offsets.c                                     |    3 
 arch/xtensa/kernel/entry.S                                           |   11 
 arch/xtensa/kernel/perf_event.c                                      |    2 
 crypto/af_alg.c                                                      |   11 
 crypto/algif_aead.c                                                  |   10 
 crypto/algif_skcipher.c                                              |   11 
 drivers/acpi/nfit/core.c                                             |   11 
 drivers/acpi/nfit/nfit.h                                             |    1 
 drivers/base/dd.c                                                    |    4 
 drivers/clk/Kconfig                                                  |    2 
 drivers/clk/actions/owl-s500.c                                       |    2 
 drivers/clk/bcm/clk-bcm2835.c                                        |   25 +
 drivers/clk/qcom/clk-alpha-pll.c                                     |    2 
 drivers/clk/qcom/gcc-sdm660.c                                        |    3 
 drivers/clk/qcom/gcc-sm8150.c                                        |    8 
 drivers/clk/sirf/clk-atlas6.c                                        |    2 
 drivers/crypto/caam/caamalg.c                                        |   29 --
 drivers/crypto/caam/compat.h                                         |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c                          |   11 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                    |   23 +
 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c           |   69 ++++
 drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c                     |    5 
 drivers/gpu/drm/drm_dp_mst_topology.c                                |   41 +-
 drivers/gpu/drm/drm_panel_orientation_quirks.c                       |    6 
 drivers/gpu/drm/i915/gt/intel_gt.c                                   |    5 
 drivers/gpu/drm/imx/imx-ldb.c                                        |    7 
 drivers/gpu/drm/ingenic/ingenic-drm.c                                |    2 
 drivers/gpu/drm/omapdrm/dss/dispc.c                                  |    1 
 drivers/gpu/drm/omapdrm/dss/dsi.c                                    |    1 
 drivers/gpu/drm/omapdrm/dss/dss.c                                    |    1 
 drivers/gpu/drm/omapdrm/dss/venc.c                                   |    1 
 drivers/gpu/drm/panfrost/panfrost_gem.c                              |    2 
 drivers/gpu/drm/panfrost/panfrost_mmu.c                              |    2 
 drivers/gpu/drm/tidss/tidss_kms.c                                    |    2 
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c                                  |    8 
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                                  |    5 
 drivers/gpu/ipu-v3/ipu-image-convert.c                               |  145 ++++++----
 drivers/i2c/busses/i2c-bcm-iproc.c                                   |   13 
 drivers/i2c/busses/i2c-rcar.c                                        |   15 -
 drivers/iio/dac/ad5592r-base.c                                       |    4 
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h                              |    3 
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c                       |   23 +
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c                         |    2 
 drivers/infiniband/core/counters.c                                   |    4 
 drivers/infiniband/core/uverbs_cmd.c                                 |    4 
 drivers/infiniband/hw/cxgb4/mem.c                                    |    1 
 drivers/infiniband/hw/mlx4/mr.c                                      |    1 
 drivers/infiniband/ulp/ipoib/ipoib.h                                 |    2 
 drivers/infiniband/ulp/ipoib/ipoib_ib.c                              |   67 ++--
 drivers/infiniband/ulp/ipoib/ipoib_main.c                            |    2 
 drivers/input/mouse/sentelic.c                                       |    2 
 drivers/iommu/intel/dmar.c                                           |   21 +
 drivers/iommu/intel/iommu.c                                          |    7 
 drivers/iommu/intel/svm.c                                            |   22 -
 drivers/iommu/omap-iommu-debug.c                                     |    3 
 drivers/irqchip/irq-gic-v3-its.c                                     |   15 -
 drivers/irqchip/irq-loongson-liointc.c                               |   10 
 drivers/md/bcache/bcache.h                                           |    2 
 drivers/md/bcache/bset.c                                             |    2 
 drivers/md/bcache/btree.c                                            |    2 
 drivers/md/bcache/journal.c                                          |    4 
 drivers/md/bcache/request.c                                          |   14 
 drivers/md/bcache/super.c                                            |   14 
 drivers/md/bcache/writeback.c                                        |   14 
 drivers/md/bcache/writeback.h                                        |   19 +
 drivers/md/dm-ebs-target.c                                           |    2 
 drivers/md/dm-rq.c                                                   |    3 
 drivers/md/dm.c                                                      |    3 
 drivers/md/md-cluster.c                                              |    1 
 drivers/md/raid5.c                                                   |    3 
 drivers/media/platform/qcom/venus/pm_helpers.c                       |    4 
 drivers/media/platform/rockchip/rga/rga-hw.c                         |   29 +-
 drivers/media/platform/rockchip/rga/rga-hw.h                         |    5 
 drivers/media/platform/vsp1/vsp1_dl.c                                |    2 
 drivers/mfd/arizona-core.c                                           |   18 +
 drivers/mfd/dln2.c                                                   |    4 
 drivers/mmc/host/renesas_sdhi_internal_dmac.c                        |   18 -
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                             |   26 +
 drivers/mtd/nand/raw/fsl_upm.c                                       |    1 
 drivers/mtd/ubi/fastmap-wl.c                                         |    5 
 drivers/mtd/ubi/wl.c                                                 |    3 
 drivers/net/ethernet/marvell/octeontx2/af/common.h                   |    2 
 drivers/net/ethernet/qualcomm/emac/emac.c                            |   17 -
 drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c                  |    1 
 drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c                 |    3 
 drivers/net/wireless/realtek/rtw88/pci.c                             |    9 
 drivers/nvdimm/bus.c                                                 |   16 +
 drivers/nvdimm/security.c                                            |   13 
 drivers/nvme/host/core.c                                             |   15 +
 drivers/nvme/host/fabrics.c                                          |    2 
 drivers/nvme/host/fabrics.h                                          |    3 
 drivers/nvme/host/fc.c                                               |    1 
 drivers/nvme/host/multipath.c                                        |   18 +
 drivers/nvme/host/nvme.h                                             |    1 
 drivers/nvme/host/rdma.c                                             |   10 
 drivers/nvme/host/tcp.c                                              |   15 -
 drivers/pci/ats.c                                                    |   15 +
 drivers/pci/bus.c                                                    |    6 
 drivers/pci/controller/dwc/pcie-qcom.c                               |   41 ++
 drivers/pci/hotplug/acpiphp_glue.c                                   |   14 
 drivers/pci/quirks.c                                                 |    5 
 drivers/pinctrl/pinctrl-ingenic.c                                    |    9 
 drivers/platform/chrome/cros_ec_ishtp.c                              |    4 
 drivers/pwm/pwm-bcm-iproc.c                                          |    9 
 drivers/remoteproc/qcom_q6v5.c                                       |    2 
 drivers/remoteproc/qcom_q6v5_mss.c                                   |   11 
 drivers/rtc/rtc-cpcap.c                                              |    2 
 drivers/rtc/rtc-pl031.c                                              |    1 
 drivers/scsi/lpfc/lpfc_nvmet.c                                       |    2 
 drivers/staging/media/rkisp1/rkisp1-common.h                         |    3 
 drivers/staging/media/rkisp1/rkisp1-isp.c                            |   46 +--
 drivers/staging/media/rkisp1/rkisp1-resizer.c                        |    2 
 drivers/usb/serial/ftdi_sio.c                                        |   37 +-
 drivers/vdpa/vdpa_sim/vdpa_sim.c                                     |    3 
 drivers/watchdog/f71808e_wdt.c                                       |   13 
 drivers/watchdog/rti_wdt.c                                           |    2 
 drivers/watchdog/watchdog_dev.c                                      |   18 -
 fs/btrfs/backref.c                                                   |    2 
 fs/btrfs/ctree.h                                                     |    4 
 fs/btrfs/disk-io.c                                                   |   78 ++++-
 fs/btrfs/disk-io.h                                                   |    2 
 fs/btrfs/extent-io-tree.h                                            |    2 
 fs/btrfs/extent-tree.c                                               |   23 +
 fs/btrfs/extent_io.c                                                 |   18 -
 fs/btrfs/free-space-cache.c                                          |    4 
 fs/btrfs/inode.c                                                     |   20 -
 fs/btrfs/ioctl.c                                                     |   67 +++-
 fs/btrfs/ref-verify.c                                                |    2 
 fs/btrfs/relocation.c                                                |   12 
 fs/btrfs/scrub.c                                                     |    2 
 fs/btrfs/super.c                                                     |   51 ++-
 fs/btrfs/sysfs.c                                                     |    3 
 fs/btrfs/transaction.c                                               |    7 
 fs/btrfs/transaction.h                                               |    2 
 fs/btrfs/tree-log.c                                                  |   43 --
 fs/btrfs/volumes.c                                                   |   48 ++-
 fs/ceph/dir.c                                                        |    4 
 fs/ceph/mds_client.c                                                 |    6 
 fs/cifs/smb2inode.c                                                  |    1 
 fs/cifs/smb2misc.c                                                   |   73 +++--
 fs/cifs/smb2pdu.c                                                    |    2 
 fs/ext2/ialloc.c                                                     |    3 
 fs/f2fs/compress.c                                                   |    2 
 fs/f2fs/data.c                                                       |    4 
 fs/gfs2/bmap.c                                                       |   69 ++--
 fs/gfs2/glock.c                                                      |    4 
 fs/minix/inode.c                                                     |   12 
 fs/minix/itree_v1.c                                                  |   12 
 fs/minix/itree_v2.c                                                  |   13 
 fs/minix/minix.h                                                     |    1 
 fs/nfs/file.c                                                        |   17 -
 fs/nfs/flexfilelayout/flexfilelayout.c                               |   50 ++-
 fs/nfs/nfs4file.c                                                    |    5 
 fs/nfs/nfs4proc.c                                                    |    2 
 fs/nfs/nfs4xdr.c                                                     |    6 
 fs/nfs/pnfs.c                                                        |    4 
 fs/nfs/pnfs.h                                                        |    2 
 fs/ocfs2/ocfs2.h                                                     |    4 
 fs/ocfs2/suballoc.c                                                  |    4 
 fs/ocfs2/super.c                                                     |    4 
 fs/ubifs/journal.c                                                   |   10 
 fs/ufs/super.c                                                       |    2 
 include/crypto/if_alg.h                                              |    4 
 include/linux/fs.h                                                   |   10 
 include/linux/hugetlb.h                                              |    8 
 include/linux/intel-iommu.h                                          |    4 
 include/linux/irq.h                                                  |   13 
 include/linux/libnvdimm.h                                            |    2 
 include/linux/pci-ats.h                                              |    4 
 include/net/sock.h                                                   |    4 
 include/uapi/linux/btrfs.h                                           |   14 
 include/uapi/linux/ndctl.h                                           |    4 
 init/main.c                                                          |   14 
 kernel/irq/manage.c                                                  |   13 
 kernel/irq/pm.c                                                      |    8 
 kernel/kprobes.c                                                     |   24 +
 kernel/kthread.c                                                     |    7 
 kernel/module.c                                                      |   22 +
 kernel/pid.c                                                         |    7 
 kernel/sched/core.c                                                  |   81 +++++
 kernel/sched/cpufreq_schedutil.c                                     |    2 
 kernel/sched/sched.h                                                 |   47 +++
 kernel/trace/ftrace.c                                                |   15 -
 kernel/trace/trace_events.c                                          |    4 
 kernel/trace/trace_hwlat.c                                           |    5 
 lib/devres.c                                                         |   11 
 lib/test_kmod.c                                                      |    2 
 lib/test_lockup.c                                                    |    4 
 mm/cma.c                                                             |   23 -
 mm/hugetlb.c                                                         |   39 +-
 mm/khugepaged.c                                                      |   70 ++--
 mm/memory_hotplug.c                                                  |    5 
 mm/page_counter.c                                                    |    6 
 mm/rmap.c                                                            |    2 
 mm/shuffle.c                                                         |   18 -
 net/appletalk/atalk_proc.c                                           |    2 
 net/compat.c                                                         |    1 
 net/core/sock.c                                                      |   21 +
 net/mac80211/sta_info.c                                              |    2 
 scripts/recordmcount.c                                               |    2 
 security/integrity/ima/ima_policy.c                                  |   15 -
 sound/pci/echoaudio/echoaudio.c                                      |    2 
 sound/pci/hda/patch_realtek.c                                        |    2 
 tools/build/Makefile.feature                                         |    2 
 tools/build/feature/Makefile                                         |    2 
 tools/perf/bench/mem-functions.c                                     |   21 -
 tools/perf/builtin-record.c                                          |    4 
 tools/perf/tests/parse-events.c                                      |   37 ++
 tools/perf/util/evsel.c                                              |    6 
 tools/perf/util/intel-pt-decoder/intel-pt-decoder.c                  |   29 --
 tools/perf/util/parse-events.c                                       |   28 +
 tools/perf/util/parse-events.h                                       |    2 
 tools/perf/util/parse-events.l                                       |   19 -
 tools/perf/util/probe-finder.c                                       |    5 
 tools/testing/selftests/bpf/Makefile                                 |   49 +--
 tools/testing/selftests/bpf/test_progs.c                             |   33 ++
 tools/testing/selftests/bpf/test_progs.h                             |    2 
 tools/testing/selftests/powerpc/ptrace/ptrace-pkey.c                 |   55 +--
 tools/testing/selftests/seccomp/seccomp_bpf.c                        |    5 
 242 files changed, 2041 insertions(+), 868 deletions(-)

Adrian Hunter (2):
perf intel-pt: Fix FUP packet state perf intel-pt: Fix duplicate branch after CBR

Ahmad Fatoum (3):
watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in watchdog_info.options
watchdog: f71808e_wdt: remove use of wrong watchdog_info option
watchdog: f71808e_wdt: clear watchdog timeout occurred flag

Alexandru Ardelean (1):
iio: dac: ad5592r: fix unbalanced mutex unlocks in ad5592r_read_raw()

Anand Jain (1):
btrfs: don't traverse into the seed devices in show_devname

Andreas Gruenbacher (1):
gfs2: Fix refcount leak in gfs2_glock_poke

Andrii Nakryiko (2):
selftests/bpf: Prevent runqslower from racing on building bpftool selftests/bpf: Fix silent Makefile output

Andy Shevchenko (1):
mfd: dln2: Run event handler loop under spinlock

Aneesh Kumar K.V (3):
selftests/powerpc: ptrace-pkey: Rename variables to make it easier to follow code selftests/powerpc: ptrace-pkey: Update the test to mark an invalid pkey correctly selftests/powerpc: ptrace-pkey: Don't update expected UAMOR value

Ansuel Smith (2):
PCI: qcom: Define some PARF params needed for ipq8064 SoC
PCI: qcom: Add support for tx term offset for rev 2.1.0

Anton Blanchard (1):
pseries: Fix 64 bit logical memory block panic

Ashok Raj (1):
PCI/ATS: Add pci_pri_supported() to check device or associated PF

Bob Peterson (1):
gfs2: Never call gfs2_block_zero_range with an open transaction

Boleyn Su (1):
btrfs: check correct variable after allocation in btrfs_backref_iter_alloc

Boris Brezillon (1):
mtd: rawnand: fsl_upm: Remove unused mtd var

ChangSyun Peng (1):
md/raid5: Fix Force reconstruct-write io stuck in degraded raid5

Chao Yu (2):
f2fs: compress: fix to avoid memory leak on cc->cpages
f2fs: compress: fix to update isize when overwriting compressed file

Charles Keepax (1):
mfd: arizona: Ensure 32k clock is put on driver unbind and error

Chen Tao (1):
drm/amdgpu/debugfs: fix memory leak when pm_runtime_get_sync failed

Chengming Zhou (1):
ftrace: Setup correct FTRACE_FL_REGS flags for module

Chris Wilson (1):
drm/i915/gt: Force the GT reset on shutdown

Christian Eggers (1):
dt-bindings: iio: io-channel-mux: Fix compatible string in example code

Christophe Leroy (2):
powerpc/ptdump: Fix build failure in hashpagetable.c
recordmcount: Fix build failure on non arm64

Colin Ian King (3):
iommu/omap: Check for failure of a call to omap_iommu_dump_ctx
Input: sentelic - fix error return when fsp_reg_write fails fs/ufs: avoid potential u32 multiplication overflow

Coly Li (5):
bcache: allocate meta data pages as compound pages
bcache: fix overflow in offset_to_stripe()
bcache: avoid nr_stripes overflow in bcache_device_init()
bcache: fix bio_{start,end}_io_acct with proper device
bcache: use disk_{start,end}_io_acct() to count I/O for bcache device

Cristian Ciocaltea (1):
clk: actions: Fix h_clk for Actions S500 SoC

Dafna Hirschfeld (3):
media: staging: rkisp1: remove macro RKISP1_DIR_SINK_SRC
media: staging: rkisp1: rename macros 'RKISP1_DIR_*' to 'RKISP1_ISP_SD_*'
media: staging: rkisp1: rsz: set default format if the given format is not RKISP1_ISP_SD_SRC

Dan Carpenter (4):
md-cluster: Fix potential error pointer dereference in resize_bitmaps()
vdpa: Fix pointer math bug in vdpasim_get_config() drm/vmwgfx: Use correct vmw_legacy_display_unit pointer drm/vmwgfx: Fix two list_for_each loop exit tests

Dan Williams (1):
libnvdimm: Validate command family indices

Daniel Díaz (1):
tools build feature: Quote CC and CXX for their arguments

David Hildenbrand (1):
mm/shuffle: don't move pages between zones and don't read garbage memmaps

David Sterba (3):
btrfs: allow use of global block reserve for balance item deletion
btrfs: add missing check for nocow and compression inode flags
btrfs: fix messages after changing compression level by remount

Denis Efremov (1):

      drm/panfrost: Use kvfree() to free bo->sgts

Dhananjay Phadke (1):
i2c: iproc: fix race between client unreg and isr

Dilip Kota (1):
x86/tsr: Fix tsc frequency enumeration bug on Lightning Mountain SoC

Dinghao Liu (1):
ALSA: echoaudio: Fix potential Oops in snd_echo_resume()

Eric Biggers (3):
fs/minix: set s_maxbytes correctly
fs/minix: fix block limit check for V1 filesystems fs/minix: remove expected error message in block_to_path()

Eric Dumazet (1):

      octeontx2-af: change (struct qmem)->entry_sz from u8 to u16

Eugeniu Rosca (1):
media: vsp1: dl: Fix NULL pointer dereference on unbind

Ewan D. Milne (1):
scsi: lpfc: nvmet: Avoid hang / use-after-free again when destroying targetport

Filipe Manana (6):
btrfs: only commit the delayed inode when doing a full fsync
btrfs: stop incremening log_batch for the log root tree when syncing log
btrfs: only commit delayed items at fsync if we are logging a directory
btrfs: remove no longer needed use of log_writers for the log root tree
btrfs: fix race between page release and a fast fsync
btrfs: fix memory leaks after failure to lookup checksums during inode logging

Geert Uytterhoeven (3):
clk: hsdk: Fix bad dependency on IOMEM
sh: landisk: Add missing initialization of sh_io_port_base
sh: fault: Fix duplicate printing of "PC:"

Greg Kroah-Hartman (1):

      Linux 5.8.3

Guenter Roeck (2):
genirq: Unlock irq descriptor after errors genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq()

Herbert Xu (3):
crypto: algif_aead - Only wake up when ctx->more is zero
crypto: af_alg - Fix regression on empty requests
crypto: caam - Remove broken arc4 support

Huacai Chen (2):
irqchip/loongson-liointc: Fix misuse of gc->mask_cache
MIPS: CPU#0 is not hotpluggable

Hugh Dickins (3):
khugepaged: collapse_pte_mapped_thp() flush the right range
khugepaged: collapse_pte_mapped_thp() protect the pmd lock
khugepaged: retract_page_tables() remember to test exit

Imre Deak (3):
drm/dp_mst: Fix the DDC I2C device registration of an MST port drm/dp_mst: Fix timeout handling of MST down messages drm/dp_mst: Fix the DDC I2C device unregistration of an MST port

Jacob Pan (2):
iommu/vt-d: Warn on out-of-range invalidation address iommu/vt-d: Disable multiple GPASID-dev bind

Jane Chu (2):
libnvdimm/security: fix a typo
libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr

Jason Gunthorpe (1):
RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah()

Jeff Layton (2):
ceph: set sec_context xattr on symlink creation
ceph: handle zero-length feature mask in session messages

Jeffrey Mitchell (1):
nfs: Fix getxattr kernel panic and memory overflow

Jesper Dangaard Brouer (3):
selftests/bpf: Test_progs indicate to shell on non-actions selftests/bpf: test_progs use another shell exit on non-actions selftests/bpf: test_progs avoid minus shell exit codes

Jia He (1):
mm/memory_hotplug: fix unpaired mem_hotplug_begin/done

Jin Yao (2):
perf evsel: Don't set sample_regs_intr/sample_regs_user for dummy event perf record: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set

Jiri Olsa (1):
perf tools: Fix term parsing for raw syntax

Johan Hovold (2):
USB: serial: ftdi_sio: make process-packet buffer unsigned
USB: serial: ftdi_sio: clean up receive processing

Johannes Berg (1):
mac80211: fix misplaced while instead of if

Johannes Thumshirn (2):
btrfs: pass checksum type via BTRFS_IOC_FS_INFO ioctl
dm: don't call report zones for more than the user requested

John Dorminy (1):
dm ebs: Fix incorrect checking for REQ_OP_FLUSH

Jonathan Marek (2):
clk: qcom: gcc: fix sm8150 GPU and NPU clocks
clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL

Jonathan McDowell (2):
net: ethernet: stmmac: Disable hardware multicast filter
net: stmmac: dwmac1000: provide multicast filter fallback

Josef Bacik (8):
btrfs: open device without device_list_mutex
btrfs: move the chunk_mutex in btrfs_read_chunk_tree
btrfs: return EROFS for BTRFS_FS_STATE_ERROR cases
btrfs: sysfs: use NOFS for device creation
btrfs: don't WARN if we abort a transaction with EROFS
btrfs: don't show full path of bind mounts in subvol=
btrfs: only search for left_info if there is no right_info in try_merge_free_space
btrfs: make sure SB_I_VERSION doesn't get unset by remount

Junxiao Bi (1):
ocfs2: change slot number type s16 to u16

Kai-Heng Feng (1):

      PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken

Kamal Dasu (1):
mtd: rawnand: brcmnand: ECC error handling on EDU transfers

Kamal Heib (1):
RDMA/ipoib: Return void from ipoib_ib_dev_stop()

Kees Cook (4):
pidfd: Add missing sock updates for pidfd_getfd() net/compat: Add missing sock updates for SCM_RIGHTS selftests/seccomp: Set NNP for TSYNC ESRCH flag test
module: Correctly truncate sysfs sections output

Kevin Hao (1):
tracing/hwlat: Honor the tracing_cpumask

Konrad Dybcio (1):
clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk

Krzysztof Kozlowski (1):
s390/Kconfig: add missing ZCRYPT dependency to VFIO_AP

Krzysztof Sobota (1):
watchdog: initialize device before misc_register

Liu Yi L (2):
iommu/vt-d: Handle non-page aligned address
iommu/vt-d: Enforce PASID devTLB field mask

Liu Ying (1):

      drm/imx: imx-ldb: Disable both channels for split mode in enc->disable()

Lorenzo Bianconi (1):
iio: imu: st_lsm6dsx: reset hw ts after resume

Lukas Wunner (1):
driver core: Avoid binding drivers to dead devices

Mansur Alisha Shaik (1):
media: venus: fix multiple encoder crash

Marius Iacob (1):
drm: Added orientation quirk for ASUS tablet model T103HAF

Mark Zhang (2):
RDMA/counter: Only bind user QPs in auto mode
RDMA/counter: Allow manually bind QPs with different pids to same counter

Martin KaFai Lau (1):
bpf: selftests: Restore netns after each test

Masami Hiramatsu (3):
bootconfig: Fix to find the initargs correctly
perf probe: Fix wrong variable warning when the probe point is not found perf probe: Fix memory leakage when the probe point is not found

Max Filippov (2):
xtensa: add missing exclusive access state management
xtensa: fix xtensa_pmu_setup prototype

Michael Ellerman (2):
powerpc: Allow 4224 bytes of stack expansion for the signal frame
powerpc: Fix circular dependency between percpu.h and mmu.h

Michael S. Tsirkin (1):
vdpa_sim: init iommu lock

Michal Koutný (1):
mm/page_counter.c: fix protection usage propagation

Mike Kravetz (2):
hugetlbfs: remove call to huge_pte_alloc without i_mmap_rwsem
cma: don't quit at first error when activating reserved areas

Mike Rapoport (1):
MIPS: SGI-IP27: always enable NUMA in Kconfig

Mikulas Patocka (1):
ext2: fix missing percpu_counter_inc

Ming Lei (1):
dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()

Muchun Song (2):
kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler
kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE

Nicolas Saenz Julienne (1):
clk: bcm2835: Do not use prediv with bcm2711's PLLs

Ondrej Mosnacek (1):

      crypto: algif_aead - fix uninitialized ctx->init

Paul Aurich (1):
cifs: Fix leak when handling lease break for cached root fid

Paul Cercueil (4):
pinctrl: ingenic: Enhance support for IRQ_TYPE_EDGE_BOTH
pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ
MIPS: qi_lb60: Fix routing to audio amplifier
drm/ingenic: Fix incorrect assumption about plane->index

Paul Kocialkowski (2):
media: rockchip: rga: Introduce color fmt macros and refactor CSC mode logic
media: rockchip: rga: Only set output CSC mode for RGB input

Pavel Machek (1):
btrfs: fix return value mixup in btrfs_get_extent

Pawan Gupta (1):
x86/bugs/multihit: Fix mitigation reporting when VMX is not in use

Peter Xu (1):
mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible

Peter Zijlstra (1):
mm: fix kthread_use_mm() vs TLB invalidate

Qais Yousef (2):
sched/uclamp: Protect uclamp fast path code with static key sched/uclamp: Fix a deadlock when enabling uclamp static key

Qiushi Wu (1):
platform/chrome: cros_ec_ishtp: Fix a double-unlock issue

Qu Wenruo (7):
btrfs: free anon block device right after subvolume deletion
btrfs: don't allocate anonymous block device for user invisible roots
btrfs: preallocate anon block device at first phase of snapshot creation
btrfs: relocation: review the call sites which can be interrupted by signal
btrfs: avoid possible signal interruption of btrfs_drop_snapshot() on relocation tree
btrfs: inode: fix NULL pointer dereference if inode doesn't need compression
btrfs: trim: fix underflow in trim length to prevent access beyond device boundary

Rafael J. Wysocki (1):
PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()

Rajat Jain (1):
PCI: Add device even if driver attach failed

Rayagonda Kokatanur (1):
pwm: bcm-iproc: handle clk_get_rate() return

Sagi Grimberg (1):
nvme: fix deadlock in disconnect during scan_work and/or ana_work

Sandeep Raghuraman (1):
drm/amdgpu: Fix bug where DPM is not enabled after hibernate and resume

Scott Mayhew (2):
nfs: ensure correct writeback errors are returned on close()
nfs: nfs_file_write() should check for writeback errors

Sebastian Reichel (1):
rtc: cpcap: fix range

Shaokun Zhang (1):
arm64: perf: Correct the event index in sysfs

Sibi Sankar (4):
arm64: dts: qcom: sc7180: Drop the unused non-MSA SID
remoteproc: qcom: q6v5: Update running state before requesting stop
remoteproc: qcom_q6v5_mss: Validate MBA firmware size before load
remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load

Stafford Horne (1):
openrisc: Fix oops caused when dumping stack

Steve French (2):
smb3: warn on confusing error scenario with sec=krb5
SMB3: Fix mkdir when idsfromsid configured on mount

Steve Longerbeam (2):
gpu: ipu-v3: image-convert: Combine rotate/no-rotate irq handlers
gpu: ipu-v3: image-convert: Wait for all EOFs before completing a tile

Steven Rostedt (VMware) (1):
tracing: Use trace_sched_process_free() instead of exit() for pid tracing

Stylon Wang (1):
drm/amd/display: Fix dmesg warning from setting abm level

Sudeep Holla (1):
rtc: pl031: fix set_alarm by adding back call to alarm_irq_enable

Takashi Iwai (1):
ALSA: hda/realtek - Fix unused variable warning

Tero Kristo (1):
watchdog: rti-wdt: balance pm runtime enable calls

Thomas Gleixner (1):
genirq/affinity: Make affinity setting if activated opt-in

Thomas Hebb (1):
tools build feature: Use CC and CXX from parent

Tiezhu Yang (2):
lib/test_lockup.c: fix return value of test_lockup_init()
test_kmod: avoid potential double free in trigger_config_run_type()

Tom Rix (1):
btrfs: ref-verify: fix memory leak in add_block_entry

Tomi Valkeinen (2):
drm/omap: force runtime PM suspend on system suspend drm/tidss: fix modeset init for DPI panels

Trond Myklebust (1):
NFS: Fix flexfiles read failover

Tyler Hicks (1):
ima: Fail rule parsing when appraise_flag=blacklist is unsupportable

Vincent Duvert (1):
appletalk: Fix atalk_proc_init() return path

Vincent Whitchurch (1):
perf bench mem: Always memset source before memcpy

Vladimir Oltean (1):
devres: keep both device name and resource name in pretty name

Wang Hai (2):
s390/test_unwind: fix possible memleak in test_unwind()
net: qcom/emac: add missed clk_disable_unprepare in error path of emac_clks_phase1_init

Wolfram Sang (2):
i2c: rcar: slave: only send STOP event when we have been addressed
i2c: rcar: avoid race when unregistering slave

Xin Xiong (1):
drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi

Xu Wang (1):
clk: clk-atlas6: fix return value check in atlas6_clk_init()

Yan-Hsuan Chuang (1):
rtw88: pci: disable aspm for platform inter-op with module parameter

Yishai Hadas (1):
IB/uverbs: Set IOVA on IB MR in uverbs layer

Yoshihiro Shimoda (1):
mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete

Zenghui Yu (1):
irqchip/gic-v4.1: Ensure accessing the correct RD when writing INVALLR

Zhang Rui (1):
perf/x86/rapl: Fix missing psys sysfs attributes

Zhihao Cheng (3):
ubi: fastmap: Don't produce the initial next anchor PEB when fastmap is disabled
ubi: fastmap: Free fastmap next anchor peb during detach
ubifs: Fix wrong orphan node deletion in ubifs_jnl_update|rename

hersen wu (1):
drm/amd/display: dchubbub p-state warning during surface planes switch

author maintainer
#1 lore raw
Documentation/admin-guide/hw-vuln/multihit.rst +4 -0
index ba9988d8bce5..140e4cec38c3 100644
@@ -80,6 +80,10 @@ The possible values in this file are:
        - The processor is not vulnerable.
      * - KVM: Mitigation: Split huge pages
        - Software changes mitigate this issue.
+     * - KVM: Mitigation: VMX unsupported
+       - KVM is not vulnerable because Virtual Machine Extensions (VMX) is not supported.
+     * - KVM: Mitigation: VMX disabled
+       - KVM is not vulnerable because Virtual Machine Extensions (VMX) is disabled.
      * - KVM: Vulnerable
        - The processor is vulnerable, but no mitigation enabled
 
Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt +1 -1
index c82794002595..89647d714387 100644
@@ -21,7 +21,7 @@ controller state. The mux controller state is described in
 
 Example:
 	mux: mux-controller {
-		compatible = "mux-gpio";
+		compatible = "gpio-mux";
 		#mux-control-cells = <0>;
 
 		mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
Makefile +1 -1
index 6940f82a15cc..6001ed2b14c3 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 8
-SUBLEVEL = 2
+SUBLEVEL = 3
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm64/boot/dts/qcom/sc7180-idp.dts +1 -1
index 4e9149d82d09..17624d6440df 100644
@@ -312,7 +312,7 @@ &qupv3_id_1 {
 &remoteproc_mpss {
 	status = "okay";
 	compatible = "qcom,sc7180-mss-pil";
-	iommus = <&apps_smmu 0x460 0x1>, <&apps_smmu 0x444 0x3>;
+	iommus = <&apps_smmu 0x461 0x0>, <&apps_smmu 0x444 0x3>;
 	memory-region = <&mba_mem &mpss_mem>;
 };
 
arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi +1 -1
index 70466cc4b405..64fc1bfd66fa 100644
@@ -634,7 +634,7 @@ &mdss_mdp {
 };
 
 &mss_pil {
-	iommus = <&apps_smmu 0x780 0x1>,
+	iommus = <&apps_smmu 0x781 0x0>,
 		 <&apps_smmu 0x724 0x3>;
 };
 
arch/arm64/kernel/perf_event.c +8 -5
index 4d7879484cec..581602413a13 100644
@@ -155,7 +155,7 @@ armv8pmu_events_sysfs_show(struct device *dev,
 
 	pmu_attr = container_of(attr, struct perf_pmu_events_attr, attr);
 
-	return sprintf(page, "event=0x%03llx\n", pmu_attr->id);
+	return sprintf(page, "event=0x%04llx\n", pmu_attr->id);
 }
 
 #define ARMV8_EVENT_ATTR(name, config)						\
@@ -244,10 +244,13 @@ armv8pmu_event_attr_is_visible(struct kobject *kobj,
 	    test_bit(pmu_attr->id, cpu_pmu->pmceid_bitmap))
 		return attr->mode;
 
-	pmu_attr->id -= ARMV8_PMUV3_EXT_COMMON_EVENT_BASE;
-	if (pmu_attr->id < ARMV8_PMUV3_MAX_COMMON_EVENTS &&
-	    test_bit(pmu_attr->id, cpu_pmu->pmceid_ext_bitmap))
-		return attr->mode;
+	if (pmu_attr->id >= ARMV8_PMUV3_EXT_COMMON_EVENT_BASE) {
+		u64 id = pmu_attr->id - ARMV8_PMUV3_EXT_COMMON_EVENT_BASE;
+
+		if (id < ARMV8_PMUV3_MAX_COMMON_EVENTS &&
+		    test_bit(id, cpu_pmu->pmceid_ext_bitmap))
+			return attr->mode;
+	}
 
 	return 0;
 }
arch/mips/Kconfig +1 -0
index 6fee1a133e9d..a7e40bb1e5bc 100644
@@ -678,6 +678,7 @@ config SGI_IP27
 	select SYS_SUPPORTS_NUMA
 	select SYS_SUPPORTS_SMP
 	select MIPS_L1_CACHE_SHIFT_7
+	select NUMA
 	help
 	  This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
 	  workstations.  To compile a Linux kernel that runs on these, say Y
arch/mips/boot/dts/ingenic/qi_lb60.dts +1 -1
index 7a371d9c5a33..eda37fb516f0 100644
@@ -69,7 +69,7 @@ sound {
 			"Speaker", "OUTL",
 			"Speaker", "OUTR",
 			"INL", "LOUT",
-			"INL", "ROUT";
+			"INR", "ROUT";
 
 		simple-audio-card,aux-devs = <&amp>;
 
arch/mips/kernel/topology.c +1 -1
index cd3e1f82e1a5..08ad6371fbe0 100644
@@ -20,7 +20,7 @@ static int __init topology_init(void)
 	for_each_present_cpu(i) {
 		struct cpu *c = &per_cpu(cpu_devices, i);
 
-		c->hotpluggable = 1;
+		c->hotpluggable = !!i;
 		ret = register_cpu(c, i);
 		if (ret)
 			printk(KERN_WARNING "topology_init: register_cpu %d "
arch/openrisc/kernel/stacktrace.c +16 -2
index 43f140a28bc7..54d38809e22c 100644
@@ -13,6 +13,7 @@
 #include <linux/export.h>
 #include <linux/sched.h>
 #include <linux/sched/debug.h>
+#include <linux/sched/task_stack.h>
 #include <linux/stacktrace.h>
 
 #include <asm/processor.h>
@@ -68,12 +69,25 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
 {
 	unsigned long *sp = NULL;
 
+	if (!try_get_task_stack(tsk))
+		return;
+
 	if (tsk == current)
 		sp = (unsigned long *) &sp;
-	else
-		sp = (unsigned long *) KSTK_ESP(tsk);
+	else {
+		unsigned long ksp;
+
+		/* Locate stack from kernel context */
+		ksp = task_thread_info(tsk)->ksp;
+		ksp += STACK_FRAME_OVERHEAD;	/* redzone */
+		ksp += sizeof(struct pt_regs);
+
+		sp = (unsigned long *) ksp;
+	}
 
 	unwind_stack(trace, sp, save_stack_address_nosched);
+
+	put_task_stack(tsk);
 }
 EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
 
arch/powerpc/include/asm/percpu.h +2 -2
index dce863a7635c..8e5b7d0b851c 100644
@@ -10,8 +10,6 @@
 
 #ifdef CONFIG_SMP
 
-#include <asm/paca.h>
-
 #define __my_cpu_offset local_paca->data_offset
 
 #endif /* CONFIG_SMP */
@@ -19,4 +17,6 @@
 
 #include <asm-generic/percpu.h>
 
+#include <asm/paca.h>
+
 #endif /* _ASM_POWERPC_PERCPU_H_ */
arch/powerpc/mm/fault.c +5 -2
index 641fc5f3d7dd..3ebb1792e636 100644
@@ -267,6 +267,9 @@ static bool bad_kernel_fault(struct pt_regs *regs, unsigned long error_code,
 	return false;
 }
 
+// This comes from 64-bit struct rt_sigframe + __SIGNAL_FRAMESIZE
+#define SIGFRAME_MAX_SIZE	(4096 + 128)
+
 static bool bad_stack_expansion(struct pt_regs *regs, unsigned long address,
 				struct vm_area_struct *vma, unsigned int flags,
 				bool *must_retry)
@@ -274,7 +277,7 @@ static bool bad_stack_expansion(struct pt_regs *regs, unsigned long address,
 	/*
 	 * N.B. The POWER/Open ABI allows programs to access up to
 	 * 288 bytes below the stack pointer.
-	 * The kernel signal delivery code writes up to about 1.5kB
+	 * The kernel signal delivery code writes a bit over 4KB
 	 * below the stack pointer (r1) before decrementing it.
 	 * The exec code can write slightly over 640kB to the stack
 	 * before setting the user r1.  Thus we allow the stack to
@@ -299,7 +302,7 @@ static bool bad_stack_expansion(struct pt_regs *regs, unsigned long address,
 		 * between the last mapped region and the stack will
 		 * expand the stack rather than segfaulting.
 		 */
-		if (address + 2048 >= uregs->gpr[1])
+		if (address + SIGFRAME_MAX_SIZE >= uregs->gpr[1])
 			return false;
 
 		if ((flags & FAULT_FLAG_WRITE) && (flags & FAULT_FLAG_USER) &&
arch/powerpc/mm/ptdump/hashpagetable.c +1 -1
index a2c33efc7ce8..5b8bd34cd3a1 100644
@@ -258,7 +258,7 @@ static int pseries_find(unsigned long ea, int psize, bool primary, u64 *v, u64 *
 	for (i = 0; i < HPTES_PER_GROUP; i += 4, hpte_group += 4) {
 		lpar_rc = plpar_pte_read_4(0, hpte_group, (void *)ptes);
 
-		if (lpar_rc != H_SUCCESS)
+		if (lpar_rc)
 			continue;
 		for (j = 0; j < 4; j++) {
 			if (HPTE_V_COMPARE(ptes[j].v, want_v) &&
arch/powerpc/platforms/pseries/hotplug-memory.c +1 -1
index 5ace2f9a277e..8b748690dac2 100644
@@ -27,7 +27,7 @@ static bool rtas_hp_event;
 unsigned long pseries_memory_block_size(void)
 {
 	struct device_node *np;
-	unsigned int memblock_size = MIN_MEMORY_BLOCK_SIZE;
+	u64 memblock_size = MIN_MEMORY_BLOCK_SIZE;
 	struct resource r;
 
 	np = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
arch/s390/Kconfig +1 -0
index c7d7ede6300c..4907a5149a8a 100644
@@ -769,6 +769,7 @@ config VFIO_AP
 	def_tristate n
 	prompt "VFIO support for AP devices"
 	depends on S390_AP_IOMMU && VFIO_MDEV_DEVICE && KVM
+	depends on ZCRYPT
 	help
 		This driver grants access to Adjunct Processor (AP) devices
 		via the VFIO mediated device interface.
arch/s390/lib/test_unwind.c +1 -0
index 32b7a30b2485..b0b12b46bc57 100644
@@ -63,6 +63,7 @@ static noinline int test_unwind(struct task_struct *task, struct pt_regs *regs,
 			break;
 		if (state.reliable && !addr) {
 			pr_err("unwind state reliable but addr is 0\n");
+			kfree(bt);
 			return -EINVAL;
 		}
 		sprint_symbol(sym, addr);
arch/sh/boards/mach-landisk/setup.c +3 -0
index 16b4d8b0bb85..2c44b94f82fb 100644
@@ -82,6 +82,9 @@ device_initcall(landisk_devices_setup);
 
 static void __init landisk_setup(char **cmdline_p)
 {
+	/* I/O port identity mapping */
+	__set_io_port_base(0);
+
 	/* LED ON */
 	__raw_writeb(__raw_readb(PA_LED) | 0x03, PA_LED);
 
arch/sh/mm/fault.c +0 -1
index fbe1f2fe9a8c..acd1c7599498 100644
@@ -208,7 +208,6 @@ show_fault_oops(struct pt_regs *regs, unsigned long address)
 	if (!oops_may_print())
 		return;
 
-	printk(KERN_ALERT "PC:");
 	pr_alert("BUG: unable to handle kernel %s at %08lx\n",
 		 address < PAGE_SIZE ? "NULL pointer dereference"
 				     : "paging request",
arch/x86/events/rapl.c +1 -1
index 0f2bf59f4354..51ff9a3618c9 100644
@@ -665,7 +665,7 @@ static const struct attribute_group *rapl_attr_update[] = {
 	&rapl_events_pkg_group,
 	&rapl_events_ram_group,
 	&rapl_events_gpu_group,
-	&rapl_events_gpu_group,
+	&rapl_events_psys_group,
 	NULL,
 };
 
arch/x86/kernel/apic/vector.c +4 -0
index 7649da2478d8..dae32d948bf2 100644
@@ -560,6 +560,10 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq,
 		 * as that can corrupt the affinity move state.
 		 */
 		irqd_set_handle_enforce_irqctx(irqd);
+
+		/* Don't invoke affinity setter on deactivated interrupts */
+		irqd_set_affinity_on_activate(irqd);
+
 		/*
 		 * Legacy vectors are already assigned when the IOAPIC
 		 * takes them over. They stay on the same vector. This is
arch/x86/kernel/cpu/bugs.c +7 -1
index 0b71970d2d3d..b0802d45abd3 100644
@@ -31,6 +31,7 @@
 #include <asm/intel-family.h>
 #include <asm/e820/api.h>
 #include <asm/hypervisor.h>
+#include <asm/tlbflush.h>
 
 #include "cpu.h"
 
@@ -1556,7 +1557,12 @@ static ssize_t l1tf_show_state(char *buf)
 
 static ssize_t itlb_multihit_show_state(char *buf)
 {
-	if (itlb_multihit_kvm_mitigation)
+	if (!boot_cpu_has(X86_FEATURE_MSR_IA32_FEAT_CTL) ||
+	    !boot_cpu_has(X86_FEATURE_VMX))
+		return sprintf(buf, "KVM: Mitigation: VMX unsupported\n");
+	else if (!(cr4_read_shadow() & X86_CR4_VMXE))
+		return sprintf(buf, "KVM: Mitigation: VMX disabled\n");
+	else if (itlb_multihit_kvm_mitigation)
 		return sprintf(buf, "KVM: Mitigation: Split huge pages\n");
 	else
 		return sprintf(buf, "KVM: Vulnerable\n");
arch/x86/kernel/tsc_msr.c +7 -2
index 4fec6f3a1858..a654a9b4b77c 100644
@@ -133,10 +133,15 @@ static const struct freq_desc freq_desc_ann = {
 	.mask = 0x0f,
 };
 
-/* 24 MHz crystal? : 24 * 13 / 4 = 78 MHz */
+/*
+ * 24 MHz crystal? : 24 * 13 / 4 = 78 MHz
+ * Frequency step for Lightning Mountain SoC is fixed to 78 MHz,
+ * so all the frequency entries are 78000.
+ */
 static const struct freq_desc freq_desc_lgm = {
 	.use_msr_plat = true,
-	.freqs = { 78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000 },
+	.freqs = { 78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000,
+		   78000, 78000, 78000, 78000, 78000, 78000, 78000, 78000 },
 	.mask = 0x0f,
 };
 
arch/xtensa/include/asm/thread_info.h +4 -0
index f092cc3f4e66..956d4d47c6cd 100644
@@ -55,6 +55,10 @@ struct thread_info {
 	mm_segment_t		addr_limit;	/* thread address space */
 
 	unsigned long		cpenable;
+#if XCHAL_HAVE_EXCLUSIVE
+	/* result of the most recent exclusive store */
+	unsigned long		atomctl8;
+#endif
 
 	/* Allocate storage for extra user states and coprocessor states. */
 #if XTENSA_HAVE_COPROCESSORS
arch/xtensa/kernel/asm-offsets.c +3 -0
index 33a257b33723..dc5c83cad9be 100644
@@ -93,6 +93,9 @@ int main(void)
 	DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra));
 	DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));
 	DEFINE(THREAD_CPENABLE, offsetof (struct thread_info, cpenable));
+#if XCHAL_HAVE_EXCLUSIVE
+	DEFINE(THREAD_ATOMCTL8, offsetof (struct thread_info, atomctl8));
+#endif
 #if XTENSA_HAVE_COPROCESSORS
 	DEFINE(THREAD_XTREGS_CP0, offsetof(struct thread_info, xtregs_cp.cp0));
 	DEFINE(THREAD_XTREGS_CP1, offsetof(struct thread_info, xtregs_cp.cp1));
arch/xtensa/kernel/entry.S +11 -0
index 98515c24d9b2..703cf6205efe 100644
@@ -374,6 +374,11 @@ common_exception:
 	s32i	a2, a1, PT_LCOUNT
 #endif
 
+#if XCHAL_HAVE_EXCLUSIVE
+	/* Clear exclusive access monitor set by interrupted code */
+	clrex
+#endif
+
 	/* It is now save to restore the EXC_TABLE_FIXUP variable. */
 
 	rsr	a2, exccause
@@ -2020,6 +2025,12 @@ ENTRY(_switch_to)
 	s32i	a3, a4, THREAD_CPENABLE
 #endif
 
+#if XCHAL_HAVE_EXCLUSIVE
+	l32i	a3, a5, THREAD_ATOMCTL8
+	getex	a3
+	s32i	a3, a4, THREAD_ATOMCTL8
+#endif
+
 	/* Flush register file. */
 
 	spill_registers_kernel
arch/xtensa/kernel/perf_event.c +1 -1
index 99fcd63ce597..a0d05c8598d0 100644
@@ -399,7 +399,7 @@ static struct pmu xtensa_pmu = {
 	.read = xtensa_pmu_read,
 };
 
-static int xtensa_pmu_setup(int cpu)
+static int xtensa_pmu_setup(unsigned int cpu)
 {
 	unsigned i;
 
crypto/af_alg.c +8 -3
index 28fc323e3fe3..5882ed46f1ad 100644
@@ -635,6 +635,7 @@ void af_alg_pull_tsgl(struct sock *sk, size_t used, struct scatterlist *dst,
 
 	if (!ctx->used)
 		ctx->merge = 0;
+	ctx->init = ctx->more;
 }
 EXPORT_SYMBOL_GPL(af_alg_pull_tsgl);
 
@@ -734,9 +735,10 @@ EXPORT_SYMBOL_GPL(af_alg_wmem_wakeup);
  *
  * @sk socket of connection to user space
  * @flags If MSG_DONTWAIT is set, then only report if function would sleep
+ * @min Set to minimum request size if partial requests are allowed.
  * @return 0 when writable memory is available, < 0 upon error
  */
-int af_alg_wait_for_data(struct sock *sk, unsigned flags)
+int af_alg_wait_for_data(struct sock *sk, unsigned flags, unsigned min)
 {
 	DEFINE_WAIT_FUNC(wait, woken_wake_function);
 	struct alg_sock *ask = alg_sk(sk);
@@ -754,7 +756,9 @@ int af_alg_wait_for_data(struct sock *sk, unsigned flags)
 		if (signal_pending(current))
 			break;
 		timeout = MAX_SCHEDULE_TIMEOUT;
-		if (sk_wait_event(sk, &timeout, (ctx->used || !ctx->more),
+		if (sk_wait_event(sk, &timeout,
+				  ctx->init && (!ctx->more ||
+						(min && ctx->used >= min)),
 				  &wait)) {
 			err = 0;
 			break;
@@ -843,10 +847,11 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
 	}
 
 	lock_sock(sk);
-	if (!ctx->more && ctx->used) {
+	if (ctx->init && (init || !ctx->more)) {
 		err = -EINVAL;
 		goto unlock;
 	}
+	ctx->init = true;
 
 	if (init) {
 		ctx->enc = enc;
crypto/algif_aead.c +2 -8
index 0ae000a61c7f..43c6aa784858 100644
@@ -106,8 +106,8 @@ static int _aead_recvmsg(struct socket *sock, struct msghdr *msg,
 	size_t usedpages = 0;		/* [in]  RX bufs to be used from user */
 	size_t processed = 0;		/* [in]  TX bufs to be consumed */
 
-	if (!ctx->used) {
-		err = af_alg_wait_for_data(sk, flags);
+	if (!ctx->init || ctx->more) {
+		err = af_alg_wait_for_data(sk, flags, 0);
 		if (err)
 			return err;
 	}
@@ -558,12 +558,6 @@ static int aead_accept_parent_nokey(void *private, struct sock *sk)
 
 	INIT_LIST_HEAD(&ctx->tsgl_list);
 	ctx->len = len;
-	ctx->used = 0;
-	atomic_set(&ctx->rcvused, 0);
-	ctx->more = 0;
-	ctx->merge = 0;
-	ctx->enc = 0;
-	ctx->aead_assoclen = 0;
 	crypto_init_wait(&ctx->wait);
 
 	ask->private = ctx;
crypto/algif_skcipher.c +3 -8
index ec5567c87a6d..81c4022285a7 100644
@@ -61,8 +61,8 @@ static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg,
 	int err = 0;
 	size_t len = 0;
 
-	if (!ctx->used) {
-		err = af_alg_wait_for_data(sk, flags);
+	if (!ctx->init || (ctx->more && ctx->used < bs)) {
+		err = af_alg_wait_for_data(sk, flags, bs);
 		if (err)
 			return err;
 	}
@@ -333,6 +333,7 @@ static int skcipher_accept_parent_nokey(void *private, struct sock *sk)
 	ctx = sock_kmalloc(sk, len, GFP_KERNEL);
 	if (!ctx)
 		return -ENOMEM;
+	memset(ctx, 0, len);
 
 	ctx->iv = sock_kmalloc(sk, crypto_skcipher_ivsize(tfm),
 			       GFP_KERNEL);
@@ -340,16 +341,10 @@ static int skcipher_accept_parent_nokey(void *private, struct sock *sk)
 		sock_kfree_s(sk, ctx, len);
 		return -ENOMEM;
 	}
-
 	memset(ctx->iv, 0, crypto_skcipher_ivsize(tfm));
 
 	INIT_LIST_HEAD(&ctx->tsgl_list);
 	ctx->len = len;
-	ctx->used = 0;
-	atomic_set(&ctx->rcvused, 0);
-	ctx->more = 0;
-	ctx->merge = 0;
-	ctx->enc = 0;
 	crypto_init_wait(&ctx->wait);
 
 	ask->private = ctx;
drivers/acpi/nfit/core.c +9 -2
index 7c138a4edc03..1f72ce1a782b 100644
@@ -1823,6 +1823,7 @@ static void populate_shutdown_status(struct nfit_mem *nfit_mem)
 static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
 		struct nfit_mem *nfit_mem, u32 device_handle)
 {
+	struct nvdimm_bus_descriptor *nd_desc = &acpi_desc->nd_desc;
 	struct acpi_device *adev, *adev_dimm;
 	struct device *dev = acpi_desc->dev;
 	unsigned long dsm_mask, label_mask;
@@ -1834,6 +1835,7 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
 	/* nfit test assumes 1:1 relationship between commands and dsms */
 	nfit_mem->dsm_mask = acpi_desc->dimm_cmd_force_en;
 	nfit_mem->family = NVDIMM_FAMILY_INTEL;
+	set_bit(NVDIMM_FAMILY_INTEL, &nd_desc->dimm_family_mask);
 
 	if (dcr->valid_fields & ACPI_NFIT_CONTROL_MFG_INFO_VALID)
 		sprintf(nfit_mem->id, "%04x-%02x-%04x-%08x",
@@ -1886,10 +1888,13 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
 	 * Note, that checking for function0 (bit0) tells us if any commands
 	 * are reachable through this GUID.
 	 */
+	clear_bit(NVDIMM_FAMILY_INTEL, &nd_desc->dimm_family_mask);
 	for (i = 0; i <= NVDIMM_FAMILY_MAX; i++)
-		if (acpi_check_dsm(adev_dimm->handle, to_nfit_uuid(i), 1, 1))
+		if (acpi_check_dsm(adev_dimm->handle, to_nfit_uuid(i), 1, 1)) {
+			set_bit(i, &nd_desc->dimm_family_mask);
 			if (family < 0 || i == default_dsm_family)
 				family = i;
+		}
 
 	/* limit the supported commands to those that are publicly documented */
 	nfit_mem->family = family;
@@ -2153,6 +2158,9 @@ static void acpi_nfit_init_dsms(struct acpi_nfit_desc *acpi_desc)
 
 	nd_desc->cmd_mask = acpi_desc->bus_cmd_force_en;
 	nd_desc->bus_dsm_mask = acpi_desc->bus_nfit_cmd_force_en;
+	set_bit(ND_CMD_CALL, &nd_desc->cmd_mask);
+	set_bit(NVDIMM_BUS_FAMILY_NFIT, &nd_desc->bus_family_mask);
+
 	adev = to_acpi_dev(acpi_desc);
 	if (!adev)
 		return;
@@ -2160,7 +2168,6 @@ static void acpi_nfit_init_dsms(struct acpi_nfit_desc *acpi_desc)
 	for (i = ND_CMD_ARS_CAP; i <= ND_CMD_CLEAR_ERROR; i++)
 		if (acpi_check_dsm(adev->handle, guid, 1, 1ULL << i))
 			set_bit(i, &nd_desc->cmd_mask);
-	set_bit(ND_CMD_CALL, &nd_desc->cmd_mask);
 
 	dsm_mask =
 		(1 << ND_CMD_ARS_CAP) |
drivers/acpi/nfit/nfit.h +0 -1
index f5525f8bb770..5c5e7ebba8dc 100644
@@ -33,7 +33,6 @@
 		| ACPI_NFIT_MEM_RESTORE_FAILED | ACPI_NFIT_MEM_FLUSH_FAILED \
 		| ACPI_NFIT_MEM_NOT_ARMED | ACPI_NFIT_MEM_MAP_FAILED)
 
-#define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_HYPERV
 #define NVDIMM_CMD_MAX 31
 
 #define NVDIMM_STANDARD_CMDMASK \
drivers/base/dd.c +3 -1
index e8628716ea34..18e81d65d32c 100644
@@ -844,7 +844,9 @@ static int __device_attach(struct device *dev, bool allow_async)
 	int ret = 0;
 
 	device_lock(dev);
-	if (dev->driver) {
+	if (dev->p->dead) {
+		goto out_unlock;
+	} else if (dev->driver) {
 		if (device_is_bound(dev)) {
 			ret = 1;
 			goto out_unlock;
drivers/clk/Kconfig +1 -1
index 326f91b2dda9..5f952e111ab5 100644
@@ -50,7 +50,7 @@ source "drivers/clk/versatile/Kconfig"
 config CLK_HSDK
 	bool "PLL Driver for HSDK platform"
 	depends on OF || COMPILE_TEST
-	depends on IOMEM
+	depends on HAS_IOMEM
 	help
 	  This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs
 	  control.
drivers/clk/actions/owl-s500.c +1 -1
index e2007ac4d235..0eb83a0b70bc 100644
@@ -183,7 +183,7 @@ static OWL_GATE(timer_clk, "timer_clk", "hosc", CMU_DEVCLKEN1, 27, 0, 0);
 static OWL_GATE(hdmi_clk, "hdmi_clk", "hosc", CMU_DEVCLKEN1, 3, 0, 0);
 
 /* divider clocks */
-static OWL_DIVIDER(h_clk, "h_clk", "ahbprevdiv_clk", CMU_BUSCLK1, 12, 2, NULL, 0, 0);
+static OWL_DIVIDER(h_clk, "h_clk", "ahbprediv_clk", CMU_BUSCLK1, 12, 2, NULL, 0, 0);
 static OWL_DIVIDER(rmii_ref_clk, "rmii_ref_clk", "ethernet_pll_clk", CMU_ETHERNETPLL, 1, 1, rmii_ref_div_table, 0, 0);
 
 /* factor clocks */
drivers/clk/bcm/clk-bcm2835.c +21 -4
index 6bb7efa12037..011802f1a6df 100644
@@ -314,6 +314,7 @@ struct bcm2835_cprman {
 	struct device *dev;
 	void __iomem *regs;
 	spinlock_t regs_lock; /* spinlock for all clocks */
+	unsigned int soc;
 
 	/*
 	 * Real names of cprman clock parents looked up through
@@ -525,6 +526,20 @@ static int bcm2835_pll_is_on(struct clk_hw *hw)
 		A2W_PLL_CTRL_PRST_DISABLE;
 }
 
+static u32 bcm2835_pll_get_prediv_mask(struct bcm2835_cprman *cprman,
+				       const struct bcm2835_pll_data *data)
+{
+	/*
+	 * On BCM2711 there isn't a pre-divisor available in the PLL feedback
+	 * loop. Bits 13:14 of ANA1 (PLLA,PLLB,PLLC,PLLD) have been re-purposed
+	 * for to for VCO RANGE bits.
+	 */
+	if (cprman->soc & SOC_BCM2711)
+		return 0;
+
+	return data->ana->fb_prediv_mask;
+}
+
 static void bcm2835_pll_choose_ndiv_and_fdiv(unsigned long rate,
 					     unsigned long parent_rate,
 					     u32 *ndiv, u32 *fdiv)
@@ -582,7 +597,7 @@ static unsigned long bcm2835_pll_get_rate(struct clk_hw *hw,
 	ndiv = (a2wctrl & A2W_PLL_CTRL_NDIV_MASK) >> A2W_PLL_CTRL_NDIV_SHIFT;
 	pdiv = (a2wctrl & A2W_PLL_CTRL_PDIV_MASK) >> A2W_PLL_CTRL_PDIV_SHIFT;
 	using_prediv = cprman_read(cprman, data->ana_reg_base + 4) &
-		data->ana->fb_prediv_mask;
+		       bcm2835_pll_get_prediv_mask(cprman, data);
 
 	if (using_prediv) {
 		ndiv *= 2;
@@ -665,6 +680,7 @@ static int bcm2835_pll_set_rate(struct clk_hw *hw,
 	struct bcm2835_pll *pll = container_of(hw, struct bcm2835_pll, hw);
 	struct bcm2835_cprman *cprman = pll->cprman;
 	const struct bcm2835_pll_data *data = pll->data;
+	u32 prediv_mask = bcm2835_pll_get_prediv_mask(cprman, data);
 	bool was_using_prediv, use_fb_prediv, do_ana_setup_first;
 	u32 ndiv, fdiv, a2w_ctl;
 	u32 ana[4];
@@ -682,7 +698,7 @@ static int bcm2835_pll_set_rate(struct clk_hw *hw,
 	for (i = 3; i >= 0; i--)
 		ana[i] = cprman_read(cprman, data->ana_reg_base + i * 4);
 
-	was_using_prediv = ana[1] & data->ana->fb_prediv_mask;
+	was_using_prediv = ana[1] & prediv_mask;
 
 	ana[0] &= ~data->ana->mask0;
 	ana[0] |= data->ana->set0;
@@ -692,10 +708,10 @@ static int bcm2835_pll_set_rate(struct clk_hw *hw,
 	ana[3] |= data->ana->set3;
 
 	if (was_using_prediv && !use_fb_prediv) {
-		ana[1] &= ~data->ana->fb_prediv_mask;
+		ana[1] &= ~prediv_mask;
 		do_ana_setup_first = true;
 	} else if (!was_using_prediv && use_fb_prediv) {
-		ana[1] |= data->ana->fb_prediv_mask;
+		ana[1] |= prediv_mask;
 		do_ana_setup_first = false;
 	} else {
 		do_ana_setup_first = true;
@@ -2238,6 +2254,7 @@ static int bcm2835_clk_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, cprman);
 
 	cprman->onecell.num = asize;
+	cprman->soc = pdata->soc;
 	hws = cprman->onecell.hws;
 
 	for (i = 0; i < asize; i++) {
drivers/clk/qcom/clk-alpha-pll.c +0 -2
index 9b2dfa08acb2..1325139173c9 100644
@@ -56,7 +56,6 @@
 #define PLL_STATUS(p)		((p)->offset + (p)->regs[PLL_OFF_STATUS])
 #define PLL_OPMODE(p)		((p)->offset + (p)->regs[PLL_OFF_OPMODE])
 #define PLL_FRAC(p)		((p)->offset + (p)->regs[PLL_OFF_FRAC])
-#define PLL_CAL_VAL(p)		((p)->offset + (p)->regs[PLL_OFF_CAL_VAL])
 
 const u8 clk_alpha_pll_regs[][PLL_OFF_MAX_REGS] = {
 	[CLK_ALPHA_PLL_TYPE_DEFAULT] =  {
@@ -115,7 +114,6 @@ const u8 clk_alpha_pll_regs[][PLL_OFF_MAX_REGS] = {
 		[PLL_OFF_STATUS] = 0x30,
 		[PLL_OFF_OPMODE] = 0x38,
 		[PLL_OFF_ALPHA_VAL] = 0x40,
-		[PLL_OFF_CAL_VAL] = 0x44,
 	},
 	[CLK_ALPHA_PLL_TYPE_LUCID] =  {
 		[PLL_OFF_L_VAL] = 0x04,
drivers/clk/qcom/gcc-sdm660.c +3 -0
index bf5730832ef3..c6fb57cd576f 100644
@@ -1715,6 +1715,9 @@ static struct clk_branch gcc_mss_cfg_ahb_clk = {
 
 static struct clk_branch gcc_mss_mnoc_bimc_axi_clk = {
 	.halt_reg = 0x8a004,
+	.halt_check = BRANCH_HALT,
+	.hwcg_reg = 0x8a004,
+	.hwcg_bit = 1,
 	.clkr = {
 		.enable_reg = 0x8a004,
 		.enable_mask = BIT(0),
drivers/clk/qcom/gcc-sm8150.c +6 -2
index 72524cf11048..55e9d6d75a0c 100644
@@ -1617,6 +1617,7 @@ static struct clk_branch gcc_gpu_cfg_ahb_clk = {
 };
 
 static struct clk_branch gcc_gpu_gpll0_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x52004,
 		.enable_mask = BIT(15),
@@ -1632,13 +1633,14 @@ static struct clk_branch gcc_gpu_gpll0_clk_src = {
 };
 
 static struct clk_branch gcc_gpu_gpll0_div_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x52004,
 		.enable_mask = BIT(16),
 		.hw.init = &(struct clk_init_data){
 			.name = "gcc_gpu_gpll0_div_clk_src",
 			.parent_hws = (const struct clk_hw *[]){
-				&gcc_gpu_gpll0_clk_src.clkr.hw },
+				&gpll0_out_even.clkr.hw },
 			.num_parents = 1,
 			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
@@ -1729,6 +1731,7 @@ static struct clk_branch gcc_npu_cfg_ahb_clk = {
 };
 
 static struct clk_branch gcc_npu_gpll0_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x52004,
 		.enable_mask = BIT(18),
@@ -1744,13 +1747,14 @@ static struct clk_branch gcc_npu_gpll0_clk_src = {
 };
 
 static struct clk_branch gcc_npu_gpll0_div_clk_src = {
+	.halt_check = BRANCH_HALT_SKIP,
 	.clkr = {
 		.enable_reg = 0x52004,
 		.enable_mask = BIT(19),
 		.hw.init = &(struct clk_init_data){
 			.name = "gcc_npu_gpll0_div_clk_src",
 			.parent_hws = (const struct clk_hw *[]){
-				&gcc_npu_gpll0_clk_src.clkr.hw },
+				&gpll0_out_even.clkr.hw },
 			.num_parents = 1,
 			.flags = CLK_SET_RATE_PARENT,
 			.ops = &clk_branch2_ops,
drivers/clk/sirf/clk-atlas6.c +1 -1
index c84d5bab7ac2..b95483bb6a5e 100644
@@ -135,7 +135,7 @@ static void __init atlas6_clk_init(struct device_node *np)
 
 	for (i = pll1; i < maxclk; i++) {
 		atlas6_clks[i] = clk_register(NULL, atlas6_clk_hw_array[i]);
-		BUG_ON(!atlas6_clks[i]);
+		BUG_ON(IS_ERR(atlas6_clks[i]));
 	}
 	clk_register_clkdev(atlas6_clks[cpu], NULL, "cpu");
 	clk_register_clkdev(atlas6_clks[io],  NULL, "io");
drivers/crypto/caam/caamalg.c +0 -29
index bf90a4fcabd1..8149ac4d6ef2 100644
@@ -810,12 +810,6 @@ static int ctr_skcipher_setkey(struct crypto_skcipher *skcipher,
 	return skcipher_setkey(skcipher, key, keylen, ctx1_iv_off);
 }
 
-static int arc4_skcipher_setkey(struct crypto_skcipher *skcipher,
-				const u8 *key, unsigned int keylen)
-{
-	return skcipher_setkey(skcipher, key, keylen, 0);
-}
-
 static int des_skcipher_setkey(struct crypto_skcipher *skcipher,
 			       const u8 *key, unsigned int keylen)
 {
@@ -1967,21 +1961,6 @@ static struct caam_skcipher_alg driver_algs[] = {
 		},
 		.caam.class1_alg_type = OP_ALG_ALGSEL_3DES | OP_ALG_AAI_ECB,
 	},
-	{
-		.skcipher = {
-			.base = {
-				.cra_name = "ecb(arc4)",
-				.cra_driver_name = "ecb-arc4-caam",
-				.cra_blocksize = ARC4_BLOCK_SIZE,
-			},
-			.setkey = arc4_skcipher_setkey,
-			.encrypt = skcipher_encrypt,
-			.decrypt = skcipher_decrypt,
-			.min_keysize = ARC4_MIN_KEY_SIZE,
-			.max_keysize = ARC4_MAX_KEY_SIZE,
-		},
-		.caam.class1_alg_type = OP_ALG_ALGSEL_ARC4 | OP_ALG_AAI_ECB,
-	},
 };
 
 static struct caam_aead_alg driver_aeads[] = {
@@ -3457,7 +3436,6 @@ int caam_algapi_init(struct device *ctrldev)
 	struct caam_drv_private *priv = dev_get_drvdata(ctrldev);
 	int i = 0, err = 0;
 	u32 aes_vid, aes_inst, des_inst, md_vid, md_inst, ccha_inst, ptha_inst;
-	u32 arc4_inst;
 	unsigned int md_limit = SHA512_DIGEST_SIZE;
 	bool registered = false, gcm_support;
 
@@ -3477,8 +3455,6 @@ int caam_algapi_init(struct device *ctrldev)
 			   CHA_ID_LS_DES_SHIFT;
 		aes_inst = cha_inst & CHA_ID_LS_AES_MASK;
 		md_inst = (cha_inst & CHA_ID_LS_MD_MASK) >> CHA_ID_LS_MD_SHIFT;
-		arc4_inst = (cha_inst & CHA_ID_LS_ARC4_MASK) >>
-			    CHA_ID_LS_ARC4_SHIFT;
 		ccha_inst = 0;
 		ptha_inst = 0;
 
@@ -3499,7 +3475,6 @@ int caam_algapi_init(struct device *ctrldev)
 		md_inst = mdha & CHA_VER_NUM_MASK;
 		ccha_inst = rd_reg32(&priv->ctrl->vreg.ccha) & CHA_VER_NUM_MASK;
 		ptha_inst = rd_reg32(&priv->ctrl->vreg.ptha) & CHA_VER_NUM_MASK;
-		arc4_inst = rd_reg32(&priv->ctrl->vreg.afha) & CHA_VER_NUM_MASK;
 
 		gcm_support = aesa & CHA_VER_MISC_AES_GCM;
 	}
@@ -3522,10 +3497,6 @@ int caam_algapi_init(struct device *ctrldev)
 		if (!aes_inst && (alg_sel == OP_ALG_ALGSEL_AES))
 				continue;
 
-		/* Skip ARC4 algorithms if not supported by device */
-		if (!arc4_inst && alg_sel == OP_ALG_ALGSEL_ARC4)
-			continue;
-
 		/*
 		 * Check support for AES modes not available
 		 * on LP devices.
drivers/crypto/caam/compat.h +0 -1
index 60e2a54c19f1..c3c22a8de4c0 100644
@@ -43,7 +43,6 @@
 #include <crypto/akcipher.h>
 #include <crypto/scatterwalk.h>
 #include <crypto/skcipher.h>
-#include <crypto/arc4.h>
 #include <crypto/internal/skcipher.h>
 #include <crypto/internal/hash.h>
 #include <crypto/internal/rsa.h>
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +7 -4
index f87b225437fc..bd5061fbe031 100644
@@ -973,7 +973,7 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,
 
 	r = pm_runtime_get_sync(adev->ddev->dev);
 	if (r < 0)
-		return r;
+		goto err;
 
 	r = amdgpu_virt_enable_access_debugfs(adev);
 	if (r < 0)
@@ -1003,7 +1003,7 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,
 		value = data[result >> 2];
 		r = put_user(value, (uint32_t *)buf);
 		if (r) {
-			result = r;
+			amdgpu_virt_disable_access_debugfs(adev);
 			goto err;
 		}
 
@@ -1012,11 +1012,14 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,
 		size -= 4;
 	}
 
-err:
-	pm_runtime_put_autosuspend(adev->ddev->dev);
 	kfree(data);
 	amdgpu_virt_disable_access_debugfs(adev);
 	return result;
+
+err:
+	pm_runtime_put_autosuspend(adev->ddev->dev);
+	kfree(data);
+	return r;
 }
 
 /**
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +23 -0
index 710edc70e37e..195d621145ba 100644
@@ -8686,6 +8686,29 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev,
 		if (ret)
 			goto fail;
 
+	/* Check connector changes */
+	for_each_oldnew_connector_in_state(state, connector, old_con_state, new_con_state, i) {
+		struct dm_connector_state *dm_old_con_state = to_dm_connector_state(old_con_state);
+		struct dm_connector_state *dm_new_con_state = to_dm_connector_state(new_con_state);
+
+		/* Skip connectors that are disabled or part of modeset already. */
+		if (!old_con_state->crtc && !new_con_state->crtc)
+			continue;
+
+		if (!new_con_state->crtc)
+			continue;
+
+		new_crtc_state = drm_atomic_get_crtc_state(state, new_con_state->crtc);
+		if (IS_ERR(new_crtc_state)) {
+			ret = PTR_ERR(new_crtc_state);
+			goto fail;
+		}
+
+		if (dm_old_con_state->abm_level !=
+		    dm_new_con_state->abm_level)
+			new_crtc_state->connectors_changed = true;
+	}
+
 #if defined(CONFIG_DRM_AMD_DC_DCN)
 		if (!compute_mst_dsc_configs_for_state(state, dm_state->context))
 			goto fail;
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c +67 -2

86 lines not on this page · raw message

drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c +4 -1
index 56923a96b450..ad54f4500af1 100644
@@ -2725,7 +2725,10 @@ static int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
 
 static bool ci_is_dpm_running(struct pp_hwmgr *hwmgr)
 {
-	return ci_is_smc_ram_running(hwmgr);
+	return (1 == PHM_READ_INDIRECT_FIELD(hwmgr->device,
+					     CGS_IND_REG__SMC, FEATURE_STATUS,
+					     VOLTAGE_CONTROLLER_ON))
+		? true : false;
 }
 
 static int ci_smu_init(struct pp_hwmgr *hwmgr)
drivers/gpu/drm/drm_dp_mst_topology.c +24 -17

115 lines not on this page · raw message

drivers/gpu/drm/drm_panel_orientation_quirks.c +6 -0
index d00ea384dcbf..58f5dc2f6dd5 100644
@@ -121,6 +121,12 @@ static const struct dmi_system_id orientation_data[] = {
 		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T101HA"),
 		},
 		.driver_data = (void *)&lcd800x1280_rightside_up,
+	}, {	/* Asus T103HAF */
+		.matches = {
+		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"),
+		},
+		.driver_data = (void *)&lcd800x1280_rightside_up,
 	}, {	/* GPD MicroPC (generic strings, also match on bios date) */
 		.matches = {
 		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Default string"),
drivers/gpu/drm/i915/gt/intel_gt.c +5 -0
index f069551e412f..ebc29b6ee86c 100644
@@ -616,6 +616,11 @@ void intel_gt_driver_unregister(struct intel_gt *gt)
 void intel_gt_driver_release(struct intel_gt *gt)
 {
 	struct i915_address_space *vm;
+	intel_wakeref_t wakeref;
+
+	/* Scrub all HW state upon release */
+	with_intel_runtime_pm(gt->uncore->rpm, wakeref)
+		__intel_gt_reset(gt, ALL_ENGINES);
 
 	vm = fetch_and_zero(&gt->vm);
 	if (vm) /* FIXME being called twice on error paths :( */
drivers/gpu/drm/imx/imx-ldb.c +4 -3
index 1823af9936c9..447a110787a6 100644
@@ -304,18 +304,19 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
 {
 	struct imx_ldb_channel *imx_ldb_ch = enc_to_imx_ldb_ch(encoder);
 	struct imx_ldb *ldb = imx_ldb_ch->ldb;
+	int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
 	int mux, ret;
 
 	drm_panel_disable(imx_ldb_ch->panel);
 
-	if (imx_ldb_ch == &ldb->channel[0])
+	if (imx_ldb_ch == &ldb->channel[0] || dual)
 		ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
-	else if (imx_ldb_ch == &ldb->channel[1])
+	if (imx_ldb_ch == &ldb->channel[1] || dual)
 		ldb->ldb_ctrl &= ~LDB_CH1_MODE_EN_MASK;
 
 	regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
 
-	if (ldb->ldb_ctrl & LDB_SPLIT_MODE_EN) {
+	if (dual) {
 		clk_disable_unprepare(ldb->clk[0]);
 		clk_disable_unprepare(ldb->clk[1]);
 	}
drivers/gpu/drm/ingenic/ingenic-drm.c +1 -1
index 55b49a31729b..9764c99ebddf 100644
@@ -386,7 +386,7 @@ static void ingenic_drm_plane_atomic_update(struct drm_plane *plane,
 		addr = drm_fb_cma_get_gem_addr(state->fb, state, 0);
 		width = state->src_w >> 16;
 		height = state->src_h >> 16;
-		cpp = state->fb->format->cpp[plane->index];
+		cpp = state->fb->format->cpp[0];
 
 		priv->dma_hwdesc->addr = addr;
 		priv->dma_hwdesc->cmd = width * height * cpp / 4;
drivers/gpu/drm/omapdrm/dss/dispc.c +1 -0
index 6639ee9b05d3..48593932bddf 100644
@@ -4915,6 +4915,7 @@ static int dispc_runtime_resume(struct device *dev)
 static const struct dev_pm_ops dispc_pm_ops = {
 	.runtime_suspend = dispc_runtime_suspend,
 	.runtime_resume = dispc_runtime_resume,
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
 };
 
 struct platform_driver omap_dispchw_driver = {
drivers/gpu/drm/omapdrm/dss/dsi.c +1 -0
index 79ddfbfd1b58..eeccf40bae41 100644
@@ -5467,6 +5467,7 @@ static int dsi_runtime_resume(struct device *dev)
 static const struct dev_pm_ops dsi_pm_ops = {
 	.runtime_suspend = dsi_runtime_suspend,
 	.runtime_resume = dsi_runtime_resume,
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
 };
 
 struct platform_driver omap_dsihw_driver = {
drivers/gpu/drm/omapdrm/dss/dss.c +1 -0
index 4d5739fa4a5d..6ccbc29c4ce4 100644
@@ -1614,6 +1614,7 @@ static int dss_runtime_resume(struct device *dev)
 static const struct dev_pm_ops dss_pm_ops = {
 	.runtime_suspend = dss_runtime_suspend,
 	.runtime_resume = dss_runtime_resume,
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
 };
 
 struct platform_driver omap_dsshw_driver = {
drivers/gpu/drm/omapdrm/dss/venc.c +1 -0
index 9701843ccf09..01ee6c50b663 100644
@@ -902,6 +902,7 @@ static int venc_runtime_resume(struct device *dev)
 static const struct dev_pm_ops venc_pm_ops = {
 	.runtime_suspend = venc_runtime_suspend,
 	.runtime_resume = venc_runtime_resume,
+	SET_LATE_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
 };
 
 static const struct of_device_id venc_of_match[] = {
drivers/gpu/drm/panfrost/panfrost_gem.c +1 -1
index 17b654e1eb94..556181ea4a07 100644
@@ -46,7 +46,7 @@ static void panfrost_gem_free_object(struct drm_gem_object *obj)
 				sg_free_table(&bo->sgts[i]);
 			}
 		}
-		kfree(bo->sgts);
+		kvfree(bo->sgts);
 	}
 
 	drm_gem_shmem_free_object(obj);
drivers/gpu/drm/panfrost/panfrost_mmu.c +1 -1
index ed28aeba6d59..3c8ae7411c80 100644
@@ -486,7 +486,7 @@ static int panfrost_mmu_map_fault_addr(struct panfrost_device *pfdev, int as,
 		pages = kvmalloc_array(bo->base.base.size >> PAGE_SHIFT,
 				       sizeof(struct page *), GFP_KERNEL | __GFP_ZERO);
 		if (!pages) {
-			kfree(bo->sgts);
+			kvfree(bo->sgts);
 			bo->sgts = NULL;
 			mutex_unlock(&bo->base.pages_lock);
 			ret = -ENOMEM;
drivers/gpu/drm/tidss/tidss_kms.c +1 -1
index 4b99e9fa84a5..c0240f7e0b19 100644
@@ -154,7 +154,7 @@ static int tidss_dispc_modeset_init(struct tidss_device *tidss)
 				break;
 			case DISPC_VP_DPI:
 				enc_type = DRM_MODE_ENCODER_DPI;
-				conn_type = DRM_MODE_CONNECTOR_LVDS;
+				conn_type = DRM_MODE_CONNECTOR_DPI;
 				break;
 			default:
 				WARN_ON(1);
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +4 -4
index 04d66592f605..b7a9cee69ea7 100644
@@ -2578,7 +2578,7 @@ int vmw_kms_fbdev_init_data(struct vmw_private *dev_priv,
 		++i;
 	}
 
-	if (i != unit) {
+	if (&con->head == &dev_priv->dev->mode_config.connector_list) {
 		DRM_ERROR("Could not find initial display unit.\n");
 		ret = -EINVAL;
 		goto out_unlock;
@@ -2602,13 +2602,13 @@ int vmw_kms_fbdev_init_data(struct vmw_private *dev_priv,
 			break;
 	}
 
-	if (mode->type & DRM_MODE_TYPE_PREFERRED)
-		*p_mode = mode;
-	else {
+	if (&mode->head == &con->modes) {
 		WARN_ONCE(true, "Could not find initial preferred mode.\n");
 		*p_mode = list_first_entry(&con->modes,
 					   struct drm_display_mode,
 					   head);
+	} else {
+		*p_mode = mode;
 	}
 
  out_unlock:
drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c +2 -3
index 16dafff5cab1..009f1742bed5 100644
@@ -81,7 +81,7 @@ static int vmw_ldu_commit_list(struct vmw_private *dev_priv)
 	struct vmw_legacy_display_unit *entry;
 	struct drm_framebuffer *fb = NULL;
 	struct drm_crtc *crtc = NULL;
-	int i = 0;
+	int i;
 
 	/* If there is no display topology the host just assumes
 	 * that the guest will set the same layout as the host.
@@ -92,12 +92,11 @@ static int vmw_ldu_commit_list(struct vmw_private *dev_priv)
 			crtc = &entry->base.crtc;
 			w = max(w, crtc->x + crtc->mode.hdisplay);
 			h = max(h, crtc->y + crtc->mode.vdisplay);
-			i++;
 		}
 
 		if (crtc == NULL)
 			return 0;
-		fb = entry->base.crtc.primary->state->fb;
+		fb = crtc->primary->state->fb;
 
 		return vmw_kms_write_svga(dev_priv, w, h, fb->pitches[0],
 					  fb->format->cpp[0] * 8,
drivers/gpu/ipu-v3/ipu-image-convert.c +91 -54

237 lines not on this page · raw message

drivers/i2c/busses/i2c-bcm-iproc.c +12 -1
index 8a3c98866fb7..688e92818821 100644
@@ -1078,7 +1078,7 @@ static int bcm_iproc_i2c_unreg_slave(struct i2c_client *slave)
 	if (!iproc_i2c->slave)
 		return -EINVAL;
 
-	iproc_i2c->slave = NULL;
+	disable_irq(iproc_i2c->irq);
 
 	/* disable all slave interrupts */
 	tmp = iproc_i2c_rd_reg(iproc_i2c, IE_OFFSET);
@@ -1091,6 +1091,17 @@ static int bcm_iproc_i2c_unreg_slave(struct i2c_client *slave)
 	tmp &= ~BIT(S_CFG_EN_NIC_SMB_ADDR3_SHIFT);
 	iproc_i2c_wr_reg(iproc_i2c, S_CFG_SMBUS_ADDR_OFFSET, tmp);
 
+	/* flush TX/RX FIFOs */
+	tmp = (BIT(S_FIFO_RX_FLUSH_SHIFT) | BIT(S_FIFO_TX_FLUSH_SHIFT));
+	iproc_i2c_wr_reg(iproc_i2c, S_FIFO_CTRL_OFFSET, tmp);
+
+	/* clear all pending slave interrupts */
+	iproc_i2c_wr_reg(iproc_i2c, IS_OFFSET, ISR_MASK_SLAVE);
+
+	iproc_i2c->slave = NULL;
+
+	enable_irq(iproc_i2c->irq);
+
 	return 0;
 }
 
drivers/i2c/busses/i2c-rcar.c +9 -6
index 2e3e1bb75013..9e883474db8c 100644
@@ -583,13 +583,14 @@ static bool rcar_i2c_slave_irq(struct rcar_i2c_priv *priv)
 			rcar_i2c_write(priv, ICSIER, SDR | SSR | SAR);
 		}
 
-		rcar_i2c_write(priv, ICSSR, ~SAR & 0xff);
+		/* Clear SSR, too, because of old STOPs to other clients than us */
+		rcar_i2c_write(priv, ICSSR, ~(SAR | SSR) & 0xff);
 	}
 
 	/* master sent stop */
 	if (ssr_filtered & SSR) {
 		i2c_slave_event(priv->slave, I2C_SLAVE_STOP, &value);
-		rcar_i2c_write(priv, ICSIER, SAR | SSR);
+		rcar_i2c_write(priv, ICSIER, SAR);
 		rcar_i2c_write(priv, ICSSR, ~SSR & 0xff);
 	}
 
@@ -853,7 +854,7 @@ static int rcar_reg_slave(struct i2c_client *slave)
 	priv->slave = slave;
 	rcar_i2c_write(priv, ICSAR, slave->addr);
 	rcar_i2c_write(priv, ICSSR, 0);
-	rcar_i2c_write(priv, ICSIER, SAR | SSR);
+	rcar_i2c_write(priv, ICSIER, SAR);
 	rcar_i2c_write(priv, ICSCR, SIE | SDBS);
 
 	return 0;
@@ -865,12 +866,14 @@ static int rcar_unreg_slave(struct i2c_client *slave)
 
 	WARN_ON(!priv->slave);
 
-	/* disable irqs and ensure none is running before clearing ptr */
+	/* ensure no irq is running before clearing ptr */
+	disable_irq(priv->irq);
 	rcar_i2c_write(priv, ICSIER, 0);
-	rcar_i2c_write(priv, ICSCR, 0);
+	rcar_i2c_write(priv, ICSSR, 0);
+	enable_irq(priv->irq);
+	rcar_i2c_write(priv, ICSCR, SDBS);
 	rcar_i2c_write(priv, ICSAR, 0); /* Gen2: must be 0 if not using slave */
 
-	synchronize_irq(priv->irq);
 	priv->slave = NULL;
 
 	pm_runtime_put(rcar_i2c_priv_to_dev(priv));
drivers/iio/dac/ad5592r-base.c +2 -2
index 410e90e5f75f..5226c258856b 100644
@@ -413,7 +413,7 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev,
 			s64 tmp = *val * (3767897513LL / 25LL);
 			*val = div_s64_rem(tmp, 1000000000LL, val2);
 
-			ret = IIO_VAL_INT_PLUS_MICRO;
+			return IIO_VAL_INT_PLUS_MICRO;
 		} else {
 			int mult;
 
@@ -444,7 +444,7 @@ static int ad5592r_read_raw(struct iio_dev *iio_dev,
 		ret =  IIO_VAL_INT;
 		break;
 	default:
-		ret = -EINVAL;
+		return -EINVAL;
 	}
 
 unlock:
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h +1 -2
index b56df409ed0f..529970195b39 100644
@@ -436,8 +436,7 @@ int st_lsm6dsx_update_watermark(struct st_lsm6dsx_sensor *sensor,
 				u16 watermark);
 int st_lsm6dsx_update_fifo(struct st_lsm6dsx_sensor *sensor, bool enable);
 int st_lsm6dsx_flush_fifo(struct st_lsm6dsx_hw *hw);
-int st_lsm6dsx_set_fifo_mode(struct st_lsm6dsx_hw *hw,
-			     enum st_lsm6dsx_fifo_mode fifo_mode);
+int st_lsm6dsx_resume_fifo(struct st_lsm6dsx_hw *hw);
 int st_lsm6dsx_read_fifo(struct st_lsm6dsx_hw *hw);
 int st_lsm6dsx_read_tagged_fifo(struct st_lsm6dsx_hw *hw);
 int st_lsm6dsx_check_odr(struct st_lsm6dsx_sensor *sensor, u32 odr, u8 *val);
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c +15 -8
index afd00daeefb2..7de10bd636ea 100644
@@ -184,8 +184,8 @@ static int st_lsm6dsx_update_decimators(struct st_lsm6dsx_hw *hw)
 	return err;
 }
 
-int st_lsm6dsx_set_fifo_mode(struct st_lsm6dsx_hw *hw,
-			     enum st_lsm6dsx_fifo_mode fifo_mode)
+static int st_lsm6dsx_set_fifo_mode(struct st_lsm6dsx_hw *hw,
+				    enum st_lsm6dsx_fifo_mode fifo_mode)
 {
 	unsigned int data;
 
@@ -302,6 +302,18 @@ static int st_lsm6dsx_reset_hw_ts(struct st_lsm6dsx_hw *hw)
 	return 0;
 }
 
+int st_lsm6dsx_resume_fifo(struct st_lsm6dsx_hw *hw)
+{
+	int err;
+
+	/* reset hw ts counter */
+	err = st_lsm6dsx_reset_hw_ts(hw);
+	if (err < 0)
+		return err;
+
+	return st_lsm6dsx_set_fifo_mode(hw, ST_LSM6DSX_FIFO_CONT);
+}
+
 /*
  * Set max bulk read to ST_LSM6DSX_MAX_WORD_LEN/ST_LSM6DSX_MAX_TAGGED_WORD_LEN
  * in order to avoid a kmalloc for each bus access
@@ -675,12 +687,7 @@ int st_lsm6dsx_update_fifo(struct st_lsm6dsx_sensor *sensor, bool enable)
 		goto out;
 
 	if (fifo_mask) {
-		/* reset hw ts counter */
-		err = st_lsm6dsx_reset_hw_ts(hw);
-		if (err < 0)
-			goto out;
-
-		err = st_lsm6dsx_set_fifo_mode(hw, ST_LSM6DSX_FIFO_CONT);
+		err = st_lsm6dsx_resume_fifo(hw);
 		if (err < 0)
 			goto out;
 	}
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c +1 -1
index 0b776cb91928..b3a08e3e2359 100644
@@ -2458,7 +2458,7 @@ static int __maybe_unused st_lsm6dsx_resume(struct device *dev)
 	}
 
 	if (hw->fifo_mask)
-		err = st_lsm6dsx_set_fifo_mode(hw, ST_LSM6DSX_FIFO_CONT);
+		err = st_lsm6dsx_resume_fifo(hw);
 
 	return err;
 }
drivers/infiniband/core/counters.c +2 -2
index 738d1faf4bba..417ebf4d8ba9 100644
@@ -288,7 +288,7 @@ int rdma_counter_bind_qp_auto(struct ib_qp *qp, u8 port)
 	struct rdma_counter *counter;
 	int ret;
 
-	if (!qp->res.valid)
+	if (!qp->res.valid || rdma_is_kernel_res(&qp->res))
 		return 0;
 
 	if (!rdma_is_port_valid(dev, port))
@@ -483,7 +483,7 @@ int rdma_counter_bind_qpn(struct ib_device *dev, u8 port,
 		goto err;
 	}
 
-	if (counter->res.task != qp->res.task) {
+	if (rdma_is_kernel_res(&counter->res) != rdma_is_kernel_res(&qp->res)) {
 		ret = -EINVAL;
 		goto err_task;
 	}
drivers/infiniband/core/uverbs_cmd.c +4 -0
index b48b3f6e632d..557644dcc923 100644
@@ -770,6 +770,7 @@ static int ib_uverbs_reg_mr(struct uverbs_attr_bundle *attrs)
 	mr->uobject = uobj;
 	atomic_inc(&pd->usecnt);
 	mr->res.type = RDMA_RESTRACK_MR;
+	mr->iova = cmd.hca_va;
 	rdma_restrack_uadd(&mr->res);
 
 	uobj->object = mr;
@@ -861,6 +862,9 @@ static int ib_uverbs_rereg_mr(struct uverbs_attr_bundle *attrs)
 		atomic_dec(&old_pd->usecnt);
 	}
 
+	if (cmd.flags & IB_MR_REREG_TRANS)
+		mr->iova = cmd.hca_va;
+
 	memset(&resp, 0, sizeof(resp));
 	resp.lkey      = mr->lkey;
 	resp.rkey      = mr->rkey;
drivers/infiniband/hw/cxgb4/mem.c +0 -1
index 962dc97a8ff2..1e4f4e525598 100644
@@ -399,7 +399,6 @@ static int finish_mem_reg(struct c4iw_mr *mhp, u32 stag)
 	mmid = stag >> 8;
 	mhp->ibmr.rkey = mhp->ibmr.lkey = stag;
 	mhp->ibmr.length = mhp->attr.len;
-	mhp->ibmr.iova = mhp->attr.va_fbo;
 	mhp->ibmr.page_size = 1U << (mhp->attr.page_size + 12);
 	pr_debug("mmid 0x%x mhp %p\n", mmid, mhp);
 	return xa_insert_irq(&mhp->rhp->mrs, mmid, mhp, GFP_KERNEL);
drivers/infiniband/hw/mlx4/mr.c +0 -1
index 7e0b205c05eb..d7c78f841d2f 100644
@@ -439,7 +439,6 @@ struct ib_mr *mlx4_ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
 
 	mr->ibmr.rkey = mr->ibmr.lkey = mr->mmr.key;
 	mr->ibmr.length = length;
-	mr->ibmr.iova = virt_addr;
 	mr->ibmr.page_size = 1U << shift;
 
 	return &mr->ibmr;
drivers/infiniband/ulp/ipoib/ipoib.h +1 -1
index 9a3379c49541..9ce6a36fe48e 100644
@@ -515,7 +515,7 @@ void ipoib_ib_dev_cleanup(struct net_device *dev);
 
 int ipoib_ib_dev_open_default(struct net_device *dev);
 int ipoib_ib_dev_open(struct net_device *dev);
-int ipoib_ib_dev_stop(struct net_device *dev);
+void ipoib_ib_dev_stop(struct net_device *dev);
 void ipoib_ib_dev_up(struct net_device *dev);
 void ipoib_ib_dev_down(struct net_device *dev);
 int ipoib_ib_dev_stop_default(struct net_device *dev);
drivers/infiniband/ulp/ipoib/ipoib_ib.c +29 -38

134 lines not on this page · raw message

drivers/infiniband/ulp/ipoib/ipoib_main.c +2 -0
index 3cfb682b91b0..ef60e8e4ae67 100644
@@ -1976,6 +1976,8 @@ static void ipoib_ndo_uninit(struct net_device *dev)
 
 	/* no more works over the priv->wq */
 	if (priv->wq) {
+		/* See ipoib_mcast_carrier_on_task() */
+		WARN_ON(test_bit(IPOIB_FLAG_OPER_UP, &priv->flags));
 		flush_workqueue(priv->wq);
 		destroy_workqueue(priv->wq);
 		priv->wq = NULL;
drivers/input/mouse/sentelic.c +1 -1
index e99d9bf1a267..e78c4c7eda34 100644
@@ -441,7 +441,7 @@ static ssize_t fsp_attr_set_setreg(struct psmouse *psmouse, void *data,
 
 	fsp_reg_write_enable(psmouse, false);
 
-	return count;
+	return retval;
 }
 
 PSMOUSE_DEFINE_WO_ATTR(setreg, S_IWUSR, NULL, fsp_attr_set_setreg);
drivers/iommu/intel/dmar.c +19 -2
index 16f47041f1bf..ec23a2f0b5f8 100644
@@ -1459,9 +1459,26 @@ void qi_flush_dev_iotlb_pasid(struct intel_iommu *iommu, u16 sid, u16 pfsid,
 	 * Max Invs Pending (MIP) is set to 0 for now until we have DIT in
 	 * ECAP.
 	 */
-	desc.qw1 |= addr & ~mask;
-	if (size_order)
+	if (addr & GENMASK_ULL(size_order + VTD_PAGE_SHIFT, 0))
+		pr_warn_ratelimited("Invalidate non-aligned address %llx, order %d\n",
+				    addr, size_order);
+
+	/* Take page address */
+	desc.qw1 = QI_DEV_EIOTLB_ADDR(addr);
+
+	if (size_order) {
+		/*
+		 * Existing 0s in address below size_order may be the least
+		 * significant bit, we must set them to 1s to avoid having
+		 * smaller size than desired.
+		 */
+		desc.qw1 |= GENMASK_ULL(size_order + VTD_PAGE_SHIFT - 1,
+					VTD_PAGE_SHIFT);
+		/* Clear size_order bit to indicate size */
+		desc.qw1 &= ~mask;
+		/* Set the S bit to indicate flushing more than 1 page */
 		desc.qw1 |= QI_DEV_EIOTLB_SIZE;
+	}
 
 	qi_submit_sync(iommu, &desc, 1, 0);
 }
drivers/iommu/intel/iommu.c +3 -4
index a459eac96754..04e82f175601 100644
@@ -2565,7 +2565,7 @@ static struct dmar_domain *dmar_insert_one_dev_info(struct intel_iommu *iommu,
 			}
 
 			if (info->ats_supported && ecap_prs(iommu->ecap) &&
-			    pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_PRI))
+			    pci_pri_supported(pdev))
 				info->pri_supported = 1;
 		}
 	}
@@ -5452,13 +5452,12 @@ intel_iommu_sva_invalidate(struct iommu_domain *domain, struct device *dev,
 
 		switch (BIT(cache_type)) {
 		case IOMMU_CACHE_INV_TYPE_IOTLB:
+			/* HW will ignore LSB bits based on address mask */
 			if (inv_info->granularity == IOMMU_INV_GRANU_ADDR &&
 			    size &&
 			    (inv_info->addr_info.addr & ((BIT(VTD_PAGE_SHIFT + size)) - 1))) {
-				pr_err_ratelimited("Address out of range, 0x%llx, size order %llu\n",
+				pr_err_ratelimited("User address not aligned, 0x%llx, size order %llu\n",
 						   inv_info->addr_info.addr, size);
-				ret = -ERANGE;
-				goto out_unlock;
 			}
 
 			/*
drivers/iommu/intel/svm.c +9 -13
index 6c87c807a0ab..d386853121a2 100644
@@ -277,20 +277,16 @@ int intel_svm_bind_gpasid(struct iommu_domain *domain, struct device *dev,
 			goto out;
 		}
 
+		/*
+		 * Do not allow multiple bindings of the same device-PASID since
+		 * there is only one SL page tables per PASID. We may revisit
+		 * once sharing PGD across domains are supported.
+		 */
 		for_each_svm_dev(sdev, svm, dev) {
-			/*
-			 * For devices with aux domains, we should allow
-			 * multiple bind calls with the same PASID and pdev.
-			 */
-			if (iommu_dev_feature_enabled(dev,
-						      IOMMU_DEV_FEAT_AUX)) {
-				sdev->users++;
-			} else {
-				dev_warn_ratelimited(dev,
-						     "Already bound with PASID %u\n",
-						     svm->pasid);
-				ret = -EBUSY;
-			}
+			dev_warn_ratelimited(dev,
+					     "Already bound with PASID %u\n",
+					     svm->pasid);
+			ret = -EBUSY;
 			goto out;
 		}
 	} else {
drivers/iommu/omap-iommu-debug.c +3 -0
index 8e19bfa94121..a99afb5d9011 100644
@@ -98,8 +98,11 @@ static ssize_t debug_read_regs(struct file *file, char __user *userbuf,
 	mutex_lock(&iommu_debug_lock);
 
 	bytes = omap_iommu_dump_ctx(obj, p, count);
+	if (bytes < 0)
+		goto err;
 	bytes = simple_read_from_buffer(userbuf, count, ppos, buf, bytes);
 
+err:
 	mutex_unlock(&iommu_debug_lock);
 	kfree(buf);
 
drivers/irqchip/irq-gic-v3-its.c +11 -4
index da44bfa48bc2..95f097448f97 100644
@@ -3523,6 +3523,7 @@ static int its_irq_domain_alloc(struct irq_domain *domain, unsigned int virq,
 	msi_alloc_info_t *info = args;
 	struct its_device *its_dev = info->scratchpad[0].ptr;
 	struct its_node *its = its_dev->its;
+	struct irq_data *irqd;
 	irq_hw_number_t hwirq;
 	int err;
 	int i;
@@ -3542,7 +3543,9 @@ static int its_irq_domain_alloc(struct irq_domain *domain, unsigned int virq,
 
 		irq_domain_set_hwirq_and_chip(domain, virq + i,
 					      hwirq + i, &its_irq_chip, its_dev);
-		irqd_set_single_target(irq_desc_get_irq_data(irq_to_desc(virq + i)));
+		irqd = irq_get_irq_data(virq + i);
+		irqd_set_single_target(irqd);
+		irqd_set_affinity_on_activate(irqd);
 		pr_debug("ID:%d pID:%d vID:%d\n",
 			 (int)(hwirq + i - its_dev->event_map.lpi_base),
 			 (int)(hwirq + i), virq + i);
@@ -4087,18 +4090,22 @@ static void its_vpe_4_1_deschedule(struct its_vpe *vpe,
 static void its_vpe_4_1_invall(struct its_vpe *vpe)
 {
 	void __iomem *rdbase;
+	unsigned long flags;
 	u64 val;
+	int cpu;
 
 	val  = GICR_INVALLR_V;
 	val |= FIELD_PREP(GICR_INVALLR_VPEID, vpe->vpe_id);
 
 	/* Target the redistributor this vPE is currently known on */
-	raw_spin_lock(&gic_data_rdist_cpu(vpe->col_idx)->rd_lock);
-	rdbase = per_cpu_ptr(gic_rdists->rdist, vpe->col_idx)->rd_base;
+	cpu = vpe_to_cpuid_lock(vpe, &flags);
+	raw_spin_lock(&gic_data_rdist_cpu(cpu)->rd_lock);
+	rdbase = per_cpu_ptr(gic_rdists->rdist, cpu)->rd_base;
 	gic_write_lpir(val, rdbase + GICR_INVALLR);
 
 	wait_for_syncr(rdbase);
-	raw_spin_unlock(&gic_data_rdist_cpu(vpe->col_idx)->rd_lock);
+	raw_spin_unlock(&gic_data_rdist_cpu(cpu)->rd_lock);
+	vpe_to_cpuid_unlock(vpe, flags);
 }
 
 static int its_vpe_4_1_set_vcpu_affinity(struct irq_data *d, void *vcpu_info)
drivers/irqchip/irq-loongson-liointc.c +5 -5
index 6ef86a334c62..9ed1bc473663 100644
@@ -60,7 +60,7 @@ static void liointc_chained_handle_irq(struct irq_desc *desc)
 	if (!pending) {
 		/* Always blame LPC IRQ if we have that bug */
 		if (handler->priv->has_lpc_irq_errata &&
-			(handler->parent_int_map & ~gc->mask_cache &
+			(handler->parent_int_map & gc->mask_cache &
 			BIT(LIOINTC_ERRATA_IRQ)))
 			pending = BIT(LIOINTC_ERRATA_IRQ);
 		else
@@ -132,11 +132,11 @@ static void liointc_resume(struct irq_chip_generic *gc)
 	irq_gc_lock_irqsave(gc, flags);
 	/* Disable all at first */
 	writel(0xffffffff, gc->reg_base + LIOINTC_REG_INTC_DISABLE);
-	/* Revert map cache */
+	/* Restore map cache */
 	for (i = 0; i < LIOINTC_CHIP_IRQ; i++)
 		writeb(priv->map_cache[i], gc->reg_base + i);
-	/* Revert mask cache */
-	writel(~gc->mask_cache, gc->reg_base + LIOINTC_REG_INTC_ENABLE);
+	/* Restore mask cache */
+	writel(gc->mask_cache, gc->reg_base + LIOINTC_REG_INTC_ENABLE);
 	irq_gc_unlock_irqrestore(gc, flags);
 }
 
@@ -244,7 +244,7 @@ int __init liointc_of_init(struct device_node *node,
 	ct->chip.irq_mask_ack = irq_gc_mask_disable_reg;
 	ct->chip.irq_set_type = liointc_set_type;
 
-	gc->mask_cache = 0xffffffff;
+	gc->mask_cache = 0;
 	priv->gc = gc;
 
 	for (i = 0; i < LIOINTC_NUM_PARENT; i++) {
drivers/md/bcache/bcache.h +1 -1
index 221e0191b687..80e3c4813fb0 100644
@@ -264,7 +264,7 @@ struct bcache_device {
 #define BCACHE_DEV_UNLINK_DONE		2
 #define BCACHE_DEV_WB_RUNNING		3
 #define BCACHE_DEV_RATE_DW_RUNNING	4
-	unsigned int		nr_stripes;
+	int			nr_stripes;
 	unsigned int		stripe_size;
 	atomic_t		*stripe_sectors_dirty;
 	unsigned long		*full_dirty_stripes;
drivers/md/bcache/bset.c +1 -1
index 4995fcaefe29..67a2c47f4201 100644
@@ -322,7 +322,7 @@ int bch_btree_keys_alloc(struct btree_keys *b,
 
 	b->page_order = page_order;
 
-	t->data = (void *) __get_free_pages(gfp, b->page_order);
+	t->data = (void *) __get_free_pages(__GFP_COMP|gfp, b->page_order);
 	if (!t->data)
 		goto err;
 
drivers/md/bcache/btree.c +1 -1
index 6548a601edf0..dd116c83de80 100644
@@ -785,7 +785,7 @@ int bch_btree_cache_alloc(struct cache_set *c)
 	mutex_init(&c->verify_lock);
 
 	c->verify_ondisk = (void *)
-		__get_free_pages(GFP_KERNEL, ilog2(bucket_pages(c)));
+		__get_free_pages(GFP_KERNEL|__GFP_COMP, ilog2(bucket_pages(c)));
 
 	c->verify_data = mca_bucket_alloc(c, &ZERO_KEY, GFP_KERNEL);
 
drivers/md/bcache/journal.c +2 -2
index 90aac4e2333f..d8586b6ccb76 100644
@@ -999,8 +999,8 @@ int bch_journal_alloc(struct cache_set *c)
 	j->w[1].c = c;
 
 	if (!(init_fifo(&j->pin, JOURNAL_PIN, GFP_KERNEL)) ||
-	    !(j->w[0].data = (void *) __get_free_pages(GFP_KERNEL, JSET_BITS)) ||
-	    !(j->w[1].data = (void *) __get_free_pages(GFP_KERNEL, JSET_BITS)))
+	    !(j->w[0].data = (void *) __get_free_pages(GFP_KERNEL|__GFP_COMP, JSET_BITS)) ||
+	    !(j->w[1].data = (void *) __get_free_pages(GFP_KERNEL|__GFP_COMP, JSET_BITS)))
 		return -ENOMEM;
 
 	return 0;
drivers/md/bcache/request.c +9 -5
index 7acf024e99f3..9cc044293acd 100644
@@ -668,7 +668,9 @@ static void backing_request_endio(struct bio *bio)
 static void bio_complete(struct search *s)
 {
 	if (s->orig_bio) {
-		bio_end_io_acct(s->orig_bio, s->start_time);
+		/* Count on bcache device */
+		disk_end_io_acct(s->d->disk, bio_op(s->orig_bio), s->start_time);
+
 		trace_bcache_request_end(s->d, s->orig_bio);
 		s->orig_bio->bi_status = s->iop.status;
 		bio_endio(s->orig_bio);
@@ -728,8 +730,8 @@ static inline struct search *search_alloc(struct bio *bio,
 	s->recoverable		= 1;
 	s->write		= op_is_write(bio_op(bio));
 	s->read_dirty_data	= 0;
-	s->start_time		= bio_start_io_acct(bio);
-
+	/* Count on the bcache device */
+	s->start_time		= disk_start_io_acct(d->disk, bio_sectors(bio), bio_op(bio));
 	s->iop.c		= d->c;
 	s->iop.bio		= NULL;
 	s->iop.inode		= d->id;
@@ -1080,7 +1082,8 @@ static void detached_dev_end_io(struct bio *bio)
 	bio->bi_end_io = ddip->bi_end_io;
 	bio->bi_private = ddip->bi_private;
 
-	bio_end_io_acct(bio, ddip->start_time);
+	/* Count on the bcache device */
+	disk_end_io_acct(ddip->d->disk, bio_op(bio), ddip->start_time);
 
 	if (bio->bi_status) {
 		struct cached_dev *dc = container_of(ddip->d,
@@ -1105,7 +1108,8 @@ static void detached_dev_do_request(struct bcache_device *d, struct bio *bio)
 	 */
 	ddip = kzalloc(sizeof(struct detached_dev_io_private), GFP_NOIO);
 	ddip->d = d;
-	ddip->start_time = bio_start_io_acct(bio);
+	/* Count on the bcache device */
+	ddip->start_time = disk_start_io_acct(d->disk, bio_sectors(bio), bio_op(bio));
 	ddip->bi_end_io = bio->bi_end_io;
 	ddip->bi_private = bio->bi_private;
 	bio->bi_end_io = detached_dev_end_io;
drivers/md/bcache/super.c +7 -7
index 445bb84ee27f..e15d07823031 100644
@@ -826,19 +826,19 @@ static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
 	struct request_queue *q;
 	const size_t max_stripes = min_t(size_t, INT_MAX,
 					 SIZE_MAX / sizeof(atomic_t));
-	size_t n;
+	uint64_t n;
 	int idx;
 
 	if (!d->stripe_size)
 		d->stripe_size = 1 << 31;
 
-	d->nr_stripes = DIV_ROUND_UP_ULL(sectors, d->stripe_size);
-
-	if (!d->nr_stripes || d->nr_stripes > max_stripes) {
-		pr_err("nr_stripes too large or invalid: %u (start sector beyond end of disk?)\n",
-			(unsigned int)d->nr_stripes);
+	n = DIV_ROUND_UP_ULL(sectors, d->stripe_size);
+	if (!n || n > max_stripes) {
+		pr_err("nr_stripes too large or invalid: %llu (start sector beyond end of disk?)\n",
+			n);
 		return -ENOMEM;
 	}
+	d->nr_stripes = n;
 
 	n = d->nr_stripes * sizeof(atomic_t);
 	d->stripe_sectors_dirty = kvzalloc(n, GFP_KERNEL);
@@ -1776,7 +1776,7 @@ void bch_cache_set_unregister(struct cache_set *c)
 }
 
 #define alloc_bucket_pages(gfp, c)			\
-	((void *) __get_free_pages(__GFP_ZERO|gfp, ilog2(bucket_pages(c))))
+	((void *) __get_free_pages(__GFP_ZERO|__GFP_COMP|gfp, ilog2(bucket_pages(c))))
 
 struct cache_set *bch_cache_set_alloc(struct cache_sb *sb)
 {
drivers/md/bcache/writeback.c +9 -5
index 1cf1e5016cb9..ab101ad55459 100644
@@ -523,15 +523,19 @@ void bcache_dev_sectors_dirty_add(struct cache_set *c, unsigned int inode,
 				  uint64_t offset, int nr_sectors)
 {
 	struct bcache_device *d = c->devices[inode];
-	unsigned int stripe_offset, stripe, sectors_dirty;
+	unsigned int stripe_offset, sectors_dirty;
+	int stripe;
 
 	if (!d)
 		return;
 
+	stripe = offset_to_stripe(d, offset);
+	if (stripe < 0)
+		return;
+
 	if (UUID_FLASH_ONLY(&c->uuids[inode]))
 		atomic_long_add(nr_sectors, &c->flash_dev_dirty_sectors);
 
-	stripe = offset_to_stripe(d, offset);
 	stripe_offset = offset & (d->stripe_size - 1);
 
 	while (nr_sectors) {
@@ -571,12 +575,12 @@ static bool dirty_pred(struct keybuf *buf, struct bkey *k)
 static void refill_full_stripes(struct cached_dev *dc)
 {
 	struct keybuf *buf = &dc->writeback_keys;
-	unsigned int start_stripe, stripe, next_stripe;
+	unsigned int start_stripe, next_stripe;
+	int stripe;
 	bool wrapped = false;
 
 	stripe = offset_to_stripe(&dc->disk, KEY_OFFSET(&buf->last_scanned));
-
-	if (stripe >= dc->disk.nr_stripes)
+	if (stripe < 0)
 		stripe = 0;
 
 	start_stripe = stripe;
drivers/md/bcache/writeback.h +17 -2
index b029843ce5b6..3f1230e22de0 100644
@@ -52,10 +52,22 @@ static inline uint64_t bcache_dev_sectors_dirty(struct bcache_device *d)
 	return ret;
 }
 
-static inline unsigned int offset_to_stripe(struct bcache_device *d,
+static inline int offset_to_stripe(struct bcache_device *d,
 					uint64_t offset)
 {
 	do_div(offset, d->stripe_size);
+
+	/* d->nr_stripes is in range [1, INT_MAX] */
+	if (unlikely(offset >= d->nr_stripes)) {
+		pr_err("Invalid stripe %llu (>= nr_stripes %d).\n",
+			offset, d->nr_stripes);
+		return -EINVAL;
+	}
+
+	/*
+	 * Here offset is definitly smaller than INT_MAX,
+	 * return it as int will never overflow.
+	 */
 	return offset;
 }
 
@@ -63,7 +75,10 @@ static inline bool bcache_dev_stripe_dirty(struct cached_dev *dc,
 					   uint64_t offset,
 					   unsigned int nr_sectors)
 {
-	unsigned int stripe = offset_to_stripe(&dc->disk, offset);
+	int stripe = offset_to_stripe(&dc->disk, offset);
+
+	if (stripe < 0)
+		return false;
 
 	while (1) {
 		if (atomic_read(dc->disk.stripe_sectors_dirty + stripe))
drivers/md/dm-ebs-target.c +1 -1
index 44451276f128..cb85610527c2 100644
@@ -363,7 +363,7 @@ static int ebs_map(struct dm_target *ti, struct bio *bio)
 	bio_set_dev(bio, ec->dev->bdev);
 	bio->bi_iter.bi_sector = ec->start + dm_target_offset(ti, bio->bi_iter.bi_sector);
 
-	if (unlikely(bio->bi_opf & REQ_OP_FLUSH))
+	if (unlikely(bio_op(bio) == REQ_OP_FLUSH))
 		return DM_MAPIO_REMAPPED;
 	/*
 	 * Only queue for bufio processing in case of partial or overlapping buffers
drivers/md/dm-rq.c +0 -3
index 85e0daabad49..20745e2e34b9 100644
@@ -70,9 +70,6 @@ void dm_start_queue(struct request_queue *q)
 
 void dm_stop_queue(struct request_queue *q)
 {
-	if (blk_mq_queue_stopped(q))
-		return;
-
 	blk_mq_quiesce_queue(q);
 }
 
drivers/md/dm.c +2 -1
index 5b9de2f71bb0..88b391ff9bea 100644
@@ -504,7 +504,8 @@ static int dm_blk_report_zones(struct gendisk *disk, sector_t sector,
 		}
 
 		args.tgt = tgt;
-		ret = tgt->type->report_zones(tgt, &args, nr_zones);
+		ret = tgt->type->report_zones(tgt, &args,
+					      nr_zones - args.zone_idx);
 		if (ret < 0)
 			goto out;
 	} while (args.zone_idx < nr_zones &&
drivers/md/md-cluster.c +1 -0
index 73fd50e77975..d50737ec4039 100644
@@ -1139,6 +1139,7 @@ static int resize_bitmaps(struct mddev *mddev, sector_t newsize, sector_t oldsiz
 		bitmap = get_bitmap_from_slot(mddev, i);
 		if (IS_ERR(bitmap)) {
 			pr_err("can't get bitmap from slot %d\n", i);
+			bitmap = NULL;
 			goto out;
 		}
 		counts = &bitmap->counts;
drivers/md/raid5.c +2 -1
index ab8067f9ce8c..43eedf7adc79 100644
@@ -3607,6 +3607,7 @@ static int need_this_block(struct stripe_head *sh, struct stripe_head_state *s,
 	 * is missing/faulty, then we need to read everything we can.
 	 */
 	if (sh->raid_conf->level != 6 &&
+	    sh->raid_conf->rmw_level != PARITY_DISABLE_RMW &&
 	    sh->sector < sh->raid_conf->mddev->recovery_cp)
 		/* reconstruct-write isn't being forced */
 		return 0;
@@ -4842,7 +4843,7 @@ static void handle_stripe(struct stripe_head *sh)
 	 * or to load a block that is being partially written.
 	 */
 	if (s.to_read || s.non_overwrite
-	    || (conf->level == 6 && s.to_write && s.failed)
+	    || (s.to_write && s.failed)
 	    || (s.syncing && (s.uptodate + s.compute < disks))
 	    || s.replacing
 	    || s.expanding)
drivers/media/platform/qcom/venus/pm_helpers.c +4 -0
index abf93158857b..531e7a41658f 100644
@@ -496,6 +496,10 @@ min_loaded_core(struct venus_inst *inst, u32 *min_coreid, u32 *min_load)
 	list_for_each_entry(inst_pos, &core->instances, list) {
 		if (inst_pos == inst)
 			continue;
+
+		if (inst_pos->state != INST_START)
+			continue;
+
 		vpp_freq = inst_pos->clk_data.codec_freq_data->vpp_freq;
 		coreid = inst_pos->clk_data.core_id;
 
drivers/media/platform/rockchip/rga/rga-hw.c +16 -13
index 4be6dcf292ff..aaa96f256356 100644
@@ -200,22 +200,25 @@ static void rga_cmd_set_trans_info(struct rga_ctx *ctx)
 	dst_info.data.format = ctx->out.fmt->hw_format;
 	dst_info.data.swap = ctx->out.fmt->color_swap;
 
-	if (ctx->in.fmt->hw_format >= RGA_COLOR_FMT_YUV422SP) {
-		if (ctx->out.fmt->hw_format < RGA_COLOR_FMT_YUV422SP) {
-			switch (ctx->in.colorspace) {
-			case V4L2_COLORSPACE_REC709:
-				src_info.data.csc_mode =
-					RGA_SRC_CSC_MODE_BT709_R0;
-				break;
-			default:
-				src_info.data.csc_mode =
-					RGA_SRC_CSC_MODE_BT601_R0;
-				break;
-			}
+	/*
+	 * CSC mode must only be set when the colorspace families differ between
+	 * input and output. It must remain unset (zeroed) if both are the same.
+	 */
+
+	if (RGA_COLOR_FMT_IS_YUV(ctx->in.fmt->hw_format) &&
+	    RGA_COLOR_FMT_IS_RGB(ctx->out.fmt->hw_format)) {
+		switch (ctx->in.colorspace) {
+		case V4L2_COLORSPACE_REC709:
+			src_info.data.csc_mode = RGA_SRC_CSC_MODE_BT709_R0;
+			break;
+		default:
+			src_info.data.csc_mode = RGA_SRC_CSC_MODE_BT601_R0;
+			break;
 		}
 	}
 
-	if (ctx->out.fmt->hw_format >= RGA_COLOR_FMT_YUV422SP) {
+	if (RGA_COLOR_FMT_IS_RGB(ctx->in.fmt->hw_format) &&
+	    RGA_COLOR_FMT_IS_YUV(ctx->out.fmt->hw_format)) {
 		switch (ctx->out.colorspace) {
 		case V4L2_COLORSPACE_REC709:
 			dst_info.data.csc_mode = RGA_SRC_CSC_MODE_BT709_R0;
drivers/media/platform/rockchip/rga/rga-hw.h +5 -0
index 96cb0314dfa7..e8917e5630a4 100644
@@ -95,6 +95,11 @@
 #define RGA_COLOR_FMT_CP_8BPP 15
 #define RGA_COLOR_FMT_MASK 15
 
+#define RGA_COLOR_FMT_IS_YUV(fmt) \
+	(((fmt) >= RGA_COLOR_FMT_YUV422SP) && ((fmt) < RGA_COLOR_FMT_CP_1BPP))
+#define RGA_COLOR_FMT_IS_RGB(fmt) \
+	((fmt) < RGA_COLOR_FMT_YUV422SP)
+
 #define RGA_COLOR_NONE_SWAP 0
 #define RGA_COLOR_RB_SWAP 1
 #define RGA_COLOR_ALPHA_SWAP 2
drivers/media/platform/vsp1/vsp1_dl.c +2 -0
index d7b43037e500..e07b135613eb 100644
@@ -431,6 +431,8 @@ vsp1_dl_cmd_pool_create(struct vsp1_device *vsp1, enum vsp1_extcmd_type type,
 	if (!pool)
 		return NULL;
 
+	pool->vsp1 = vsp1;
+
 	spin_lock_init(&pool->lock);
 	INIT_LIST_HEAD(&pool->free);
 
drivers/mfd/arizona-core.c +18 -0
index f73cf76d1373..a5e443110fc3 100644
@@ -1426,6 +1426,15 @@ int arizona_dev_init(struct arizona *arizona)
 	arizona_irq_exit(arizona);
 err_pm:
 	pm_runtime_disable(arizona->dev);
+
+	switch (arizona->pdata.clk32k_src) {
+	case ARIZONA_32KZ_MCLK1:
+	case ARIZONA_32KZ_MCLK2:
+		arizona_clk32k_disable(arizona);
+		break;
+	default:
+		break;
+	}
 err_reset:
 	arizona_enable_reset(arizona);
 	regulator_disable(arizona->dcvdd);
@@ -1448,6 +1457,15 @@ int arizona_dev_exit(struct arizona *arizona)
 	regulator_disable(arizona->dcvdd);
 	regulator_put(arizona->dcvdd);
 
+	switch (arizona->pdata.clk32k_src) {
+	case ARIZONA_32KZ_MCLK1:
+	case ARIZONA_32KZ_MCLK2:
+		arizona_clk32k_disable(arizona);
+		break;
+	default:
+		break;
+	}
+
 	mfd_remove_devices(arizona->dev);
 	arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona);
 	arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona);
drivers/mfd/dln2.c +4 -0
index 39276fa626d2..83e676a096dc 100644
@@ -287,7 +287,11 @@ static void dln2_rx(struct urb *urb)
 	len = urb->actual_length - sizeof(struct dln2_header);
 
 	if (handle == DLN2_HANDLE_EVENT) {
+		unsigned long flags;
+
+		spin_lock_irqsave(&dln2->event_cb_lock, flags);
 		dln2_run_event_callbacks(dln2, id, echo, data, len);
+		spin_unlock_irqrestore(&dln2->event_cb_lock, flags);
 	} else {
 		/* URB will be re-submitted in _dln2_transfer (free_rx_slot) */
 		if (dln2_transfer_complete(dln2, urb, handle, echo))
drivers/mmc/host/renesas_sdhi_internal_dmac.c +13 -5
index 47ac53e91241..201b8ed37f2e 100644
@@ -229,15 +229,12 @@ static void renesas_sdhi_internal_dmac_issue_tasklet_fn(unsigned long arg)
 					    DTRAN_CTRL_DM_START);
 }
 
-static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
+static bool renesas_sdhi_internal_dmac_complete(struct tmio_mmc_host *host)
 {
-	struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg;
 	enum dma_data_direction dir;
 
-	spin_lock_irq(&host->lock);
-
 	if (!host->data)
-		goto out;
+		return false;
 
 	if (host->data->flags & MMC_DATA_READ)
 		dir = DMA_FROM_DEVICE;
@@ -250,6 +247,17 @@ static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
 	if (dir == DMA_FROM_DEVICE)
 		clear_bit(SDHI_INTERNAL_DMAC_RX_IN_USE, &global_flags);
 
+	return true;
+}
+
+static void renesas_sdhi_internal_dmac_complete_tasklet_fn(unsigned long arg)
+{
+	struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg;
+
+	spin_lock_irq(&host->lock);
+	if (!renesas_sdhi_internal_dmac_complete(host))
+		goto out;
+
 	tmio_mmc_do_data_irq(host);
 out:
 	spin_unlock_irq(&host->lock);
drivers/mtd/nand/raw/brcmnand/brcmnand.c +26 -0
index ac934a715a19..a4033d32a710 100644
@@ -1918,6 +1918,22 @@ static int brcmnand_edu_trans(struct brcmnand_host *host, u64 addr, u32 *buf,
 	edu_writel(ctrl, EDU_STOP, 0); /* force stop */
 	edu_readl(ctrl, EDU_STOP);
 
+	if (!ret && edu_cmd == EDU_CMD_READ) {
+		u64 err_addr = 0;
+
+		/*
+		 * check for ECC errors here, subpage ECC errors are
+		 * retained in ECC error address register
+		 */
+		err_addr = brcmnand_get_uncorrecc_addr(ctrl);
+		if (!err_addr) {
+			err_addr = brcmnand_get_correcc_addr(ctrl);
+			if (err_addr)
+				ret = -EUCLEAN;
+		} else
+			ret = -EBADMSG;
+	}
+
 	return ret;
 }
 
@@ -2124,6 +2140,7 @@ static int brcmnand_read(struct mtd_info *mtd, struct nand_chip *chip,
 	u64 err_addr = 0;
 	int err;
 	bool retry = true;
+	bool edu_err = false;
 
 	dev_dbg(ctrl->dev, "read %llx -> %p\n", (unsigned long long)addr, buf);
 
@@ -2141,6 +2158,10 @@ static int brcmnand_read(struct mtd_info *mtd, struct nand_chip *chip,
 			else
 				return -EIO;
 		}
+
+		if (has_edu(ctrl) && err_addr)
+			edu_err = true;
+
 	} else {
 		if (oob)
 			memset(oob, 0x99, mtd->oobsize);
@@ -2188,6 +2209,11 @@ static int brcmnand_read(struct mtd_info *mtd, struct nand_chip *chip,
 	if (mtd_is_bitflip(err)) {
 		unsigned int corrected = brcmnand_count_corrected(ctrl);
 
+		/* in case of EDU correctable error we read again using PIO */
+		if (edu_err)
+			err = brcmnand_read_by_pio(mtd, chip, addr, trans, buf,
+						   oob, &err_addr);
+
 		dev_dbg(ctrl->dev, "corrected error at 0x%llx\n",
 			(unsigned long long)err_addr);
 		mtd->ecc_stats.corrected += corrected;
drivers/mtd/nand/raw/fsl_upm.c +0 -1
index 627deb26db51..76d1032cd35e 100644
@@ -62,7 +62,6 @@ static int fun_chip_ready(struct nand_chip *chip)
 static void fun_wait_rnb(struct fsl_upm_nand *fun)
 {
 	if (fun->rnb_gpio[fun->mchip_number] >= 0) {
-		struct mtd_info *mtd = nand_to_mtd(&fun->chip);
 		int cnt = 1000000;
 
 		while (--cnt && !fun_chip_ready(&fun->chip))
drivers/mtd/ubi/fastmap-wl.c +5 -0
index 83afc00e365a..28f55f9cf715 100644
@@ -381,6 +381,11 @@ static void ubi_fastmap_close(struct ubi_device *ubi)
 		ubi->fm_anchor = NULL;
 	}
 
+	if (ubi->fm_next_anchor) {
+		return_unused_peb(ubi, ubi->fm_next_anchor);
+		ubi->fm_next_anchor = NULL;
+	}
+
 	if (ubi->fm) {
 		for (i = 0; i < ubi->fm->used_blocks; i++)
 			kfree(ubi->fm->e[i]);
drivers/mtd/ubi/wl.c +2 -1
index 27636063ed1b..42cac572f82d 100644
@@ -1086,7 +1086,8 @@ static int __erase_worker(struct ubi_device *ubi, struct ubi_work *wl_wrk)
 	if (!err) {
 		spin_lock(&ubi->wl_lock);
 
-		if (!ubi->fm_next_anchor && e->pnum < UBI_FM_MAX_START) {
+		if (!ubi->fm_disabled && !ubi->fm_next_anchor &&
+		    e->pnum < UBI_FM_MAX_START) {
 			/* Abort anchor production, if needed it will be
 			 * enabled again in the wear leveling started below.
 			 */
drivers/net/ethernet/marvell/octeontx2/af/common.h +1 -1
index cd33c2e6ca5f..f48eb66ed021 100644
@@ -43,7 +43,7 @@ struct qmem {
 	void            *base;
 	dma_addr_t	iova;
 	int		alloc_sz;
-	u8		entry_sz;
+	u16		entry_sz;
 	u8		align;
 	u32		qsize;
 };
drivers/net/ethernet/qualcomm/emac/emac.c +14 -3
index 20b1b43a0e39..1166b98d8bb2 100644
@@ -474,13 +474,24 @@ static int emac_clks_phase1_init(struct platform_device *pdev,
 
 	ret = clk_prepare_enable(adpt->clk[EMAC_CLK_CFG_AHB]);
 	if (ret)
-		return ret;
+		goto disable_clk_axi;
 
 	ret = clk_set_rate(adpt->clk[EMAC_CLK_HIGH_SPEED], 19200000);
 	if (ret)
-		return ret;
+		goto disable_clk_cfg_ahb;
+
+	ret = clk_prepare_enable(adpt->clk[EMAC_CLK_HIGH_SPEED]);
+	if (ret)
+		goto disable_clk_cfg_ahb;
 
-	return clk_prepare_enable(adpt->clk[EMAC_CLK_HIGH_SPEED]);
+	return 0;
+
+disable_clk_cfg_ahb:
+	clk_disable_unprepare(adpt->clk[EMAC_CLK_CFG_AHB]);
+disable_clk_axi:
+	clk_disable_unprepare(adpt->clk[EMAC_CLK_AXI]);
+
+	return ret;
 }
 
 /* Enable clocks; needs emac_clks_phase1_init to be called before */
drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c +1 -0
index 02102c781a8c..bf3250e0e59c 100644
@@ -351,6 +351,7 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
 	plat_dat->has_gmac = true;
 	plat_dat->bsp_priv = gmac;
 	plat_dat->fix_mac_speed = ipq806x_gmac_fix_mac_speed;
+	plat_dat->multicast_filter_bins = 0;
 
 	err = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
 	if (err)
drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c +3 -0
index efc6ec1b8027..fc8759f146c7 100644
@@ -164,6 +164,9 @@ static void dwmac1000_set_filter(struct mac_device_info *hw,
 		value = GMAC_FRAME_FILTER_PR | GMAC_FRAME_FILTER_PCF;
 	} else if (dev->flags & IFF_ALLMULTI) {
 		value = GMAC_FRAME_FILTER_PM;	/* pass all multi */
+	} else if (!netdev_mc_empty(dev) && (mcbitslog2 == 0)) {
+		/* Fall back to all multicast if we've no filter */
+		value = GMAC_FRAME_FILTER_PM;
 	} else if (!netdev_mc_empty(dev)) {
 		struct netdev_hw_addr *ha;
 
drivers/net/wireless/realtek/rtw88/pci.c +9 -0
index 8228db9a5fc8..3413973bc475 100644
@@ -14,8 +14,11 @@
 #include "debug.h"
 
 static bool rtw_disable_msi;
+static bool rtw_pci_disable_aspm;
 module_param_named(disable_msi, rtw_disable_msi, bool, 0644);
+module_param_named(disable_aspm, rtw_pci_disable_aspm, bool, 0644);
 MODULE_PARM_DESC(disable_msi, "Set Y to disable MSI interrupt support");
+MODULE_PARM_DESC(disable_aspm, "Set Y to disable PCI ASPM support");
 
 static u32 rtw_pci_tx_queue_idx_addr[] = {
 	[RTW_TX_QUEUE_BK]	= RTK_PCI_TXBD_IDX_BKQ,
@@ -1200,6 +1203,9 @@ static void rtw_pci_clkreq_set(struct rtw_dev *rtwdev, bool enable)
 	u8 value;
 	int ret;
 
+	if (rtw_pci_disable_aspm)
+		return;
+
 	ret = rtw_dbi_read8(rtwdev, RTK_PCIE_LINK_CFG, &value);
 	if (ret) {
 		rtw_err(rtwdev, "failed to read CLKREQ_L1, ret=%d", ret);
@@ -1219,6 +1225,9 @@ static void rtw_pci_aspm_set(struct rtw_dev *rtwdev, bool enable)
 	u8 value;
 	int ret;
 
+	if (rtw_pci_disable_aspm)
+		return;
+
 	ret = rtw_dbi_read8(rtwdev, RTK_PCIE_LINK_CFG, &value);
 	if (ret) {
 		rtw_err(rtwdev, "failed to read ASPM, ret=%d", ret);
drivers/nvdimm/bus.c +16 -0
index 09087c38fabd..955265656b96 100644
@@ -1037,9 +1037,25 @@ static int __nd_ioctl(struct nvdimm_bus *nvdimm_bus, struct nvdimm *nvdimm,
 		dimm_name = "bus";
 	}
 
+	/* Validate command family support against bus declared support */
 	if (cmd == ND_CMD_CALL) {
+		unsigned long *mask;
+
 		if (copy_from_user(&pkg, p, sizeof(pkg)))
 			return -EFAULT;
+
+		if (nvdimm) {
+			if (pkg.nd_family > NVDIMM_FAMILY_MAX)
+				return -EINVAL;
+			mask = &nd_desc->dimm_family_mask;
+		} else {
+			if (pkg.nd_family > NVDIMM_BUS_FAMILY_MAX)
+				return -EINVAL;
+			mask = &nd_desc->bus_family_mask;
+		}
+
+		if (!test_bit(pkg.nd_family, mask))
+			return -EINVAL;
 	}
 
 	if (!desc ||
drivers/nvdimm/security.c +9 -4
index 4cef69bd3c1b..4b80150e4afa 100644
@@ -450,14 +450,19 @@ void __nvdimm_security_overwrite_query(struct nvdimm *nvdimm)
 	else
 		dev_dbg(&nvdimm->dev, "overwrite completed\n");
 
-	if (nvdimm->sec.overwrite_state)
-		sysfs_notify_dirent(nvdimm->sec.overwrite_state);
+	/*
+	 * Mark the overwrite work done and update dimm security flags,
+	 * then send a sysfs event notification to wake up userspace
+	 * poll threads to picked up the changed state.
+	 */
 	nvdimm->sec.overwrite_tmo = 0;
 	clear_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags);
 	clear_bit(NDD_WORK_PENDING, &nvdimm->flags);
-	put_device(&nvdimm->dev);
 	nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER);
-	nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_MASTER);
+	nvdimm->sec.ext_flags = nvdimm_security_flags(nvdimm, NVDIMM_MASTER);
+	if (nvdimm->sec.overwrite_state)
+		sysfs_notify_dirent(nvdimm->sec.overwrite_state);
+	put_device(&nvdimm->dev);
 }
 
 void nvdimm_security_overwrite_query(struct work_struct *work)
drivers/nvme/host/core.c +15 -0
index 4ee2330c603e..f38548e6d55e 100644
@@ -362,6 +362,16 @@ bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
 			break;
 		}
 		break;
+	case NVME_CTRL_DELETING_NOIO:
+		switch (old_state) {
+		case NVME_CTRL_DELETING:
+		case NVME_CTRL_DEAD:
+			changed = true;
+			/* FALLTHRU */
+		default:
+			break;
+		}
+		break;
 	case NVME_CTRL_DEAD:
 		switch (old_state) {
 		case NVME_CTRL_DELETING:
@@ -399,6 +409,7 @@ static bool nvme_state_terminal(struct nvme_ctrl *ctrl)
 	case NVME_CTRL_CONNECTING:
 		return false;
 	case NVME_CTRL_DELETING:
+	case NVME_CTRL_DELETING_NOIO:
 	case NVME_CTRL_DEAD:
 		return true;
 	default:
@@ -3344,6 +3355,7 @@ static ssize_t nvme_sysfs_show_state(struct device *dev,
 		[NVME_CTRL_RESETTING]	= "resetting",
 		[NVME_CTRL_CONNECTING]	= "connecting",
 		[NVME_CTRL_DELETING]	= "deleting",
+		[NVME_CTRL_DELETING_NOIO]= "deleting (no IO)",
 		[NVME_CTRL_DEAD]	= "dead",
 	};
 
@@ -3911,6 +3923,9 @@ void nvme_remove_namespaces(struct nvme_ctrl *ctrl)
 	if (ctrl->state == NVME_CTRL_DEAD)
 		nvme_kill_queues(ctrl);
 
+	/* this is a no-op when called from the controller reset handler */
+	nvme_change_ctrl_state(ctrl, NVME_CTRL_DELETING_NOIO);
+
 	down_write(&ctrl->namespaces_rwsem);
 	list_splice_init(&ctrl->namespaces, &ns_list);
 	up_write(&ctrl->namespaces_rwsem);
drivers/nvme/host/fabrics.c +1 -1
index 2a6c8190eeb7..4ec4829d6233 100644
@@ -547,7 +547,7 @@ static struct nvmf_transport_ops *nvmf_lookup_transport(
 blk_status_t nvmf_fail_nonready_command(struct nvme_ctrl *ctrl,
 		struct request *rq)
 {
-	if (ctrl->state != NVME_CTRL_DELETING &&
+	if (ctrl->state != NVME_CTRL_DELETING_NOIO &&
 	    ctrl->state != NVME_CTRL_DEAD &&
 	    !blk_noretry_request(rq) && !(rq->cmd_flags & REQ_NVME_MPATH))
 		return BLK_STS_RESOURCE;
drivers/nvme/host/fabrics.h +2 -1
index a0ec40ab62ee..a9c1e3b4585e 100644
@@ -182,7 +182,8 @@ bool nvmf_ip_options_match(struct nvme_ctrl *ctrl,
 static inline bool nvmf_check_ready(struct nvme_ctrl *ctrl, struct request *rq,
 		bool queue_live)
 {
-	if (likely(ctrl->state == NVME_CTRL_LIVE))
+	if (likely(ctrl->state == NVME_CTRL_LIVE ||
+		   ctrl->state == NVME_CTRL_DELETING))
 		return true;
 	return __nvmf_check_ready(ctrl, rq, queue_live);
 }
drivers/nvme/host/fc.c +1 -0
index e999a8c4b7e8..549f5b0fb0b4 100644
@@ -825,6 +825,7 @@ nvme_fc_ctrl_connectivity_loss(struct nvme_fc_ctrl *ctrl)
 		break;
 
 	case NVME_CTRL_DELETING:
+	case NVME_CTRL_DELETING_NOIO:
 	default:
 		/* no action to take - let it delete */
 		break;
drivers/nvme/host/multipath.c +15 -3
index 57d51148e71b..267295323343 100644
@@ -167,9 +167,18 @@ void nvme_mpath_clear_ctrl_paths(struct nvme_ctrl *ctrl)
 
 static bool nvme_path_is_disabled(struct nvme_ns *ns)
 {
-	return ns->ctrl->state != NVME_CTRL_LIVE ||
-		test_bit(NVME_NS_ANA_PENDING, &ns->flags) ||
-		test_bit(NVME_NS_REMOVING, &ns->flags);
+	/*
+	 * We don't treat NVME_CTRL_DELETING as a disabled path as I/O should
+	 * still be able to complete assuming that the controller is connected.
+	 * Otherwise it will fail immediately and return to the requeue list.
+	 */
+	if (ns->ctrl->state != NVME_CTRL_LIVE &&
+	    ns->ctrl->state != NVME_CTRL_DELETING)
+		return true;
+	if (test_bit(NVME_NS_ANA_PENDING, &ns->flags) ||
+	    test_bit(NVME_NS_REMOVING, &ns->flags))
+		return true;
+	return false;
 }
 
 static struct nvme_ns *__nvme_find_path(struct nvme_ns_head *head, int node)
@@ -574,6 +583,9 @@ static void nvme_ana_work(struct work_struct *work)
 {
 	struct nvme_ctrl *ctrl = container_of(work, struct nvme_ctrl, ana_work);
 
+	if (ctrl->state != NVME_CTRL_LIVE)
+		return;
+
 	nvme_read_ana_log(ctrl);
 }
 
drivers/nvme/host/nvme.h +1 -0
index 09ffc3246f60..e268f1d7e1a0 100644
@@ -186,6 +186,7 @@ enum nvme_ctrl_state {
 	NVME_CTRL_RESETTING,
 	NVME_CTRL_CONNECTING,
 	NVME_CTRL_DELETING,
+	NVME_CTRL_DELETING_NOIO,
 	NVME_CTRL_DEAD,
 };
 
drivers/nvme/host/rdma.c +6 -4
index af0cfd25ed7a..876859cd14e8 100644
@@ -1082,11 +1082,12 @@ static int nvme_rdma_setup_ctrl(struct nvme_rdma_ctrl *ctrl, bool new)
 	changed = nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_LIVE);
 	if (!changed) {
 		/*
-		 * state change failure is ok if we're in DELETING state,
+		 * state change failure is ok if we started ctrl delete,
 		 * unless we're during creation of a new controller to
 		 * avoid races with teardown flow.
 		 */
-		WARN_ON_ONCE(ctrl->ctrl.state != NVME_CTRL_DELETING);
+		WARN_ON_ONCE(ctrl->ctrl.state != NVME_CTRL_DELETING &&
+			     ctrl->ctrl.state != NVME_CTRL_DELETING_NOIO);
 		WARN_ON_ONCE(new);
 		ret = -EINVAL;
 		goto destroy_io;
@@ -1139,8 +1140,9 @@ static void nvme_rdma_error_recovery_work(struct work_struct *work)
 	blk_mq_unquiesce_queue(ctrl->ctrl.admin_q);
 
 	if (!nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_CONNECTING)) {
-		/* state change failure is ok if we're in DELETING state */
-		WARN_ON_ONCE(ctrl->ctrl.state != NVME_CTRL_DELETING);
+		/* state change failure is ok if we started ctrl delete */
+		WARN_ON_ONCE(ctrl->ctrl.state != NVME_CTRL_DELETING &&
+			     ctrl->ctrl.state != NVME_CTRL_DELETING_NOIO);
 		return;
 	}
 
drivers/nvme/host/tcp.c +9 -6
index 83bb329d4113..a6d2e3330a58 100644
@@ -1929,11 +1929,12 @@ static int nvme_tcp_setup_ctrl(struct nvme_ctrl *ctrl, bool new)
 
 	if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_LIVE)) {
 		/*
-		 * state change failure is ok if we're in DELETING state,
+		 * state change failure is ok if we started ctrl delete,
 		 * unless we're during creation of a new controller to
 		 * avoid races with teardown flow.
 		 */
-		WARN_ON_ONCE(ctrl->state != NVME_CTRL_DELETING);
+		WARN_ON_ONCE(ctrl->state != NVME_CTRL_DELETING &&
+			     ctrl->state != NVME_CTRL_DELETING_NOIO);
 		WARN_ON_ONCE(new);
 		ret = -EINVAL;
 		goto destroy_io;
@@ -1989,8 +1990,9 @@ static void nvme_tcp_error_recovery_work(struct work_struct *work)
 	blk_mq_unquiesce_queue(ctrl->admin_q);
 
 	if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_CONNECTING)) {
-		/* state change failure is ok if we're in DELETING state */
-		WARN_ON_ONCE(ctrl->state != NVME_CTRL_DELETING);
+		/* state change failure is ok if we started ctrl delete */
+		WARN_ON_ONCE(ctrl->state != NVME_CTRL_DELETING &&
+			     ctrl->state != NVME_CTRL_DELETING_NOIO);
 		return;
 	}
 
@@ -2025,8 +2027,9 @@ static void nvme_reset_ctrl_work(struct work_struct *work)
 	nvme_tcp_teardown_ctrl(ctrl, false);
 
 	if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_CONNECTING)) {
-		/* state change failure is ok if we're in DELETING state */
-		WARN_ON_ONCE(ctrl->state != NVME_CTRL_DELETING);
+		/* state change failure is ok if we started ctrl delete */
+		WARN_ON_ONCE(ctrl->state != NVME_CTRL_DELETING &&
+			     ctrl->state != NVME_CTRL_DELETING_NOIO);
 		return;
 	}
 
drivers/pci/ats.c +15 -0
index b761c1f72f67..647e097530a8 100644
@@ -325,6 +325,21 @@ int pci_prg_resp_pasid_required(struct pci_dev *pdev)
 
 	return pdev->pasid_required;
 }
+
+/**
+ * pci_pri_supported - Check if PRI is supported.
+ * @pdev: PCI device structure
+ *
+ * Returns true if PRI capability is present, false otherwise.
+ */
+bool pci_pri_supported(struct pci_dev *pdev)
+{
+	/* VFs share the PF PRI */
+	if (pci_physfn(pdev)->pri_cap)
+		return true;
+	return false;
+}
+EXPORT_SYMBOL_GPL(pci_pri_supported);
 #endif /* CONFIG_PCI_PRI */
 
 #ifdef CONFIG_PCI_PASID
drivers/pci/bus.c +1 -5
index 8e40b3e6da77..3cef835b375f 100644
@@ -322,12 +322,8 @@ void pci_bus_add_device(struct pci_dev *dev)
 
 	dev->match_driver = true;
 	retval = device_attach(&dev->dev);
-	if (retval < 0 && retval != -EPROBE_DEFER) {
+	if (retval < 0 && retval != -EPROBE_DEFER)
 		pci_warn(dev, "device attach failed (%d)\n", retval);
-		pci_proc_detach_device(dev);
-		pci_remove_sysfs_dev_files(dev);
-		return;
-	}
 
 	pci_dev_assign_added(dev, true);
 }
drivers/pci/controller/dwc/pcie-qcom.c +40 -1

68 lines not on this page · raw message

drivers/pci/hotplug/acpiphp_glue.c +11 -3
index b4c92cee13f8..3365c93abf0e 100644
@@ -122,13 +122,21 @@ static struct acpiphp_context *acpiphp_grab_context(struct acpi_device *adev)
 	struct acpiphp_context *context;
 
 	acpi_lock_hp_context();
+
 	context = acpiphp_get_context(adev);
-	if (!context || context->func.parent->is_going_away) {
-		acpi_unlock_hp_context();
-		return NULL;
+	if (!context)
+		goto unlock;
+
+	if (context->func.parent->is_going_away) {
+		acpiphp_put_context(context);
+		context = NULL;
+		goto unlock;
 	}
+
 	get_bridge(context->func.parent);
 	acpiphp_put_context(context);
+
+unlock:
 	acpi_unlock_hp_context();
 	return context;
 }
drivers/pci/quirks.c +4 -1
index d442219cd270..cc6e1a382118 100644
@@ -5207,7 +5207,8 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags);
  */
 static void quirk_amd_harvest_no_ats(struct pci_dev *pdev)
 {
-	if (pdev->device == 0x7340 && pdev->revision != 0xc5)
+	if ((pdev->device == 0x7312 && pdev->revision != 0x00) ||
+	    (pdev->device == 0x7340 && pdev->revision != 0xc5))
 		return;
 
 	pci_info(pdev, "disabling ATS\n");
@@ -5218,6 +5219,8 @@ static void quirk_amd_harvest_no_ats(struct pci_dev *pdev)
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_amd_harvest_no_ats);
 /* AMD Iceland dGPU */
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_amd_harvest_no_ats);
+/* AMD Navi10 dGPU */
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7312, quirk_amd_harvest_no_ats);
 /* AMD Navi14 dGPU */
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x7340, quirk_amd_harvest_no_ats);
 #endif /* CONFIG_PCI_ATS */
drivers/pinctrl/pinctrl-ingenic.c +5 -4
index 6a8d44504f94..367211998ab0 100644
@@ -1810,9 +1810,9 @@ static void ingenic_gpio_irq_ack(struct irq_data *irqd)
 		 */
 		high = ingenic_gpio_get_value(jzgc, irq);
 		if (high)
-			irq_set_type(jzgc, irq, IRQ_TYPE_EDGE_FALLING);
+			irq_set_type(jzgc, irq, IRQ_TYPE_LEVEL_LOW);
 		else
-			irq_set_type(jzgc, irq, IRQ_TYPE_EDGE_RISING);
+			irq_set_type(jzgc, irq, IRQ_TYPE_LEVEL_HIGH);
 	}
 
 	if (jzgc->jzpc->info->version >= ID_JZ4760)
@@ -1848,7 +1848,7 @@ static int ingenic_gpio_irq_set_type(struct irq_data *irqd, unsigned int type)
 		 */
 		bool high = ingenic_gpio_get_value(jzgc, irqd->hwirq);
 
-		type = high ? IRQ_TYPE_EDGE_FALLING : IRQ_TYPE_EDGE_RISING;
+		type = high ? IRQ_TYPE_LEVEL_LOW : IRQ_TYPE_LEVEL_HIGH;
 	}
 
 	irq_set_type(jzgc, irqd->hwirq, type);
@@ -1955,7 +1955,8 @@ static int ingenic_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
 	unsigned int pin = gc->base + offset;
 
 	if (jzpc->info->version >= ID_JZ4760) {
-		if (ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1))
+		if (ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_INT) ||
+		    ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1))
 			return GPIO_LINE_DIRECTION_IN;
 		return GPIO_LINE_DIRECTION_OUT;
 	}
drivers/platform/chrome/cros_ec_ishtp.c +3 -1
index ed794a7ddba9..81364029af36 100644
@@ -681,8 +681,10 @@ static int cros_ec_ishtp_probe(struct ishtp_cl_device *cl_device)
 
 	/* Register croc_ec_dev mfd */
 	rv = cros_ec_dev_init(client_data);
-	if (rv)
+	if (rv) {
+		down_write(&init_lock);
 		goto end_cros_ec_dev_init_error;
+	}
 
 	return 0;
 
drivers/pwm/pwm-bcm-iproc.c +7 -2
index 1f829edd8ee7..d392a828fc49 100644
@@ -85,8 +85,6 @@ static void iproc_pwmc_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
 	u64 tmp, multi, rate;
 	u32 value, prescale;
 
-	rate = clk_get_rate(ip->clk);
-
 	value = readl(ip->base + IPROC_PWM_CTRL_OFFSET);
 
 	if (value & BIT(IPROC_PWM_CTRL_EN_SHIFT(pwm->hwpwm)))
@@ -99,6 +97,13 @@ static void iproc_pwmc_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
 	else
 		state->polarity = PWM_POLARITY_INVERSED;
 
+	rate = clk_get_rate(ip->clk);
+	if (rate == 0) {
+		state->period = 0;
+		state->duty_cycle = 0;
+		return;
+	}
+
 	value = readl(ip->base + IPROC_PWM_PRESCALE_OFFSET);
 	prescale = value >> IPROC_PWM_PRESCALE_SHIFT(pwm->hwpwm);
 	prescale &= IPROC_PWM_PRESCALE_MAX;
drivers/remoteproc/qcom_q6v5.c +2 -0
index 111a442c993c..fd6fd36268d9 100644
@@ -153,6 +153,8 @@ int qcom_q6v5_request_stop(struct qcom_q6v5 *q6v5)
 {
 	int ret;
 
+	q6v5->running = false;
+
 	qcom_smem_state_update_bits(q6v5->state,
 				    BIT(q6v5->stop_bit), BIT(q6v5->stop_bit));
 
drivers/remoteproc/qcom_q6v5_mss.c +8 -3
index feb70283b6a2..a6770e5e32da 100644
@@ -407,6 +407,12 @@ static int q6v5_load(struct rproc *rproc, const struct firmware *fw)
 {
 	struct q6v5 *qproc = rproc->priv;
 
+	/* MBA is restricted to a maximum size of 1M */
+	if (fw->size > qproc->mba_size || fw->size > SZ_1M) {
+		dev_err(qproc->dev, "MBA firmware load failed\n");
+		return -EINVAL;
+	}
+
 	memcpy(qproc->mba_region, fw->data, fw->size);
 
 	return 0;
@@ -1138,15 +1144,14 @@ static int q6v5_mpss_load(struct q6v5 *qproc)
 		} else if (phdr->p_filesz) {
 			/* Replace "xxx.xxx" with "xxx.bxx" */
 			sprintf(fw_name + fw_name_len - 3, "b%02d", i);
-			ret = request_firmware(&seg_fw, fw_name, qproc->dev);
+			ret = request_firmware_into_buf(&seg_fw, fw_name, qproc->dev,
+							ptr, phdr->p_filesz);
 			if (ret) {
 				dev_err(qproc->dev, "failed to load %s\n", fw_name);
 				iounmap(ptr);
 				goto release_firmware;
 			}
 
-			memcpy(ptr, seg_fw->data, seg_fw->size);
-
 			release_firmware(seg_fw);
 		}
 
drivers/rtc/rtc-cpcap.c +1 -1
index a603f1f21125..800667d73a6f 100644
@@ -261,7 +261,7 @@ static int cpcap_rtc_probe(struct platform_device *pdev)
 		return PTR_ERR(rtc->rtc_dev);
 
 	rtc->rtc_dev->ops = &cpcap_rtc_ops;
-	rtc->rtc_dev->range_max = (1 << 14) * SECS_PER_DAY - 1;
+	rtc->rtc_dev->range_max = (timeu64_t) (DAY_MASK + 1) * SECS_PER_DAY - 1;
 
 	err = cpcap_get_vendor(dev, rtc->regmap, &rtc->vendor);
 	if (err)
drivers/rtc/rtc-pl031.c +1 -0
index 40d7450a1ce4..c6b89273feba 100644
@@ -275,6 +275,7 @@ static int pl031_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
 	struct pl031_local *ldata = dev_get_drvdata(dev);
 
 	writel(rtc_tm_to_time64(&alarm->time), ldata->base + RTC_MR);
+	pl031_alarm_irq_enable(dev, alarm->enabled);
 
 	return 0;
 }
drivers/scsi/lpfc/lpfc_nvmet.c +1 -1
index 88760416a8cb..fcd9d4c2f1ee 100644
@@ -2112,7 +2112,7 @@ lpfc_nvmet_destroy_targetport(struct lpfc_hba *phba)
 		}
 		tgtp->tport_unreg_cmp = &tport_unreg_cmp;
 		nvmet_fc_unregister_targetport(phba->targetport);
-		if (!wait_for_completion_timeout(tgtp->tport_unreg_cmp,
+		if (!wait_for_completion_timeout(&tport_unreg_cmp,
 					msecs_to_jiffies(LPFC_NVMET_WAIT_TMO)))
 			lpfc_printf_log(phba, KERN_ERR, LOG_NVME,
 					"6179 Unreg targetport x%px timeout "
drivers/staging/media/rkisp1/rkisp1-common.h +3 -0
index 0c4fe503adc9..12bd9d05050d 100644
@@ -22,6 +22,9 @@
 #include "rkisp1-regs.h"
 #include "uapi/rkisp1-config.h"
 
+#define RKISP1_ISP_SD_SRC BIT(0)
+#define RKISP1_ISP_SD_SINK BIT(1)
+
 #define RKISP1_ISP_MAX_WIDTH		4032
 #define RKISP1_ISP_MAX_HEIGHT		3024
 #define RKISP1_ISP_MIN_WIDTH		32
drivers/staging/media/rkisp1/rkisp1-isp.c +21 -25

128 lines not on this page · raw message

drivers/staging/media/rkisp1/rkisp1-resizer.c +1 -1
index e188944941b5..a2b35961bc8b 100644

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

drivers/usb/serial/ftdi_sio.c +18 -19
index 9ad44a96dfe3..33f1cca7eaa6 100644

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

drivers/vdpa/vdpa_sim/vdpa_sim.c +2 -1
index 8ac6f341dcc1..67956db75013 100644

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

drivers/watchdog/f71808e_wdt.c +10 -3
index a3c44d75d80e..26bf366aebc2 100644

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

drivers/watchdog/rti_wdt.c +2 -0
index d456dd72d99a..c904496fff65 100644

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

drivers/watchdog/watchdog_dev.c +9 -9
index 7e4cd34a8c20..b535f5fa279b 100644

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

fs/btrfs/backref.c +1 -1
index ea10f7bc99ab..ea1c28ccb44f 100644

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

fs/btrfs/ctree.h +3 -1
index 7c8efa0c3ee6..6fdb3392a06d 100644

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

fs/btrfs/disk-io.c +71 -7

78 lines not on this page · raw message

fs/btrfs/disk-io.h +2 -0
index bf43245406c4..00dc39d47ed3 100644

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

fs/btrfs/extent-io-tree.h +2 -0
index b6561455b3c4..8bbb734f3f51 100644

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

fs/btrfs/extent-tree.c +22 -1
index 96223813b618..de6fe176fdfb 100644

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

fs/btrfs/extent_io.c +14 -4
index eeaee346f5a9..8ba8788461ae 100644

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

fs/btrfs/free-space-cache.c +2 -2
index 55955bd424d7..6f7b6bca6dc5 100644

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

fs/btrfs/inode.c +14 -6
index 3f77ec5de8ec..7ba1218b1630 100644

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

fs/btrfs/ioctl.c +55 -12

67 lines not on this page · raw message

fs/btrfs/ref-verify.c +2 -0
index af92525dbb16..7f03dbe5b609 100644

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

fs/btrfs/relocation.c +10 -2
index 3bbae80c752f..5740ed51a1e8 100644

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

fs/btrfs/scrub.c +1 -1
index 016a025e36c7..5f5b21e389db 100644

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

fs/btrfs/super.c +30 -21

51 lines not on this page · raw message

fs/btrfs/sysfs.c +3 -0
index a39bff64ff24..abc4a8fd6df6 100644

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

fs/btrfs/transaction.c +5 -2
index b359d4b17658..2710f8ddb95f 100644

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

fs/btrfs/transaction.h +2 -0
index bf102e64bfb2..a122a712f5cc 100644

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

fs/btrfs/tree-log.c +14 -29

43 lines not on this page · raw message

fs/btrfs/volumes.c +41 -7

48 lines not on this page · raw message

fs/ceph/dir.c +4 -0
index 39f5311404b0..060bdcc5ce32 100644

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

fs/ceph/mds_client.c +4 -2
index a50497142e59..dea971f9d89e 100644

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

fs/cifs/smb2inode.c +1 -0
index b9db73687eaa..eba01d0908dd 100644

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

fs/cifs/smb2misc.c +52 -21

73 lines not on this page · raw message

fs/cifs/smb2pdu.c +2 -0
index 2f4cdd290c46..492688764004 100644

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

fs/ext2/ialloc.c +2 -1
index fda7d3f5b4be..432c3febea6d 100644

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

fs/f2fs/compress.c +2 -0
index 1e02a8c106b0..f6fbe61b1251 100644

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

fs/f2fs/data.c +4 -0
index 326c63879ddc..6e9017e6a819 100644

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

fs/gfs2/bmap.c +39 -30

69 lines not on this page · raw message

fs/gfs2/glock.c +3 -1
index 8545024a1401..f92876f4f37a 100644

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

fs/minix/inode.c +7 -5
index 0dd929346f3f..7b09a9158e40 100644

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

fs/minix/itree_v1.c +6 -6
index 046cc96ee7ad..1fed906042aa 100644

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

fs/minix/itree_v2.c +6 -7
index f7fc7ecccccc..9d00f31a2d9d 100644

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

fs/minix/minix.h +0 -1
index df081e8afcc3..168d45d3de73 100644

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

fs/nfs/file.c +13 -4
index f96367a2463e..63940a7a70be 100644

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

fs/nfs/flexfilelayout/flexfilelayout.c +36 -14

50 lines not on this page · raw message

fs/nfs/nfs4file.c +4 -1
index 8e5d6223ddd3..a33970765467 100644

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

fs/nfs/nfs4proc.c +0 -2
index 2e2dac29a9e9..45e0585e0667 100644

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

fs/nfs/nfs4xdr.c +5 -1
index 47817ef0aadb..4e0d8a3b89b6 100644

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

fs/nfs/pnfs.c +3 -1
index d61dac48dff5..75e988caf3cd 100644

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

fs/nfs/pnfs.h +1 -1
index 8e0ada581b92..2661c44c62db 100644

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

fs/ocfs2/ocfs2.h +2 -2
index 2dd71d626196..7993d527edae 100644

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

fs/ocfs2/suballoc.c +2 -2
index 45745cc3408a..8c8cf7f4eb34 100644

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

fs/ocfs2/super.c +2 -2
index 71ea9ce71a6b..1d91dd1e8711 100644

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

fs/ubifs/journal.c +6 -4
index e5ec1afe1c66..2cf05f87565c 100644

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

fs/ufs/super.c +1 -1
index 1da0be667409..e3b69fb280e8 100644

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

include/crypto/if_alg.h +3 -1
index 088c1ded2714..ee6412314f8f 100644

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

include/linux/fs.h +10 -0
index f5abba86107d..2dab217c6047 100644

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

include/linux/hugetlb.h +5 -3
index 50650d0d01b9..a520bf26e5d8 100644

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

include/linux/intel-iommu.h +2 -2
index 04bd9279c3fb..711bdca975be 100644

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

include/linux/irq.h +13 -0
index 8d5bc2c237d7..1b7f4dfee35b 100644

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

include/linux/libnvdimm.h +2 -0
index 18da4059be09..bd39a2cf7972 100644

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

include/linux/pci-ats.h +4 -0
index f75c307f346d..df54cd5b15db 100644

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

include/net/sock.h +4 -0
index 1183507df95b..d05a2c3ed3a6 100644

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

include/uapi/linux/btrfs.h +12 -2
index e6b6cb0f8bc6..24f6848ad78e 100644

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

include/uapi/linux/ndctl.h +4 -0
index 0e09dc5cec19..e9468b9332bd 100644

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

init/main.c +8 -6
index 0ead83e86b5a..883ded3638e5 100644

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

kernel/irq/manage.c +10 -3
index 2a9fec53e159..e68a8f993106 100644

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

kernel/irq/pm.c +6 -2
index 8f557fa1f4fe..c6c7e187ae74 100644

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

kernel/kprobes.c +21 -3
index 2e97febeef77..72af5d37e9ff 100644

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

kernel/kthread.c +6 -1
index 132f84a5fde3..f481ab35de2f 100644

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

kernel/module.c +19 -3
index aa183c9ac0a2..08c46084d8cc 100644

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

kernel/pid.c +5 -2
index f1496b757162..ee58530d1aca 100644

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

kernel/sched/core.c +80 -1

81 lines not on this page · raw message

kernel/sched/cpufreq_schedutil.c +1 -1
index 7fbaee24c824..dc6835bc6490 100644

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

kernel/sched/sched.h +45 -2

47 lines not on this page · raw message

kernel/trace/ftrace.c +9 -6
index 7d879fae3777..b5cb5be3ca6f 100644

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

kernel/trace/trace_events.c +2 -2
index f6f55682d3e2..a85effb2373b 100644

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

kernel/trace/trace_hwlat.c +3 -2
index e2be7bb7ef7e..17e1e49e5b93 100644

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

lib/devres.c +10 -1
index 6ef51f159c54..ca0d28727cce 100644

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

lib/test_kmod.c +1 -1
index e651c37d56db..eab52770070d 100644

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

lib/test_lockup.c +2 -2
index bd7c7ff39f6b..e7202763a168 100644

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

mm/cma.c +9 -14
index 26ecff818881..0963c0f9c502 100644

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

mm/hugetlb.c +17 -22
index 590111ea6975..7952c6cb6f08 100644

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

mm/khugepaged.c +34 -36

70 lines not on this page · raw message

mm/memory_hotplug.c +2 -3
index da374cd3d45b..76c75a599da3 100644

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

mm/page_counter.c +3 -3
index c56db2d5e159..b4663844c9b3 100644

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

mm/rmap.c +1 -1
index 5fe2dedce1fc..6cce9ef06753 100644

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

mm/shuffle.c +9 -9
index 44406d9977c7..dd13ab851b3e 100644

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

net/appletalk/atalk_proc.c +2 -0
index 550c6ca007cc..9c1241292d1d 100644

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

net/compat.c +1 -0
index 434838bef5f8..7dc670c8eac5 100644

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

net/core/sock.c +21 -0
index a14a8cb6ccca..78f8736be9c5 100644

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

net/mac80211/sta_info.c +1 -1
index af4cc5fb678e..05e966f1609e 100644

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

scripts/recordmcount.c +2 -0
index e59022b3f125..b9c2ee7ab43f 100644

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

security/integrity/ima/ima_policy.c +14 -1
index 3e3e568c8130..a59bf2f5b2d4 100644

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

sound/pci/echoaudio/echoaudio.c +0 -2
index 0941a7a17623..456219a665a7 100644

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

sound/pci/hda/patch_realtek.c +0 -2
index 00d155b98c1d..8626e59f1e6a 100644

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

tools/build/Makefile.feature +1 -1
index cb152370fdef..e7818b44b48e 100644

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

tools/build/feature/Makefile +0 -2
index b1f0321180f5..93b590d81209 100644

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

tools/perf/bench/mem-functions.c +11 -10
index 9235b76501be..19d45c377ac1 100644

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

tools/perf/builtin-record.c +2 -2
index a37e7910e9e9..23ea934f30b3 100644

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

tools/perf/tests/parse-events.c +36 -1
index 895188b63f96..6a2ec6ec0d0e 100644

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

tools/perf/util/evsel.c +4 -2
index ef802f6d40c1..6a79cfdf96cb 100644

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

tools/perf/util/intel-pt-decoder/intel-pt-decoder.c +13 -16
index f8ccfd6be0ee..7ffcbd6fcd1a 100644

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

tools/perf/util/parse-events.c +28 -0
index 3decbb203846..4476de0e678a 100644

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

tools/perf/util/parse-events.h +2 -0
index 1fe23a2f9b36..0b8cdb7270f0 100644

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

tools/perf/util/parse-events.l +11 -8
index 002802e17059..7332d16cb4fc 100644

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

tools/perf/util/probe-finder.c +4 -1
index 55924255c535..659024342e9a 100644

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

tools/testing/selftests/bpf/Makefile +27 -22

49 lines not on this page · raw message

tools/testing/selftests/bpf/test_progs.c +29 -4
index 54fa5fa688ce..d498b6aa63a4 100644

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

tools/testing/selftests/bpf/test_progs.h +2 -0
index f4503c926aca..b80924603918 100644

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

tools/testing/selftests/powerpc/ptrace/ptrace-pkey.c +27 -28

55 lines not on this page · raw message

tools/testing/selftests/seccomp/seccomp_bpf.c +5 -0
index ccf276e13882..592fd1c3d1ab 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.