Skip to contentSkip to conversation

Linux 4.19.256

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Aug 25, 2022 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.19.256 kernel.

All users of the 4.19 kernel series must upgrade.

The updated 4.19.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.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/atomic_bitops.txt                     |    2 
 Makefile                                            |    5 
 arch/arm/boot/dts/aspeed-ast2500-evb.dts            |    2 
 arch/arm/boot/dts/imx6ul.dtsi                       |   29 +--
 arch/arm/boot/dts/qcom-pm8841.dtsi                  |    1 
 arch/arm/lib/findbit.S                              |   16 +-
 arch/arm/mach-bcm/bcm_kona_smc.c                    |    1 
 arch/arm/mach-omap2/display.c                       |    1 
 arch/arm/mach-omap2/prm3xxx.c                       |    1 
 arch/arm/mach-zynq/common.c                         |    1 
 arch/arm64/boot/dts/qcom/ipq8074.dtsi               |    2 
 arch/arm64/boot/dts/qcom/msm8916.dtsi               |    4 
 arch/arm64/include/asm/processor.h                  |    3 
 arch/arm64/kernel/armv8_deprecated.c                |    9 -
 arch/ia64/include/asm/processor.h                   |    2 
 arch/mips/cavium-octeon/octeon-platform.c           |    3 
 arch/mips/kernel/proc.c                             |    2 
 arch/mips/mm/tlbex.c                                |    4 
 arch/nios2/include/asm/entry.h                      |    3 
 arch/nios2/include/asm/ptrace.h                     |    2 
 arch/nios2/kernel/entry.S                           |   22 +-
 arch/nios2/kernel/signal.c                          |    3 
 arch/nios2/kernel/syscall_table.c                   |    1 
 arch/parisc/kernel/drivers.c                        |    9 -
 arch/powerpc/kernel/pci-common.c                    |   45 ++++-
 arch/powerpc/kernel/prom.c                          |    7 
 arch/powerpc/mm/Makefile                            |    7 
 arch/powerpc/mm/dump_linuxpagetables-8xx.c          |   82 ++++++++++
 arch/powerpc/mm/dump_linuxpagetables-book3s64.c     |  115 ++++++++++++++
 arch/powerpc/mm/dump_linuxpagetables-generic.c      |   82 ++++++++++
 arch/powerpc/mm/dump_linuxpagetables.c              |  155 --------------------
 arch/powerpc/mm/dump_linuxpagetables.h              |   19 ++
 arch/powerpc/platforms/Kconfig.cputype              |    4 
 arch/powerpc/platforms/cell/axon_msi.c              |    1 
 arch/powerpc/platforms/cell/spufs/inode.c           |    1 
 arch/powerpc/platforms/powernv/rng.c                |    2 
 arch/powerpc/sysdev/fsl_pci.c                       |    8 +
 arch/powerpc/sysdev/fsl_pci.h                       |    1 
 arch/powerpc/sysdev/xive/spapr.c                    |    1 
 arch/riscv/kernel/sys_riscv.c                       |    5 
 arch/riscv/kernel/traps.c                           |    4 
 arch/x86/boot/Makefile                              |    2 
 arch/x86/boot/compressed/Makefile                   |    4 
 arch/x86/entry/vdso/Makefile                        |    2 
 arch/x86/kernel/pmem.c                              |    7 
 arch/x86/kvm/emulate.c                              |   23 +-
 arch/x86/kvm/hyperv.c                               |    3 
 arch/x86/kvm/lapic.c                                |    4 
 arch/x86/kvm/svm.c                                  |    2 
 arch/x86/mm/numa.c                                  |    4 
 arch/x86/platform/olpc/olpc-xo1-sci.c               |    2 
 drivers/acpi/acpi_lpss.c                            |    3 
 drivers/acpi/cppc_acpi.c                            |   54 +++---
 drivers/acpi/ec.c                                   |    7 
 drivers/acpi/property.c                             |    8 -
 drivers/acpi/sleep.c                                |    8 +
 drivers/ata/libata-eh.c                             |    1 
 drivers/atm/idt77252.c                              |    1 
 drivers/block/null_blk_main.c                       |   14 +
 drivers/bluetooth/hci_intel.c                       |    6 
 drivers/bus/hisi_lpc.c                              |   10 -
 drivers/clk/qcom/gcc-ipq8074.c                      |   19 ++
 drivers/clk/renesas/r9a06g032-clocks.c              |    8 -
 drivers/crypto/hisilicon/sec/sec_algs.c             |   14 -
 drivers/crypto/hisilicon/sec/sec_drv.h              |    2 
 drivers/dma/sprd-dma.c                              |    5 
 drivers/firmware/arm_scpi.c                         |   61 ++++---
 drivers/fpga/altera-pr-ip-core.c                    |    2 
 drivers/gpio/gpiolib-of.c                           |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c          |    4 
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c        |   17 +-
 drivers/gpu/drm/bridge/sil-sii8620.c                |    4 
 drivers/gpu/drm/mediatek/mtk_dpi.c                  |   31 ----
 drivers/gpu/drm/mediatek/mtk_dsi.c                  |    2 
 drivers/gpu/drm/meson/meson_drv.c                   |    5 
 drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c           |    3 
 drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c     |    2 
 drivers/gpu/drm/radeon/ni_dpm.c                     |    6 
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c         |    3 
 drivers/gpu/drm/vc4/vc4_dsi.c                       |    6 
 drivers/hid/hid-alps.c                              |    2 
 drivers/hid/hid-cp2112.c                            |    5 
 drivers/hid/wacom_sys.c                             |    2 
 drivers/hid/wacom_wac.c                             |   43 +++--
 drivers/hwtracing/intel_th/pci.c                    |   15 +
 drivers/i2c/busses/i2c-cadence.c                    |   10 +
 drivers/i2c/i2c-core-base.c                         |    3 
 drivers/i2c/muxes/i2c-mux-gpmux.c                   |    1 
 drivers/iio/light/isl29028.c                        |    2 
 drivers/infiniband/hw/hfi1/file_ops.c               |    4 
 drivers/infiniband/sw/rxe/rxe_qp.c                  |   12 +
 drivers/iommu/exynos-iommu.c                        |    6 
 drivers/iommu/qcom_iommu.c                          |    7 
 drivers/irqchip/irq-tegra.c                         |   10 -
 drivers/md/dm-raid.c                                |    4 
 drivers/md/dm-writecache.c                          |    2 
 drivers/md/dm.c                                     |    5 
 drivers/md/raid10.c                                 |    5 
 drivers/md/raid5.c                                  |    2 
 drivers/media/pci/tw686x/tw686x-core.c              |   18 +-
 drivers/media/platform/mtk-mdp/mtk_mdp_ipi.h        |    2 
 drivers/media/usb/hdpvr/hdpvr-video.c               |    2 
 drivers/memstick/core/ms_block.c                    |   11 -
 drivers/mfd/t7l66xb.c                               |    6 
 drivers/misc/cardreader/rtsx_pcr.c                  |    6 
 drivers/misc/cxl/irq.c                              |    1 
 drivers/mmc/host/cavium-octeon.c                    |    1 
 drivers/mmc/host/cavium-thunderx.c                  |    4 
 drivers/mmc/host/pxamci.c                           |    4 
 drivers/mmc/host/sdhci-of-at91.c                    |    9 -
 drivers/mmc/host/sdhci-of-esdhc.c                   |    1 
 drivers/mtd/devices/st_spi_fsm.c                    |    8 -
 drivers/mtd/maps/physmap_of_versatile.c             |    2 
 drivers/mtd/sm_ftl.c                                |    2 
 drivers/net/can/pch_can.c                           |    8 -
 drivers/net/can/rcar/rcar_can.c                     |    8 -
 drivers/net/can/sja1000/sja1000.c                   |    7 
 drivers/net/can/spi/hi311x.c                        |    5 
 drivers/net/can/sun4i_can.c                         |    9 -
 drivers/net/can/usb/ems_usb.c                       |    2 
 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c   |   12 +
 drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c    |    6 
 drivers/net/can/usb/usb_8dev.c                      |    7 
 drivers/net/ethernet/freescale/fec_ptp.c            |    6 
 drivers/net/ethernet/intel/i40e/i40e_main.c         |    4 
 drivers/net/ethernet/intel/igb/igb.h                |    2 
 drivers/net/ethernet/intel/igb/igb_main.c           |   12 +
 drivers/net/ethernet/mellanox/mlx5/core/en.h        |    2 
 drivers/net/geneve.c                                |    3 
 drivers/net/netdevsim/bpf.c                         |    8 -
 drivers/net/usb/ax88179_178a.c                      |   16 +-
 drivers/net/usb/usbnet.c                            |    8 -
 drivers/net/wireless/ath/ath10k/snoc.c              |    5 
 drivers/net/wireless/ath/ath9k/htc.h                |   10 -
 drivers/net/wireless/ath/ath9k/htc_drv_init.c       |    3 
 drivers/net/wireless/ath/wil6210/debugfs.c          |   18 --
 drivers/net/wireless/intel/iwlegacy/4965-rs.c       |    5 
 drivers/net/wireless/intersil/p54/main.c            |    2 
 drivers/net/wireless/intersil/p54/p54spi.c          |    3 
 drivers/net/wireless/mac80211_hwsim.c               |   14 +
 drivers/net/wireless/marvell/libertas/if_usb.c      |    1 
 drivers/net/wireless/mediatek/mt76/mac80211.c       |    1 
 drivers/net/wireless/realtek/rtlwifi/debug.c        |    8 -
 drivers/ntb/test/ntb_tool.c                         |    8 -
 drivers/pci/quirks.c                                |    3 
 drivers/pinctrl/nomadik/pinctrl-nomadik.c           |    4 
 drivers/pinctrl/qcom/pinctrl-msm8916.c              |    4 
 drivers/platform/olpc/olpc-ec.c                     |    2 
 drivers/regulator/of_regulator.c                    |    6 
 drivers/remoteproc/qcom_wcnss.c                     |   10 +
 drivers/rpmsg/qcom_smd.c                            |    1 
 drivers/s390/char/zcore.c                           |   11 +
 drivers/s390/cio/vfio_ccw_drv.c                     |   14 -
 drivers/s390/scsi/zfcp_fc.c                         |   29 ++-
 drivers/s390/scsi/zfcp_fc.h                         |    6 
 drivers/s390/scsi/zfcp_fsf.c                        |    4 
 drivers/scsi/sg.c                                   |   57 ++++---
 drivers/scsi/smartpqi/smartpqi_init.c               |    4 
 drivers/soc/amlogic/meson-mx-socinfo.c              |    1 
 drivers/soc/fsl/guts.c                              |    2 
 drivers/soundwire/bus_type.c                        |    8 -
 drivers/staging/rtl8192u/r8192U.h                   |    2 
 drivers/staging/rtl8192u/r8192U_dm.c                |   38 ++--
 drivers/staging/rtl8192u/r8192U_dm.h                |    2 
 drivers/tee/tee_core.c                              |    4 
 drivers/thermal/thermal_sysfs.c                     |   10 -
 drivers/tty/n_gsm.c                                 |   90 ++++++++++-
 drivers/tty/serial/8250/8250_dw.c                   |    3 
 drivers/tty/serial/mvebu-uart.c                     |   11 +
 drivers/tty/serial/ucc_uart.c                       |    2 
 drivers/tty/vt/vt.c                                 |    2 
 drivers/usb/core/hcd.c                              |   26 +--
 drivers/usb/gadget/legacy/inode.c                   |    1 
 drivers/usb/gadget/udc/Kconfig                      |    2 
 drivers/usb/host/ehci-ppc-of.c                      |    1 
 drivers/usb/host/ohci-nxp.c                         |    1 
 drivers/usb/host/ohci-ppc-of.c                      |    1 
 drivers/usb/renesas_usbhs/rza.c                     |    4 
 drivers/usb/serial/sierra.c                         |    3 
 drivers/usb/serial/usb-serial.c                     |    2 
 drivers/usb/serial/usb_wwan.c                       |    3 
 drivers/vfio/vfio.c                                 |    1 
 drivers/video/fbdev/amba-clcd.c                     |   24 ++-
 drivers/video/fbdev/arkfb.c                         |    9 +
 drivers/video/fbdev/core/fbcon.c                    |    8 -
 drivers/video/fbdev/i740fb.c                        |    9 -
 drivers/video/fbdev/s3fb.c                          |    2 
 drivers/video/fbdev/sis/init.c                      |    4 
 drivers/video/fbdev/vt8623fb.c                      |    2 
 drivers/virt/vboxguest/vboxguest_linux.c            |    9 -
 drivers/xen/xenbus/xenbus_dev_frontend.c            |    4 
 fs/attr.c                                           |    2 
 fs/btrfs/disk-io.c                                  |   14 +
 fs/btrfs/raid56.c                                   |   74 +++++++--
 fs/btrfs/tree-log.c                                 |    4 
 fs/cifs/smb2ops.c                                   |    5 
 fs/ext2/super.c                                     |   12 +
 fs/ext4/inline.c                                    |    3 
 fs/ext4/inode.c                                     |   10 +
 fs/ext4/migrate.c                                   |    4 
 fs/ext4/namei.c                                     |   23 ++
 fs/ext4/resize.c                                    |   11 +
 fs/ext4/xattr.c                                     |    6 
 fs/ext4/xattr.h                                     |   13 +
 fs/f2fs/node.c                                      |    6 
 fs/fuse/inode.c                                     |    6 
 fs/jbd2/transaction.c                               |   14 +
 fs/namei.c                                          |    2 
 fs/nfs/nfs4idmap.c                                  |   46 +++--
 fs/nfs/nfs4proc.c                                   |   14 +
 fs/overlayfs/export.c                               |    2 
 fs/splice.c                                         |   10 -
 include/acpi/cppc_acpi.h                            |    2 
 include/asm-generic/bitops/atomic.h                 |    6 
 include/linux/buffer_head.h                         |   25 +++
 include/linux/kfifo.h                               |    2 
 include/linux/kvm_host.h                            |   28 +++
 include/linux/mfd/t7l66xb.h                         |    1 
 include/linux/nmi.h                                 |    2 
 include/linux/pci_ids.h                             |    2 
 include/linux/usb/hcd.h                             |    1 
 include/sound/core.h                                |    8 +
 include/trace/events/spmi.h                         |   12 -
 include/uapi/linux/can/error.h                      |    5 
 kernel/bpf/verifier.c                               |    1 
 kernel/kprobes.c                                    |    3 
 kernel/power/user.c                                 |   13 +
 kernel/profile.c                                    |    7 
 kernel/sched/rt.c                                   |   15 +
 kernel/trace/trace_events.c                         |    1 
 kernel/trace/trace_probe.c                          |    4 
 kernel/watchdog.c                                   |   21 ++
 lib/list_debug.c                                    |   12 +
 mm/mmap.c                                           |    1 
 net/9p/client.c                                     |    5 
 net/bluetooth/l2cap_core.c                          |   13 -
 net/dccp/proto.c                                    |   10 -
 net/ipv4/tcp_output.c                               |   30 ++-
 net/netfilter/nf_tables_api.c                       |    7 
 net/rds/ib_recv.c                                   |    1 
 net/rose/af_rose.c                                  |   11 +
 net/rose/rose_route.c                               |    2 
 net/sched/cls_route.c                               |   12 +
 net/sunrpc/backchannel_rqst.c                       |   14 +
 net/vmw_vsock/af_vsock.c                            |   10 +
 scripts/Makefile.gcc-plugins                        |    2 
 scripts/faddr2line                                  |    4 
 security/apparmor/apparmorfs.c                      |    2 
 security/apparmor/audit.c                           |    2 
 security/apparmor/domain.c                          |    2 
 security/apparmor/include/lib.h                     |    5 
 security/apparmor/include/policy.h                  |    2 
 security/apparmor/label.c                           |   13 -
 security/apparmor/mount.c                           |    8 -
 security/selinux/ss/policydb.h                      |    2 
 sound/core/info.c                                   |    6 
 sound/core/misc.c                                   |   94 ++++++++++++
 sound/core/timer.c                                  |   11 -
 sound/pci/hda/patch_cirrus.c                        |    1 
 sound/pci/hda/patch_conexant.c                      |   11 +
 sound/soc/codecs/da7210.c                           |    2 
 sound/soc/mediatek/mt6797/mt6797-mt6351.c           |    6 
 sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c    |   10 -
 sound/soc/mediatek/mt8173/mt8173-rt5650.c           |    9 -
 sound/soc/qcom/qdsp6/q6adm.c                        |    2 
 sound/usb/bcd2000/bcd2000.c                         |    3 
 tools/build/feature/test-libcrypto.c                |   15 +
 tools/lib/bpf/libbpf.c                              |    9 -
 tools/perf/util/genelf.c                            |    6 
 tools/testing/selftests/timers/clocksource-switch.c |    6 
 tools/testing/selftests/timers/valid-adjtimex.c     |    2 
 tools/thermal/tmon/sysfs.c                          |   24 +--
 tools/thermal/tmon/tmon.h                           |    3 
 virt/kvm/kvm_main.c                                 |   10 -
 274 files changed, 1863 insertions(+), 873 deletions(-)

Al Viro (6):
nios2: page fault et.al. are *not* restartable syscalls...
nios2: don't leave NULLs in sys_call_table[]
nios2: traced syscall does need to check the syscall number
nios2: fix syscall restart checks
nios2: restarts apply only to the first sigframe we build...
nios2: add force_successful_syscall_return()

Alan Brady (1):
i40e: Fix to stop tx_timeout recovery if GLOBR fails

Alexander Gordeev (1):
s390/zcore: fix race when reading from hardware system area

Alexander Lobakin (2):
ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() x86/olpc: fix 'logical not is only applied to the left hand side'

Alexander Shishkin (3):
intel_th: pci: Add Raptor Lake-S CPU support
intel_th: pci: Add Raptor Lake-S PCH support
intel_th: pci: Add Meteor Lake-P support

Alexander Stein (4):
ARM: dts: imx6ul: add missing properties for sram
ARM: dts: imx6ul: change operating-points to uint32-matrix
ARM: dts: imx6ul: fix lcdif node compatible
ARM: dts: imx6ul: fix qspi node compatible

Alexey Kodanev (2):
drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd()

Allen Ballway (1):
ALSA: hda/cirrus - support for iMac 12,1 model

Amadeusz Sławiński (1):
ALSA: info: Fix llseek return value when using callback

Ammar Faizi (1):
wifi: wil6210: debugfs: fix uninitialized variable use in wil_write_file_wmi()

Andrew Donnellan (1):
gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file

AngeloGioacchino Del Regno (1):
media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment

Anquan Wu (1):
libbpf: Fix the name of a reused map

Arnaldo Carvalho de Melo (1):
genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO

Artem Borisov (1):
HID: alps: Declare U1_UNICORN_LEGACY support

Baokun Li (4):
ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h
ext4: fix use-after-free in ext4_xattr_set_entry
ext4: correct max_inline_xattr_value_size computing
ext4: correct the misjudgment in ext4_iget_extra_inode

Bo-Chen Chen (1):
drm/mediatek: dpi: Remove output format of YUV

Brian Norris (1):
drm/rockchip: vop: Don't crash for invalid duplicate_state()

Celeste Liu (1):
riscv: mmap with PROT_WRITE but no PROT_READ is invalid

Chao Yu (1):
f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page()

Chen Zhongjin (2):
profiling: fix shift too large makes kernel panic
kprobes: Forbid probing on trampoline and BPF code areas

Christophe JAILLET (8):
wifi: p54: Fix an error handling path in p54spi_probe()
misc: rtsx: Fix an error handling path in rtsx_pci_probe() memstick/ms_block: Fix some incorrect memory allocation memstick/ms_block: Fix a memory leak
ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp()
mmc: pxamci: Fix another error handling path in pxamci_probe()
mmc: pxamci: Fix an error handling path in pxamci_probe()
cxl: Fix a memory leak in an error handling path

Christophe Leroy (3):
powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32 powerpc/mm: Split dump_pagelinuxtables flag_array table powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E

Csókás Bence (1):
fec: Fix timer capture timing in fec_ptp_enable_pps()

Damien Le Moal (1):
ata: libata-eh: Add missing command name

Dan Carpenter (7):
wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c()
wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi() platform/olpc: Fix uninitialized data in debugfs write
null_blk: fix ida error handling in null_add_dev()
kfifo: fix kfifo_to_user() return type
NTB: ntb_tool: uninitialized heap data in tool_fn_write() xen/xenbus: fix return type in xenbus_file_read()

Daniel Starke (6):
tty: n_gsm: fix non flow control frames during mux flow off
tty: n_gsm: fix packet re-transmission without open control channel
tty: n_gsm: fix race condition in gsmld_write()
tty: n_gsm: fix wrong T1 retry count handling
tty: n_gsm: fix DM command
tty: n_gsm: fix missing corner cases in gsmld_poll()

Dave Stevenson (1):
drm/vc4: dsi: Correct DSI divider calculations

David Collins (1):
spmi: trace: fix stack-out-of-bound access in SPMI tracing functions

David Howells (1):
vfs: Check the truncate maximum size in inode_newsize_ok()

Duoming Zhou (3):
mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release
staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback
atm: idt77252: fix use-after-free bugs caused by tst_timer

Eric Dumazet (2):
net: rose: fix netdev reference changes
tcp: fix over estimation in sk_forced_mem_schedule()

Eric Farman (1):
vfio/ccw: Do not change FSM state in subchannel event

Eric Whitney (1):
ext4: fix extent status tree race in writeback error recovery path

Eugen Hristev (1):
mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R

Filipe Manana (1):
btrfs: fix lost error handling when looking up extended ref on log replay

Florian Fainelli (1):
tools/thermal: Fix possible path truncations

Florian Westphal (1):
netfilter: nf_tables: fix null deref due to zeroed list head

Francis Laniel (1):
arm64: Do not forget syscall when starting a new thread.

Greg Kroah-Hartman (1):

      Linux 4.19.256

Guenter Roeck (1):
lib/list_debug.c: Detect uninitialized lists

Hangyu Hua (3):
drm: bridge: sii8620: fix possible off-by-one
wifi: libertas: Fix possible refcount leak in if_usb_probe()
dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock

Hans de Goede (1):
ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks

Harshit Mogalapalli (1):
HID: cp2112: prevent a buffer overflow in cp2112_xfer()

Hector Martin (1):
locking/atomic: Make test_and_*_bit() ordered on failure

Helge Deller (2):
fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters
parisc: Fix device names in /proc/iomem

Huacai Chen (1):
MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK

Ilpo Järvinen (1):
serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty()

Jakub Kicinski (1):
netdevsim: Avoid allocation warnings triggered from user space

Jamal Hadi Salim (1):
net_sched: cls_route: disallow handle of 0

Jan Kara (1):
ext2: Add more validity checks for inode counts

Jason A. Donenfeld (1):
fs: check FMODE_LSEEK to control internal pipe splicing

Jens Wiklander (1):
tee: add overflow check in register_shm_helper()

Jeongik Cha (1):
wifi: mac80211_hwsim: fix race condition in pending packet

Jiachen Zhang (1):
ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh()

Jianglei Nie (1):
RDMA/hfi1: fix potential memory leak in setup_base_ctxt()

Jiasheng Jiang (3):
drm: bridge: adv7511: Add check for mipi_dsi_driver_register
Bluetooth: hci_intel: Add check for platform_driver_register
ASoC: codecs: da7210: add check for i2c_add_driver

Johan Hovold (2):
x86/pmem: Fix platform-device leak in error path
USB: serial: fix tty-port initialized comments

Johannes Berg (2):
wifi: mac80211_hwsim: add back erroneously removed cast
wifi: mac80211_hwsim: use 32-bit skb cookie

John Johansen (4):
apparmor: fix quiet_denied for file rules
apparmor: fix absroot causing audited secids to begin with =
apparmor: Fix failed mount permission check error message
apparmor: fix overlapping attachment computation

Jose Alonso (1):

      Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP"

Josh Poimboeuf (1):
scripts/faddr2line: Fix vmlinux detection on arm64

Jozef Martiniak (1):
gadgetfs: ep_io - wait until IRQ finishes

Kiselev, Oleg (1):
ext4: avoid resizing to a partial cluster size

Krzysztof Kozlowski (3):
ARM: dts: ast2500-evb: fix board compatible
ARM: dts: qcom: pm8841: add required thermal-sensor-cells
ath10k: do not enforce interrupt trigger type

Lars-Peter Clausen (1):
i2c: cadence: Support PEC for SMBus block read

Laurent Dufour (1):
watchdog: export lockup_detector_reconfigure

Leo Li (1):
drm/amdgpu: Check BO's requested pinning domains against its preferred_domains

Li Lingfeng (1):
ext4: recover csum seed of tmp_inode after migrating to extents

Liang He (14):
ARM: OMAP2+: display: Fix refcount leak bug
regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init()
i2c: mux-gpmux: Add of_node_put() when breaking out of loop
gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data()
mmc: cavium-octeon: Add of_node_put() when breaking out of loop
mmc: cavium-thunderx: Add of_node_put() when breaking out of loop iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop
video: fbdev: amba-clcd: Fix refcount leak bugs
drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors()
usb: host: ohci-ppc-of: Fix refcount leak bug
usb: renesas: Fix refcount leak bug
tty: serial: Fix refcount leak bug in ucc_uart.c
mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start

Lin Ma (1):
igb: Add lock to avoid data race

Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression

Lukas Czerner (1):
ext4: make sure ext4_append() always allocates new block

Lukas Wunner (1):
usbnet: Fix linkwatch use-after-free on disconnect

Maciej S. Szmigiero (1):
KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0

Mahesh Rajashekhara (1):
scsi: smartpqi: Fix DMA direction for RAID requests

Manyi Li (1):
ACPI: PM: save NVS memory for Lenovo G40-45

Marc Kleine-Budde (1):
can: ems_usb: fix clang's -Wunaligned-access warning

Marco Pagani (1):
fpga: altera-pr-ip: fix unsigned comparison with less than zero

Markus Mayer (1):
thermal/tools/tmon: Include pthread and time headers in tmon.h

Matthias May (1):
geneve: do not use RT_TOS for IPv6 flowlabel

Maxim Mikityanskiy (1):
net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS

Meng Tang (1):
ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model

Miaohe Lin (1):
mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region

Miaoqian Lin (17):
meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init
ARM: bcm: Fix refcount leak in bcm_kona_smc_init
ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
cpufreq: zynq: Fix refcount leak in zynq_get_revision
mtd: maps: Fix refcount leak in of_flash_probe_versatile
mtd: maps: Fix refcount leak in ap_flash_init
usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe
usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe
mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch
ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe
ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe
ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe
rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader powerpc/xive: Fix refcount leak in xive_get_max_prio powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address
pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map

Michael Ellerman (3):
powerpc/powernv: Avoid crashing if rng is NULL powerpc/pci: Fix PHB numbering when using opal-phbid powerpc/pci: Fix get_phb_number() locking

Michael Walle (1):
soc: fsl: guts: machine variable might be unset

Mike Snitzer (1):
dm: return early from dm_pr_call() if DM device is suspended

Miklos Szeredi (1):
fuse: limit nsec

Mikulas Patocka (6):
add barriers to buffer_uptodate and set_buffer_uptodate
md-raid10: fix KASAN warning
dm raid: fix address sanitizer warning in raid_resume dm raid: fix address sanitizer warning in raid_status dm writecache: set a default MAX_WRITEBACK_JOBS
rds: add missing barrier to release_refill

Narendra Hadke (1):
serial: mvebu-uart: uart2 error bits clearing

Nathan Chancellor (1):
MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0

Nick Desaulniers (2):
Makefile: link with -z noexecstack --no-warn-rwx-segments
x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments

Nicolas Saenz Julienne (1):
nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()

Niels Dossche (1):
media: hdpvr: fix error value returns in hdpvr_read

Nikita Travkin (1):
pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed

Ovidiu Panait (1):
bpf: Verifer, adjust_scalar_min_max_vals to always call update_reg_bounds()

Pablo Neira Ayuso (1):
netfilter: nf_tables: really skip inactive sets when allocating name

Pali Rohár (3):
PCI: Add defines for normal and subtractive PCI bridges powerpc/fsl-pci: Fix Class Code of PCIe Root Port
powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias

Pascal Terjan (1):
vboxguest: Do not use devm for irq

Pavan Chebbi (1):

      PCI: Add ACS quirk for Broadcom BCM5750x NICs

Pavel Skripkin (1):
ath9k: fix use-after-free in ath9k_hif_usb_rx_cb

Peilin Ye (2):
vsock: Fix memory leak in vsock_connect()
vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout()

Pierre-Louis Bossart (1):
soundwire: bus_type: fix remove and shutdown support

Ping Cheng (1):
HID: wacom: Don't register pad_input for touch switch

Qu Wenruo (3):
btrfs: reject log replay if there is unsupported RO compat flag
btrfs: only write the sectors in the vertical stripe which has data stripes
btrfs: raid56: don't trust any cached sector in __raid56_parity_recover()

Rafael J. Wysocki (2):
thermal: sysfs: Fix cooling_device_stats_setup() error code path
ACPI: CPPC: Do not prevent CPPC from working in the future

Ralph Siemsen (1):
clk: renesas: r9a06g032: Fix UART clkgrp bitsel

Randy Dunlap (1):
usb: gadget: udc: amd5536 depends on HAS_DMA

Rob Clark (1):
drm/msm/mdp5: Fix global state lock backoff

Robert Marko (4):
arm64: dts: qcom: ipq8074: fix NAND node name
clk: qcom: ipq8074: fix NSS port frequency tables
clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks
clk: qcom: ipq8074: dont disable gcc_sleep_clk_src

Roberto Sassu (1):
tools build: Switch to new openssl API for test-libcrypto

Russell King (Oracle) (1):
ARM: findbit: fix overflowing offset

Rustam Subkhankulov (2):
wifi: p54: add missing parentheses in p54_flush()
video: fbdev: sis: fix typos in SiS_GetModeID()

Sai Prakash Ranjan (1):
irqchip/tegra: Fix overflow implicit truncation warnings

Sakari Ailus (1):
ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool

Sam Protsenko (1):
iommu/exynos: Handle failed IOMMU device registration properly

Schspa Shi (1):

      vfio: Clear the caps->buf to NULL after free

Sean Christopherson (3):
KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks
KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP
KVM: Add infrastructure and macro to mark VM as bugged

Siddh Raman Pant (1):
x86/numa: Use cpumask_available instead of hardcoded NULL check

Sireesh Kodali (2):
arm64: dts: qcom: msm8916: Fix typo in pronto remoteproc node
remoteproc: qcom: wcnss: Fix handling of IRQs

Steffen Maier (1):
scsi: zfcp: Fix missing auto port scan and thus missing target ports

Steve French (1):
smb3: check xattr value length earlier

Steven Rostedt (Google) (2):
tracing: Have filter accept "common_cpu" to be consistent tracing/probes: Have kprobes and uprobes use $COMM too

Sudeep Holla (1):
firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails

Takashi Iwai (2):
ALSA: core: Add async signal helpers
ALSA: timer: Use deferred fasync helper

Tetsuo Handa (2):
tty: vt: initialize unicode screen buffer
PM: hibernate: defer device probing when resuming from hibernation

Thadeu Lima de Souza Cascardo (2):
netfilter: nf_tables: do not allow SET_ID to refer to another table
net_sched: cls_route: remove from list when handle is 0

Theodore Ts'o (1):
ext4: update s_overhead_clusters in the superblock during an on-line resize

Timur Tabi (1):
drm/nouveau: fix another off-by-one in nvbios_addr

Tom Rix (1):
apparmor: fix aa_label_asxprint return check

Tony Battersby (1):
scsi: sg: Allow waiting for commands to complete on removed device

Trond Myklebust (3):
NFSv4: Fix races in the legacy idmapper upcall NFSv4/pnfs: Fix a use-after-free bug in open
SUNRPC: Reinitialise the backchannel request buffers before reuse

Tyler Hicks (1):
net/9p: Initialize the iounit field during fid creation

Uwe Kleine-König (3):
mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path
mfd: t7l66xb: Drop platform disable callback
dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed

Vincent Mailhol (10):
can: pch_can: do not report txerr and rxerr during bus-off
can: rcar_can: do not report txerr and rxerr during bus-off
can: sja1000: do not report txerr and rxerr during bus-off
can: hi311x: do not report txerr and rxerr during bus-off
can: sun4i_can: do not report txerr and rxerr during bus-off
can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off
can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off
can: usb_8dev: do not report txerr and rxerr during bus-off
can: error: specify the values of data[5..7] of CAN error frames
can: pch_can: pch_can_error(): initialize errc before using it

Vitaly Kuznetsov (2):
KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq
KVM: x86: Avoid theoretical NULL pointer dereference in kvm_irq_delivery_to_apic_fast()

Weitao Wang (1):
USB: HCD: Fix URB giveback issue in tasklet function

Wentao_Liang (1):
drivers:md:fix a potential use-after-free bug

Wolfram Sang (2):
selftests: timers: valid-adjtimex: build fix for newer toolchains
selftests: timers: clocksource-switch: fix passing errors from child

Xianting Tian (1):
RISC-V: Add fast call path of crash_kexec()

Xin Xiong (1):
apparmor: fix reference count leak in aa_pivotroot()

Xinlei Lee (1):
drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function

Xiu Jianfeng (2):
selinux: Add boundary check in put_entry()
apparmor: Fix memleak in aa_simple_write_to_buffer()

Xu Wang (1):
i2c: Fix a potential use after free

Yang Xu (1):
fs: Add missing umask strip in vfs_tmpfile

Yang Yingliang (1):
bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()

Ye Bin (1):
ext4: avoid remove directory when directory is corrupted

Yonglong Li (1):
tcp: make retransmitted SKB fit into the send window

Zhang Xianwei (1):
NFSv4.1: RECLAIM_COMPLETE must handle EACCES

Zhengchao Shao (1):
crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq

Zheyu Ma (8):
ALSA: bcd2000: Fix a UAF bug on the error path of probing
iio: light: isl29028: Fix the warning in isl29028_remove()
media: tw686x: Register the irq at the end of probe
video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock()
video: fbdev: vt8623fb: Check the size of screen before memset_io()
video: fbdev: arkfb: Check the size of screen before memset_io()
video: fbdev: s3fb: Check the size of screen before memset_io()
video: fbdev: i740fb: Check the argument of i740_calc_vclk()

Zhihao Cheng (1):

      jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted

Zhouyi Zhou (1):
powerpc/64: Init jump labels before parse_early_param()

Zhu Yanjun (1):
RDMA/rxe: Fix error unwind in rxe_create_qp()

haibinzhang (张海斌) (1):
arm64: fix oops in concurrently setting insn_emulation sysctls

huhai (1):
ACPI: LPSS: Fix missing check in register_device_clock()

author maintainer
#1 lore raw
Documentation/atomic_bitops.txt +1 -1
index be70b32c95d9..bc3fac8e1db3 100644
@@ -59,7 +59,7 @@ Like with atomic_t, the rule of thumb is:
  - RMW operations that have a return value are fully ordered.
 
  - RMW operations that are conditional are unordered on FAILURE,
-   otherwise the above rules apply. In the case of test_and_{}_bit() operations,
+   otherwise the above rules apply. In the case of test_and_set_bit_lock(),
    if the bit in memory is unchanged by the operation then it is deemed to have
    failed.
 
Makefile +4 -1
index b8e5b38e5352..ac79aef4520b 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 19
-SUBLEVEL = 255
+SUBLEVEL = 256
 EXTRAVERSION =
 NAME = "People's Front"
 
@@ -876,6 +876,9 @@ LDFLAGS_BUILD_ID := $(call ld-option, --build-id)
 KBUILD_LDFLAGS_MODULE += $(LDFLAGS_BUILD_ID)
 LDFLAGS_vmlinux += $(LDFLAGS_BUILD_ID)
 
+KBUILD_LDFLAGS	+= -z noexecstack
+KBUILD_LDFLAGS	+= $(call ld-option,--no-warn-rwx-segments)
+
 ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
 LDFLAGS_vmlinux	+= $(call ld-option, -X,)
 endif
arch/arm/boot/dts/aspeed-ast2500-evb.dts +1 -1
index 2375449c02d0..10626452878a 100644
@@ -5,7 +5,7 @@
 
 / {
 	model = "AST2500 EVB";
-	compatible = "aspeed,ast2500";
+	compatible = "aspeed,ast2500-evb", "aspeed,ast2500";
 
 	aliases {
 		serial4 = &uart5;
arch/arm/boot/dts/imx6ul.dtsi +15 -14
index adecd6e08468..334638ff5075 100644
@@ -61,20 +61,18 @@
 			reg = <0>;
 			clock-latency = <61036>; /* two CLK32 periods */
 			#cooling-cells = <2>;
-			operating-points = <
+			operating-points =
 				/* kHz	uV */
-				696000	1275000
-				528000	1175000
-				396000	1025000
-				198000	950000
-			>;
-			fsl,soc-operating-points = <
+				<696000	1275000>,
+				<528000	1175000>,
+				<396000	1025000>,
+				<198000	950000>;
+			fsl,soc-operating-points =
 				/* KHz	uV */
-				696000	1275000
-				528000	1175000
-				396000	1175000
-				198000	1175000
-			>;
+				<696000	1275000>,
+				<528000	1175000>,
+				<396000	1175000>,
+				<198000	1175000>;
 			clocks = <&clks IMX6UL_CLK_ARM>,
 				 <&clks IMX6UL_CLK_PLL2_BUS>,
 				 <&clks IMX6UL_CLK_PLL2_PFD2>,
@@ -169,6 +167,9 @@
 		ocram: sram@900000 {
 			compatible = "mmio-sram";
 			reg = <0x00900000 0x20000>;
+			ranges = <0 0x00900000 0x20000>;
+			#address-cells = <1>;
+			#size-cells = <1>;
 		};
 
 		dma_apbh: dma-apbh@1804000 {
@@ -939,7 +940,7 @@
 			};
 
 			lcdif: lcdif@21c8000 {
-				compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif";
+				compatible = "fsl,imx6ul-lcdif", "fsl,imx6sx-lcdif";
 				reg = <0x021c8000 0x4000>;
 				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX6UL_CLK_LCDIF_PIX>,
@@ -952,7 +953,7 @@
 			qspi: qspi@21e0000 {
 				#address-cells = <1>;
 				#size-cells = <0>;
-				compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi";
+				compatible = "fsl,imx6ul-qspi";
 				reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>;
 				reg-names = "QuadSPI", "QuadSPI-memory";
 				interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
arch/arm/boot/dts/qcom-pm8841.dtsi +1 -0
index 2fd59c440903..c73e5b149ac5 100644
@@ -25,6 +25,7 @@
 			compatible = "qcom,spmi-temp-alarm";
 			reg = <0x2400>;
 			interrupts = <4 0x24 0 IRQ_TYPE_EDGE_RISING>;
+			#thermal-sensor-cells = <0>;
 		};
 	};
 
arch/arm/lib/findbit.S +8 -8
index 7848780e8834..20fef6c41f6f 100644
@@ -43,8 +43,8 @@ ENDPROC(_find_first_zero_bit_le)
  * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset)
  */
 ENTRY(_find_next_zero_bit_le)
-		teq	r1, #0
-		beq	3b
+		cmp	r2, r1
+		bhs	3b
 		ands	ip, r2, #7
 		beq	1b			@ If new byte, goto old routine
  ARM(		ldrb	r3, [r0, r2, lsr #3]	)
@@ -84,8 +84,8 @@ ENDPROC(_find_first_bit_le)
  * Prototype: int find_next_zero_bit(void *addr, unsigned int maxbit, int offset)
  */
 ENTRY(_find_next_bit_le)
-		teq	r1, #0
-		beq	3b
+		cmp	r2, r1
+		bhs	3b
 		ands	ip, r2, #7
 		beq	1b			@ If new byte, goto old routine
  ARM(		ldrb	r3, [r0, r2, lsr #3]	)
@@ -118,8 +118,8 @@ ENTRY(_find_first_zero_bit_be)
 ENDPROC(_find_first_zero_bit_be)
 
 ENTRY(_find_next_zero_bit_be)
-		teq	r1, #0
-		beq	3b
+		cmp	r2, r1
+		bhs	3b
 		ands	ip, r2, #7
 		beq	1b			@ If new byte, goto old routine
 		eor	r3, r2, #0x18		@ big endian byte ordering
@@ -152,8 +152,8 @@ ENTRY(_find_first_bit_be)
 ENDPROC(_find_first_bit_be)
 
 ENTRY(_find_next_bit_be)
-		teq	r1, #0
-		beq	3b
+		cmp	r2, r1
+		bhs	3b
 		ands	ip, r2, #7
 		beq	1b			@ If new byte, goto old routine
 		eor	r3, r2, #0x18		@ big endian byte ordering
arch/arm/mach-bcm/bcm_kona_smc.c +1 -0
index a55a7ecf146a..dd0b4195e629 100644
@@ -54,6 +54,7 @@ int __init bcm_kona_smc_init(void)
 		return -ENODEV;
 
 	prop_val = of_get_address(node, 0, &prop_size, NULL);
+	of_node_put(node);
 	if (!prop_val)
 		return -EINVAL;
 
arch/arm/mach-omap2/display.c +1 -0
index 5d73f2c0b117..dd2ff10790ab 100644
@@ -211,6 +211,7 @@ static int __init omapdss_init_fbdev(void)
 	node = of_find_node_by_name(NULL, "omap4_padconf_global");
 	if (node)
 		omap4_dsi_mux_syscon = syscon_node_to_regmap(node);
+	of_node_put(node);
 
 	return 0;
 }
arch/arm/mach-omap2/prm3xxx.c +1 -0
index dfa65fc2c82b..30445849b5e3 100644
@@ -711,6 +711,7 @@ static int omap3xxx_prm_late_init(void)
 	}
 
 	irq_num = of_irq_get(np, 0);
+	of_node_put(np);
 	if (irq_num == -EPROBE_DEFER)
 		return irq_num;
 
arch/arm/mach-zynq/common.c +1 -0
index 6aba9ebf8041..a8b1b9c6626e 100644
@@ -84,6 +84,7 @@ static int __init zynq_get_revision(void)
 	}
 
 	zynq_devcfg_base = of_iomap(np, 0);
+	of_node_put(np);
 	if (!zynq_devcfg_base) {
 		pr_err("%s: Unable to map I/O memory\n", __func__);
 		return -1;
arch/arm64/boot/dts/qcom/ipq8074.dtsi +1 -1
index f48d14cd10a3..bdee07305ce5 100644
@@ -261,7 +261,7 @@
 			status = "disabled";
 		};
 
-		qpic_nand: nand@79b0000 {
+		qpic_nand: nand-controller@79b0000 {
 			compatible = "qcom,ipq8074-nand";
 			reg = <0x79b0000 0x10000>;
 			#address-cells = <1>;
arch/arm64/boot/dts/qcom/msm8916.dtsi +2 -2
index 078ae020a77b..1832687f7ba8 100644
@@ -1039,8 +1039,8 @@
 			vddmx-supply = <&pm8916_l3>;
 			vddpx-supply = <&pm8916_l7>;
 
-			qcom,state = <&wcnss_smp2p_out 0>;
-			qcom,state-names = "stop";
+			qcom,smem-states = <&wcnss_smp2p_out 0>;
+			qcom,smem-state-names = "stop";
 
 			pinctrl-names = "default";
 			pinctrl-0 = <&wcnss_pin_a>;
arch/arm64/include/asm/processor.h +2 -1
index 773ea8e0e442..f81074c68ff3 100644
@@ -172,8 +172,9 @@ void tls_preserve_current_state(void);
 
 static inline void start_thread_common(struct pt_regs *regs, unsigned long pc)
 {
+	s32 previous_syscall = regs->syscallno;
 	memset(regs, 0, sizeof(*regs));
-	forget_syscall(regs);
+	regs->syscallno = previous_syscall;
 	regs->pc = pc;
 }
 
arch/arm64/kernel/armv8_deprecated.c +5 -4
index 181c29af5617..7c69a203cdf8 100644
@@ -62,6 +62,7 @@ struct insn_emulation {
 static LIST_HEAD(insn_emulation);
 static int nr_insn_emulated __initdata;
 static DEFINE_RAW_SPINLOCK(insn_emulation_lock);
+static DEFINE_MUTEX(insn_emulation_mutex);
 
 static void register_emulation_hooks(struct insn_emulation_ops *ops)
 {
@@ -210,10 +211,10 @@ static int emulation_proc_handler(struct ctl_table *table, int write,
 				  loff_t *ppos)
 {
 	int ret = 0;
-	struct insn_emulation *insn = (struct insn_emulation *) table->data;
+	struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode);
 	enum insn_emulation_mode prev_mode = insn->current_mode;
 
-	table->data = &insn->current_mode;
+	mutex_lock(&insn_emulation_mutex);
 	ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
 
 	if (ret || !write || prev_mode == insn->current_mode)
@@ -226,7 +227,7 @@ static int emulation_proc_handler(struct ctl_table *table, int write,
 		update_insn_emulation_mode(insn, INSN_UNDEF);
 	}
 ret:
-	table->data = insn;
+	mutex_unlock(&insn_emulation_mutex);
 	return ret;
 }
 
@@ -250,7 +251,7 @@ static void __init register_insn_emulation_sysctl(void)
 		sysctl->maxlen = sizeof(int);
 
 		sysctl->procname = insn->ops->name;
-		sysctl->data = insn;
+		sysctl->data = &insn->current_mode;
 		sysctl->extra1 = &insn->min;
 		sysctl->extra2 = &insn->max;
 		sysctl->proc_handler = emulation_proc_handler;
arch/ia64/include/asm/processor.h +1 -1
index 10061ccf0440..bbbdeeed702c 100644
@@ -552,7 +552,7 @@ ia64_get_irr(unsigned int vector)
 {
 	unsigned int reg = vector / 64;
 	unsigned int bit = vector % 64;
-	u64 irr;
+	unsigned long irr;
 
 	switch (reg) {
 	case 0: irr = ia64_getreg(_IA64_REG_CR_IRR0); break;
arch/mips/cavium-octeon/octeon-platform.c +2 -1
index 4d83f5bc7211..54c8389decda 100644
@@ -86,11 +86,12 @@ static void octeon2_usb_clocks_start(struct device *dev)
 					 "refclk-frequency", &clock_rate);
 		if (i) {
 			dev_err(dev, "No UCTL \"refclk-frequency\"\n");
+			of_node_put(uctl_node);
 			goto exit;
 		}
 		i = of_property_read_string(uctl_node,
 					    "refclk-type", &clock_type);
-
+		of_node_put(uctl_node);
 		if (!i && strcmp("crystal", clock_type) == 0)
 			is_crystal_clock = true;
 	}
arch/mips/kernel/proc.c +1 -1
index f8d36710cd58..d408b3a5bfd5 100644
@@ -168,7 +168,7 @@ static void *c_start(struct seq_file *m, loff_t *pos)
 {
 	unsigned long i = *pos;
 
-	return i < NR_CPUS ? (void *) (i + 1) : NULL;
+	return i < nr_cpu_ids ? (void *) (i + 1) : NULL;
 }
 
 static void *c_next(struct seq_file *m, void *v, loff_t *pos)
arch/mips/mm/tlbex.c +2 -2
index 620abc968624..a97b3e5a1c00 100644
@@ -630,7 +630,7 @@ static __maybe_unused void build_convert_pte_to_entrylo(u32 **p,
 		return;
 	}
 
-	if (cpu_has_rixi && !!_PAGE_NO_EXEC) {
+	if (cpu_has_rixi && _PAGE_NO_EXEC != 0) {
 		if (fill_includes_sw_bits) {
 			UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL));
 		} else {
@@ -2559,7 +2559,7 @@ static void check_pabits(void)
 	unsigned long entry;
 	unsigned pabits, fillbits;
 
-	if (!cpu_has_rixi || !_PAGE_NO_EXEC) {
+	if (!cpu_has_rixi || _PAGE_NO_EXEC == 0) {
 		/*
 		 * We'll only be making use of the fact that we can rotate bits
 		 * into the fill if the CPU supports RIXI, so don't bother
arch/nios2/include/asm/entry.h +2 -1
index cf37f55efbc2..bafb7b2ca59f 100644
@@ -50,7 +50,8 @@
 	stw	r13, PT_R13(sp)
 	stw	r14, PT_R14(sp)
 	stw	r15, PT_R15(sp)
-	stw	r2, PT_ORIG_R2(sp)
+	movi	r24, -1
+	stw	r24, PT_ORIG_R2(sp)
 	stw	r7, PT_ORIG_R7(sp)
 
 	stw	ra, PT_RA(sp)
arch/nios2/include/asm/ptrace.h +2 -0
index 642462144872..9da34c3022a2 100644
@@ -74,6 +74,8 @@ extern void show_regs(struct pt_regs *);
 	((struct pt_regs *)((unsigned long)current_thread_info() + THREAD_SIZE)\
 		- 1)
 
+#define force_successful_syscall_return() (current_pt_regs()->orig_r2 = -1)
+
 int do_syscall_trace_enter(void);
 void do_syscall_trace_exit(void);
 #endif /* __ASSEMBLY__ */
arch/nios2/kernel/entry.S +15 -7
index 1e515ccd698e..af556588248e 100644
@@ -185,6 +185,7 @@ ENTRY(handle_system_call)
 	ldw	r5, PT_R5(sp)
 
 local_restart:
+	stw	r2, PT_ORIG_R2(sp)
 	/* Check that the requested system call is within limits */
 	movui	r1, __NR_syscalls
 	bgeu	r2, r1, ret_invsyscall
@@ -192,7 +193,6 @@ local_restart:
 	movhi	r11, %hiadj(sys_call_table)
 	add	r1, r1, r11
 	ldw	r1, %lo(sys_call_table)(r1)
-	beq	r1, r0, ret_invsyscall
 
 	/* Check if we are being traced */
 	GET_THREAD_INFO r11
@@ -213,6 +213,9 @@ local_restart:
 translate_rc_and_ret:
 	movi	r1, 0
 	bge	r2, zero, 3f
+	ldw	r1, PT_ORIG_R2(sp)
+	addi	r1, r1, 1
+	beq	r1, zero, 3f
 	sub	r2, zero, r2
 	movi	r1, 1
 3:
@@ -255,9 +258,9 @@ traced_system_call:
 	ldw	r6, PT_R6(sp)
 	ldw	r7, PT_R7(sp)
 
-	/* Fetch the syscall function, we don't need to check the boundaries
-	 * since this is already done.
-	 */
+	/* Fetch the syscall function. */
+	movui	r1, __NR_syscalls
+	bgeu	r2, r1, traced_invsyscall
 	slli	r1, r2, 2
 	movhi	r11,%hiadj(sys_call_table)
 	add	r1, r1, r11
@@ -276,6 +279,9 @@ traced_system_call:
 translate_rc_and_ret2:
 	movi	r1, 0
 	bge	r2, zero, 4f
+	ldw	r1, PT_ORIG_R2(sp)
+	addi	r1, r1, 1
+	beq	r1, zero, 4f
 	sub	r2, zero, r2
 	movi	r1, 1
 4:
@@ -287,6 +293,11 @@ end_translate_rc_and_ret2:
 	RESTORE_SWITCH_STACK
 	br	ret_from_exception
 
+	/* If the syscall number was invalid return ENOSYS */
+traced_invsyscall:
+	movi	r2, -ENOSYS
+	br	translate_rc_and_ret2
+
 Luser_return:
 	GET_THREAD_INFO	r11			/* get thread_info pointer */
 	ldw	r10, TI_FLAGS(r11)		/* get thread_info->flags */
@@ -336,9 +347,6 @@ external_interrupt:
 	/* skip if no interrupt is pending */
 	beq	r12, r0, ret_from_interrupt
 
-	movi	r24, -1
-	stw	r24, PT_ORIG_R2(sp)
-
 	/*
 	 * Process an external hardware interrupt.
 	 */
arch/nios2/kernel/signal.c +2 -1
index 20662b0f6c9e..c1be8e194138 100644
@@ -240,7 +240,7 @@ static int do_signal(struct pt_regs *regs)
 	/*
 	 * If we were from a system call, check for system call restarting...
 	 */
-	if (regs->orig_r2 >= 0) {
+	if (regs->orig_r2 >= 0 && regs->r1) {
 		continue_addr = regs->ea;
 		restart_addr = continue_addr - 4;
 		retval = regs->r2;
@@ -261,6 +261,7 @@ static int do_signal(struct pt_regs *regs)
 			regs->ea = restart_addr;
 			break;
 		}
+		regs->orig_r2 = -1;
 	}
 
 	if (get_signal(&ksig)) {
arch/nios2/kernel/syscall_table.c +1 -0
index 06e6ac1835b2..cd10b6eed128 100644
@@ -25,5 +25,6 @@
 #define __SYSCALL(nr, call) [nr] = (call),
 
 void *sys_call_table[__NR_syscalls] = {
+	[0 ... __NR_syscalls-1] = sys_ni_syscall,
 #include <asm/unistd.h>
 };
arch/parisc/kernel/drivers.c +4 -5
index 4d5ad9cb0f69..592e8cec16dd 100644
@@ -499,7 +499,6 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path)
 	dev->id.hversion_rev = iodc_data[1] & 0x0f;
 	dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) |
 			(iodc_data[5] << 8) | iodc_data[6];
-	dev->hpa.name = parisc_pathname(dev);
 	dev->hpa.start = hpa;
 	/* This is awkward.  The STI spec says that gfx devices may occupy
 	 * 32MB or 64MB.  Unfortunately, we don't know how to tell whether
@@ -513,10 +512,10 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path)
 		dev->hpa.end = hpa + 0xfff;
 	}
 	dev->hpa.flags = IORESOURCE_MEM;
-	name = parisc_hardware_description(&dev->id);
-	if (name) {
-		strlcpy(dev->name, name, sizeof(dev->name));
-	}
+	dev->hpa.name = dev->name;
+	name = parisc_hardware_description(&dev->id) ? : "unknown";
+	snprintf(dev->name, sizeof(dev->name), "%s [%s]",
+		name, parisc_pathname(dev));
 
 	/* Silently fail things like mouse ports which are subsumed within
 	 * the keyboard controller
arch/powerpc/kernel/pci-common.c +31 -14

82 lines not on this page · raw message

arch/powerpc/kernel/prom.c +7 -0
index f8c49e5d4bd3..c57aeb9f031c 100644
@@ -737,6 +737,13 @@ void __init early_init_devtree(void *params)
 	of_scan_flat_dt(early_init_dt_scan_root, NULL);
 	of_scan_flat_dt(early_init_dt_scan_memory_ppc, NULL);
 
+	/*
+	 * As generic code authors expect to be able to use static keys
+	 * in early_param() handlers, we initialize the static keys just
+	 * before parsing early params (it's fine to call jump_label_init()
+	 * more than once).
+	 */
+	jump_label_init();
 	parse_early_param();
 
 	/* make sure we've parsed cmdline for mem= before this */
arch/powerpc/mm/Makefile +7 -0
index cdf6a9960046..3c844bdd16c4 100644
@@ -43,5 +43,12 @@ obj-$(CONFIG_HIGHMEM)		+= highmem.o
 obj-$(CONFIG_PPC_COPRO_BASE)	+= copro_fault.o
 obj-$(CONFIG_SPAPR_TCE_IOMMU)	+= mmu_context_iommu.o
 obj-$(CONFIG_PPC_PTDUMP)	+= dump_linuxpagetables.o
+ifdef CONFIG_PPC_PTDUMP
+obj-$(CONFIG_4xx)		+= dump_linuxpagetables-generic.o
+obj-$(CONFIG_PPC_8xx)		+= dump_linuxpagetables-8xx.o
+obj-$(CONFIG_PPC_BOOK3E_MMU)	+= dump_linuxpagetables-generic.o
+obj-$(CONFIG_PPC_BOOK3S_32)	+= dump_linuxpagetables-generic.o
+obj-$(CONFIG_PPC_BOOK3S_64)	+= dump_linuxpagetables-book3s64.o
+endif
 obj-$(CONFIG_PPC_HTDUMP)	+= dump_hashpagetable.o
 obj-$(CONFIG_PPC_MEM_KEYS)	+= pkeys.o
arch/powerpc/mm/dump_linuxpagetables-8xx.c new file +82 -0

82 lines not on this page · raw message

arch/powerpc/mm/dump_linuxpagetables-book3s64.c new file +115 -0

115 lines not on this page · raw message

arch/powerpc/mm/dump_linuxpagetables-generic.c new file +82 -0

82 lines not on this page · raw message

arch/powerpc/mm/dump_linuxpagetables.c +2 -153

167 lines not on this page · raw message

arch/powerpc/mm/dump_linuxpagetables.h new file +19 -0
new file mode 100644
index 000000000000..5d513636de73
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#include <linux/types.h>
+
+struct flag_info {
+	u64		mask;
+	u64		val;
+	const char	*set;
+	const char	*clear;
+	bool		is_val;
+	int		shift;
+};
+
+struct pgtable_level {
+	const struct flag_info *flag;
+	size_t num;
+	u64 mask;
+};
+
+extern struct pgtable_level pg_level[5];
arch/powerpc/platforms/Kconfig.cputype +2 -2
index ad0216c41d2c..67ad128a9a3d 100644
@@ -134,11 +134,11 @@ config POWER9_CPU
 
 config E5500_CPU
 	bool "Freescale e5500"
-	depends on E500
+	depends on PPC64 && E500
 
 config E6500_CPU
 	bool "Freescale e6500"
-	depends on E500
+	depends on PPC64 && E500
 
 config 860_CPU
 	bool "8xx family"
arch/powerpc/platforms/cell/axon_msi.c +1 -0
index 326d34e2aa02..946a09ae9fb2 100644
@@ -230,6 +230,7 @@ static int setup_msi_msg_address(struct pci_dev *dev, struct msi_msg *msg)
 	if (!prop) {
 		dev_dbg(&dev->dev,
 			"axon_msi: no msi-address-(32|64) properties found\n");
+		of_node_put(dn);
 		return -ENOENT;
 	}
 
arch/powerpc/platforms/cell/spufs/inode.c +1 -0
index db329d4bf1c3..8b664d9cfcd4 100644
@@ -684,6 +684,7 @@ spufs_init_isolated_loader(void)
 		return;
 
 	loader = of_get_property(dn, "loader", &size);
+	of_node_put(dn);
 	if (!loader)
 		return;
 
arch/powerpc/platforms/powernv/rng.c +2 -0
index 6fb1ceb5756d..0f66bdf867ee 100644
@@ -67,6 +67,8 @@ int powernv_get_random_real_mode(unsigned long *v)
 	struct powernv_rng *rng;
 
 	rng = raw_cpu_read(powernv_rng);
+	if (!rng)
+		return 0;
 
 	*v = rng_whiten(rng, __raw_rm_readq(rng->regs_real));
 
arch/powerpc/sysdev/fsl_pci.c +8 -0
index 918be816b097..6d41aa4db05d 100644
@@ -523,6 +523,7 @@ int fsl_add_bridge(struct platform_device *pdev, int is_primary)
 	struct resource rsrc;
 	const int *bus_range;
 	u8 hdr_type, progif;
+	u32 class_code;
 	struct device_node *dev;
 	struct ccsr_pci __iomem *pci;
 	u16 temp;
@@ -596,6 +597,13 @@ int fsl_add_bridge(struct platform_device *pdev, int is_primary)
 			PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS;
 		if (fsl_pcie_check_link(hose))
 			hose->indirect_type |= PPC_INDIRECT_TYPE_NO_PCIE_LINK;
+		/* Fix Class Code to PCI_CLASS_BRIDGE_PCI_NORMAL for pre-3.0 controller */
+		if (in_be32(&pci->block_rev1) < PCIE_IP_REV_3_0) {
+			early_read_config_dword(hose, 0, 0, PCIE_FSL_CSR_CLASSCODE, &class_code);
+			class_code &= 0xff;
+			class_code |= PCI_CLASS_BRIDGE_PCI_NORMAL << 8;
+			early_write_config_dword(hose, 0, 0, PCIE_FSL_CSR_CLASSCODE, class_code);
+		}
 	} else {
 		/*
 		 * Set PBFR(PCI Bus Function Register)[10] = 1 to
arch/powerpc/sysdev/fsl_pci.h +1 -0
index 151588530b06..caa05c4aa427 100644
@@ -23,6 +23,7 @@ struct platform_device;
 
 #define PCIE_LTSSM	0x0404		/* PCIE Link Training and Status */
 #define PCIE_LTSSM_L0	0x16		/* L0 state */
+#define PCIE_FSL_CSR_CLASSCODE	0x474	/* FSL GPEX CSR */
 #define PCIE_IP_REV_2_2		0x02080202 /* PCIE IP block version Rev2.2 */
 #define PCIE_IP_REV_3_0		0x02080300 /* PCIE IP block version Rev3.0 */
 #define PIWAR_EN		0x80000000	/* Enable */
arch/powerpc/sysdev/xive/spapr.c +1 -0
index 5566bbc86f4a..aa705732150c 100644
@@ -631,6 +631,7 @@ static bool xive_get_max_prio(u8 *max_prio)
 	}
 
 	reg = of_get_property(rootdn, "ibm,plat-res-int-priorities", &len);
+	of_node_put(rootdn);
 	if (!reg) {
 		pr_err("Failed to read 'ibm,plat-res-int-priorities' property\n");
 		return false;
arch/riscv/kernel/sys_riscv.c +2 -3
index db44da32701f..516aaa19daf2 100644
@@ -26,9 +26,8 @@ static long riscv_sys_mmap(unsigned long addr, unsigned long len,
 	if (unlikely(offset & (~PAGE_MASK >> page_shift_offset)))
 		return -EINVAL;
 
-	if ((prot & PROT_WRITE) && (prot & PROT_EXEC))
-		if (unlikely(!(prot & PROT_READ)))
-			return -EINVAL;
+	if (unlikely((prot & PROT_WRITE) && !(prot & PROT_READ)))
+		return -EINVAL;
 
 	return ksys_mmap_pgoff(addr, len, prot, flags, fd,
 			       offset >> (PAGE_SHIFT - page_shift_offset));
arch/riscv/kernel/traps.c +4 -0
index 24a9333dda2c..7c65750508f2 100644
@@ -22,6 +22,7 @@
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/irq.h>
+#include <linux/kexec.h>
 
 #include <asm/processor.h>
 #include <asm/ptrace.h>
@@ -50,6 +51,9 @@ void die(struct pt_regs *regs, const char *str)
 
 	ret = notify_die(DIE_OOPS, str, regs, 0, regs->scause, SIGSEGV);
 
+	if (regs && kexec_should_crash(current))
+		crash_kexec(regs);
+
 	bust_spinlocks(0);
 	add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
 	spin_unlock_irq(&die_lock);
arch/x86/boot/Makefile +1 -1
index 6539c50fb9aa..82500962f1b3 100644
@@ -100,7 +100,7 @@ $(obj)/zoffset.h: $(obj)/compressed/vmlinux FORCE
 AFLAGS_header.o += -I$(objtree)/$(obj)
 $(obj)/header.o: $(obj)/zoffset.h
 
-LDFLAGS_setup.elf	:= -m elf_i386 -T
+LDFLAGS_setup.elf	:= -m elf_i386 -z noexecstack -T
 $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE
 	$(call if_changed,ld)
 
arch/x86/boot/compressed/Makefile +4 -0
index 5642f025b397..23b6e2da72bf 100644
@@ -57,6 +57,10 @@ else
 KBUILD_LDFLAGS += $(shell $(LD) --help 2>&1 | grep -q "\-z noreloc-overflow" \
 	&& echo "-z noreloc-overflow -pie --no-dynamic-linker")
 endif
+
+KBUILD_LDFLAGS += -z noexecstack
+KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments)
+
 LDFLAGS_vmlinux := -T
 
 hostprogs-y	:= mkpiggy
arch/x86/entry/vdso/Makefile +1 -1
index 5bfe2243a08f..ec5d8d0bd222 100644
@@ -172,7 +172,7 @@ quiet_cmd_vdso = VDSO    $@
 
 VDSO_LDFLAGS = -shared $(call ld-option, --hash-style=both) \
 	$(call ld-option, --build-id) $(call ld-option, --eh-frame-hdr) \
-	-Bsymbolic
+	-Bsymbolic -z noexecstack
 GCOV_PROFILE := n
 
 #
arch/x86/kernel/pmem.c +6 -1
index 6b07faaa1579..23154d24b117 100644
@@ -27,6 +27,11 @@ static __init int register_e820_pmem(void)
 	 * simply here to trigger the module to load on demand.
 	 */
 	pdev = platform_device_alloc("e820_pmem", -1);
-	return platform_device_add(pdev);
+
+	rc = platform_device_add(pdev);
+	if (rc)
+		platform_device_put(pdev);
+
+	return rc;
 }
 device_initcall(register_e820_pmem);
arch/x86/kvm/emulate.c +11 -12
index 63754d248dfb..25bdd06969b3 100644
@@ -1708,16 +1708,6 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,
 	case VCPU_SREG_TR:
 		if (seg_desc.s || (seg_desc.type != 1 && seg_desc.type != 9))
 			goto exception;
-		if (!seg_desc.p) {
-			err_vec = NP_VECTOR;
-			goto exception;
-		}
-		old_desc = seg_desc;
-		seg_desc.type |= 2; /* busy */
-		ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc,
-						  sizeof(seg_desc), &ctxt->exception);
-		if (ret != X86EMUL_CONTINUE)
-			return ret;
 		break;
 	case VCPU_SREG_LDTR:
 		if (seg_desc.s || seg_desc.type != 2)
@@ -1755,8 +1745,17 @@ static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt,
 		if (ret != X86EMUL_CONTINUE)
 			return ret;
 		if (emul_is_noncanonical_address(get_desc_base(&seg_desc) |
-				((u64)base3 << 32), ctxt))
-			return emulate_gp(ctxt, 0);
+						 ((u64)base3 << 32), ctxt))
+			return emulate_gp(ctxt, err_code);
+	}
+
+	if (seg == VCPU_SREG_TR) {
+		old_desc = seg_desc;
+		seg_desc.type |= 2; /* busy */
+		ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc,
+						  sizeof(seg_desc), &ctxt->exception);
+		if (ret != X86EMUL_CONTINUE)
+			return ret;
 	}
 load:
 	ctxt->ops->set_segment(ctxt, selector, &seg_desc, base3, seg);
arch/x86/kvm/hyperv.c +3 -0
index ca5a6c3f8c91..2047edb5ff74 100644
@@ -341,6 +341,9 @@ static int synic_set_irq(struct kvm_vcpu_hv_synic *synic, u32 sint)
 	struct kvm_lapic_irq irq;
 	int ret, vector;
 
+	if (KVM_BUG_ON(!lapic_in_kernel(vcpu), vcpu->kvm))
+		return -EINVAL;
+
 	if (sint >= ARRAY_SIZE(synic->sint))
 		return -EINVAL;
 
arch/x86/kvm/lapic.c +4 -0
index 89d07312e58c..027941e3df68 100644
@@ -961,6 +961,10 @@ bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src,
 	*r = -1;
 
 	if (irq->shorthand == APIC_DEST_SELF) {
+		if (KVM_BUG_ON(!src, kvm)) {
+			*r = 0;
+			return true;
+		}
 		*r = kvm_apic_set_irq(src->vcpu, irq, dest_map);
 		return true;
 	}
arch/x86/kvm/svm.c +0 -2
index 85181457413e..e1492a67e988 100644
@@ -5142,8 +5142,6 @@ static void svm_set_irq(struct kvm_vcpu *vcpu)
 {
 	struct vcpu_svm *svm = to_svm(vcpu);
 
-	BUG_ON(!(gif_set(svm)));
-
 	trace_kvm_inj_virq(vcpu->arch.interrupt.nr);
 	++vcpu->stat.irq_injections;
 
arch/x86/mm/numa.c +2 -2
index fa150855647c..b4ff063a4371 100644
@@ -826,7 +826,7 @@ void debug_cpumask_set_cpu(int cpu, int node, bool enable)
 		return;
 	}
 	mask = node_to_cpumask_map[node];
-	if (!mask) {
+	if (!cpumask_available(mask)) {
 		pr_err("node_to_cpumask_map[%i] NULL\n", node);
 		dump_stack();
 		return;
@@ -872,7 +872,7 @@ const struct cpumask *cpumask_of_node(int node)
 		dump_stack();
 		return cpu_none_mask;
 	}
-	if (node_to_cpumask_map[node] == NULL) {
+	if (!cpumask_available(node_to_cpumask_map[node])) {
 		printk(KERN_WARNING
 			"cpumask_of_node(%d): no node_to_cpumask_map!\n",
 			node);
arch/x86/platform/olpc/olpc-xo1-sci.c +1 -1
index 7fa8b3b53bc0..193860d7f2c4 100644
@@ -85,7 +85,7 @@ static void send_ebook_state(void)
 		return;
 	}
 
-	if (!!test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == state)
+	if (test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == !!state)
 		return; /* Nothing new to report. */
 
 	input_report_switch(ebook_switch_idev, SW_TABLET_MODE, state);
drivers/acpi/acpi_lpss.c +3 -0
index ded6c5c17fd7..144cda7da7ee 100644
@@ -401,6 +401,9 @@ static int register_device_clock(struct acpi_device *adev,
 	if (!lpss_clk_dev)
 		lpt_register_clock_device();
 
+	if (IS_ERR(lpss_clk_dev))
+		return PTR_ERR(lpss_clk_dev);
+
 	clk_data = platform_get_drvdata(lpss_clk_dev);
 	if (!clk_data)
 		return -ENODEV;
drivers/acpi/cppc_acpi.c +24 -30

74 lines not on this page · raw message

drivers/acpi/ec.c +0 -7
index e3df3dda0332..3394ec64fe95 100644
@@ -2118,13 +2118,6 @@ static const struct dmi_system_id acpi_ec_no_wakeup[] = {
 			DMI_MATCH(DMI_PRODUCT_FAMILY, "Thinkpad X1 Carbon 6th"),
 		},
 	},
-	{
-		.ident = "ThinkPad X1 Carbon 6th",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-			DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Carbon 6th"),
-		},
-	},
 	{
 		.ident = "ThinkPad X1 Yoga 3rd",
 		.matches = {
drivers/acpi/property.c +4 -4
index c8018d73d5a7..c59235038bf2 100644
@@ -132,10 +132,10 @@ static bool acpi_nondev_subnode_ok(acpi_handle scope,
 	return acpi_nondev_subnode_data_ok(handle, link, list, parent);
 }
 
-static int acpi_add_nondev_subnodes(acpi_handle scope,
-				    const union acpi_object *links,
-				    struct list_head *list,
-				    struct fwnode_handle *parent)
+static bool acpi_add_nondev_subnodes(acpi_handle scope,
+				     const union acpi_object *links,
+				     struct list_head *list,
+				     struct fwnode_handle *parent)
 {
 	bool ret = false;
 	int i;
drivers/acpi/sleep.c +8 -0
index 847db3edcb5b..a3b4ac97793f 100644
@@ -359,6 +359,14 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "80E3"),
 		},
 	},
+	{
+	.callback = init_nvs_save_s3,
+	.ident = "Lenovo G40-45",
+	.matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "80E1"),
+		},
+	},
 	/*
 	 * https://bugzilla.kernel.org/show_bug.cgi?id=196907
 	 * Some Dell XPS13 9360 cannot do suspend-to-idle using the Low Power
drivers/ata/libata-eh.c +1 -0
index 096f29a2f710..fcc3d7985762 100644
@@ -2350,6 +2350,7 @@ const char *ata_get_cmd_descript(u8 command)
 		{ ATA_CMD_WRITE_QUEUED_FUA_EXT, "WRITE DMA QUEUED FUA EXT" },
 		{ ATA_CMD_FPDMA_READ,		"READ FPDMA QUEUED" },
 		{ ATA_CMD_FPDMA_WRITE,		"WRITE FPDMA QUEUED" },
+		{ ATA_CMD_NCQ_NON_DATA,		"NCQ NON-DATA" },
 		{ ATA_CMD_FPDMA_SEND,		"SEND FPDMA QUEUED" },
 		{ ATA_CMD_FPDMA_RECV,		"RECEIVE FPDMA QUEUED" },
 		{ ATA_CMD_PIO_READ,		"READ SECTOR(S)" },
drivers/atm/idt77252.c +1 -0
index 3e00ab8a8890..bc06f5919839 100644
@@ -3767,6 +3767,7 @@ static void __exit idt77252_exit(void)
 		card = idt77252_chain;
 		dev = card->atmdev;
 		idt77252_chain = card->next;
+		del_timer_sync(&card->tst_timer);
 
 		if (dev->phy->stop)
 			dev->phy->stop(dev);
drivers/block/null_blk_main.c +11 -3
index 4fef1fb918ec..5553df736c72 100644
@@ -1819,8 +1819,13 @@ static int null_add_dev(struct nullb_device *dev)
 	blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q);
 
 	mutex_lock(&lock);
-	nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
-	dev->index = nullb->index;
+	rv = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL);
+	if (rv < 0) {
+		mutex_unlock(&lock);
+		goto out_cleanup_zone;
+	}
+	nullb->index = rv;
+	dev->index = rv;
 	mutex_unlock(&lock);
 
 	blk_queue_logical_block_size(nullb->q, dev->blocksize);
@@ -1832,13 +1837,16 @@ static int null_add_dev(struct nullb_device *dev)
 
 	rv = null_gendisk_register(nullb);
 	if (rv)
-		goto out_cleanup_zone;
+		goto out_ida_free;
 
 	mutex_lock(&lock);
 	list_add_tail(&nullb->list, &nullb_list);
 	mutex_unlock(&lock);
 
 	return 0;
+
+out_ida_free:
+	ida_free(&nullb_indexes, nullb->index);
 out_cleanup_zone:
 	if (dev->zoned)
 		null_zone_exit(dev);
drivers/bluetooth/hci_intel.c +5 -1
index e9228520e4c7..727fa4347b1e 100644
@@ -1253,7 +1253,11 @@ static struct platform_driver intel_driver = {
 
 int __init intel_init(void)
 {
-	platform_driver_register(&intel_driver);
+	int err;
+
+	err = platform_driver_register(&intel_driver);
+	if (err)
+		return err;
 
 	return hci_uart_register_proto(&intel_proto);
 }
drivers/bus/hisi_lpc.c +6 -4
index cbd970fb02f1..43342ea82afa 100644
@@ -504,13 +504,13 @@ static int hisi_lpc_acpi_probe(struct device *hostdev)
 {
 	struct acpi_device *adev = ACPI_COMPANION(hostdev);
 	struct acpi_device *child;
+	struct platform_device *pdev;
 	int ret;
 
 	/* Only consider the children of the host */
 	list_for_each_entry(child, &adev->children, node) {
 		const char *hid = acpi_device_hid(child);
 		const struct hisi_lpc_acpi_cell *cell;
-		struct platform_device *pdev;
 		const struct resource *res;
 		bool found = false;
 		int num_res;
@@ -573,22 +573,24 @@ static int hisi_lpc_acpi_probe(struct device *hostdev)
 
 		ret = platform_device_add_resources(pdev, res, num_res);
 		if (ret)
-			goto fail;
+			goto fail_put_device;
 
 		ret = platform_device_add_data(pdev, cell->pdata,
 					       cell->pdata_size);
 		if (ret)
-			goto fail;
+			goto fail_put_device;
 
 		ret = platform_device_add(pdev);
 		if (ret)
-			goto fail;
+			goto fail_put_device;
 
 		acpi_device_set_enumerated(child);
 	}
 
 	return 0;
 
+fail_put_device:
+	platform_device_put(pdev);
 fail:
 	hisi_lpc_acpi_remove(hostdev);
 	return ret;
drivers/clk/qcom/gcc-ipq8074.c +19 -0
index 708c486a6e96..ee41aec106ac 100644
@@ -675,6 +675,7 @@ static struct clk_branch gcc_sleep_clk_src = {
 			},
 			.num_parents = 1,
 			.ops = &clk_branch2_ops,
+			.flags = CLK_IS_CRITICAL,
 		},
 	},
 };
@@ -1796,8 +1797,10 @@ static struct clk_regmap_div nss_port4_tx_div_clk_src = {
 static const struct freq_tbl ftbl_nss_port5_rx_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
 	F(25000000, P_UNIPHY1_RX, 12.5, 0, 0),
+	F(25000000, P_UNIPHY0_RX, 5, 0, 0),
 	F(78125000, P_UNIPHY1_RX, 4, 0, 0),
 	F(125000000, P_UNIPHY1_RX, 2.5, 0, 0),
+	F(125000000, P_UNIPHY0_RX, 1, 0, 0),
 	F(156250000, P_UNIPHY1_RX, 2, 0, 0),
 	F(312500000, P_UNIPHY1_RX, 1, 0, 0),
 	{ }
@@ -1836,8 +1839,10 @@ static struct clk_regmap_div nss_port5_rx_div_clk_src = {
 static const struct freq_tbl ftbl_nss_port5_tx_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
 	F(25000000, P_UNIPHY1_TX, 12.5, 0, 0),
+	F(25000000, P_UNIPHY0_TX, 5, 0, 0),
 	F(78125000, P_UNIPHY1_TX, 4, 0, 0),
 	F(125000000, P_UNIPHY1_TX, 2.5, 0, 0),
+	F(125000000, P_UNIPHY0_TX, 1, 0, 0),
 	F(156250000, P_UNIPHY1_TX, 2, 0, 0),
 	F(312500000, P_UNIPHY1_TX, 1, 0, 0),
 	{ }
@@ -1875,8 +1880,10 @@ static struct clk_regmap_div nss_port5_tx_div_clk_src = {
 
 static const struct freq_tbl ftbl_nss_port6_rx_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
+	F(25000000, P_UNIPHY2_RX, 5, 0, 0),
 	F(25000000, P_UNIPHY2_RX, 12.5, 0, 0),
 	F(78125000, P_UNIPHY2_RX, 4, 0, 0),
+	F(125000000, P_UNIPHY2_RX, 1, 0, 0),
 	F(125000000, P_UNIPHY2_RX, 2.5, 0, 0),
 	F(156250000, P_UNIPHY2_RX, 2, 0, 0),
 	F(312500000, P_UNIPHY2_RX, 1, 0, 0),
@@ -1915,8 +1922,10 @@ static struct clk_regmap_div nss_port6_rx_div_clk_src = {
 
 static const struct freq_tbl ftbl_nss_port6_tx_clk_src[] = {
 	F(19200000, P_XO, 1, 0, 0),
+	F(25000000, P_UNIPHY2_TX, 5, 0, 0),
 	F(25000000, P_UNIPHY2_TX, 12.5, 0, 0),
 	F(78125000, P_UNIPHY2_TX, 4, 0, 0),
+	F(125000000, P_UNIPHY2_TX, 1, 0, 0),
 	F(125000000, P_UNIPHY2_TX, 2.5, 0, 0),
 	F(156250000, P_UNIPHY2_TX, 2, 0, 0),
 	F(312500000, P_UNIPHY2_TX, 1, 0, 0),
@@ -3354,6 +3363,7 @@ static struct clk_branch gcc_nssnoc_ubi1_ahb_clk = {
 
 static struct clk_branch gcc_ubi0_ahb_clk = {
 	.halt_reg = 0x6820c,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x6820c,
 		.enable_mask = BIT(0),
@@ -3371,6 +3381,7 @@ static struct clk_branch gcc_ubi0_ahb_clk = {
 
 static struct clk_branch gcc_ubi0_axi_clk = {
 	.halt_reg = 0x68200,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68200,
 		.enable_mask = BIT(0),
@@ -3388,6 +3399,7 @@ static struct clk_branch gcc_ubi0_axi_clk = {
 
 static struct clk_branch gcc_ubi0_nc_axi_clk = {
 	.halt_reg = 0x68204,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68204,
 		.enable_mask = BIT(0),
@@ -3405,6 +3417,7 @@ static struct clk_branch gcc_ubi0_nc_axi_clk = {
 
 static struct clk_branch gcc_ubi0_core_clk = {
 	.halt_reg = 0x68210,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68210,
 		.enable_mask = BIT(0),
@@ -3422,6 +3435,7 @@ static struct clk_branch gcc_ubi0_core_clk = {
 
 static struct clk_branch gcc_ubi0_mpt_clk = {
 	.halt_reg = 0x68208,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68208,
 		.enable_mask = BIT(0),
@@ -3439,6 +3453,7 @@ static struct clk_branch gcc_ubi0_mpt_clk = {
 
 static struct clk_branch gcc_ubi1_ahb_clk = {
 	.halt_reg = 0x6822c,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x6822c,
 		.enable_mask = BIT(0),
@@ -3456,6 +3471,7 @@ static struct clk_branch gcc_ubi1_ahb_clk = {
 
 static struct clk_branch gcc_ubi1_axi_clk = {
 	.halt_reg = 0x68220,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68220,
 		.enable_mask = BIT(0),
@@ -3473,6 +3489,7 @@ static struct clk_branch gcc_ubi1_axi_clk = {
 
 static struct clk_branch gcc_ubi1_nc_axi_clk = {
 	.halt_reg = 0x68224,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68224,
 		.enable_mask = BIT(0),
@@ -3490,6 +3507,7 @@ static struct clk_branch gcc_ubi1_nc_axi_clk = {
 
 static struct clk_branch gcc_ubi1_core_clk = {
 	.halt_reg = 0x68230,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68230,
 		.enable_mask = BIT(0),
@@ -3507,6 +3525,7 @@ static struct clk_branch gcc_ubi1_core_clk = {
 
 static struct clk_branch gcc_ubi1_mpt_clk = {
 	.halt_reg = 0x68228,
+	.halt_check = BRANCH_HALT_DELAY,
 	.clkr = {
 		.enable_reg = 0x68228,
 		.enable_mask = BIT(0),
drivers/clk/renesas/r9a06g032-clocks.c +4 -4
index 6e03b467395b..ec48b5516e17 100644
@@ -277,8 +277,8 @@ static const struct r9a06g032_clkdesc r9a06g032_clocks[] __initconst = {
 		.name = "uart_group_012",
 		.type = K_BITSEL,
 		.source = 1 + R9A06G032_DIV_UART,
-		/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */
-		.dual.sel = ((0xec / 4) << 5) | 24,
+		/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */
+		.dual.sel = ((0x34 / 4) << 5) | 30,
 		.dual.group = 0,
 	},
 	{
@@ -286,8 +286,8 @@ static const struct r9a06g032_clkdesc r9a06g032_clocks[] __initconst = {
 		.name = "uart_group_34567",
 		.type = K_BITSEL,
 		.source = 1 + R9A06G032_DIV_P2_PG,
-		/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */
-		.dual.sel = ((0x34 / 4) << 5) | 30,
+		/* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */
+		.dual.sel = ((0xec / 4) << 5) | 24,
 		.dual.group = 1,
 	},
 	D_UGATE(CLK_UART0, "clk_uart0", UART_GROUP_012, 0, 0, 0x1b2, 0x1b3, 0x1b4, 0x1b5),
drivers/crypto/hisilicon/sec/sec_algs.c +7 -7
index 3e3cc28d5cfe..f672dc1ecfac 100644
@@ -457,7 +457,7 @@ static void sec_skcipher_alg_callback(struct sec_bd_info *sec_resp,
 		 */
 	}
 
-	mutex_lock(&ctx->queue->queuelock);
+	spin_lock_bh(&ctx->queue->queuelock);
 	/* Put the IV in place for chained cases */
 	switch (ctx->cipher_alg) {
 	case SEC_C_AES_CBC_128:
@@ -517,7 +517,7 @@ static void sec_skcipher_alg_callback(struct sec_bd_info *sec_resp,
 			list_del(&backlog_req->backlog_head);
 		}
 	}
-	mutex_unlock(&ctx->queue->queuelock);
+	spin_unlock_bh(&ctx->queue->queuelock);
 
 	mutex_lock(&sec_req->lock);
 	list_del(&sec_req_el->head);
@@ -806,7 +806,7 @@ static int sec_alg_skcipher_crypto(struct skcipher_request *skreq,
 	 */
 
 	/* Grab a big lock for a long time to avoid concurrency issues */
-	mutex_lock(&queue->queuelock);
+	spin_lock_bh(&queue->queuelock);
 
 	/*
 	 * Can go on to queue if we have space in either:
@@ -822,15 +822,15 @@ static int sec_alg_skcipher_crypto(struct skcipher_request *skreq,
 		ret = -EBUSY;
 		if ((skreq->base.flags & CRYPTO_TFM_REQ_MAY_BACKLOG)) {
 			list_add_tail(&sec_req->backlog_head, &ctx->backlog);
-			mutex_unlock(&queue->queuelock);
+			spin_unlock_bh(&queue->queuelock);
 			goto out;
 		}
 
-		mutex_unlock(&queue->queuelock);
+		spin_unlock_bh(&queue->queuelock);
 		goto err_free_elements;
 	}
 	ret = sec_send_request(sec_req, queue);
-	mutex_unlock(&queue->queuelock);
+	spin_unlock_bh(&queue->queuelock);
 	if (ret)
 		goto err_free_elements;
 
@@ -889,7 +889,7 @@ static int sec_alg_skcipher_init(struct crypto_skcipher *tfm)
 	if (IS_ERR(ctx->queue))
 		return PTR_ERR(ctx->queue);
 
-	mutex_init(&ctx->queue->queuelock);
+	spin_lock_init(&ctx->queue->queuelock);
 	ctx->queue->havesoftqueue = false;
 
 	return 0;
drivers/crypto/hisilicon/sec/sec_drv.h +1 -1
index 2d2f186674ba..ddc5d6bd7574 100644
@@ -347,7 +347,7 @@ struct sec_queue {
 	DECLARE_BITMAP(unprocessed, SEC_QUEUE_LEN);
 	DECLARE_KFIFO_PTR(softqueue, typeof(struct sec_request_el *));
 	bool havesoftqueue;
-	struct mutex queuelock;
+	spinlock_t queuelock;
 	void *shadow[SEC_QUEUE_LEN];
 };
 
drivers/dma/sprd-dma.c +1 -4
index 0fadf6a08494..4ec9a924a338 100644
@@ -987,11 +987,8 @@ static int sprd_dma_remove(struct platform_device *pdev)
 {
 	struct sprd_dma_dev *sdev = platform_get_drvdata(pdev);
 	struct sprd_dma_chn *c, *cn;
-	int ret;
 
-	ret = pm_runtime_get_sync(&pdev->dev);
-	if (ret < 0)
-		return ret;
+	pm_runtime_get_sync(&pdev->dev);
 
 	/* explicitly free the irq */
 	if (sdev->irq > 0)
drivers/firmware/arm_scpi.c +35 -26

123 lines not on this page · raw message

drivers/fpga/altera-pr-ip-core.c +1 -1
index 65e0b6a2c031..059ba27f3c29 100644
@@ -108,7 +108,7 @@ static int alt_pr_fpga_write(struct fpga_manager *mgr, const char *buf,
 	u32 *buffer_32 = (u32 *)buf;
 	size_t i = 0;
 
-	if (count <= 0)
+	if (!count)
 		return -EINVAL;
 
 	/* Write out the complete 32-bit chunks */
drivers/gpio/gpiolib-of.c +3 -1
index 09999e3e3109..7bda0f59c109 100644
@@ -476,7 +476,8 @@ int of_mm_gpiochip_add_data(struct device_node *np,
 	if (mm_gc->save_regs)
 		mm_gc->save_regs(mm_gc);
 
-	mm_gc->gc.of_node = np;
+	of_node_put(mm_gc->gc.of_node);
+	mm_gc->gc.of_node = of_node_get(np);
 
 	ret = gpiochip_add_data(gc, data);
 	if (ret)
@@ -484,6 +485,7 @@ int of_mm_gpiochip_add_data(struct device_node *np,
 
 	return 0;
 err2:
+	of_node_put(np);
 	iounmap(mm_gc->regs);
 err1:
 	kfree(gc->label);
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +4 -0
index e25952d516e2..b51e7839b41b 100644
@@ -883,6 +883,10 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,
 	if (WARN_ON_ONCE(min_offset > max_offset))
 		return -EINVAL;
 
+	/* Check domain to be pinned to against preferred domains */
+	if (bo->preferred_domains & domain)
+		domain = bo->preferred_domains & domain;
+
 	/* A shared bo cannot be migrated to VRAM */
 	if (bo->prime_shared_count) {
 		if (domain & AMDGPU_GEM_DOMAIN_GTT)
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +14 -3
index b6e7cc9082ca..31b75d3ca6e9 100644
@@ -1301,10 +1301,21 @@ static struct i2c_driver adv7511_driver = {
 
 static int __init adv7511_init(void)
 {
-	if (IS_ENABLED(CONFIG_DRM_MIPI_DSI))
-		mipi_dsi_driver_register(&adv7533_dsi_driver);
+	int ret;
+
+	if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) {
+		ret = mipi_dsi_driver_register(&adv7533_dsi_driver);
+		if (ret)
+			return ret;
+	}
 
-	return i2c_add_driver(&adv7511_driver);
+	ret = i2c_add_driver(&adv7511_driver);
+	if (ret) {
+		if (IS_ENABLED(CONFIG_DRM_MIPI_DSI))
+			mipi_dsi_driver_unregister(&adv7533_dsi_driver);
+	}
+
+	return ret;
 }
 module_init(adv7511_init);
 
drivers/gpu/drm/bridge/sil-sii8620.c +2 -2
index ea433bb189ca..c72092319a53 100644
@@ -607,7 +607,7 @@ static void *sii8620_burst_get_tx_buf(struct sii8620 *ctx, int len)
 	u8 *buf = &ctx->burst.tx_buf[ctx->burst.tx_count];
 	int size = len + 2;
 
-	if (ctx->burst.tx_count + size > ARRAY_SIZE(ctx->burst.tx_buf)) {
+	if (ctx->burst.tx_count + size >= ARRAY_SIZE(ctx->burst.tx_buf)) {
 		dev_err(ctx->dev, "TX-BLK buffer exhausted\n");
 		ctx->error = -EINVAL;
 		return NULL;
@@ -624,7 +624,7 @@ static u8 *sii8620_burst_get_rx_buf(struct sii8620 *ctx, int len)
 	u8 *buf = &ctx->burst.rx_buf[ctx->burst.rx_count];
 	int size = len + 1;
 
-	if (ctx->burst.tx_count + size > ARRAY_SIZE(ctx->burst.tx_buf)) {
+	if (ctx->burst.rx_count + size >= ARRAY_SIZE(ctx->burst.rx_buf)) {
 		dev_err(ctx->dev, "RX-BLK buffer exhausted\n");
 		ctx->error = -EINVAL;
 		return NULL;
drivers/gpu/drm/mediatek/mtk_dpi.c +6 -25
index 6c0ea39d5739..a263ac4aaab2 100644
@@ -52,13 +52,7 @@ enum mtk_dpi_out_channel_swap {
 };
 
 enum mtk_dpi_out_color_format {
-	MTK_DPI_COLOR_FORMAT_RGB,
-	MTK_DPI_COLOR_FORMAT_RGB_FULL,
-	MTK_DPI_COLOR_FORMAT_YCBCR_444,
-	MTK_DPI_COLOR_FORMAT_YCBCR_422,
-	MTK_DPI_COLOR_FORMAT_XV_YCC,
-	MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL,
-	MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL
+	MTK_DPI_COLOR_FORMAT_RGB
 };
 
 struct mtk_dpi {
@@ -347,24 +341,11 @@ static void mtk_dpi_config_2n_h_fre(struct mtk_dpi *dpi)
 static void mtk_dpi_config_color_format(struct mtk_dpi *dpi,
 					enum mtk_dpi_out_color_format format)
 {
-	if ((format == MTK_DPI_COLOR_FORMAT_YCBCR_444) ||
-	    (format == MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL)) {
-		mtk_dpi_config_yuv422_enable(dpi, false);
-		mtk_dpi_config_csc_enable(dpi, true);
-		mtk_dpi_config_swap_input(dpi, false);
-		mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_BGR);
-	} else if ((format == MTK_DPI_COLOR_FORMAT_YCBCR_422) ||
-		   (format == MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL)) {
-		mtk_dpi_config_yuv422_enable(dpi, true);
-		mtk_dpi_config_csc_enable(dpi, true);
-		mtk_dpi_config_swap_input(dpi, true);
-		mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB);
-	} else {
-		mtk_dpi_config_yuv422_enable(dpi, false);
-		mtk_dpi_config_csc_enable(dpi, false);
-		mtk_dpi_config_swap_input(dpi, false);
-		mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB);
-	}
+	/* only support RGB888 */
+	mtk_dpi_config_yuv422_enable(dpi, false);
+	mtk_dpi_config_csc_enable(dpi, false);
+	mtk_dpi_config_swap_input(dpi, false);
+	mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB);
 }
 
 static void mtk_dpi_power_off(struct mtk_dpi *dpi, enum mtk_dpi_power_ctl pctl)
drivers/gpu/drm/mediatek/mtk_dsi.c +2 -0
index 0dd317ac5fe5..a629a69c2756 100644
@@ -651,6 +651,8 @@ static void mtk_dsi_poweroff(struct mtk_dsi *dsi)
 	mtk_dsi_reset_engine(dsi);
 	mtk_dsi_lane0_ulp_mode_enter(dsi);
 	mtk_dsi_clk_ulp_mode_enter(dsi);
+	/* set the lane number as 0 to pull down mipi */
+	writel(0, dsi->regs + DSI_TXRX_CTRL);
 
 	mtk_dsi_disable(dsi);
 
drivers/gpu/drm/meson/meson_drv.c +4 -1
index 1887473cdd79..9959522ce802 100644
@@ -141,8 +141,11 @@ static bool meson_vpu_has_available_connectors(struct device *dev)
 	for_each_endpoint_of_node(dev->of_node, ep) {
 		/* If the endpoint node exists, consider it enabled */
 		remote = of_graph_get_remote_port(ep);
-		if (remote)
+		if (remote) {
+			of_node_put(remote);
+			of_node_put(ep);
 			return true;
+		}
 	}
 
 	return false;
drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c +2 -1
index 88de12225582..69fe09b41087 100644
@@ -134,12 +134,13 @@ int mdp5_pipe_release(struct drm_atomic_state *s, struct mdp5_hw_pipe *hwpipe)
 {
 	struct msm_drm_private *priv = s->dev->dev_private;
 	struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms));
-	struct mdp5_global_state *state = mdp5_get_global_state(s);
+	struct mdp5_global_state *state;
 	struct mdp5_hw_pipe_state *new_state;
 
 	if (!hwpipe)
 		return 0;
 
+	state = mdp5_get_global_state(s);
 	if (IS_ERR(state))
 		return PTR_ERR(state);
 
drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c +1 -1
index 8bff14ae16b0..f0368d9a0154 100644
@@ -33,7 +33,7 @@ nvbios_addr(struct nvkm_bios *bios, u32 *addr, u8 size)
 {
 	u32 p = *addr;
 
-	if (*addr > bios->image0_size && bios->imaged_addr) {
+	if (*addr >= bios->image0_size && bios->imaged_addr) {
 		*addr -= bios->image0_size;
 		*addr += bios->imaged_addr;
 	}
drivers/gpu/drm/radeon/ni_dpm.c +2 -4
index f86ca163dcf3..a7273c01de34 100644
@@ -2738,10 +2738,10 @@ static int ni_set_mc_special_registers(struct radeon_device *rdev,
 					table->mc_reg_table_entry[k].mc_data[j] |= 0x100;
 			}
 			j++;
-			if (j > SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE)
-				return -EINVAL;
 			break;
 		case MC_SEQ_RESERVE_M >> 2:
+			if (j >= SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE)
+				return -EINVAL;
 			temp_reg = RREG32(MC_PMG_CMD_MRS1);
 			table->mc_reg_address[j].s1 = MC_PMG_CMD_MRS1 >> 2;
 			table->mc_reg_address[j].s0 = MC_SEQ_PMG_CMD_MRS1_LP >> 2;
@@ -2750,8 +2750,6 @@ static int ni_set_mc_special_registers(struct radeon_device *rdev,
 					(temp_reg & 0xffff0000) |
 					(table->mc_reg_table_entry[k].mc_data[i] & 0x0000ffff);
 			j++;
-			if (j > SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE)
-				return -EINVAL;
 			break;
 		default:
 			break;
drivers/gpu/drm/rockchip/rockchip_drm_vop.c +3 -0
index c0b647435974..69eb0de9973f 100644
@@ -1088,6 +1088,9 @@ static struct drm_crtc_state *vop_crtc_duplicate_state(struct drm_crtc *crtc)
 {
 	struct rockchip_crtc_state *rockchip_state;
 
+	if (WARN_ON(!crtc->state))
+		return NULL;
+
 	rockchip_state = kzalloc(sizeof(*rockchip_state), GFP_KERNEL);
 	if (!rockchip_state)
 		return NULL;
drivers/gpu/drm/vc4/vc4_dsi.c +2 -4
index 0c607eb33d7e..77003ce666a4 100644
@@ -853,11 +853,9 @@ static bool vc4_dsi_encoder_mode_fixup(struct drm_encoder *encoder,
 	/* Find what divider gets us a faster clock than the requested
 	 * pixel clock.
 	 */
-	for (divider = 1; divider < 8; divider++) {
-		if (parent_rate / divider < pll_clock) {
-			divider--;
+	for (divider = 1; divider < 255; divider++) {
+		if (parent_rate / (divider + 1) < pll_clock)
 			break;
-		}
 	}
 
 	/* Now that we've picked a PLL divider, calculate back to its
drivers/hid/hid-alps.c +2 -0
index 3eddd8f73b57..116ece4be2c9 100644
@@ -835,6 +835,8 @@ static const struct hid_device_id alps_id[] = {
 		USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1_DUAL) },
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY,
 		USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1) },
+	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY,
+		USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY) },
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY,
 		USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_T4_BTNLESS) },
 	{ }
drivers/hid/hid-cp2112.c +5 -0
index 6f65f5257236..637a7ce281c6 100644
@@ -794,6 +794,11 @@ static int cp2112_xfer(struct i2c_adapter *adap, u16 addr,
 		data->word = le16_to_cpup((__le16 *)buf);
 		break;
 	case I2C_SMBUS_I2C_BLOCK_DATA:
+		if (read_length > I2C_SMBUS_BLOCK_MAX) {
+			ret = -EINVAL;
+			goto power_normal;
+		}
+
 		memcpy(data->block + 1, buf, read_length);
 		break;
 	case I2C_SMBUS_BLOCK_DATA:
drivers/hid/wacom_sys.c +1 -1
index 152570b49f3b..fb63845e9920 100644
@@ -2095,7 +2095,7 @@ static int wacom_register_inputs(struct wacom *wacom)
 
 	error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac);
 	if (error) {
-		/* no pad in use on this interface */
+		/* no pad events using this interface */
 		input_free_device(pad_input_dev);
 		wacom_wac->pad_input = NULL;
 		pad_input_dev = NULL;
drivers/hid/wacom_wac.c +25 -18

67 lines not on this page · raw message

drivers/hwtracing/intel_th/pci.c +15 -0
index 83fab06ccfeb..6229f8e497fc 100644
@@ -245,6 +245,21 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x54a6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Raptor Lake-S CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa76f),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Raptor Lake-S */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
+	{
+		/* Meteor Lake-P */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7e24),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Rocket Lake CPU */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4c19),
drivers/i2c/busses/i2c-cadence.c +9 -1
index 512c61d31fe5..bce7bf93d62a 100644
@@ -353,8 +353,13 @@ static void cdns_i2c_mrecv(struct cdns_i2c *id)
 	ctrl_reg = cdns_i2c_readreg(CDNS_I2C_CR_OFFSET);
 	ctrl_reg |= CDNS_I2C_CR_RW | CDNS_I2C_CR_CLR_FIFO;
 
+	/*
+	 * Receive up to I2C_SMBUS_BLOCK_MAX data bytes, plus one message length
+	 * byte, plus one checksum byte if PEC is enabled. p_msg->len will be 2 if
+	 * PEC is enabled, otherwise 1.
+	 */
 	if (id->p_msg->flags & I2C_M_RECV_LEN)
-		id->recv_count = I2C_SMBUS_BLOCK_MAX + 1;
+		id->recv_count = I2C_SMBUS_BLOCK_MAX + id->p_msg->len;
 
 	id->curr_recv_count = id->recv_count;
 
@@ -540,6 +545,9 @@ static int cdns_i2c_process_msg(struct cdns_i2c *id, struct i2c_msg *msg,
 	if (id->err_status & CDNS_I2C_IXR_ARB_LOST)
 		return -EAGAIN;
 
+	if (msg->flags & I2C_M_RECV_LEN)
+		msg->len += min_t(unsigned int, msg->buf[0], I2C_SMBUS_BLOCK_MAX);
+
 	return 0;
 }
 
drivers/i2c/i2c-core-base.c +2 -1
index 2a43f4e46af0..9079be0d51d1 100644
@@ -2273,8 +2273,9 @@ void i2c_put_adapter(struct i2c_adapter *adap)
 	if (!adap)
 		return;
 
-	put_device(&adap->dev);
 	module_put(adap->owner);
+	/* Should be last, otherwise we risk use-after-free with 'adap' */
+	put_device(&adap->dev);
 }
 EXPORT_SYMBOL(i2c_put_adapter);
 
drivers/i2c/muxes/i2c-mux-gpmux.c +1 -0
index 92cf5f48afe6..5053f1675a29 100644
@@ -141,6 +141,7 @@ static int i2c_mux_probe(struct platform_device *pdev)
 	return 0;
 
 err_children:
+	of_node_put(child);
 	i2c_mux_del_adapters(muxc);
 err_parent:
 	i2c_put_adapter(parent);
drivers/iio/light/isl29028.c +1 -1
index f9912ab4f65c..4c2810c2a4bf 100644
@@ -639,7 +639,7 @@ static int isl29028_probe(struct i2c_client *client,
 					 ISL29028_POWER_OFF_DELAY_MS);
 	pm_runtime_use_autosuspend(&client->dev);
 
-	ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev);
+	ret = iio_device_register(indio_dev);
 	if (ret < 0) {
 		dev_err(&client->dev,
 			"%s(): iio registration failed with error %d\n",
drivers/infiniband/hw/hfi1/file_ops.c +3 -1
index 64ee11542a56..be31faf6cc62 100644
@@ -1222,8 +1222,10 @@ static int setup_base_ctxt(struct hfi1_filedata *fd,
 		goto done;
 
 	ret = init_user_ctxt(fd, uctxt);
-	if (ret)
+	if (ret) {
+		hfi1_free_ctxt_rcv_groups(uctxt);
 		goto done;
+	}
 
 	user_init(uctxt);
 
drivers/infiniband/sw/rxe/rxe_qp.c +8 -4
index 4798b718b085..a4b5374deac8 100644
@@ -210,6 +210,14 @@ static void rxe_qp_init_misc(struct rxe_dev *rxe, struct rxe_qp *qp,
 	spin_lock_init(&qp->grp_lock);
 	spin_lock_init(&qp->state_lock);
 
+	spin_lock_init(&qp->req.task.state_lock);
+	spin_lock_init(&qp->resp.task.state_lock);
+	spin_lock_init(&qp->comp.task.state_lock);
+
+	spin_lock_init(&qp->sq.sq_lock);
+	spin_lock_init(&qp->rq.producer_lock);
+	spin_lock_init(&qp->rq.consumer_lock);
+
 	atomic_set(&qp->ssn, 0);
 	atomic_set(&qp->skb_out, 0);
 }
@@ -258,7 +266,6 @@ static int rxe_qp_init_req(struct rxe_dev *rxe, struct rxe_qp *qp,
 	qp->req.opcode		= -1;
 	qp->comp.opcode		= -1;
 
-	spin_lock_init(&qp->sq.sq_lock);
 	skb_queue_head_init(&qp->req_pkts);
 
 	rxe_init_task(rxe, &qp->req.task, qp,
@@ -308,9 +315,6 @@ static int rxe_qp_init_resp(struct rxe_dev *rxe, struct rxe_qp *qp,
 		}
 	}
 
-	spin_lock_init(&qp->rq.producer_lock);
-	spin_lock_init(&qp->rq.consumer_lock);
-
 	skb_queue_head_init(&qp->resp_pkts);
 
 	rxe_init_task(rxe, &qp->resp.task, qp,
drivers/iommu/exynos-iommu.c +5 -1
index 4bf6049dd2c7..8626c924f724 100644
@@ -640,7 +640,7 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
 
 	ret = iommu_device_register(&data->iommu);
 	if (ret)
-		return ret;
+		goto err_iommu_register;
 
 	platform_set_drvdata(pdev, data);
 
@@ -667,6 +667,10 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
 	pm_runtime_enable(dev);
 
 	return 0;
+
+err_iommu_register:
+	iommu_device_sysfs_remove(&data->iommu);
+	return ret;
 }
 
 static int __maybe_unused exynos_sysmmu_suspend(struct device *dev)
drivers/iommu/qcom_iommu.c +5 -2
index b0a4a3d2f60e..244e2f7eae84 100644
@@ -767,9 +767,12 @@ static bool qcom_iommu_has_secure_context(struct qcom_iommu_dev *qcom_iommu)
 {
 	struct device_node *child;
 
-	for_each_child_of_node(qcom_iommu->dev->of_node, child)
-		if (of_device_is_compatible(child, "qcom,msm-iommu-v1-sec"))
+	for_each_child_of_node(qcom_iommu->dev->of_node, child) {
+		if (of_device_is_compatible(child, "qcom,msm-iommu-v1-sec")) {
+			of_node_put(child);
 			return true;
+		}
+	}
 
 	return false;
 }
drivers/irqchip/irq-tegra.c +5 -5
index 0abc0cd1c32e..1b3048ecb600 100644
@@ -157,10 +157,10 @@ static int tegra_ictlr_suspend(void)
 		lic->cop_iep[i] = readl_relaxed(ictlr + ICTLR_COP_IEP_CLASS);
 
 		/* Disable COP interrupts */
-		writel_relaxed(~0ul, ictlr + ICTLR_COP_IER_CLR);
+		writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_COP_IER_CLR);
 
 		/* Disable CPU interrupts */
-		writel_relaxed(~0ul, ictlr + ICTLR_CPU_IER_CLR);
+		writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_CPU_IER_CLR);
 
 		/* Enable the wakeup sources of ictlr */
 		writel_relaxed(lic->ictlr_wake_mask[i], ictlr + ICTLR_CPU_IER_SET);
@@ -181,12 +181,12 @@ static void tegra_ictlr_resume(void)
 
 		writel_relaxed(lic->cpu_iep[i],
 			       ictlr + ICTLR_CPU_IEP_CLASS);
-		writel_relaxed(~0ul, ictlr + ICTLR_CPU_IER_CLR);
+		writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_CPU_IER_CLR);
 		writel_relaxed(lic->cpu_ier[i],
 			       ictlr + ICTLR_CPU_IER_SET);
 		writel_relaxed(lic->cop_iep[i],
 			       ictlr + ICTLR_COP_IEP_CLASS);
-		writel_relaxed(~0ul, ictlr + ICTLR_COP_IER_CLR);
+		writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_COP_IER_CLR);
 		writel_relaxed(lic->cop_ier[i],
 			       ictlr + ICTLR_COP_IER_SET);
 	}
@@ -321,7 +321,7 @@ static int __init tegra_ictlr_init(struct device_node *node,
 		lic->base[i] = base;
 
 		/* Disable all interrupts */
-		writel_relaxed(~0UL, base + ICTLR_CPU_IER_CLR);
+		writel_relaxed(GENMASK(31, 0), base + ICTLR_CPU_IER_CLR);
 		/* All interrupts target IRQ */
 		writel_relaxed(0, base + ICTLR_CPU_IEP_CLASS);
 
drivers/md/dm-raid.c +2 -2
index dd56536ab728..5c45100f6d53 100644
@@ -3533,7 +3533,7 @@ static void raid_status(struct dm_target *ti, status_type_t type,
 {
 	struct raid_set *rs = ti->private;
 	struct mddev *mddev = &rs->md;
-	struct r5conf *conf = mddev->private;
+	struct r5conf *conf = rs_is_raid456(rs) ? mddev->private : NULL;
 	int i, max_nr_stripes = conf ? conf->max_nr_stripes : 0;
 	unsigned long recovery;
 	unsigned int raid_param_cnt = 1; /* at least 1 for chunksize */
@@ -3804,7 +3804,7 @@ static void attempt_restore_of_faulty_devices(struct raid_set *rs)
 
 	memset(cleared_failed_devices, 0, sizeof(cleared_failed_devices));
 
-	for (i = 0; i < mddev->raid_disks; i++) {
+	for (i = 0; i < rs->raid_disks; i++) {
 		r = &rs->dev[i].rdev;
 		/* HM FIXME: enhance journal device recovery processing */
 		if (test_bit(Journal, &r->flags))
drivers/md/dm-writecache.c +1 -1
index 3ca8627c2f1d..af5af0b78022 100644
@@ -20,7 +20,7 @@
 
 #define HIGH_WATERMARK			50
 #define LOW_WATERMARK			45
-#define MAX_WRITEBACK_JOBS		0
+#define MAX_WRITEBACK_JOBS		min(0x10000000 / PAGE_SIZE, totalram_pages / 16)
 #define ENDIO_LATENCY			16
 #define WRITEBACK_LATENCY		64
 #define AUTOCOMMIT_BLOCKS_SSD		65536
drivers/md/dm.c +5 -0
index d2ee97cd7d14..324d1dd58e2b 100644
@@ -3122,6 +3122,11 @@ static int dm_call_pr(struct block_device *bdev, iterate_devices_callout_fn fn,
 		goto out;
 	ti = dm_table_get_target(table, 0);
 
+	if (dm_suspended_md(md)) {
+		ret = -EAGAIN;
+		goto out;
+	}
+
 	ret = -EINVAL;
 	if (!ti->type->iterate_devices)
 		goto out;
drivers/md/raid10.c +4 -1
index 8e0f936b3e37..9f9cd2fadc1e 100644
@@ -1863,9 +1863,12 @@ static int raid10_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
 	int err = 0;
 	int number = rdev->raid_disk;
 	struct md_rdev **rdevp;
-	struct raid10_info *p = conf->mirrors + number;
+	struct raid10_info *p;
 
 	print_conf(conf);
+	if (unlikely(number >= mddev->raid_disks))
+		return 0;
+	p = conf->mirrors + number;
 	if (rdev == p->rdev)
 		rdevp = &p->rdev;
 	else if (rdev == p->replacement)
drivers/md/raid5.c +1 -1
index dad426cc0f90..6f04473f0838 100644
@@ -2670,10 +2670,10 @@ static void raid5_end_write_request(struct bio *bi)
 	if (!test_and_clear_bit(R5_DOUBLE_LOCKED, &sh->dev[i].flags))
 		clear_bit(R5_LOCKED, &sh->dev[i].flags);
 	set_bit(STRIPE_HANDLE, &sh->state);
-	raid5_release_stripe(sh);
 
 	if (sh->batch_head && sh != sh->batch_head)
 		raid5_release_stripe(sh->batch_head);
+	raid5_release_stripe(sh);
 }
 
 static void raid5_error(struct mddev *mddev, struct md_rdev *rdev)
drivers/media/pci/tw686x/tw686x-core.c +8 -10
index 7fb3f07bf022..8e759728ef22 100644
@@ -318,13 +318,6 @@ static int tw686x_probe(struct pci_dev *pci_dev,
 
 	spin_lock_init(&dev->lock);
 
-	err = request_irq(pci_dev->irq, tw686x_irq, IRQF_SHARED,
-			  dev->name, dev);
-	if (err < 0) {
-		dev_err(&pci_dev->dev, "unable to request interrupt\n");
-		goto iounmap;
-	}
-
 	timer_setup(&dev->dma_delay_timer, tw686x_dma_delay, 0);
 
 	/*
@@ -336,18 +329,23 @@ static int tw686x_probe(struct pci_dev *pci_dev,
 	err = tw686x_video_init(dev);
 	if (err) {
 		dev_err(&pci_dev->dev, "can't register video\n");
-		goto free_irq;
+		goto iounmap;
 	}
 
 	err = tw686x_audio_init(dev);
 	if (err)
 		dev_warn(&pci_dev->dev, "can't register audio\n");
 
+	err = request_irq(pci_dev->irq, tw686x_irq, IRQF_SHARED,
+			  dev->name, dev);
+	if (err < 0) {
+		dev_err(&pci_dev->dev, "unable to request interrupt\n");
+		goto iounmap;
+	}
+
 	pci_set_drvdata(pci_dev, dev);
 	return 0;
 
-free_irq:
-	free_irq(pci_dev->irq, dev);
 iounmap:
 	pci_iounmap(pci_dev, dev->mmio);
 free_region:
drivers/media/platform/mtk-mdp/mtk_mdp_ipi.h +2 -0
index 78e2cc0dead1..4f4a51dd48e1 100644
@@ -48,12 +48,14 @@ struct mdp_ipi_init {
  * @ipi_id        : IPI_MDP
  * @ap_inst       : AP mtk_mdp_vpu address
  * @vpu_inst_addr : VPU MDP instance address
+ * @padding       : Alignment padding
  */
 struct mdp_ipi_comm {
 	uint32_t msg_id;
 	uint32_t ipi_id;
 	uint64_t ap_inst;
 	uint32_t vpu_inst_addr;
+	uint32_t padding;
 };
 
 /**
drivers/media/usb/hdpvr/hdpvr-video.c +1 -1
index ce46f8721470..1fb2cdd9c4b2 100644
@@ -413,7 +413,7 @@ static ssize_t hdpvr_read(struct file *file, char __user *buffer, size_t count,
 	struct hdpvr_device *dev = video_drvdata(file);
 	struct hdpvr_buffer *buf = NULL;
 	struct urb *urb;
-	unsigned int ret = 0;
+	int ret = 0;
 	int rem, cnt;
 
 	if (*pos)
drivers/memstick/core/ms_block.c +6 -5
index 7aab26128f6d..addf76a8d1b0 100644
@@ -1339,17 +1339,17 @@ static int msb_ftl_initialize(struct msb_data *msb)
 	msb->zone_count = msb->block_count / MS_BLOCKS_IN_ZONE;
 	msb->logical_block_count = msb->zone_count * 496 - 2;
 
-	msb->used_blocks_bitmap = kzalloc(msb->block_count / 8, GFP_KERNEL);
-	msb->erased_blocks_bitmap = kzalloc(msb->block_count / 8, GFP_KERNEL);
+	msb->used_blocks_bitmap = bitmap_zalloc(msb->block_count, GFP_KERNEL);
+	msb->erased_blocks_bitmap = bitmap_zalloc(msb->block_count, GFP_KERNEL);
 	msb->lba_to_pba_table =
 		kmalloc_array(msb->logical_block_count, sizeof(u16),
 			      GFP_KERNEL);
 
 	if (!msb->used_blocks_bitmap || !msb->lba_to_pba_table ||
 						!msb->erased_blocks_bitmap) {
-		kfree(msb->used_blocks_bitmap);
+		bitmap_free(msb->used_blocks_bitmap);
+		bitmap_free(msb->erased_blocks_bitmap);
 		kfree(msb->lba_to_pba_table);
-		kfree(msb->erased_blocks_bitmap);
 		return -ENOMEM;
 	}
 
@@ -1961,7 +1961,8 @@ static int msb_bd_open(struct block_device *bdev, fmode_t mode)
 static void msb_data_clear(struct msb_data *msb)
 {
 	kfree(msb->boot_page);
-	kfree(msb->used_blocks_bitmap);
+	bitmap_free(msb->used_blocks_bitmap);
+	bitmap_free(msb->erased_blocks_bitmap);
 	kfree(msb->lba_to_pba_table);
 	kfree(msb->cache);
 	msb->card = NULL;
drivers/mfd/t7l66xb.c +1 -5
index 43d8683266de..caa61649fe79 100644
@@ -412,11 +412,8 @@ static int t7l66xb_probe(struct platform_device *dev)
 
 static int t7l66xb_remove(struct platform_device *dev)
 {
-	struct t7l66xb_platform_data *pdata = dev_get_platdata(&dev->dev);
 	struct t7l66xb *t7l66xb = platform_get_drvdata(dev);
-	int ret;
 
-	ret = pdata->disable(dev);
 	clk_disable_unprepare(t7l66xb->clk48m);
 	clk_put(t7l66xb->clk48m);
 	clk_disable_unprepare(t7l66xb->clk32k);
@@ -427,8 +424,7 @@ static int t7l66xb_remove(struct platform_device *dev)
 	mfd_remove_devices(&dev->dev);
 	kfree(t7l66xb);
 
-	return ret;
-
+	return 0;
 }
 
 static struct platform_driver t7l66xb_platform_driver = {
drivers/misc/cardreader/rtsx_pcr.c +5 -1
index 3eb3c237f339..80b9f36dbca4 100644
@@ -1479,7 +1479,7 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
 	pcr->remap_addr = ioremap_nocache(base, len);
 	if (!pcr->remap_addr) {
 		ret = -ENOMEM;
-		goto free_handle;
+		goto free_idr;
 	}
 
 	pcr->rtsx_resv_buf = dma_alloc_coherent(&(pcidev->dev),
@@ -1541,6 +1541,10 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
 			pcr->rtsx_resv_buf, pcr->rtsx_resv_buf_addr);
 unmap:
 	iounmap(pcr->remap_addr);
+free_idr:
+	spin_lock(&rtsx_pci_lock);
+	idr_remove(&rtsx_pci_idr, pcr->id);
+	spin_unlock(&rtsx_pci_lock);
 free_handle:
 	kfree(handle);
 free_pcr:
drivers/misc/cxl/irq.c +1 -0
index ce08a9f22308..0dbe78383f8f 100644
@@ -353,6 +353,7 @@ int afu_allocate_irqs(struct cxl_context *ctx, u32 count)
 
 out:
 	cxl_ops->release_irq_ranges(&ctx->irqs, ctx->afu->adapter);
+	bitmap_free(ctx->irq_bitmap);
 	afu_irq_name_free(ctx);
 	return -ENOMEM;
 }
drivers/mmc/host/cavium-octeon.c +1 -0
index 22aded1065ae..2245452a44c8 100644
@@ -288,6 +288,7 @@ static int octeon_mmc_probe(struct platform_device *pdev)
 		if (ret) {
 			dev_err(&pdev->dev, "Error populating slots\n");
 			octeon_mmc_set_shared_power(host, 0);
+			of_node_put(cn);
 			goto error;
 		}
 		i++;
drivers/mmc/host/cavium-thunderx.c +3 -1
index eee08d81b242..f79806e31e7e 100644
@@ -138,8 +138,10 @@ static int thunder_mmc_probe(struct pci_dev *pdev,
 				continue;
 
 			ret = cvm_mmc_of_slot_probe(&host->slot_pdev[i]->dev, host);
-			if (ret)
+			if (ret) {
+				of_node_put(child_node);
 				goto error;
+			}
 		}
 		i++;
 	}
drivers/mmc/host/pxamci.c +2 -2
index 00b5465dfb0c..d0db1c37552f 100644
@@ -653,7 +653,7 @@ static int pxamci_probe(struct platform_device *pdev)
 
 	ret = pxamci_of_init(pdev, mmc);
 	if (ret)
-		return ret;
+		goto out;
 
 	host = mmc_priv(mmc);
 	host->mmc = mmc;
@@ -677,7 +677,7 @@ static int pxamci_probe(struct platform_device *pdev)
 
 	ret = pxamci_init_ocr(host);
 	if (ret < 0)
-		return ret;
+		goto out;
 
 	mmc->caps = 0;
 	host->cmdat = 0;
drivers/mmc/host/sdhci-of-at91.c +7 -2
index 8cd1794768ba..70ce977cfeec 100644
@@ -117,8 +117,13 @@ static void sdhci_at91_set_power(struct sdhci_host *host, unsigned char mode,
 static void sdhci_at91_set_uhs_signaling(struct sdhci_host *host,
 					 unsigned int timing)
 {
-	if (timing == MMC_TIMING_MMC_DDR52)
-		sdhci_writeb(host, SDMMC_MC1R_DDR, SDMMC_MC1R);
+	u8 mc1r;
+
+	if (timing == MMC_TIMING_MMC_DDR52) {
+		mc1r = sdhci_readb(host, SDMMC_MC1R);
+		mc1r |= SDMMC_MC1R_DDR;
+		sdhci_writeb(host, mc1r, SDMMC_MC1R);
+	}
 	sdhci_set_uhs_signaling(host, timing);
 }
 
drivers/mmc/host/sdhci-of-esdhc.c +1 -0
index d6cb0f9a3488..77ae23077f56 100644
@@ -704,6 +704,7 @@ static int esdhc_signal_voltage_switch(struct mmc_host *mmc,
 		scfg_node = of_find_matching_node(NULL, scfg_device_ids);
 		if (scfg_node)
 			scfg_base = of_iomap(scfg_node, 0);
+		of_node_put(scfg_node);
 		if (scfg_base) {
 			sdhciovselcr = SDHCIOVSELCR_TGLEN |
 				       SDHCIOVSELCR_VSELVAL;
drivers/mtd/devices/st_spi_fsm.c +5 -3
index 55d4a77f3b7f..533096c88ae1 100644
@@ -2120,10 +2120,12 @@ static int stfsm_probe(struct platform_device *pdev)
 		(long long)fsm->mtd.size, (long long)(fsm->mtd.size >> 20),
 		fsm->mtd.erasesize, (fsm->mtd.erasesize >> 10));
 
-	return mtd_device_register(&fsm->mtd, NULL, 0);
-
+	ret = mtd_device_register(&fsm->mtd, NULL, 0);
+	if (ret) {
 err_clk_unprepare:
-	clk_disable_unprepare(fsm->clk);
+		clk_disable_unprepare(fsm->clk);
+	}
+
 	return ret;
 }
 
drivers/mtd/maps/physmap_of_versatile.c +2 -0
index 03f2b6e7bc7e..7d56e97bd50f 100644
@@ -107,6 +107,7 @@ static int ap_flash_init(struct platform_device *pdev)
 		return -ENODEV;
 	}
 	ebi_base = of_iomap(ebi, 0);
+	of_node_put(ebi);
 	if (!ebi_base)
 		return -ENODEV;
 
@@ -221,6 +222,7 @@ int of_flash_probe_versatile(struct platform_device *pdev,
 
 		versatile_flashprot = (enum versatile_flashprot)devid->data;
 		rmap = syscon_node_to_regmap(sysnp);
+		of_node_put(sysnp);
 		if (IS_ERR(rmap))
 			return PTR_ERR(rmap);
 
drivers/mtd/sm_ftl.c +1 -1
index f3bd86e13603..e57f7ba054bc 100644
@@ -1091,9 +1091,9 @@ static void sm_release(struct mtd_blktrans_dev *dev)
 {
 	struct sm_ftl *ftl = dev->priv;
 
-	mutex_lock(&ftl->mutex);
 	del_timer_sync(&ftl->timer);
 	cancel_work_sync(&ftl->flush_work);
+	mutex_lock(&ftl->mutex);
 	sm_cache_flush(ftl);
 	mutex_unlock(&ftl->mutex);
 }
drivers/net/can/pch_can.c +4 -4
index ced11ea89269..25def028a1dc 100644
@@ -500,6 +500,7 @@ static void pch_can_error(struct net_device *ndev, u32 status)
 	if (!skb)
 		return;
 
+	errc = ioread32(&priv->regs->errc);
 	if (status & PCH_BUS_OFF) {
 		pch_can_set_tx_all(priv, 0);
 		pch_can_set_rx_all(priv, 0);
@@ -507,9 +508,11 @@ static void pch_can_error(struct net_device *ndev, u32 status)
 		cf->can_id |= CAN_ERR_BUSOFF;
 		priv->can.can_stats.bus_off++;
 		can_bus_off(ndev);
+	} else {
+		cf->data[6] = errc & PCH_TEC;
+		cf->data[7] = (errc & PCH_REC) >> 8;
 	}
 
-	errc = ioread32(&priv->regs->errc);
 	/* Warning interrupt. */
 	if (status & PCH_EWARN) {
 		state = CAN_STATE_ERROR_WARNING;
@@ -567,9 +570,6 @@ static void pch_can_error(struct net_device *ndev, u32 status)
 		break;
 	}
 
-	cf->data[6] = errc & PCH_TEC;
-	cf->data[7] = (errc & PCH_REC) >> 8;
-
 	priv->can.state = state;
 	netif_receive_skb(skb);
 
drivers/net/can/rcar/rcar_can.c +4 -4
index 963da8eda168..0156c18d5a2d 100644
@@ -233,11 +233,8 @@ static void rcar_can_error(struct net_device *ndev)
 	if (eifr & (RCAR_CAN_EIFR_EWIF | RCAR_CAN_EIFR_EPIF)) {
 		txerr = readb(&priv->regs->tecr);
 		rxerr = readb(&priv->regs->recr);
-		if (skb) {
+		if (skb)
 			cf->can_id |= CAN_ERR_CRTL;
-			cf->data[6] = txerr;
-			cf->data[7] = rxerr;
-		}
 	}
 	if (eifr & RCAR_CAN_EIFR_BEIF) {
 		int rx_errors = 0, tx_errors = 0;
@@ -337,6 +334,9 @@ static void rcar_can_error(struct net_device *ndev)
 		can_bus_off(ndev);
 		if (skb)
 			cf->can_id |= CAN_ERR_BUSOFF;
+	} else if (skb) {
+		cf->data[6] = txerr;
+		cf->data[7] = rxerr;
 	}
 	if (eifr & RCAR_CAN_EIFR_ORIF) {
 		netdev_dbg(priv->ndev, "Receive overrun error interrupt\n");
drivers/net/can/sja1000/sja1000.c +4 -3
index 9f107798f904..e7327ceabb76 100644
@@ -405,9 +405,6 @@ static int sja1000_err(struct net_device *dev, uint8_t isrc, uint8_t status)
 	txerr = priv->read_reg(priv, SJA1000_TXERR);
 	rxerr = priv->read_reg(priv, SJA1000_RXERR);
 
-	cf->data[6] = txerr;
-	cf->data[7] = rxerr;
-
 	if (isrc & IRQ_DOI) {
 		/* data overrun interrupt */
 		netdev_dbg(dev, "data overrun interrupt\n");
@@ -429,6 +426,10 @@ static int sja1000_err(struct net_device *dev, uint8_t isrc, uint8_t status)
 		else
 			state = CAN_STATE_ERROR_ACTIVE;
 	}
+	if (state != CAN_STATE_BUS_OFF) {
+		cf->data[6] = txerr;
+		cf->data[7] = rxerr;
+	}
 	if (isrc & IRQ_BEI) {
 		/* bus error interrupt */
 		priv->can.can_stats.bus_error++;
drivers/net/can/spi/hi311x.c +3 -2
index 472175e37055..5f730f791c27 100644
@@ -688,8 +688,6 @@ static irqreturn_t hi3110_can_ist(int irq, void *dev_id)
 
 			txerr = hi3110_read(spi, HI3110_READ_TEC);
 			rxerr = hi3110_read(spi, HI3110_READ_REC);
-			cf->data[6] = txerr;
-			cf->data[7] = rxerr;
 			tx_state = txerr >= rxerr ? new_state : 0;
 			rx_state = txerr <= rxerr ? new_state : 0;
 			can_change_state(net, cf, tx_state, rx_state);
@@ -702,6 +700,9 @@ static irqreturn_t hi3110_can_ist(int irq, void *dev_id)
 					hi3110_hw_sleep(spi);
 					break;
 				}
+			} else {
+				cf->data[6] = txerr;
+				cf->data[7] = rxerr;
 			}
 		}
 
drivers/net/can/sun4i_can.c +4 -5
index 093fc9a529f0..bebdd133d9ed 100644
@@ -525,11 +525,6 @@ static int sun4i_can_err(struct net_device *dev, u8 isrc, u8 status)
 	rxerr = (errc >> 16) & 0xFF;
 	txerr = errc & 0xFF;
 
-	if (skb) {
-		cf->data[6] = txerr;
-		cf->data[7] = rxerr;
-	}
-
 	if (isrc & SUN4I_INT_DATA_OR) {
 		/* data overrun interrupt */
 		netdev_dbg(dev, "data overrun interrupt\n");
@@ -560,6 +555,10 @@ static int sun4i_can_err(struct net_device *dev, u8 isrc, u8 status)
 		else
 			state = CAN_STATE_ERROR_ACTIVE;
 	}
+	if (skb && state != CAN_STATE_BUS_OFF) {
+		cf->data[6] = txerr;
+		cf->data[7] = rxerr;
+	}
 	if (isrc & SUN4I_INT_BUS_ERR) {
 		/* bus error interrupt */
 		netdev_dbg(dev, "bus error interrupt\n");
drivers/net/can/usb/ems_usb.c +1 -1
index 31a070226353..23eba9bab715 100644
@@ -206,7 +206,7 @@ struct __packed ems_cpc_msg {
 	__le32 ts_sec;	/* timestamp in seconds */
 	__le32 ts_nsec;	/* timestamp in nano seconds */
 
-	union {
+	union __packed {
 		u8 generic[64];
 		struct cpc_can_msg can_msg;
 		struct cpc_can_params can_params;
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +8 -4
index a7c408acb0c0..01d4a731b579 100644
@@ -890,8 +890,10 @@ static void kvaser_usb_hydra_update_state(struct kvaser_usb_net_priv *priv,
 	    new_state < CAN_STATE_BUS_OFF)
 		priv->can.can_stats.restarts++;
 
-	cf->data[6] = bec->txerr;
-	cf->data[7] = bec->rxerr;
+	if (new_state != CAN_STATE_BUS_OFF) {
+		cf->data[6] = bec->txerr;
+		cf->data[7] = bec->rxerr;
+	}
 
 	stats = &netdev->stats;
 	stats->rx_packets++;
@@ -1045,8 +1047,10 @@ kvaser_usb_hydra_error_frame(struct kvaser_usb_net_priv *priv,
 	shhwtstamps->hwtstamp = hwtstamp;
 
 	cf->can_id |= CAN_ERR_BUSERROR;
-	cf->data[6] = bec.txerr;
-	cf->data[7] = bec.rxerr;
+	if (new_state != CAN_STATE_BUS_OFF) {
+		cf->data[6] = bec.txerr;
+		cf->data[7] = bec.rxerr;
+	}
 
 	stats->rx_packets++;
 	stats->rx_bytes += cf->can_dlc;
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c +4 -2
index 0e0403dd0550..5e281249ad5f 100644
@@ -857,8 +857,10 @@ static void kvaser_usb_leaf_rx_error(const struct kvaser_usb *dev,
 		break;
 	}
 
-	cf->data[6] = es->txerr;
-	cf->data[7] = es->rxerr;
+	if (new_state != CAN_STATE_BUS_OFF) {
+		cf->data[6] = es->txerr;
+		cf->data[7] = es->rxerr;
+	}
 
 	stats->rx_packets++;
 	stats->rx_bytes += cf->can_dlc;
drivers/net/can/usb/usb_8dev.c +4 -3
index 232f45f722f0..5cb5be4dc941 100644
@@ -453,9 +453,10 @@ static void usb_8dev_rx_err_msg(struct usb_8dev_priv *priv,
 
 	if (rx_errors)
 		stats->rx_errors++;
-
-	cf->data[6] = txerr;
-	cf->data[7] = rxerr;
+	if (priv->can.state != CAN_STATE_BUS_OFF) {
+		cf->data[6] = txerr;
+		cf->data[7] = rxerr;
+	}
 
 	priv->bec.txerr = txerr;
 	priv->bec.rxerr = rxerr;
drivers/net/ethernet/freescale/fec_ptp.c +1 -5
index 52a811f91384..eb11a8e7fcb7 100644
@@ -141,11 +141,7 @@ static int fec_ptp_enable_pps(struct fec_enet_private *fep, uint enable)
 		 * NSEC_PER_SEC - ts.tv_nsec. Add the remaining nanoseconds
 		 * to current timer would be next second.
 		 */
-		tempval = readl(fep->hwp + FEC_ATIME_CTRL);
-		tempval |= FEC_T_CTRL_CAPTURE;
-		writel(tempval, fep->hwp + FEC_ATIME_CTRL);
-
-		tempval = readl(fep->hwp + FEC_ATIME);
+		tempval = fep->cc.read(&fep->cc);
 		/* Convert the ptp local counter to 1588 timestamp */
 		ns = timecounter_cyc2time(&fep->tc, tempval);
 		ts = ns_to_timespec64(ns);
drivers/net/ethernet/intel/i40e/i40e_main.c +3 -1
index 2f3b393e5506..85337806efc7 100644
@@ -397,7 +397,9 @@ static void i40e_tx_timeout(struct net_device *netdev)
 		set_bit(__I40E_GLOBAL_RESET_REQUESTED, pf->state);
 		break;
 	default:
-		netdev_err(netdev, "tx_timeout recovery unsuccessful\n");
+		netdev_err(netdev, "tx_timeout recovery unsuccessful, device is in non-recoverable state.\n");
+		set_bit(__I40E_DOWN_REQUESTED, pf->state);
+		set_bit(__I40E_VSI_DOWN_REQUESTED, vsi->state);
 		break;
 	}
 
drivers/net/ethernet/intel/igb/igb.h +2 -0
index ca54e268d157..33cbe4f70d59 100644
@@ -594,6 +594,8 @@ struct igb_adapter {
 	struct igb_mac_addr *mac_table;
 	struct vf_mac_filter vf_macs;
 	struct vf_mac_filter *vf_mac_list;
+	/* lock for VF resources */
+	spinlock_t vfs_lock;
 };
 
 /* flags controlling PTP/1588 function */
drivers/net/ethernet/intel/igb/igb_main.c +11 -1
index 9f45ecd9e8e5..aacfa5fcdc40 100644
@@ -3517,6 +3517,7 @@ static int igb_disable_sriov(struct pci_dev *pdev)
 	struct net_device *netdev = pci_get_drvdata(pdev);
 	struct igb_adapter *adapter = netdev_priv(netdev);
 	struct e1000_hw *hw = &adapter->hw;
+	unsigned long flags;
 
 	/* reclaim resources allocated to VFs */
 	if (adapter->vf_data) {
@@ -3529,12 +3530,13 @@ static int igb_disable_sriov(struct pci_dev *pdev)
 			pci_disable_sriov(pdev);
 			msleep(500);
 		}
-
+		spin_lock_irqsave(&adapter->vfs_lock, flags);
 		kfree(adapter->vf_mac_list);
 		adapter->vf_mac_list = NULL;
 		kfree(adapter->vf_data);
 		adapter->vf_data = NULL;
 		adapter->vfs_allocated_count = 0;
+		spin_unlock_irqrestore(&adapter->vfs_lock, flags);
 		wr32(E1000_IOVCTL, E1000_IOVCTL_REUSE_VFQ);
 		wrfl();
 		msleep(100);
@@ -3694,7 +3696,9 @@ static void igb_remove(struct pci_dev *pdev)
 	igb_release_hw_control(adapter);
 
 #ifdef CONFIG_PCI_IOV
+	rtnl_lock();
 	igb_disable_sriov(pdev);
+	rtnl_unlock();
 #endif
 
 	unregister_netdev(netdev);
@@ -3855,6 +3859,9 @@ static int igb_sw_init(struct igb_adapter *adapter)
 
 	spin_lock_init(&adapter->nfc_lock);
 	spin_lock_init(&adapter->stats64_lock);
+
+	/* init spinlock to avoid concurrency of VF resources */
+	spin_lock_init(&adapter->vfs_lock);
 #ifdef CONFIG_PCI_IOV
 	switch (hw->mac.type) {
 	case e1000_82576:
@@ -7601,8 +7608,10 @@ static void igb_rcv_msg_from_vf(struct igb_adapter *adapter, u32 vf)
 static void igb_msg_task(struct igb_adapter *adapter)
 {
 	struct e1000_hw *hw = &adapter->hw;
+	unsigned long flags;
 	u32 vf;
 
+	spin_lock_irqsave(&adapter->vfs_lock, flags);
 	for (vf = 0; vf < adapter->vfs_allocated_count; vf++) {
 		/* process any reset requests */
 		if (!igb_check_for_rst(hw, vf))
@@ -7616,6 +7625,7 @@ static void igb_msg_task(struct igb_adapter *adapter)
 		if (!igb_check_for_ack(hw, vf))
 			igb_rcv_ack_from_vf(adapter, vf);
 	}
+	spin_unlock_irqrestore(&adapter->vfs_lock, flags);
 }
 
 /**
drivers/net/ethernet/mellanox/mlx5/core/en.h +1 -1
index d79e177f8990..ec303d4d2d7a 100644
@@ -95,7 +95,7 @@ struct page_pool;
 #define MLX5E_LOG_ALIGNED_MPWQE_PPW	(ilog2(MLX5E_REQUIRED_WQE_MTTS))
 #define MLX5E_REQUIRED_MTTS(wqes)	(wqes * MLX5E_REQUIRED_WQE_MTTS)
 #define MLX5E_MAX_RQ_NUM_MTTS	\
-	((1 << 16) * 2) /* So that MLX5_MTT_OCTW(num_mtts) fits into u16 */
+	(ALIGN_DOWN(U16_MAX, 4) * 2) /* So that MLX5_MTT_OCTW(num_mtts) fits into u16 */
 #define MLX5E_ORDER2_MAX_PACKET_MTU (order_base_2(10 * 1024))
 #define MLX5E_PARAMS_MAXIMUM_LOG_RQ_SIZE_MPW	\
 		(ilog2(MLX5E_MAX_RQ_NUM_MTTS / MLX5E_REQUIRED_WQE_MTTS))
drivers/net/geneve.c +1 -2
index 8c458c8f57a3..a19e04f8bcc8 100644
@@ -799,8 +799,7 @@ static struct dst_entry *geneve_get_v6_dst(struct sk_buff *skb,
 		use_cache = false;
 	}
 
-	fl6->flowlabel = ip6_make_flowinfo(RT_TOS(prio),
-					   info->key.label);
+	fl6->flowlabel = ip6_make_flowinfo(prio, info->key.label);
 	dst_cache = (struct dst_cache *)&info->dst_cache;
 	if (use_cache) {
 		dst = dst_cache_get_ip6(dst_cache, &fl6->saddr);
drivers/net/netdevsim/bpf.c +5 -3
index 12f100392ed1..ca9042ddb6d7 100644
@@ -330,10 +330,12 @@ nsim_map_alloc_elem(struct bpf_offloaded_map *offmap, unsigned int idx)
 {
 	struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
 
-	nmap->entry[idx].key = kmalloc(offmap->map.key_size, GFP_USER);
+	nmap->entry[idx].key = kmalloc(offmap->map.key_size,
+				       GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
 	if (!nmap->entry[idx].key)
 		return -ENOMEM;
-	nmap->entry[idx].value = kmalloc(offmap->map.value_size, GFP_USER);
+	nmap->entry[idx].value = kmalloc(offmap->map.value_size,
+					 GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
 	if (!nmap->entry[idx].value) {
 		kfree(nmap->entry[idx].key);
 		nmap->entry[idx].key = NULL;
@@ -475,7 +477,7 @@ nsim_bpf_map_alloc(struct netdevsim *ns, struct bpf_offloaded_map *offmap)
 	if (offmap->map.map_flags)
 		return -EINVAL;
 
-	nmap = kzalloc(sizeof(*nmap), GFP_USER);
+	nmap = kzalloc(sizeof(*nmap), GFP_KERNEL_ACCOUNT);
 	if (!nmap)
 		return -ENOMEM;
 
drivers/net/usb/ax88179_178a.c +8 -8
index efee7bacfd76..cf6ff8732fb2 100644
@@ -1706,7 +1706,7 @@ static const struct driver_info ax88179_info = {
 	.link_reset = ax88179_link_reset,
 	.reset = ax88179_reset,
 	.stop = ax88179_stop,
-	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
 };
@@ -1719,7 +1719,7 @@ static const struct driver_info ax88178a_info = {
 	.link_reset = ax88179_link_reset,
 	.reset = ax88179_reset,
 	.stop = ax88179_stop,
-	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
 };
@@ -1732,7 +1732,7 @@ static const struct driver_info cypress_GX3_info = {
 	.link_reset = ax88179_link_reset,
 	.reset = ax88179_reset,
 	.stop = ax88179_stop,
-	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
 };
@@ -1745,7 +1745,7 @@ static const struct driver_info dlink_dub1312_info = {
 	.link_reset = ax88179_link_reset,
 	.reset = ax88179_reset,
 	.stop = ax88179_stop,
-	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
 };
@@ -1758,7 +1758,7 @@ static const struct driver_info sitecom_info = {
 	.link_reset = ax88179_link_reset,
 	.reset = ax88179_reset,
 	.stop = ax88179_stop,
-	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
 };
@@ -1771,7 +1771,7 @@ static const struct driver_info samsung_info = {
 	.link_reset = ax88179_link_reset,
 	.reset = ax88179_reset,
 	.stop = ax88179_stop,
-	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
 };
@@ -1784,7 +1784,7 @@ static const struct driver_info lenovo_info = {
 	.link_reset = ax88179_link_reset,
 	.reset = ax88179_reset,
 	.stop = ax88179_stop,
-	.flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP,
+	.flags = FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
 };
@@ -1797,7 +1797,7 @@ static const struct driver_info belkin_info = {
 	.link_reset = ax88179_link_reset,
 	.reset	= ax88179_reset,
 	.stop	= ax88179_stop,
-	.flags	= FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP,
+	.flags	= FLAG_ETHER | FLAG_FRAMING_AX,
 	.rx_fixup = ax88179_rx_fixup,
 	.tx_fixup = ax88179_tx_fixup,
 };
drivers/net/usb/usbnet.c +2 -6
index e5c7a5c05109..1316f5b0c0d7 100644
@@ -845,13 +845,11 @@ int usbnet_stop (struct net_device *net)
 
 	mpn = !test_and_clear_bit(EVENT_NO_RUNTIME_PM, &dev->flags);
 
-	/* deferred work (task, timer, softirq) must also stop.
-	 * can't flush_scheduled_work() until we drop rtnl (later),
-	 * else workers could deadlock; so make workers a NOP.
-	 */
+	/* deferred work (timer, softirq, task) must also stop */
 	dev->flags = 0;
 	del_timer_sync (&dev->delay);
 	tasklet_kill (&dev->bh);
+	cancel_work_sync(&dev->kevent);
 	if (!pm)
 		usb_autopm_put_interface(dev->intf);
 
@@ -1614,8 +1612,6 @@ void usbnet_disconnect (struct usb_interface *intf)
 	net = dev->net;
 	unregister_netdev (net);
 
-	cancel_work_sync(&dev->kevent);
-
 	usb_scuttle_anchored_urbs(&dev->deferred);
 
 	if (dev->driver_info->unbind)
drivers/net/wireless/ath/ath10k/snoc.c +2 -3
index 241e6f0e1dfe..4489875fc87b 100644
@@ -879,13 +879,12 @@ static void ath10k_snoc_init_napi(struct ath10k *ar)
 static int ath10k_snoc_request_irq(struct ath10k *ar)
 {
 	struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar);
-	int irqflags = IRQF_TRIGGER_RISING;
 	int ret, id;
 
 	for (id = 0; id < CE_COUNT_MAX; id++) {
 		ret = request_irq(ar_snoc->ce_irqs[id].irq_line,
-				  ath10k_snoc_per_engine_handler,
-				  irqflags, ce_name[id], ar);
+				  ath10k_snoc_per_engine_handler, 0,
+				  ce_name[id], ar);
 		if (ret) {
 			ath10k_err(ar,
 				   "failed to register IRQ handler for CE %d: %d",
drivers/net/wireless/ath/ath9k/htc.h +5 -5
index 9f64e32381f9..81107100e368 100644
@@ -325,11 +325,11 @@ static inline struct ath9k_htc_tx_ctl *HTC_SKB_CB(struct sk_buff *skb)
 }
 
 #ifdef CONFIG_ATH9K_HTC_DEBUGFS
-
-#define TX_STAT_INC(c) (hif_dev->htc_handle->drv_priv->debug.tx_stats.c++)
-#define TX_STAT_ADD(c, a) (hif_dev->htc_handle->drv_priv->debug.tx_stats.c += a)
-#define RX_STAT_INC(c) (hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c++)
-#define RX_STAT_ADD(c, a) (hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c += a)
+#define __STAT_SAFE(expr) (hif_dev->htc_handle->drv_priv ? (expr) : 0)
+#define TX_STAT_INC(c) __STAT_SAFE(hif_dev->htc_handle->drv_priv->debug.tx_stats.c++)
+#define TX_STAT_ADD(c, a) __STAT_SAFE(hif_dev->htc_handle->drv_priv->debug.tx_stats.c += a)
+#define RX_STAT_INC(c) __STAT_SAFE(hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c++)
+#define RX_STAT_ADD(c, a) __STAT_SAFE(hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c += a)
 #define CAB_STAT_INC   priv->debug.tx_stats.cab_queued++
 
 #define TX_QSTAT_INC(q) (priv->debug.tx_stats.queue_stats[q]++)
drivers/net/wireless/ath/ath9k/htc_drv_init.c +2 -1
index cb136d9d4621..49d587330990 100644
@@ -946,7 +946,6 @@ int ath9k_htc_probe_device(struct htc_target *htc_handle, struct device *dev,
 	priv->hw = hw;
 	priv->htc = htc_handle;
 	priv->dev = dev;
-	htc_handle->drv_priv = priv;
 	SET_IEEE80211_DEV(hw, priv->dev);
 
 	ret = ath9k_htc_wait_for_target(priv);
@@ -967,6 +966,8 @@ int ath9k_htc_probe_device(struct htc_target *htc_handle, struct device *dev,
 	if (ret)
 		goto err_init;
 
+	htc_handle->drv_priv = priv;
+
 	return 0;
 
 err_init:
drivers/net/wireless/ath/wil6210/debugfs.c +6 -12
index 55a809cb3105..3a46b319e9f1 100644
@@ -1002,20 +1002,14 @@ static ssize_t wil_write_file_wmi(struct file *file, const char __user *buf,
 	void *cmd;
 	int cmdlen = len - sizeof(struct wmi_cmd_hdr);
 	u16 cmdid;
-	int rc, rc1;
+	int rc1;
 
-	if (cmdlen < 0)
+	if (cmdlen < 0 || *ppos != 0)
 		return -EINVAL;
 
-	wmi = kmalloc(len, GFP_KERNEL);
-	if (!wmi)
-		return -ENOMEM;
-
-	rc = simple_write_to_buffer(wmi, len, ppos, buf, len);
-	if (rc < 0) {
-		kfree(wmi);
-		return rc;
-	}
+	wmi = memdup_user(buf, len);
+	if (IS_ERR(wmi))
+		return PTR_ERR(wmi);
 
 	cmd = (cmdlen > 0) ? &wmi[1] : NULL;
 	cmdid = le16_to_cpu(wmi->command_id);
@@ -1025,7 +1019,7 @@ static ssize_t wil_write_file_wmi(struct file *file, const char __user *buf,
 
 	wil_info(wil, "0x%04x[%d] -> %d\n", cmdid, cmdlen, rc1);
 
-	return rc;
+	return len;
 }
 
 static const struct file_operations fops_wmi = {
drivers/net/wireless/intel/iwlegacy/4965-rs.c +4 -1
index 54ff83829afb..f204e139e5f0 100644
@@ -2422,7 +2422,7 @@ il4965_rs_fill_link_cmd(struct il_priv *il, struct il_lq_sta *lq_sta,
 		/* Repeat initial/next rate.
 		 * For legacy IL_NUMBER_TRY == 1, this loop will not execute.
 		 * For HT IL_HT_NUMBER_TRY == 3, this executes twice. */
-		while (repeat_rate > 0 && idx < LINK_QUAL_MAX_RETRY_NUM) {
+		while (repeat_rate > 0) {
 			if (is_legacy(tbl_type.lq_type)) {
 				if (ant_toggle_cnt < NUM_TRY_BEFORE_ANT_TOGGLE)
 					ant_toggle_cnt++;
@@ -2441,6 +2441,8 @@ il4965_rs_fill_link_cmd(struct il_priv *il, struct il_lq_sta *lq_sta,
 			    cpu_to_le32(new_rate);
 			repeat_rate--;
 			idx++;
+			if (idx >= LINK_QUAL_MAX_RETRY_NUM)
+				goto out;
 		}
 
 		il4965_rs_get_tbl_info_from_mcs(new_rate, lq_sta->band,
@@ -2485,6 +2487,7 @@ il4965_rs_fill_link_cmd(struct il_priv *il, struct il_lq_sta *lq_sta,
 		repeat_rate--;
 	}
 
+out:
 	lq_cmd->agg_params.agg_frame_cnt_limit = LINK_QUAL_AGG_FRAME_LIMIT_DEF;
 	lq_cmd->agg_params.agg_dis_start_th = LINK_QUAL_AGG_DISABLE_START_DEF;
 
drivers/net/wireless/intersil/p54/main.c +1 -1
index 1c6d428515a4..b15a1b99f28f 100644
@@ -688,7 +688,7 @@ static void p54_flush(struct ieee80211_hw *dev, struct ieee80211_vif *vif,
 	 * queues have already been stopped and no new frames can sneak
 	 * up from behind.
 	 */
-	while ((total = p54_flush_count(priv) && i--)) {
+	while ((total = p54_flush_count(priv)) && i--) {
 		/* waste time */
 		msleep(20);
 	}
drivers/net/wireless/intersil/p54/p54spi.c +2 -1
index e41bf042352e..3dcfad5b61ff 100644
@@ -177,7 +177,7 @@ static int p54spi_request_firmware(struct ieee80211_hw *dev)
 
 	ret = p54_parse_firmware(dev, priv->firmware);
 	if (ret) {
-		release_firmware(priv->firmware);
+		/* the firmware is released by the caller */
 		return ret;
 	}
 
@@ -672,6 +672,7 @@ static int p54spi_probe(struct spi_device *spi)
 	return 0;
 
 err_free_common:
+	release_firmware(priv->firmware);
 	free_irq(gpio_to_irq(p54spi_gpio_irq), spi);
 err_free_gpio_irq:
 	gpio_free(p54spi_gpio_irq);
drivers/net/wireless/mac80211_hwsim.c +8 -6
index 3d8e17bb8a10..7de92af2af02 100644

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

drivers/net/wireless/marvell/libertas/if_usb.c +1 -0
index f29a154d995c..d75763410cdc 100644

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

drivers/net/wireless/mediatek/mt76/mac80211.c +1 -0
index 1b5abd4816ed..203b888f38d8 100644

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

drivers/net/wireless/realtek/rtlwifi/debug.c +4 -4
index 498994041bbc..474439fc2da1 100644

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

drivers/ntb/test/ntb_tool.c +5 -3
index 311d6ab8d016..6301aa413c3b 100644

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

drivers/pci/quirks.c +3 -0
index 7cd38c9eaa02..f494e76faaa0 100644

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

drivers/pinctrl/nomadik/pinctrl-nomadik.c +3 -1
index 415e91360994..70a3026304b6 100644

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

drivers/pinctrl/qcom/pinctrl-msm8916.c +2 -2
index 20ebf244e80d..359f5b43bebc 100644

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

drivers/platform/olpc/olpc-ec.c +1 -1
index 374a8028fec7..b36a000ed969 100644

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

drivers/regulator/of_regulator.c +5 -1
index b255590aef36..b2bd7ee46c45 100644

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

drivers/remoteproc/qcom_wcnss.c +8 -2
index 6cc0f9a5533e..63726d8fb332 100644

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

drivers/rpmsg/qcom_smd.c +1 -0
index f23f10887d93..f4f950c231d6 100644

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

drivers/s390/char/zcore.c +10 -1
index 76d3c50bf078..ba8fc756264b 100644

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

drivers/s390/cio/vfio_ccw_drv.c +3 -11
index 7a06cdff6572..862b0eb0fe6d 100644

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

drivers/s390/scsi/zfcp_fc.c +20 -9
index 09ce175bbfcf..dc87a6b84d73 100644

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

drivers/s390/scsi/zfcp_fc.h +4 -2
index 3cd74729cfb9..9bfce7ff6595 100644

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

drivers/s390/scsi/zfcp_fsf.c +2 -2
index 5bb278a604ed..eae9804f695d 100644

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

drivers/scsi/sg.c +34 -23

57 lines not on this page · raw message

drivers/scsi/smartpqi/smartpqi_init.c +2 -2
index 98f2d076f938..b86cc0342ae3 100644

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

drivers/soc/amlogic/meson-mx-socinfo.c +1 -0
index 78f0f1aeca57..92125dd65f33 100644

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

drivers/soc/fsl/guts.c +1 -1
index 302e0c8d69d9..6693c32e7447 100644

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

drivers/soundwire/bus_type.c +2 -6
index 283b2832728e..414621f3c43c 100644

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

drivers/staging/rtl8192u/r8192U.h +1 -1
index 94a148994069..2c3b33304173 100644

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

drivers/staging/rtl8192u/r8192U_dm.c +18 -20
index 5fb5f583f703..c24a29189545 100644

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

drivers/staging/rtl8192u/r8192U_dm.h +1 -1
index 0de0332906bd..eeb03130de15 100644

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

drivers/tee/tee_core.c +4 -0
index d42fc2ae8592..e568cb4b2ffc 100644

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

drivers/thermal/thermal_sysfs.c +7 -3
index 4dce4a8f71ed..17b2361bc8f2 100644

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

drivers/tty/n_gsm.c +79 -11

90 lines not on this page · raw message

drivers/tty/serial/8250/8250_dw.c +3 -0
index c73d0eddd9b8..cc9d1f416db8 100644

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

drivers/tty/serial/mvebu-uart.c +11 -0
index 6449c156c4d6..70f74ebc25dc 100644

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

drivers/tty/serial/ucc_uart.c +2 -0
index 2b6376e6e5ad..eb0d3f55235a 100644

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

drivers/tty/vt/vt.c +1 -1
index 20565603a365..198bf54568cc 100644

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

drivers/usb/core/hcd.c +15 -11
index df661460e9f9..59d5d506d73c 100644

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

drivers/usb/gadget/legacy/inode.c +1 -0
index 3ebcbd199a79..b0a2b8805f41 100644

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

drivers/usb/gadget/udc/Kconfig +1 -1
index d83d93c6ef9e..33b5648b2819 100644

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

drivers/usb/host/ehci-ppc-of.c +1 -0
index 576f7d79ad4e..d1dc644b215c 100644

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

drivers/usb/host/ohci-nxp.c +1 -0
index f5f532601092..a964a93ff35b 100644

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

drivers/usb/host/ohci-ppc-of.c +1 -0
index 76a9b40b08f1..96c5c7655283 100644

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

drivers/usb/renesas_usbhs/rza.c +4 -0
index 5b287257ec11..04eeaf6a028a 100644

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

drivers/usb/serial/sierra.c +2 -1
index a43263a0edd8..891e52bc5002 100644

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

drivers/usb/serial/usb-serial.c +1 -1
index b1f0aa12ba39..eb4f20651186 100644

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

drivers/usb/serial/usb_wwan.c +2 -1
index 997ff88ec04b..2ebf0842fa43 100644

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

drivers/vfio/vfio.c +1 -0
index 7a386fb30bf1..0d146b45e0b4 100644

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

drivers/video/fbdev/amba-clcd.c +18 -6
index 549f78e77255..81f64ef6fa4c 100644

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

drivers/video/fbdev/arkfb.c +8 -1
index 13ba371e70aa..f7920987dd24 100644

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

drivers/video/fbdev/core/fbcon.c +5 -3
index 17ed20a73c2d..417f4bcc1182 100644

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

drivers/video/fbdev/i740fb.c +7 -2
index f6d7b04d6dff..bdbafff4529f 100644

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

drivers/video/fbdev/s3fb.c +2 -0
index d63f23e26f7d..b17b806b4187 100644

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

drivers/video/fbdev/sis/init.c +2 -2
index fde27feae5d0..d6b2ce95a859 100644

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

drivers/video/fbdev/vt8623fb.c +2 -0
index 5cac871db3ee..cbae9c510092 100644

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

drivers/virt/vboxguest/vboxguest_linux.c +6 -3
index 94e055ee7ad6..aa65b20883ef 100644

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

drivers/xen/xenbus/xenbus_dev_frontend.c +2 -2
index 454c6826abdb..1c1dadfd4e4d 100644

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

fs/attr.c +2 -0
index d22e8187477f..4d2541c1e68c 100644

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

fs/btrfs/disk-io.c +14 -0
index c9fd018dcf76..98f87cc47433 100644

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

fs/btrfs/raid56.c +57 -17

74 lines not on this page · raw message

fs/btrfs/tree-log.c +3 -1
index e00c50ea2eaf..0fe32c567ed7 100644

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

fs/cifs/smb2ops.c +3 -2
index cc34a28aecbc..f906984eb25b 100644

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

fs/ext2/super.c +10 -2
index ad9fd08f66ba..44a1f356aca2 100644

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

fs/ext4/inline.c +3 -0
index a2943382bf18..b1c6b9398eef 100644

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

fs/ext4/inode.c +8 -2
index 76c887108df3..34cee87a0ac7 100644

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

fs/ext4/migrate.c +3 -1
index 9adfe217b39d..37ce665ae1d2 100644

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

fs/ext4/namei.c +18 -5
index 5f8599419150..a878b9a8d9ea 100644

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

fs/ext4/resize.c +11 -0
index d37493b39ab9..dd23c97ae951 100644

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

fs/ext4/xattr.c +4 -2
index 0cd9b84bdd9d..497649c69bba 100644

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

fs/ext4/xattr.h +13 -0
index f39cad2abe2a..990084e00374 100644

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

fs/f2fs/node.c +5 -1
index ff3f97ba1a55..2c28f488ac2f 100644

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

fs/fuse/inode.c +6 -0
index 821597c61884..3b51c881baf8 100644

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

fs/jbd2/transaction.c +12 -2
index 8c305593fb51..dbad00c20aa1 100644

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

fs/namei.c +2 -0
index 327844fedf3d..c34ee9653559 100644

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

fs/nfs/nfs4idmap.c +24 -22

46 lines not on this page · raw message

fs/nfs/nfs4proc.c +9 -5
index f48a11fa78bb..f9f76594b866 100644

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

fs/overlayfs/export.c +1 -1
index ba6c7c59261a..271f8c9fe253 100644

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

fs/splice.c +4 -6
index fd28c7da3c83..ef1604e307f1 100644

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

include/acpi/cppc_acpi.h +1 -1
index 8e0b8250a139..c1f437d31a88 100644

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

include/asm-generic/bitops/atomic.h +0 -6
index dd90c9792909..18399e3759a2 100644

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

include/linux/buffer_head.h +24 -1
index 9168fc33a4f7..9d5b0a0a651f 100644

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

include/linux/kfifo.h +1 -1
index 89fc8dc7bf38..ab9ff74818a4 100644

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

include/linux/kvm_host.h +27 -1
index 827f70ce0b49..4f96aef4e8b8 100644

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

include/linux/mfd/t7l66xb.h +0 -1
index b4629818aea5..d4e7f0453c91 100644

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

include/linux/nmi.h +2 -0
index 9003e29cde46..e972d1ae1ee6 100644

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

include/linux/pci_ids.h +2 -0
index c0dd2f749d3f..1658e9f8d803 100644

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

include/linux/usb/hcd.h +1 -0
index 97e2ddec18b1..cf7feb8eb1ba 100644

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

include/sound/core.h +8 -0
index 36a5934cf4b1..b5a8cc4d02cc 100644

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

include/trace/events/spmi.h +6 -6
index 8b60efe18ba6..a6819fd85cdf 100644

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

include/uapi/linux/can/error.h +4 -1
index bfc4b5d22a5e..383f3d508a53 100644

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

kernel/bpf/verifier.c +1 -0
index 30ac8ee8294c..694ee0b1fefe 100644

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

kernel/kprobes.c +2 -1
index 993b84cc1db5..099191716d4c 100644

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

kernel/power/user.c +12 -1
index 2d8b60a3c86b..6a11154b3d52 100644

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

kernel/profile.c +7 -0
index efa58f63dc1b..7fc621404230 100644

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

kernel/sched/rt.c +9 -6
index 70e8cd395474..9c6c3572b131 100644

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

kernel/trace/trace_events.c +1 -0
index 1ca64a9296d0..d2f9146d1ad7 100644

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

kernel/trace/trace_probe.c +2 -2
index e99c3ce7aa65..d85ee1778b99 100644

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

kernel/watchdog.c +16 -5
index 6d60701dc636..44096c4f4d60 100644

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

lib/list_debug.c +10 -2
index 5d5424b51b74..413daa72a3d8 100644

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

mm/mmap.c +0 -1
index bb8ba3258945..590840c3a3b5 100644

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

net/9p/client.c +1 -4
index bb0a43b8a6b0..98301add20f4 100644

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

net/bluetooth/l2cap_core.c +6 -7
index 709cceef6728..0dfc47adccb1 100644

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

net/dccp/proto.c +5 -5
index 43733accf58e..dbbcf50aea35 100644

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

net/ipv4/tcp_output.c +20 -10
index 3090b61e4edd..35bf58599223 100644

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

net/netfilter/nf_tables_api.c +5 -2
index ab68076d2cba..079f76849693 100644

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

net/rds/ib_recv.c +1 -0
index 2f16146e4ec9..18e0e3cba1ac 100644

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

net/rose/af_rose.c +9 -2
index d00a0ef39a56..03a1ee221112 100644

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

net/rose/rose_route.c +2 -0
index 46ae92d70324..5671853bef83 100644

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

net/sched/cls_route.c +11 -1
index 0256777b838e..4c7fa1cfd8e3 100644

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

net/sunrpc/backchannel_rqst.c +14 -0
index 3c15a99b9700..e41427e1740d 100644

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

net/vmw_vsock/af_vsock.c +9 -1
index 22931a5f62bc..d55a47858d6d 100644

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

scripts/Makefile.gcc-plugins +1 -1
index 93ca13e4f8f9..66bbe77ed757 100644

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

scripts/faddr2line +3 -1
index 2571caac3156..70f8c3ecd555 100755

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

security/apparmor/apparmorfs.c +1 -1
index 900c865b9e5f..8868c475205f 100644

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

security/apparmor/audit.c +1 -1
index 70b9730c0be6..86ce3ec18a8a 100644

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

security/apparmor/domain.c +1 -1
index 13b33490e079..dad704825294 100644

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

security/apparmor/include/lib.h +5 -0
index 6505e1ad9e23..a6d747dc148d 100644

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

security/apparmor/include/policy.h +1 -1
index 28c098fb6208..92fa4f610212 100644

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

security/apparmor/label.c +7 -6
index 5a80a16a7f75..fed6bd75fcc1 100644

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

security/apparmor/mount.c +5 -3
index c1da22482bfb..85dc8a548c4b 100644

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

security/selinux/ss/policydb.h +2 -0
index 215f8f30ac5a..2a479785ebd4 100644

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

sound/core/info.c +3 -3
index 3fa8336794f8..2ac656db0b1c 100644

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

sound/core/misc.c +94 -0

94 lines not on this page · raw message

sound/core/timer.c +6 -5
index 4920ec4f4594..f0e8b98f346e 100644

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

sound/pci/hda/patch_cirrus.c +1 -0
index a7f91be45194..5bd7b9b0e568 100644

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

sound/pci/hda/patch_conexant.c +10 -1
index b4cd42643e1e..b1a8ee8cf17e 100644

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

sound/soc/codecs/da7210.c +2 -0
index e172913d04a4..efc5049c0796 100644

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

sound/soc/mediatek/mt6797/mt6797-mt6351.c +5 -1
index b1558c57b9ca..0c49e1a9a897 100644

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

sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c +7 -3
index 242f99716c61..c37c962173d9 100644

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

sound/soc/mediatek/mt8173/mt8173-rt5650.c +6 -3
index 14011a70bcc4..8b613f8627fa 100644

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

sound/soc/qcom/qdsp6/q6adm.c +1 -1
index 932c3ebfd252..01f9127daf5c 100644

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

sound/usb/bcd2000/bcd2000.c +2 -1
index d6c8b29fe430..bdab5426aa17 100644

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

tools/build/feature/test-libcrypto.c +11 -4
index a98174e0569c..bc34a5bbb504 100644

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

tools/lib/bpf/libbpf.c +7 -2
index 249fa8d7376e..76cf63705c86 100644

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

tools/perf/util/genelf.c +5 -1
index aafbe54fd3fa..afb8fe3a8e35 100644

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

tools/testing/selftests/timers/clocksource-switch.c +3 -3
index bfc974b4572d..c18313a5f357 100644

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

tools/testing/selftests/timers/valid-adjtimex.c +1 -1
index 5397de708d3c..48b9a803235a 100644

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

tools/thermal/tmon/sysfs.c +13 -11
index 18f523557983..1b17cbc54c9d 100644

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

tools/thermal/tmon/tmon.h +3 -0
index 9e3c49c547ac..7b090a6c95b6 100644

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

virt/kvm/kvm_main.c +5 -5
index 3d45ce134227..6f9c0060a3e5 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.