Skip to contentSkip to conversation

Linux 5.4.75

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

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.75 kernel.

All users of the 5.4 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/admin-guide/kernel-parameters.txt             |    8 
 Documentation/media/uapi/v4l/colorspaces-defs.rst           |    9 
 Documentation/media/uapi/v4l/colorspaces-details.rst        |    5 
 Makefile                                                    |    2 
 arch/Kconfig                                                |    7 
 arch/arc/boot/dts/axc001.dtsi                               |    2 
 arch/arc/boot/dts/axc003.dtsi                               |    2 
 arch/arc/boot/dts/axc003_idu.dtsi                           |    2 
 arch/arc/boot/dts/vdk_axc003.dtsi                           |    2 
 arch/arc/boot/dts/vdk_axc003_idu.dtsi                       |    2 
 arch/arc/kernel/perf_event.c                                |   27 
 arch/arm/Kconfig                                            |    2 
 arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts               |    1 
 arch/arm/boot/dts/omap4.dtsi                                |    2 
 arch/arm/boot/dts/omap443x.dtsi                             |   10 
 arch/arm/boot/dts/s5pv210.dtsi                              |  163 +---
 arch/arm/kernel/hw_breakpoint.c                             |  100 ++
 arch/arm/plat-samsung/Kconfig                               |    1 
 arch/arm64/Kconfig.platforms                                |    1 
 arch/arm64/boot/dts/renesas/ulcb.dtsi                       |    1 
 arch/arm64/include/asm/kvm_host.h                           |    1 
 arch/arm64/include/asm/numa.h                               |    3 
 arch/arm64/kernel/topology.c                                |   32 
 arch/arm64/kvm/sys_regs.c                                   |    6 
 arch/arm64/mm/numa.c                                        |    6 
 arch/ia64/kernel/Makefile                                   |    2 
 arch/ia64/kernel/kprobes.c                                  |   77 --
 arch/mips/dec/setup.c                                       |    9 
 arch/powerpc/Kconfig                                        |   14 
 arch/powerpc/include/asm/drmem.h                            |    4 
 arch/powerpc/include/asm/mmu_context.h                      |    2 
 arch/powerpc/kernel/head_32.S                               |    2 
 arch/powerpc/kernel/rtas.c                                  |  153 ++++
 arch/powerpc/kernel/sysfs.c                                 |   42 -
 arch/powerpc/kernel/traps.c                                 |    2 
 arch/powerpc/kvm/book3s_hv.c                                |    6 
 arch/powerpc/platforms/powermac/sleep.S                     |    9 
 arch/powerpc/platforms/powernv/opal-elog.c                  |   33 
 arch/powerpc/platforms/powernv/smp.c                        |    2 
 arch/powerpc/platforms/pseries/hotplug-memory.c             |   43 -
 arch/riscv/include/uapi/asm/auxvec.h                        |    3 
 arch/s390/boot/head.S                                       |   21 
 arch/s390/kernel/time.c                                     |  118 ++-
 arch/sparc/kernel/smp_64.c                                  |   65 -
 arch/um/kernel/sigio.c                                      |    6 
 arch/x86/events/amd/ibs.c                                   |   38 -
 arch/x86/events/intel/core.c                                |    2 
 arch/x86/include/asm/msr-index.h                            |    1 
 arch/x86/kernel/unwind_orc.c                                |    9 
 drivers/acpi/acpi_dbg.c                                     |    3 
 drivers/acpi/acpi_extlog.c                                  |    6 
 drivers/acpi/button.c                                       |   13 
 drivers/acpi/ec.c                                           |   10 
 drivers/acpi/hmat/hmat.c                                    |    3 
 drivers/acpi/numa.c                                         |    2 
 drivers/acpi/video_detect.c                                 |    9 
 drivers/ata/sata_nv.c                                       |    2 
 drivers/base/core.c                                         |    4 
 drivers/base/power/runtime.c                                |    5 
 drivers/block/nbd.c                                         |    2 
 drivers/block/xen-blkback/blkback.c                         |   22 
 drivers/block/xen-blkback/xenbus.c                          |    5 
 drivers/bus/fsl-mc/mc-io.c                                  |    7 
 drivers/clk/ti/clockdomain.c                                |    2 
 drivers/cpufreq/acpi-cpufreq.c                              |    3 
 drivers/cpufreq/sti-cpufreq.c                               |    6 
 drivers/dma/dma-jz4780.c                                    |    7 
 drivers/extcon/extcon-ptn5150.c                             |    8 
 drivers/firmware/arm_scmi/base.c                            |    2 
 drivers/firmware/arm_scmi/clock.c                           |    2 
 drivers/firmware/arm_scmi/common.h                          |    2 
 drivers/firmware/arm_scmi/driver.c                          |    8 
 drivers/firmware/arm_scmi/perf.c                            |    2 
 drivers/firmware/arm_scmi/reset.c                           |    4 
 drivers/firmware/arm_scmi/sensors.c                         |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                  |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c                     |   10 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h                      |    4 
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v10.c   |    5 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c           |    7 
 drivers/gpu/drm/amd/display/dc/core/dc_link.c               |    2 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c |    4 
 drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c             |    4 
 drivers/gpu/drm/amd/display/dc/os_types.h                   |    2 
 drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c            |    2 
 drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c    |   12 
 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c               |    9 
 drivers/gpu/drm/i915/i915_drv.h                             |    6 
 drivers/gpu/drm/ttm/ttm_bo.c                                |    2 
 drivers/hid/wacom_wac.c                                     |    4 
 drivers/hwtracing/coresight/coresight-priv.h                |    3 
 drivers/hwtracing/coresight/coresight.c                     |   62 -
 drivers/i2c/busses/i2c-imx.c                                |   24 
 drivers/iio/adc/rcar-gyroadc.c                              |   21 
 drivers/iio/adc/ti-adc0832.c                                |   11 
 drivers/iio/adc/ti-adc12138.c                               |   13 
 drivers/iio/gyro/itg3200_buffer.c                           |   15 
 drivers/iio/light/si1145.c                                  |   19 
 drivers/infiniband/hw/qedr/qedr_iw_cm.c                     |    1 
 drivers/input/serio/hil_mlc.c                               |   21 
 drivers/input/serio/hp_sdc_mlc.c                            |    8 
 drivers/leds/leds-bcm6328.c                                 |    2 
 drivers/leds/leds-bcm6358.c                                 |    2 
 drivers/md/md-bitmap.c                                      |    2 
 drivers/md/raid5.c                                          |    4 
 drivers/media/i2c/imx274.c                                  |    8 
 drivers/media/pci/tw5864/tw5864-video.c                     |    6 
 drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c             |    7 
 drivers/media/usb/uvc/uvc_ctrl.c                            |   27 
 drivers/memory/emif.c                                       |   33 
 drivers/message/fusion/mptscsih.c                           |   13 
 drivers/mmc/host/sdhci-acpi.c                               |   37 +
 drivers/mmc/host/sdhci-of-esdhc.c                           |   11 
 drivers/mmc/host/sdhci-pci-core.c                           |  154 ++++
 drivers/mmc/host/sdhci.c                                    |    6 
 drivers/mmc/host/via-sdmmc.c                                |    3 
 drivers/mtd/ubi/wl.c                                        |   13 
 drivers/net/can/flexcan.c                                   |   30 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                   |    6 
 drivers/net/ethernet/mellanox/mlxsw/core.c                  |    3 
 drivers/net/wan/hdlc_fr.c                                   |   98 +-
 drivers/net/wireless/ath/ath10k/htt_rx.c                    |    8 
 drivers/net/wireless/ath/ath10k/sdio.c                      |    4 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c     |   10 
 drivers/net/xen-netback/common.h                            |   15 
 drivers/net/xen-netback/interface.c                         |   61 +
 drivers/net/xen-netback/netback.c                           |   11 
 drivers/net/xen-netback/rx.c                                |   13 
 drivers/nvme/host/rdma.c                                    |    1 
 drivers/pci/pci-acpi.c                                      |   10 
 drivers/power/supply/bq27xxx_battery.c                      |    6 
 drivers/power/supply/test_power.c                           |    6 
 drivers/rpmsg/qcom_glink_native.c                           |    6 
 drivers/rtc/rtc-rx8010.c                                    |   24 
 drivers/scsi/qla2xxx/qla_target.c                           |   13 
 drivers/spi/spi-sprd.c                                      |    2 
 drivers/staging/comedi/drivers/cb_pcidas.c                  |    1 
 drivers/staging/fieldbus/anybuss/arcx-anybus.c              |    2 
 drivers/staging/octeon/ethernet-mdio.c                      |    6 
 drivers/staging/octeon/ethernet-rx.c                        |   34 
 drivers/staging/octeon/ethernet.c                           |    9 
 drivers/tty/vt/keyboard.c                                   |   39 -
 drivers/tty/vt/vt_ioctl.c                                   |   32 
 drivers/uio/uio.c                                           |    4 
 drivers/usb/class/cdc-acm.c                                 |   12 
 drivers/usb/class/cdc-acm.h                                 |    3 
 drivers/usb/dwc3/core.c                                     |   15 
 drivers/usb/dwc3/core.h                                     |    1 
 drivers/usb/dwc3/dwc3-pci.c                                 |    3 
 drivers/usb/dwc3/ep0.c                                      |   27 
 drivers/usb/dwc3/gadget.c                                   |   60 +
 drivers/usb/dwc3/gadget.h                                   |    1 
 drivers/usb/host/fsl-mph-dr-of.c                            |    9 
 drivers/usb/host/xhci-pci.c                                 |   17 
 drivers/usb/host/xhci.c                                     |    7 
 drivers/usb/host/xhci.h                                     |    1 
 drivers/usb/misc/adutux.c                                   |    1 
 drivers/usb/typec/tcpm/tcpm.c                               |    8 
 drivers/vhost/vringh.c                                      |    9 
 drivers/video/fbdev/pvr2fb.c                                |    2 
 drivers/w1/masters/mxc_w1.c                                 |   14 
 drivers/watchdog/rdc321x_wdt.c                              |    5 
 drivers/xen/events/events_2l.c                              |    9 
 drivers/xen/events/events_base.c                            |  422 +++++++++++-
 drivers/xen/events/events_fifo.c                            |   83 +-
 drivers/xen/events/events_internal.h                        |   20 
 drivers/xen/evtchn.c                                        |    7 
 drivers/xen/pvcalls-back.c                                  |   76 +-
 drivers/xen/xen-pciback/pci_stub.c                          |   14 
 drivers/xen/xen-pciback/pciback.h                           |   12 
 drivers/xen/xen-pciback/pciback_ops.c                       |   48 +
 drivers/xen/xen-pciback/xenbus.c                            |    2 
 drivers/xen/xen-scsiback.c                                  |   23 
 fs/9p/vfs_file.c                                            |    4 
 fs/btrfs/ctree.c                                            |    6 
 fs/btrfs/ctree.h                                            |    2 
 fs/btrfs/delayed-inode.c                                    |    3 
 fs/btrfs/dev-replace.c                                      |    7 
 fs/btrfs/reada.c                                            |   47 +
 fs/btrfs/send.c                                             |  201 ++++-
 fs/btrfs/tree-checker.c                                     |   35 
 fs/btrfs/tree-log.c                                         |    8 
 fs/btrfs/volumes.c                                          |   17 
 fs/btrfs/volumes.h                                          |    1 
 fs/buffer.c                                                 |   16 
 fs/cachefiles/rdwr.c                                        |    3 
 fs/ceph/addr.c                                              |    2 
 fs/cifs/inode.c                                             |   13 
 fs/exec.c                                                   |   17 
 fs/ext4/inode.c                                             |   11 
 fs/ext4/resize.c                                            |    4 
 fs/ext4/super.c                                             |    6 
 fs/f2fs/checkpoint.c                                        |   10 
 fs/f2fs/dir.c                                               |    8 
 fs/f2fs/f2fs.h                                              |    2 
 fs/f2fs/node.c                                              |    2 
 fs/f2fs/segment.c                                           |   12 
 fs/gfs2/incore.h                                            |    1 
 fs/gfs2/ops_fstype.c                                        |   40 -
 fs/gfs2/super.c                                             |    1 
 fs/gfs2/sys.c                                               |    5 
 fs/nfs/namespace.c                                          |   12 
 fs/nfs/nfs4_fs.h                                            |    8 
 fs/nfs/nfs4file.c                                           |    3 
 fs/nfs/nfs4proc.c                                           |   90 +-
 fs/nfs/nfs4trace.h                                          |    1 
 fs/nfsd/nfsproc.c                                           |   16 
 fs/ubifs/debug.c                                            |    1 
 fs/ubifs/journal.c                                          |    6 
 fs/ubifs/orphan.c                                           |    2 
 fs/ubifs/super.c                                            |   44 -
 fs/ubifs/tnc.c                                              |    3 
 fs/ubifs/xattr.c                                            |    2 
 fs/udf/super.c                                              |   21 
 fs/xfs/libxfs/xfs_bmap.c                                    |   19 
 fs/xfs/xfs_rtalloc.c                                        |   10 
 include/linux/hil_mlc.h                                     |    2 
 include/linux/usb/pd.h                                      |    1 
 include/uapi/linux/btrfs_tree.h                             |   14 
 include/uapi/linux/nfs4.h                                   |    3 
 include/uapi/linux/videodev2.h                              |   17 
 include/xen/events.h                                        |   29 
 init/Kconfig                                                |    3 
 kernel/bpf/verifier.c                                       |    4 
 kernel/debug/debug_core.c                                   |   22 
 kernel/futex.c                                              |    4 
 kernel/seccomp.c                                            |   38 -
 kernel/trace/ring_buffer.c                                  |    8 
 lib/scatterlist.c                                           |    2 
 net/9p/trans_fd.c                                           |    2 
 net/ceph/messenger.c                                        |    5 
 net/sunrpc/xprt.c                                           |    6 
 samples/bpf/xdpsock_user.c                                  |    1 
 tools/perf/util/print_binary.c                              |    2 
 tools/testing/selftests/bpf/progs/test_sysctl_prog.c        |    4 
 tools/testing/selftests/x86/fsgsbase.c                      |   68 +
 236 files changed, 2912 insertions(+), 1212 deletions(-)

Adrian Hunter (1):
mmc: sdhci: Add LTR support for some Intel BYT based controllers

Alain Volmat (1):
cpufreq: sti-cpufreq: add stih418 support

Alex Hung (1):
ACPI: video: use ACPI backlight for HP 635 Notebook

Alexander Sverdlin (2):
staging: octeon: repair "fixed-link" support
staging: octeon: Drop on uncorrectable alignment or FCS error

Alok Prasad (1):
RDMA/qedr: Fix memory leak in iWARP CM

Amit Cohen (1):
mlxsw: core: Fix use-after-free in mlxsw_emad_trans_finish()

Anand Jain (2):
btrfs: fix replace of seed device
btrfs: improve device scanning messages

Anant Thazhemadam (2):
net: 9p: initialize sun_server.sun_path to have addr's value only when addr is valid
gfs2: add validation checks for size of superblock

Andrew Donnellan (1):
powerpc/rtas: Restrict RTAS requests from userspace

Andrey Grodzovsky (1):
drm/amd/display: Avoid MST manager resource leak.

Andy Lutomirski (2):
selftests/x86/fsgsbase: Reap a forgotten child selftests/x86/fsgsbase: Test PTRACE_PEEKUSER for GSBASE with invalid LDT GS

Andy Shevchenko (2):
device property: Keep secondary firmware node secondary by type device property: Don't clear secondary pointer for shared primary firmware node

Aneesh Kumar K.V (2):
powerpc/drmem: Make lmb_size 64 bit
powerpc/memhotplug: Make lmb size 64bit

Antonio Borneo (1):
drm/bridge/synopsys: dsi: add support for non-continuous HS clock

Ashish Sangwan (1):
NFS: fix nfs_path in case of a rename retry

Badhri Jagan Sridharan (1):
usb: typec: tcpm: During PR_SWAP, source caps should be sent only after tSwapSourceStart

Bartosz Golaszewski (1):
rtc: rx8010: don't modify the global rtc ops

Ben Hutchings (1):
ACPI / extlog: Check for RDMSR failure

Benjamin Coddington (1):
NFSv4: Wait for stateid updates after CLOSE/OPEN_DOWNGRADE

Chao Leng (1):
nvme-rdma: fix crash when connect rejected

Chao Yu (2):
f2fs: fix uninit-value in f2fs_lookup
f2fs: fix to check segment boundary during SIT page readahead

Chris Lew (1):
rpmsg: glink: Use complete_all for open states

Chris Wilson (1):
drm/i915: Force VT'd workarounds when running as a guest OS

Christian König (1):
drm/amdgpu: increase the reserved VM size to 2MB

Christophe Leroy (1):
powerpc/powermac: Fix low_sleep_handler with KUAP and KUEP

Chuck Lever (2):
SUNRPC: Mitigate cond_resched() in xprt_transmit()
NFSD: Add missing NFSv2 .pc_func methods

Dan Carpenter (1):
memory: emif: Remove bogus debugfs error handling

Daniel W. S. Almeida (1):
media: uvcvideo: Fix dereference of out-of-bound list iterator

Daniel Xu (1):
btrfs: tree-checker: validate number of chunk stripes and parity

Darrick J. Wong (2):
xfs: fix realtime bitmap/summary file truncation when growing rt volume
xfs: don't free rt blocks when we're doing a REMAP bunmapi call

Dave Airlie (1):
drm/ttm: fix eviction valuable range check.

Dave Wysochanski (1):
NFS4: Fix oops when copy_file_range is attempted with NFS4.0 source

Denis Efremov (1):
btrfs: use kvzalloc() to allocate clone_roots in btrfs_ioctl_send()

Diana Craciun (1):
bus/fsl_mc: Do not rely on caller to provide non NULL mc_io

Dinghao Liu (1):
ext4: fix error handling code in add_new_gdb

Douglas Anderson (2):
ARM: 8997/2: hw_breakpoint: Handle inexact watchpoint addresses
kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"

Douglas Gilbert (1):
sgl_alloc_order: fix memory leak

Eric Biggers (1):
ext4: fix leaking sysfs kobject after failed mount

Etienne Carriere (1):
firmware: arm_scmi: Fix ARCH_COLD_RESET

Evan Quan (2):
drm/amdgpu: correct the gpu reset handling for job != NULL case drm/amd/pm: increase mclk switch threshold to 200 us

Fabiano Rosas (1):
KVM: PPC: Book3S HV: Do not allocate HPT for a nested guest

Fangzhi Zuo (1):
drm/amd/display: HDMI remote sink need mode validation for Linux

Filipe Manana (5):
btrfs: reschedule if necessary when logging directory items
btrfs: send, orphanize first all conflicting inodes when processing references
btrfs: send, recompute reference path after orphanization of a directory
btrfs: fix use-after-free on readahead extent after failure to create it
btrfs: fix readahead hang and use-after-free after removing a device

Frank Wunderlich (1):
arm: dts: mt7623: add missing pause for switchport

Greg Kroah-Hartman (1):

      Linux 5.4.75

Hans Verkuil (2):
media: videodev2.h: RGB BT2020 and HSV are always full range
media: imx274: fix frame interval handling

Hans de Goede (1):
media: uvcvideo: Fix uvc_ctrl_fixup_xu_info() not having any effect

Helge Deller (2):
scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove() hil/parisc: Disable HIL driver when it gets stuck

Ian Abbott (1):
staging: comedi: cb_pcidas: Allow 2-channel commands for AO subdevice

Ilya Dryomov (1):

      libceph: clear con->out_msg on Policy::stateful_server faults

Jaegeuk Kim (1):
f2fs: handle errors of f2fs_get_meta_page_nofail

Jamie Iles (2):
gfs2: use-after-free in sysfs deregistration
ACPI: debug: don't allow debugging when ACPI is disabled

Jan Kara (3):
ext4: Detect already used quota file early
fs: Don't invalidate page buffers in block_write_full_page()
udf: Fix memory leak when mounting

Jann Horn (1):
seccomp: Make duplicate listener detection non-racy

Jason Gerecke (1):
HID: wacom: Avoid entering wacom_wac_pen_report for pad / battery

Jay Cornwall (1):
drm/amdkfd: Use same SQ prefetch setting as amdgpu

Jerome Brunet (1):
usb: cdc-acm: fix cooldown mechanism

Jing Xiangfeng (1):
staging: fieldbus: anybuss: jump to correct label in an error path

Jiri Olsa (1):
perf python scripting: Fix printable strings in python3 scripts

Jiri Slaby (3):
x86/unwind/orc: Fix inactive tasks with stack pointer in %sp on GCC 10 compiled kernels
vt: keyboard, simplify vt_kdgkbsent
vt: keyboard, extend func_buf_lock to readers

Jisheng Zhang (2):
mmc: sdhci: Use Auto CMD Auto Select only when v4_mode is true
arm64: berlin: Select DW_APB_TIMER_OF

Joakim Zhang (1):
can: flexcan: disable clocks during stop mode

Joel Stanley (1):
powerpc: Warn about use of smt_snooze_delay

Johannes Berg (1):
um: change sigio_spinlock to a mutex

John Ogness (1):
printk: reduce LOG_BUF_SHIFT range for H8300

Jonathan Cameron (6):
ACPI: Add out of bounds and numa_off protections to pxm_to_node()
ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3 iio:light:si1145: Fix timestamp alignment and prevent data leak. iio:adc:ti-adc0832 Fix alignment issue with timestamp iio:adc:ti-adc12138 Fix alignment issue with timestamp iio:gyro:itg3200: Fix timestamp alignment and prevent data leak.

Josef Bacik (1):
btrfs: cleanup cow block on error

Juergen Gross (13):
xen/events: avoid removing an event channel while handling it xen/events: add a proper barrier to 2-level uevent unmasking xen/events: fix race in evtchn_fifo_unmask() xen/events: add a new "late EOI" evtchn framework xen/blkback: use lateeoi irq binding
xen/netback: use lateeoi irq binding
xen/scsiback: use lateeoi irq binding xen/pvcallsback: use lateeoi irq binding xen/pciback: use lateeoi irq binding
xen/events: switch user event channels to lateeoi model xen/events: use a common cpu hotplug hook for event channels xen/events: defer eoi in case of excessive number of events xen/events: block rogue events for some time

Kan Liang (1):
perf/x86/intel: Fix Ice Lake event constraint table

Kim Phillips (2):
perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count() perf/x86/amd/ibs: Fix raw sample data accumulation

Krzysztof Kozlowski (11):
power: supply: bq27xxx: report "not charging" on all types
ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema warnings
ARM: dts: s5pv210: move fixed clocks under root node
ARM: dts: s5pv210: move PMU node out of clock controller
ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
spi: sprd: Release DMA channel also on probe deferral
extcon: ptn5150: Fix usage of atomic GPIO with sleeping GPIO chips
ia64: fix build error with !COREDUMP
i2c: imx: Fix external abort on interrupt in exit paths
ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
ARM: s3c24xx: fix missing system reset

Lang Dai (1):
uio: free uio id after uio file node is freed

Li Jun (3):
usb: dwc3: core: add phy cleanup for probe error handling
usb: dwc3: core: don't trigger runtime pm when remove driver
usb: typec: tcpm: reset hard_reset_count for any disconnect

Linu Cherian (1):
coresight: Make sysfs functional on topologies with per core sink

Linus Torvalds (1):
tty: make FONTX ioctl use the tty pointer they were actually passed

Lukas Wunner (1):
PCI/ACPI: Whitelist hotplug ports for D3 if power managed by ACPI

Luo Meng (1):
ext4: fix invalid inode checksum

Maciej W. Rozycki (1):
MIPS: DEC: Restore bootmem reservation for firmware working memory area

Madhav Chauhan (1):
drm/amdgpu: don't map BO in reserved region

Madhuparna Bhowmik (2):
mmc: via-sdmmc: Fix data race bug
drivers: watchdog: rdc321x_wdt: Fix race condition bugs

Magnus Karlsson (1):
samples/bpf: Fix possible deadlock in xdpsock

Mahesh Salgaonkar (1):
powerpc/powernv/elog: Fix race while processing OPAL error log event.

Marc Zyngier (1):
KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR

Marek Behún (1):
leds: bcm6328, bcm6358: use devres LED registering function

Martin Fuzzey (1):
w1: mxc_w1: Fix timeout resolution problem leading to bus error

Masami Hiramatsu (1):
ia64: kprobes: Use generic kretprobe trampoline handler

Mateusz Nosek (1):
futex: Fix incorrect should_fail_futex() handling

Matthew Wilcox (Oracle) (3):
ceph: promote to unsigned long long before shifting 9P: Cast to loff_t before multiplying
cachefiles: Handle readpage error correctly

Michael Chan (1):
bnxt_en: Log unknown link speed appropriately.

Michael Neuling (1):
powerpc: Fix undetected data corruption with P9N DD2.1 VSX CI load emulation

Michael Walle (1):
mmc: sdhci-of-esdhc: set timeout to max before tuning

Nadezda Lutovinova (1):
drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working correctly

Nicholas Piggin (3):
mm: fix exec activate_mm vs TLB shootdown and lazy tlb switching race
powerpc: select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
sparc64: remove mm_cpumask clearing to fix kthread_use_mm race

Olga Kornievskaia (1):
NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag

Oliver Neukum (1):
USB: adutux: fix debugging

Oliver O'Halloran (1):
powerpc/powernv/smp: Fix spurious DBG() warning

Paul Cercueil (1):

      dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status

Peter Chen (1):
usb: xhci: omit duplicate actions when suspending a runtime suspended host.

Qiujun Huang (1):
ring-buffer: Return 0 on success from ring_buffer_resize()

Qu Wenruo (2):
btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode
btrfs: tree-checker: fix false alert caused by legacy btrfs root item

Quinn Tran (1):
scsi: qla2xxx: Fix crash on session cleanup with unload

Rafael J. Wysocki (2):
ACPI: EC: PM: Flush EC work unconditionally after wakeup
ACPI: EC: PM: Drop ec_no_wakeup check from acpi_ec_dispatch_gpe()

Ran Wang (1):
usb: host: fsl-mph-dr-of: check return of dma_set_mask()

Raul E Rangel (1):
mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN

Raymond Tan (1):
usb: dwc3: pci: Allow Elkhart Lake to utilize DSM method for PM functionality

Richard Weinberger (1):
ubifs: journal: Make sure to not dirty twice for auth nodes

Ronnie Sahlberg (1):
cifs: handle -EINTR in cifs_setattr

Sandeep Singh (1):
usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC

Sascha Hauer (1):
ata: sata_nv: Fix retrieving of active qcs

Sathishkumar Muruganandam (1):
ath10k: fix VHT NSS calculation when STBC is enabled

Song Liu (1):
md/raid5: fix oops during stripe resizing

Stefano Garzarella (1):
vringh: fix __vringh_iov() when riov and wiov are different

Sudeep Holla (1):
firmware: arm_scmi: Add missing Rx size re-initialisation

Sven Schnelle (1):
s390/stp: add locking to sysfs functions

Takashi Iwai (2):
drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally drm/amd/display: Fix kernel panic by dal_gpio_open() error

Tero Kristo (1):
clk: ti: clockdomain: fix static checker warning

Thinh Nguyen (4):
usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
usb: dwc3: gadget: Check MPS of the request length
usb: dwc3: gadget: Resume pending requests after CLEAR_STALL
usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command

Tobias Jordan (1):
iio: adc: gyroadc: fix leak of device node iterator

Tom Rix (2):
video: fbdev: pvr2fb: initialize variables
media: tw5864: check status of tw5864_frameinterval_get

Tony Lindgren (1):
ARM: dts: omap4: Fix sgx clock rate for 4430

Valentin Schneider (1):
arm64: topology: Stop using MPIDR for topology information

Vasily Gorbik (1):
s390/startup: avoid save_area_sync overflow

Vineet Gupta (1):
ARC: perf: redo the pct irq missing in device-tree handling

Wei Huang (1):
acpi-cpufreq: Honor _PSD table setting on new AMD CPUs

Wen Gong (1):
ath10k: start recovery process when payload length exceeds max htc length for sdio

Wesley Chalmers (1):
drm/amd/display: Increase timeout for DP Disable

Wright Feng (1):
brcmfmac: Fix warning message after dongle setup failed

Xia Jiang (1):
media: platform: Improve queue set up flow for bug fixing

Xiang Chen (1):
PM: runtime: Remove link state checks in rpm_get/put_supplier()

Xie He (1):

      drivers/net/wan/hdlc_fr: Correctly handle special skb->protocol values

Xiongfeng Wang (1):
power: supply: test_power: add missing newlines when printing parameters by sysfs

Xiubo Li (1):
nbd: make the config put is called before the notifying the waiter

Yonghong Song (2):
bpf: Permit map_ptr arithmetic with opcode add and offset 0 selftests/bpf: Define string const as global for test_sysctl_prog.c

Yoshihiro Shimoda (1):
arm64: dts: renesas: ulcb: add full-pwr-cycle-in-suspend into eMMC nodes

Zhang Qilong (1):
f2fs: add trace exit in exception path

Zhao Heming (1):
md/bitmap: md_bitmap_get_counter returns wrong blocks

Zhen Lei (1):
ARC: [dts] fix the errors detected by dtbs_check

Zhengyuan Liu (1):
arm64/mm: return cpu_all_mask when node is NUMA_NO_NODE

Zhihao Cheng (6):
ubifs: dent: Fix some potential memory leaks while iterating entries
ubifs: xattr: Fix some potential memory leaks while iterating entries
ubifs: Fix a memleak after dumping authentication mount options
ubifs: Don't parse authentication mount options in remount process
ubifs: mount_ubifs: Release authentication resource in error handling path
ubi: check kthread_should_stop() after the setting of task state

Zong Li (1):
riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO

[email protected] (1):
ACPI: button: fix handling lid state changes when input device closed

author maintainer
#1 lore raw
Documentation/admin-guide/kernel-parameters.txt +8 -0
index 988a0d2535b2..5b4753e602de 100644
@@ -5462,6 +5462,14 @@
 			as generic guest with no PV drivers. Currently support
 			XEN HVM, KVM, HYPER_V and VMWARE guest.
 
+	xen.event_eoi_delay=	[XEN]
+			How long to delay EOI handling in case of event
+			storms (jiffies). Default is 10.
+
+	xen.event_loop_timeout=	[XEN]
+			After which time (jiffies) the event handling loop
+			should start to delay EOI handling. Default is 2.
+
 	xirc2ps_cs=	[NET,PCMCIA]
 			Format:
 			<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
Documentation/media/uapi/v4l/colorspaces-defs.rst +4 -5
index e122bbe3d799..aabb08130354 100644
@@ -36,8 +36,7 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
 :c:type:`v4l2_hsv_encoding` specifies which encoding is used.
 
 .. note:: The default R'G'B' quantization is full range for all
-   colorspaces except for BT.2020 which uses limited range R'G'B'
-   quantization.
+   colorspaces. HSV formats are always full range.
 
 .. tabularcolumns:: |p{6.7cm}|p{10.8cm}|
 
@@ -169,8 +168,8 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
       - Details
     * - ``V4L2_QUANTIZATION_DEFAULT``
       - Use the default quantization encoding as defined by the
-	colorspace. This is always full range for R'G'B' (except for the
-	BT.2020 colorspace) and HSV. It is usually limited range for Y'CbCr.
+	colorspace. This is always full range for R'G'B' and HSV.
+	It is usually limited range for Y'CbCr.
     * - ``V4L2_QUANTIZATION_FULL_RANGE``
       - Use the full range quantization encoding. I.e. the range [0…1] is
 	mapped to [0…255] (with possible clipping to [1…254] to avoid the
@@ -180,4 +179,4 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
     * - ``V4L2_QUANTIZATION_LIM_RANGE``
       - Use the limited range quantization encoding. I.e. the range [0…1]
 	is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
-	[16…240].
+	[16…240]. Limited Range cannot be used with HSV.
Documentation/media/uapi/v4l/colorspaces-details.rst +2 -3
index 8b0ba3668101..fd0cf57691d8 100644
@@ -377,9 +377,8 @@ Colorspace BT.2020 (V4L2_COLORSPACE_BT2020)
 The :ref:`itu2020` standard defines the colorspace used by Ultra-high
 definition television (UHDTV). The default transfer function is
 ``V4L2_XFER_FUNC_709``. The default Y'CbCr encoding is
-``V4L2_YCBCR_ENC_BT2020``. The default R'G'B' quantization is limited
-range (!), and so is the default Y'CbCr quantization. The chromaticities
-of the primary colors and the white reference are:
+``V4L2_YCBCR_ENC_BT2020``. The default Y'CbCr quantization is limited range.
+The chromaticities of the primary colors and the white reference are:
 
 
 
Makefile +1 -1
index 3be5a9c352b9..d38d0cab8e9a 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 74
+SUBLEVEL = 75
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/Kconfig +7 -0
index 238dccfa7691..84653a823d3b 100644
@@ -405,6 +405,13 @@ config MMU_GATHER_NO_RANGE
 config HAVE_MMU_GATHER_NO_GATHER
 	bool
 
+config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+	bool
+	help
+	  Temporary select until all architectures can be converted to have
+	  irqs disabled over activate_mm. Architectures that do IPI based TLB
+	  shootdowns should enable this.
+
 config ARCH_HAVE_NMI_SAFE_CMPXCHG
 	bool
 
arch/arc/boot/dts/axc001.dtsi +1 -1
index 6ec1fcdfc0d7..92247288d056 100644
@@ -85,7 +85,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
arch/arc/boot/dts/axc003.dtsi +1 -1
index ac8e1b463a70..cd1edcf4f95e 100644
@@ -129,7 +129,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
arch/arc/boot/dts/axc003_idu.dtsi +1 -1
index 9da21e7fd246..70779386ca79 100644
@@ -135,7 +135,7 @@
 	 * avoid duplicating the MB dtsi file given that IRQ from
 	 * this intc to cpu intc are different for axs101 and axs103
 	 */
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0x0 0xe0012000 0x0 0x200 >;
arch/arc/boot/dts/vdk_axc003.dtsi +1 -1
index f8be7ba8dad4..c21d0eb07bf6 100644
@@ -46,7 +46,7 @@
 
 	};
 
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0xe0012000 0x200 >;
arch/arc/boot/dts/vdk_axc003_idu.dtsi +1 -1
index 0afa3e53a4e3..4d348853ac7c 100644
@@ -54,7 +54,7 @@
 
 	};
 
-	mb_intc: dw-apb-ictl@e0012000 {
+	mb_intc: interrupt-controller@e0012000 {
 		#interrupt-cells = <1>;
 		compatible = "snps,dw-apb-ictl";
 		reg = < 0xe0012000 0x200 >;
arch/arc/kernel/perf_event.c +18 -9
index 79849f37e782..145722f80c9b 100644
@@ -562,7 +562,7 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
 {
 	struct arc_reg_pct_build pct_bcr;
 	struct arc_reg_cc_build cc_bcr;
-	int i, has_interrupts, irq;
+	int i, has_interrupts, irq = -1;
 	int counter_size;	/* in bits */
 
 	union cc_name {
@@ -637,19 +637,28 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
 		.attr_groups	= arc_pmu->attr_groups,
 	};
 
-	if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
+	if (has_interrupts) {
+		irq = platform_get_irq(pdev, 0);
+		if (irq >= 0) {
+			int ret;
 
-		arc_pmu->irq = irq;
+			arc_pmu->irq = irq;
 
-		/* intc map function ensures irq_set_percpu_devid() called */
-		request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
-				   this_cpu_ptr(&arc_pmu_cpu));
+			/* intc map function ensures irq_set_percpu_devid() called */
+			ret = request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
+						 this_cpu_ptr(&arc_pmu_cpu));
+
+			if (!ret)
+				on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
+			else
+				irq = -1;
+		}
 
-		on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
-	} else {
-		arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
 	}
 
+	if (irq == -1)
+		arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
+
 	/*
 	 * perf parser doesn't really like '-' symbol in events name, so let's
 	 * use '_' in arc pct name as it goes to kernel PMU event prefix.
arch/arm/Kconfig +2 -0
index 05c9bbfe444d..9aa88715f196 100644
@@ -507,8 +507,10 @@ config ARCH_S3C24XX
 	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_S3C_RTC if RTC_CLASS
 	select NEED_MACH_IO_H
+	select S3C2410_WATCHDOG
 	select SAMSUNG_ATAGS
 	select USE_OF
+	select WATCHDOG
 	help
 	  Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
 	  and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts +1 -0
index 2b760f90f38c..5375c6699843 100644
@@ -192,6 +192,7 @@
 					fixed-link {
 						speed = <1000>;
 						full-duplex;
+						pause;
 					};
 				};
 			};
arch/arm/boot/dts/omap4.dtsi +1 -1
index e5506ab669fc..904852006b9b 100644
@@ -328,7 +328,7 @@
 			status = "disabled";
 		};
 
-		target-module@56000000 {
+		sgx_module: target-module@56000000 {
 			compatible = "ti,sysc-omap4", "ti,sysc";
 			reg = <0x5600fe00 0x4>,
 			      <0x5600fe10 0x4>;
arch/arm/boot/dts/omap443x.dtsi +10 -0
index cbcdcb4e7d1c..86b9caf461df 100644
@@ -74,3 +74,13 @@
 };
 
 /include/ "omap443x-clocks.dtsi"
+
+/*
+ * Use dpll_per for sgx at 153.6MHz like droid4 stock v3.0.8 Android kernel
+ */
+&sgx_module {
+	assigned-clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 24>,
+			  <&dpll_per_m7x2_ck>;
+	assigned-clock-rates = <0>, <153600000>;
+	assigned-clock-parents = <&dpll_per_m7x2_ck>;
+};
arch/arm/boot/dts/s5pv210.dtsi +69 -94

200 lines not on this page · raw message

arch/arm/kernel/hw_breakpoint.c +72 -28

147 lines not on this page · raw message

arch/arm/plat-samsung/Kconfig +1 -0
index 301e572651c0..790c87ee7271 100644
@@ -241,6 +241,7 @@ config SAMSUNG_PM_DEBUG
 	depends on PM && DEBUG_KERNEL
 	depends on PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
 	depends on DEBUG_EXYNOS_UART || DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
+	depends on DEBUG_LL && MMU
 	help
 	  Say Y here if you want verbose debugging from the PM Suspend and
 	  Resume code. See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
arch/arm64/Kconfig.platforms +1 -0
index 16d761475a86..9dccf4db319b 100644
@@ -54,6 +54,7 @@ config ARCH_BCM_IPROC
 config ARCH_BERLIN
 	bool "Marvell Berlin SoC Family"
 	select DW_APB_ICTL
+	select DW_APB_TIMER_OF
 	select GPIOLIB
 	select PINCTRL
 	help
arch/arm64/boot/dts/renesas/ulcb.dtsi +1 -0
index 3ef89171538f..d8fccf3d4987 100644
@@ -470,6 +470,7 @@
 	mmc-hs200-1_8v;
 	mmc-hs400-1_8v;
 	non-removable;
+	full-pwr-cycle-in-suspend;
 	status = "okay";
 };
 
arch/arm64/include/asm/kvm_host.h +1 -0
index d719c6b4dd81..7140701f65f9 100644
@@ -209,6 +209,7 @@ enum vcpu_sysreg {
 #define cp14_DBGWCR0	(DBGWCR0_EL1 * 2)
 #define cp14_DBGWVR0	(DBGWVR0_EL1 * 2)
 #define cp14_DBGDCCINT	(MDCCINT_EL1 * 2)
+#define cp14_DBGVCR	(DBGVCR32_EL2 * 2)
 
 #define NR_COPRO_REGS	(NR_SYS_REGS * 2)
 
arch/arm64/include/asm/numa.h +3 -0
index 626ad01e83bf..dd870390d639 100644
@@ -25,6 +25,9 @@ const struct cpumask *cpumask_of_node(int node);
 /* Returns a pointer to the cpumask of CPUs on Node 'node'. */
 static inline const struct cpumask *cpumask_of_node(int node)
 {
+	if (node == NUMA_NO_NODE)
+		return cpu_all_mask;
+
 	return node_to_cpumask_map[node];
 }
 #endif
arch/arm64/kernel/topology.c +17 -15
index fa9528dfd0ce..113903db666c 100644
@@ -35,21 +35,23 @@ void store_cpu_topology(unsigned int cpuid)
 	if (mpidr & MPIDR_UP_BITMASK)
 		return;
 
-	/* Create cpu topology mapping based on MPIDR. */
-	if (mpidr & MPIDR_MT_BITMASK) {
-		/* Multiprocessor system : Multi-threads per core */
-		cpuid_topo->thread_id  = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-		cpuid_topo->core_id    = MPIDR_AFFINITY_LEVEL(mpidr, 1);
-		cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 2) |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 3) << 8;
-	} else {
-		/* Multiprocessor system : Single-thread per core */
-		cpuid_topo->thread_id  = -1;
-		cpuid_topo->core_id    = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-		cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 1) |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 2) << 8 |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 3) << 16;
-	}
+	/*
+	 * This would be the place to create cpu topology based on MPIDR.
+	 *
+	 * However, it cannot be trusted to depict the actual topology; some
+	 * pieces of the architecture enforce an artificial cap on Aff0 values
+	 * (e.g. GICv3's ICC_SGI1R_EL1 limits it to 15), leading to an
+	 * artificial cycling of Aff1, Aff2 and Aff3 values. IOW, these end up
+	 * having absolutely no relationship to the actual underlying system
+	 * topology, and cannot be reasonably used as core / package ID.
+	 *
+	 * If the MT bit is set, Aff0 *could* be used to define a thread ID, but
+	 * we still wouldn't be able to obtain a sane core ID. This means we
+	 * need to entirely ignore MPIDR for any topology deduction.
+	 */
+	cpuid_topo->thread_id  = -1;
+	cpuid_topo->core_id    = cpuid;
+	cpuid_topo->package_id = cpu_to_node(cpuid);
 
 	pr_debug("CPU%u: cluster %d core %d thread %d mpidr %#016llx\n",
 		 cpuid, cpuid_topo->package_id, cpuid_topo->core_id,
arch/arm64/kvm/sys_regs.c +3 -3
index d43f44b3377e..0ed7598dfa6a 100644
@@ -1746,9 +1746,9 @@ static const struct sys_reg_desc cp14_regs[] = {
 	{ Op1( 0), CRn( 0), CRm( 1), Op2( 0), trap_raz_wi },
 	DBG_BCR_BVR_WCR_WVR(1),
 	/* DBGDCCINT */
-	{ Op1( 0), CRn( 0), CRm( 2), Op2( 0), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 2), Op2( 0), trap_debug32, NULL, cp14_DBGDCCINT },
 	/* DBGDSCRext */
-	{ Op1( 0), CRn( 0), CRm( 2), Op2( 2), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 2), Op2( 2), trap_debug32, NULL, cp14_DBGDSCRext },
 	DBG_BCR_BVR_WCR_WVR(2),
 	/* DBGDTR[RT]Xint */
 	{ Op1( 0), CRn( 0), CRm( 3), Op2( 0), trap_raz_wi },
@@ -1763,7 +1763,7 @@ static const struct sys_reg_desc cp14_regs[] = {
 	{ Op1( 0), CRn( 0), CRm( 6), Op2( 2), trap_raz_wi },
 	DBG_BCR_BVR_WCR_WVR(6),
 	/* DBGVCR */
-	{ Op1( 0), CRn( 0), CRm( 7), Op2( 0), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 7), Op2( 0), trap_debug32, NULL, cp14_DBGVCR },
 	DBG_BCR_BVR_WCR_WVR(7),
 	DBG_BCR_BVR_WCR_WVR(8),
 	DBG_BCR_BVR_WCR_WVR(9),
arch/arm64/mm/numa.c +5 -1
index 4decf1659700..53ebb4babf3a 100644
@@ -46,7 +46,11 @@ EXPORT_SYMBOL(node_to_cpumask_map);
  */
 const struct cpumask *cpumask_of_node(int node)
 {
-	if (WARN_ON(node >= nr_node_ids))
+
+	if (node == NUMA_NO_NODE)
+		return cpu_all_mask;
+
+	if (WARN_ON(node < 0 || node >= nr_node_ids))
 		return cpu_none_mask;
 
 	if (WARN_ON(node_to_cpumask_map[node] == NULL))
arch/ia64/kernel/Makefile +1 -1
index 1a8df6669eee..18d6008b151f 100644
@@ -41,7 +41,7 @@ obj-y				+= esi_stub.o	# must be in kernel proper
 endif
 obj-$(CONFIG_INTEL_IOMMU)	+= pci-dma.o
 
-obj-$(CONFIG_BINFMT_ELF)	+= elfcore.o
+obj-$(CONFIG_ELF_CORE)		+= elfcore.o
 
 # fp_emulate() expects f2-f5,f16-f31 to contain the user-level state.
 CFLAGS_traps.o  += -mfixed-range=f2-f5,f16-f31
arch/ia64/kernel/kprobes.c +2 -75

91 lines not on this page · raw message

arch/mips/dec/setup.c +8 -1
index 61a0bf13e308..1fc8dffa8d1d 100644
@@ -6,7 +6,7 @@
  * for more details.
  *
  * Copyright (C) 1998 Harald Koerfgen
- * Copyright (C) 2000, 2001, 2002, 2003, 2005  Maciej W. Rozycki
+ * Copyright (C) 2000, 2001, 2002, 2003, 2005, 2020  Maciej W. Rozycki
  */
 #include <linux/console.h>
 #include <linux/export.h>
@@ -15,6 +15,7 @@
 #include <linux/ioport.h>
 #include <linux/irq.h>
 #include <linux/irqnr.h>
+#include <linux/memblock.h>
 #include <linux/param.h>
 #include <linux/percpu-defs.h>
 #include <linux/sched.h>
@@ -22,6 +23,7 @@
 #include <linux/types.h>
 #include <linux/pm.h>
 
+#include <asm/addrspace.h>
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
 #include <asm/cpu-features.h>
@@ -29,7 +31,9 @@
 #include <asm/irq.h>
 #include <asm/irq_cpu.h>
 #include <asm/mipsregs.h>
+#include <asm/page.h>
 #include <asm/reboot.h>
+#include <asm/sections.h>
 #include <asm/time.h>
 #include <asm/traps.h>
 #include <asm/wbflush.h>
@@ -166,6 +170,9 @@ void __init plat_mem_setup(void)
 
 	ioport_resource.start = ~0UL;
 	ioport_resource.end = 0UL;
+
+	/* Stay away from the firmware working memory area for now. */
+	memblock_reserve(PHYS_OFFSET, __pa_symbol(&_text) - PHYS_OFFSET);
 }
 
 /*
arch/powerpc/Kconfig +14 -0
index ad620637cbd1..cb285e474c88 100644
@@ -147,6 +147,7 @@ config PPC
 	select ARCH_USE_BUILTIN_BSWAP
 	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
 	select ARCH_WANT_IPC_PARSE_VERSION
+	select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
 	select ARCH_WEAK_RELEASE_ACQUIRE
 	select BINFMT_ELF
 	select BUILDTIME_EXTABLE_SORT
@@ -1023,6 +1024,19 @@ config FSL_RIO
 	  Include support for RapidIO controller on Freescale embedded
 	  processors (MPC8548, MPC8641, etc).
 
+config PPC_RTAS_FILTER
+	bool "Enable filtering of RTAS syscalls"
+	default y
+	depends on PPC_RTAS
+	help
+	  The RTAS syscall API has security issues that could be used to
+	  compromise system integrity. This option enforces restrictions on the
+	  RTAS calls and arguments passed by userspace programs to mitigate
+	  these issues.
+
+	  Say Y unless you know what you are doing and the filter is causing
+	  problems for you.
+
 endmenu
 
 config NONSTATIC_KERNEL
arch/powerpc/include/asm/drmem.h +2 -2
index bea7a2405ba5..ee61542c6c3d 100644
@@ -20,7 +20,7 @@ struct drmem_lmb {
 struct drmem_lmb_info {
 	struct drmem_lmb        *lmbs;
 	int                     n_lmbs;
-	u32                     lmb_size;
+	u64                     lmb_size;
 };
 
 extern struct drmem_lmb_info *drmem_info;
@@ -79,7 +79,7 @@ struct of_drconf_cell_v2 {
 #define DRCONF_MEM_AI_INVALID	0x00000040
 #define DRCONF_MEM_RESERVED	0x00000080
 
-static inline u32 drmem_lmb_size(void)
+static inline u64 drmem_lmb_size(void)
 {
 	return drmem_info->lmb_size;
 }
arch/powerpc/include/asm/mmu_context.h +1 -1
index 58efca934311..f132b418a8c7 100644
@@ -216,7 +216,7 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
  */
 static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next)
 {
-	switch_mm(prev, next, current);
+	switch_mm_irqs_off(prev, next, current);
 }
 
 /* We don't currently use enter_lazy_tlb() for anything */
arch/powerpc/kernel/head_32.S +1 -1
index 4a24f8f026c7..5e2f2fd78b94 100644
@@ -843,7 +843,7 @@ BEGIN_MMU_FTR_SECTION
 END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS)
 	blr
 
-load_segment_registers:
+_GLOBAL(load_segment_registers)
 	li	r0, NUM_USER_SEGMENTS /* load up user segment register values */
 	mtctr	r0		/* for context 0 */
 	li	r3, 0		/* Kp = 0, Ks = 0, VSID = 0 */
arch/powerpc/kernel/rtas.c +153 -0

177 lines not on this page · raw message

arch/powerpc/kernel/sysfs.c +17 -25

71 lines not on this page · raw message

arch/powerpc/kernel/traps.c +1 -1
index 9432fc6af28a..206032c9b545 100644
@@ -877,7 +877,7 @@ static void p9_hmi_special_emu(struct pt_regs *regs)
 {
 	unsigned int ra, rb, t, i, sel, instr, rc;
 	const void __user *addr;
-	u8 vbuf[16], *vdst;
+	u8 vbuf[16] __aligned(16), *vdst;
 	unsigned long ea, msr, msr_mask;
 	bool swap;
 
arch/powerpc/kvm/book3s_hv.c +6 -0
index e2183fed947d..dd9b19b1f459 100644
@@ -5191,6 +5191,12 @@ static long kvm_arch_vm_ioctl_hv(struct file *filp,
 	case KVM_PPC_ALLOCATE_HTAB: {
 		u32 htab_order;
 
+		/* If we're a nested hypervisor, we currently only support radix */
+		if (kvmhv_on_pseries()) {
+			r = -EOPNOTSUPP;
+			break;
+		}
+
 		r = -EFAULT;
 		if (get_user(htab_order, (u32 __user *)argp))
 			break;
arch/powerpc/platforms/powermac/sleep.S +1 -8
index bd6085b470b7..935dcac4c02d 100644
@@ -293,14 +293,7 @@ grackle_wake_up:
 	 * we do any r1 memory access as we are not sure they
 	 * are in a sane state above the first 256Mb region
 	 */
-	li	r0,16		/* load up segment register values */
-	mtctr	r0		/* for context 0 */
-	lis	r3,0x2000	/* Ku = 1, VSID = 0 */
-	li	r4,0
-3:	mtsrin	r3,r4
-	addi	r3,r3,0x111	/* increment VSID */
-	addis	r4,r4,0x1000	/* address of next segment */
-	bdnz	3b
+	bl	load_segment_registers
 	sync
 	isync
 
arch/powerpc/platforms/powernv/opal-elog.c +26 -7
index 62ef7ad995da..5e33b1fc67c2 100644
@@ -179,14 +179,14 @@ static ssize_t raw_attr_read(struct file *filep, struct kobject *kobj,
 	return count;
 }
 
-static struct elog_obj *create_elog_obj(uint64_t id, size_t size, uint64_t type)
+static void create_elog_obj(uint64_t id, size_t size, uint64_t type)
 {
 	struct elog_obj *elog;
 	int rc;
 
 	elog = kzalloc(sizeof(*elog), GFP_KERNEL);
 	if (!elog)
-		return NULL;
+		return;
 
 	elog->kobj.kset = elog_kset;
 
@@ -219,18 +219,37 @@ static struct elog_obj *create_elog_obj(uint64_t id, size_t size, uint64_t type)
 	rc = kobject_add(&elog->kobj, NULL, "0x%llx", id);
 	if (rc) {
 		kobject_put(&elog->kobj);
-		return NULL;
+		return;
 	}
 
+	/*
+	 * As soon as the sysfs file for this elog is created/activated there is
+	 * a chance the opal_errd daemon (or any userspace) might read and
+	 * acknowledge the elog before kobject_uevent() is called. If that
+	 * happens then there is a potential race between
+	 * elog_ack_store->kobject_put() and kobject_uevent() which leads to a
+	 * use-after-free of a kernfs object resulting in a kernel crash.
+	 *
+	 * To avoid that, we need to take a reference on behalf of the bin file,
+	 * so that our reference remains valid while we call kobject_uevent().
+	 * We then drop our reference before exiting the function, leaving the
+	 * bin file to drop the last reference (if it hasn't already).
+	 */
+
+	/* Take a reference for the bin file */
+	kobject_get(&elog->kobj);
 	rc = sysfs_create_bin_file(&elog->kobj, &elog->raw_attr);
-	if (rc) {
+	if (rc == 0) {
+		kobject_uevent(&elog->kobj, KOBJ_ADD);
+	} else {
+		/* Drop the reference taken for the bin file */
 		kobject_put(&elog->kobj);
-		return NULL;
 	}
 
-	kobject_uevent(&elog->kobj, KOBJ_ADD);
+	/* Drop our reference */
+	kobject_put(&elog->kobj);
 
-	return elog;
+	return;
 }
 
 static irqreturn_t elog_event(int irq, void *data)
arch/powerpc/platforms/powernv/smp.c +1 -1
index b2ba3e95bda7..bbf361f23ae8 100644
@@ -43,7 +43,7 @@
 #include <asm/udbg.h>
 #define DBG(fmt...) udbg_printf(fmt)
 #else
-#define DBG(fmt...)
+#define DBG(fmt...) do { } while (0)
 #endif
 
 static void pnv_smp_setup_cpu(int cpu)
arch/powerpc/platforms/pseries/hotplug-memory.c +29 -14

87 lines not on this page · raw message

arch/riscv/include/uapi/asm/auxvec.h +3 -0
index d86cb17bbabe..22e0ae888406 100644
@@ -10,4 +10,7 @@
 /* vDSO location */
 #define AT_SYSINFO_EHDR 33
 
+/* entries in ARCH_DLINFO */
+#define AT_VECTOR_SIZE_ARCH	1
+
 #endif /* _UAPI_ASM_RISCV_AUXVEC_H */
arch/s390/boot/head.S +11 -10
index 4b86a8d3c121..e6bf5f40bff3 100644
@@ -360,22 +360,23 @@ ENTRY(startup_kdump)
 # the save area and does disabled wait with a faulty address.
 #
 ENTRY(startup_pgm_check_handler)
-	stmg	%r0,%r15,__LC_SAVE_AREA_SYNC
-	la	%r1,4095
-	stctg	%c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r1)
-	mvc	__LC_GPREGS_SAVE_AREA-4095(128,%r1),__LC_SAVE_AREA_SYNC
-	mvc	__LC_PSW_SAVE_AREA-4095(16,%r1),__LC_PGM_OLD_PSW
+	stmg	%r8,%r15,__LC_SAVE_AREA_SYNC
+	la	%r8,4095
+	stctg	%c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r8)
+	stmg	%r0,%r7,__LC_GPREGS_SAVE_AREA-4095(%r8)
+	mvc	__LC_GPREGS_SAVE_AREA-4095+64(64,%r8),__LC_SAVE_AREA_SYNC
+	mvc	__LC_PSW_SAVE_AREA-4095(16,%r8),__LC_PGM_OLD_PSW
 	mvc	__LC_RETURN_PSW(16),__LC_PGM_OLD_PSW
 	ni	__LC_RETURN_PSW,0xfc	# remove IO and EX bits
 	ni	__LC_RETURN_PSW+1,0xfb	# remove MCHK bit
 	oi	__LC_RETURN_PSW+1,0x2	# set wait state bit
-	larl	%r2,.Lold_psw_disabled_wait
-	stg	%r2,__LC_PGM_NEW_PSW+8
-	l	%r15,.Ldump_info_stack-.Lold_psw_disabled_wait(%r2)
+	larl	%r9,.Lold_psw_disabled_wait
+	stg	%r9,__LC_PGM_NEW_PSW+8
+	l	%r15,.Ldump_info_stack-.Lold_psw_disabled_wait(%r9)
 	brasl	%r14,print_pgm_check_info
 .Lold_psw_disabled_wait:
-	la	%r1,4095
-	lmg	%r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)
+	la	%r8,4095
+	lmg	%r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r8)
 	lpswe	__LC_RETURN_PSW		# disabled wait
 .Ldump_info_stack:
 	.long	0x5000 + PAGE_SIZE - STACK_FRAME_OVERHEAD
arch/s390/kernel/time.c +85 -33

196 lines not on this page · raw message

arch/sparc/kernel/smp_64.c +14 -51

101 lines not on this page · raw message

arch/um/kernel/sigio.c +3 -3
index 10c99e058fca..d1cffc2a7f21 100644
@@ -35,14 +35,14 @@ int write_sigio_irq(int fd)
 }
 
 /* These are called from os-Linux/sigio.c to protect its pollfds arrays. */
-static DEFINE_SPINLOCK(sigio_spinlock);
+static DEFINE_MUTEX(sigio_mutex);
 
 void sigio_lock(void)
 {
-	spin_lock(&sigio_spinlock);
+	mutex_lock(&sigio_mutex);
 }
 
 void sigio_unlock(void)
 {
-	spin_unlock(&sigio_spinlock);
+	mutex_unlock(&sigio_mutex);
 }
arch/x86/events/amd/ibs.c +24 -14
index a023cbe21230..39169885adfa 100644
@@ -335,11 +335,15 @@ static u64 get_ibs_op_count(u64 config)
 {
 	u64 count = 0;
 
+	/*
+	 * If the internal 27-bit counter rolled over, the count is MaxCnt
+	 * and the lower 7 bits of CurCnt are randomized.
+	 * Otherwise CurCnt has the full 27-bit current counter value.
+	 */
 	if (config & IBS_OP_VAL)
-		count += (config & IBS_OP_MAX_CNT) << 4; /* cnt rolled over */
-
-	if (ibs_caps & IBS_CAPS_RDWROPCNT)
-		count += (config & IBS_OP_CUR_CNT) >> 32;
+		count = (config & IBS_OP_MAX_CNT) << 4;
+	else if (ibs_caps & IBS_CAPS_RDWROPCNT)
+		count = (config & IBS_OP_CUR_CNT) >> 32;
 
 	return count;
 }
@@ -632,18 +636,24 @@ static int perf_ibs_handle_irq(struct perf_ibs *perf_ibs, struct pt_regs *iregs)
 				       perf_ibs->offset_max,
 				       offset + 1);
 	} while (offset < offset_max);
+	/*
+	 * Read IbsBrTarget, IbsOpData4, and IbsExtdCtl separately
+	 * depending on their availability.
+	 * Can't add to offset_max as they are staggered
+	 */
 	if (event->attr.sample_type & PERF_SAMPLE_RAW) {
-		/*
-		 * Read IbsBrTarget and IbsOpData4 separately
-		 * depending on their availability.
-		 * Can't add to offset_max as they are staggered
-		 */
-		if (ibs_caps & IBS_CAPS_BRNTRGT) {
-			rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++);
-			size++;
+		if (perf_ibs == &perf_ibs_op) {
+			if (ibs_caps & IBS_CAPS_BRNTRGT) {
+				rdmsrl(MSR_AMD64_IBSBRTARGET, *buf++);
+				size++;
+			}
+			if (ibs_caps & IBS_CAPS_OPDATA4) {
+				rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++);
+				size++;
+			}
 		}
-		if (ibs_caps & IBS_CAPS_OPDATA4) {
-			rdmsrl(MSR_AMD64_IBSOPDATA4, *buf++);
+		if (perf_ibs == &perf_ibs_fetch && (ibs_caps & IBS_CAPS_FETCHCTLEXTD)) {
+			rdmsrl(MSR_AMD64_ICIBSEXTDCTL, *buf++);
 			size++;
 		}
 	}
arch/x86/events/intel/core.c +1 -1
index 0461ab257df6..c4def9077747 100644
@@ -243,7 +243,7 @@ static struct extra_reg intel_skl_extra_regs[] __read_mostly = {
 
 static struct event_constraint intel_icl_event_constraints[] = {
 	FIXED_EVENT_CONSTRAINT(0x00c0, 0),	/* INST_RETIRED.ANY */
-	INTEL_UEVENT_CONSTRAINT(0x1c0, 0),	/* INST_RETIRED.PREC_DIST */
+	FIXED_EVENT_CONSTRAINT(0x01c0, 0),	/* INST_RETIRED.PREC_DIST */
 	FIXED_EVENT_CONSTRAINT(0x003c, 1),	/* CPU_CLK_UNHALTED.CORE */
 	FIXED_EVENT_CONSTRAINT(0x0300, 2),	/* CPU_CLK_UNHALTED.REF */
 	FIXED_EVENT_CONSTRAINT(0x0400, 3),	/* SLOTS */
arch/x86/include/asm/msr-index.h +1 -0
index 391812e0384e..f312b6f6ac48 100644
@@ -432,6 +432,7 @@
 #define MSR_AMD64_IBSOP_REG_MASK	((1UL<<MSR_AMD64_IBSOP_REG_COUNT)-1)
 #define MSR_AMD64_IBSCTL		0xc001103a
 #define MSR_AMD64_IBSBRTARGET		0xc001103b
+#define MSR_AMD64_ICIBSEXTDCTL		0xc001103c
 #define MSR_AMD64_IBSOPDATA4		0xc001103d
 #define MSR_AMD64_IBS_REG_COUNT_MAX	8 /* includes MSR_AMD64_IBSBRTARGET */
 #define MSR_AMD64_SEV			0xc0010131
arch/x86/kernel/unwind_orc.c +1 -8
index 187a86e0e753..f29f015a5e7f 100644
@@ -311,19 +311,12 @@ EXPORT_SYMBOL_GPL(unwind_get_return_address);
 
 unsigned long *unwind_get_return_address_ptr(struct unwind_state *state)
 {
-	struct task_struct *task = state->task;
-
 	if (unwind_done(state))
 		return NULL;
 
 	if (state->regs)
 		return &state->regs->ip;
 
-	if (task != current && state->sp == task->thread.sp) {
-		struct inactive_task_frame *frame = (void *)task->thread.sp;
-		return &frame->ret_addr;
-	}
-
 	if (state->sp)
 		return (unsigned long *)state->sp - 1;
 
@@ -653,7 +646,7 @@ void __unwind_start(struct unwind_state *state, struct task_struct *task,
 	} else {
 		struct inactive_task_frame *frame = (void *)task->thread.sp;
 
-		state->sp = task->thread.sp;
+		state->sp = task->thread.sp + sizeof(*frame);
 		state->bp = READ_ONCE_NOCHECK(frame->bp);
 		state->ip = READ_ONCE_NOCHECK(frame->ret_addr);
 		state->signal = (void *)state->ip == ret_from_fork;
drivers/acpi/acpi_dbg.c +3 -0
index 7a265c2171c0..cc4b509bad94 100644
@@ -749,6 +749,9 @@ int __init acpi_aml_init(void)
 {
 	int ret;
 
+	if (acpi_disabled)
+		return -ENODEV;
+
 	/* Initialize AML IO interface */
 	mutex_init(&acpi_aml_io.lock);
 	init_waitqueue_head(&acpi_aml_io.wait);
drivers/acpi/acpi_extlog.c +3 -3
index 8596a106a933..91d0b0fc392b 100644
@@ -223,9 +223,9 @@ static int __init extlog_init(void)
 	u64 cap;
 	int rc;
 
-	rdmsrl(MSR_IA32_MCG_CAP, cap);
-
-	if (!(cap & MCG_ELOG_P) || !extlog_get_l1addr())
+	if (rdmsrl_safe(MSR_IA32_MCG_CAP, &cap) ||
+	    !(cap & MCG_ELOG_P) ||
+	    !extlog_get_l1addr())
 		return -ENODEV;
 
 	if (edac_get_report_status() == EDAC_REPORTING_FORCE) {
drivers/acpi/button.c +7 -6
index 985afc62da82..690bfe67e643 100644
@@ -136,6 +136,7 @@ struct acpi_button {
 	int last_state;
 	ktime_t last_time;
 	bool suspended;
+	bool lid_state_initialized;
 };
 
 static BLOCKING_NOTIFIER_HEAD(acpi_lid_notifier);
@@ -391,6 +392,8 @@ static int acpi_lid_update_state(struct acpi_device *device,
 
 static void acpi_lid_initialize_state(struct acpi_device *device)
 {
+	struct acpi_button *button = acpi_driver_data(device);
+
 	switch (lid_init_state) {
 	case ACPI_BUTTON_LID_INIT_OPEN:
 		(void)acpi_lid_notify_state(device, 1);
@@ -402,13 +405,14 @@ static void acpi_lid_initialize_state(struct acpi_device *device)
 	default:
 		break;
 	}
+
+	button->lid_state_initialized = true;
 }
 
 static void acpi_button_notify(struct acpi_device *device, u32 event)
 {
 	struct acpi_button *button = acpi_driver_data(device);
 	struct input_dev *input;
-	int users;
 
 	switch (event) {
 	case ACPI_FIXED_HARDWARE_EVENT:
@@ -417,10 +421,7 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
 	case ACPI_BUTTON_NOTIFY_STATUS:
 		input = button->input;
 		if (button->type == ACPI_BUTTON_TYPE_LID) {
-			mutex_lock(&button->input->mutex);
-			users = button->input->users;
-			mutex_unlock(&button->input->mutex);
-			if (users)
+			if (button->lid_state_initialized)
 				acpi_lid_update_state(device, true);
 		} else {
 			int keycode;
@@ -465,7 +466,7 @@ static int acpi_button_resume(struct device *dev)
 	struct acpi_button *button = acpi_driver_data(device);
 
 	button->suspended = false;
-	if (button->type == ACPI_BUTTON_TYPE_LID && button->input->users) {
+	if (button->type == ACPI_BUTTON_TYPE_LID) {
 		button->last_state = !!acpi_lid_evaluate_state(device);
 		button->last_time = ktime_get();
 		acpi_lid_initialize_state(device);
drivers/acpi/ec.c +3 -7
index 1ec55345252b..c64001e789ed 100644
@@ -1968,20 +1968,16 @@ bool acpi_ec_dispatch_gpe(void)
 	if (acpi_any_gpe_status_set(first_ec->gpe))
 		return true;
 
-	if (ec_no_wakeup)
-		return false;
-
 	/*
 	 * Dispatch the EC GPE in-band, but do not report wakeup in any case
 	 * to allow the caller to process events properly after that.
 	 */
 	ret = acpi_dispatch_gpe(NULL, first_ec->gpe);
-	if (ret == ACPI_INTERRUPT_HANDLED) {
+	if (ret == ACPI_INTERRUPT_HANDLED)
 		pm_pr_dbg("EC GPE dispatched\n");
 
-		/* Flush the event and query workqueues. */
-		acpi_ec_flush_work();
-	}
+	/* Flush the event and query workqueues. */
+	acpi_ec_flush_work();
 
 	return false;
 }
drivers/acpi/hmat/hmat.c +2 -1
index 8b0de8a3c647..0f1c939b7e90 100644
@@ -403,7 +403,8 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade
 		pr_info("HMAT: Memory Flags:%04x Processor Domain:%d Memory Domain:%d\n",
 			p->flags, p->processor_PD, p->memory_PD);
 
-	if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) {
+	if ((hmat_revision == 1 && p->flags & ACPI_HMAT_MEMORY_PD_VALID) ||
+	    hmat_revision > 1) {
 		target = find_mem_target(p->memory_PD);
 		if (!target) {
 			pr_debug("HMAT: Memory Domain missing from SRAT\n");
drivers/acpi/numa.c +1 -1
index eadbf90e65d1..85e01752fbe4 100644
@@ -31,7 +31,7 @@ int acpi_numa __initdata;
 
 int pxm_to_node(int pxm)
 {
-	if (pxm < 0)
+	if (pxm < 0 || pxm >= MAX_PXM_DOMAINS || numa_off)
 		return NUMA_NO_NODE;
 	return pxm_to_node_map[pxm];
 }
drivers/acpi/video_detect.c +9 -0
index 5bcb4c01ec5f..55af78b55c51 100644
@@ -282,6 +282,15 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "530U4E/540U4E"),
 		},
 	},
+	/* https://bugs.launchpad.net/bugs/1894667 */
+	{
+	 .callback = video_detect_force_video,
+	 .ident = "HP 635 Notebook",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "HP 635 Notebook PC"),
+		},
+	},
 
 	/* Non win8 machines which need native backlight nevertheless */
 	{
drivers/ata/sata_nv.c +1 -1
index 18b147c182b9..0514aa7e80e3 100644
@@ -2100,7 +2100,7 @@ static int nv_swncq_sdbfis(struct ata_port *ap)
 	pp->dhfis_bits &= ~done_mask;
 	pp->dmafis_bits &= ~done_mask;
 	pp->sdbfis_bits |= done_mask;
-	ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+	ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 
 	if (!ap->qc_active) {
 		DPRINTK("over\n");
drivers/base/core.c +3 -1
index 94df2ba1bbed..0fde3e9e63ee 100644
@@ -3400,6 +3400,7 @@ static inline bool fwnode_is_primary(struct fwnode_handle *fwnode)
  */
 void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
 {
+	struct device *parent = dev->parent;
 	struct fwnode_handle *fn = dev->fwnode;
 
 	if (fwnode) {
@@ -3414,7 +3415,8 @@ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
 	} else {
 		if (fwnode_is_primary(fn)) {
 			dev->fwnode = fn->secondary;
-			fn->secondary = NULL;
+			if (!(parent && fn == parent->fwnode))
+				fn->secondary = ERR_PTR(-ENODEV);
 		} else {
 			dev->fwnode = NULL;
 		}
drivers/base/power/runtime.c +1 -4
index 48616f358854..4244e22e4b40 100644
@@ -291,8 +291,7 @@ static int rpm_get_suppliers(struct device *dev)
 				device_links_read_lock_held()) {
 		int retval;
 
-		if (!(link->flags & DL_FLAG_PM_RUNTIME) ||
-		    READ_ONCE(link->status) == DL_STATE_SUPPLIER_UNBIND)
+		if (!(link->flags & DL_FLAG_PM_RUNTIME))
 			continue;
 
 		retval = pm_runtime_get_sync(link->supplier);
@@ -312,8 +311,6 @@ static void rpm_put_suppliers(struct device *dev)
 
 	list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
 				device_links_read_lock_held()) {
-		if (READ_ONCE(link->status) == DL_STATE_SUPPLIER_UNBIND)
-			continue;
 
 		while (refcount_dec_not_one(&link->rpm_active))
 			pm_runtime_put(link->supplier);
drivers/block/nbd.c +1 -1
index 7c577cabb9c3..742f8160b6e2 100644
@@ -787,9 +787,9 @@ static void recv_work(struct work_struct *work)
 
 		blk_mq_complete_request(blk_mq_rq_from_pdu(cmd));
 	}
+	nbd_config_put(nbd);
 	atomic_dec(&config->recv_threads);
 	wake_up(&config->recv_wq);
-	nbd_config_put(nbd);
 	kfree(args);
 }
 
drivers/block/xen-blkback/blkback.c +17 -5
index 3666afa639d1..b18f0162cb9c 100644
@@ -202,7 +202,7 @@ static inline void shrink_free_pagepool(struct xen_blkif_ring *ring, int num)
 
 #define vaddr(page) ((unsigned long)pfn_to_kaddr(page_to_pfn(page)))
 
-static int do_block_io_op(struct xen_blkif_ring *ring);
+static int do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags);
 static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 				struct blkif_request *req,
 				struct pending_req *pending_req);
@@ -615,6 +615,8 @@ int xen_blkif_schedule(void *arg)
 	struct xen_vbd *vbd = &blkif->vbd;
 	unsigned long timeout;
 	int ret;
+	bool do_eoi;
+	unsigned int eoi_flags = XEN_EOI_FLAG_SPURIOUS;
 
 	set_freezable();
 	while (!kthread_should_stop()) {
@@ -639,16 +641,23 @@ int xen_blkif_schedule(void *arg)
 		if (timeout == 0)
 			goto purge_gnt_list;
 
+		do_eoi = ring->waiting_reqs;
+
 		ring->waiting_reqs = 0;
 		smp_mb(); /* clear flag *before* checking for work */
 
-		ret = do_block_io_op(ring);
+		ret = do_block_io_op(ring, &eoi_flags);
 		if (ret > 0)
 			ring->waiting_reqs = 1;
 		if (ret == -EACCES)
 			wait_event_interruptible(ring->shutdown_wq,
 						 kthread_should_stop());
 
+		if (do_eoi && !ring->waiting_reqs) {
+			xen_irq_lateeoi(ring->irq, eoi_flags);
+			eoi_flags |= XEN_EOI_FLAG_SPURIOUS;
+		}
+
 purge_gnt_list:
 		if (blkif->vbd.feature_gnt_persistent &&
 		    time_after(jiffies, ring->next_lru)) {
@@ -1121,7 +1130,7 @@ static void end_block_io_op(struct bio *bio)
  * and transmute  it to the block API to hand it over to the proper block disk.
  */
 static int
-__do_block_io_op(struct xen_blkif_ring *ring)
+__do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 {
 	union blkif_back_rings *blk_rings = &ring->blk_rings;
 	struct blkif_request req;
@@ -1144,6 +1153,9 @@ __do_block_io_op(struct xen_blkif_ring *ring)
 		if (RING_REQUEST_CONS_OVERFLOW(&blk_rings->common, rc))
 			break;
 
+		/* We've seen a request, so clear spurious eoi flag. */
+		*eoi_flags &= ~XEN_EOI_FLAG_SPURIOUS;
+
 		if (kthread_should_stop()) {
 			more_to_do = 1;
 			break;
@@ -1202,13 +1214,13 @@ __do_block_io_op(struct xen_blkif_ring *ring)
 }
 
 static int
-do_block_io_op(struct xen_blkif_ring *ring)
+do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 {
 	union blkif_back_rings *blk_rings = &ring->blk_rings;
 	int more_to_do;
 
 	do {
-		more_to_do = __do_block_io_op(ring);
+		more_to_do = __do_block_io_op(ring, eoi_flags);
 		if (more_to_do)
 			break;
 
drivers/block/xen-blkback/xenbus.c +2 -3
index c4cd68116e7f..192ca58cc3c7 100644
@@ -229,9 +229,8 @@ static int xen_blkif_map(struct xen_blkif_ring *ring, grant_ref_t *gref,
 		BUG();
 	}
 
-	err = bind_interdomain_evtchn_to_irqhandler(blkif->domid, evtchn,
-						    xen_blkif_be_int, 0,
-						    "blkif-backend", ring);
+	err = bind_interdomain_evtchn_to_irqhandler_lateeoi(blkif->domid,
+			evtchn, xen_blkif_be_int, 0, "blkif-backend", ring);
 	if (err < 0) {
 		xenbus_unmap_ring_vfree(blkif->be->dev, ring->blk_ring);
 		ring->blk_rings.common.sring = NULL;
drivers/bus/fsl-mc/mc-io.c +6 -1
index d9629fc13a15..0a4a387b615d 100644
@@ -129,7 +129,12 @@ int __must_check fsl_create_mc_io(struct device *dev,
  */
 void fsl_destroy_mc_io(struct fsl_mc_io *mc_io)
 {
-	struct fsl_mc_device *dpmcp_dev = mc_io->dpmcp_dev;
+	struct fsl_mc_device *dpmcp_dev;
+
+	if (!mc_io)
+		return;
+
+	dpmcp_dev = mc_io->dpmcp_dev;
 
 	if (dpmcp_dev)
 		fsl_mc_io_unset_dpmcp(mc_io);
drivers/clk/ti/clockdomain.c +2 -0
index 423a99b9f10c..8d0dea188a28 100644
@@ -146,10 +146,12 @@ static void __init of_ti_clockdomain_setup(struct device_node *node)
 		if (!omap2_clk_is_hw_omap(clk_hw)) {
 			pr_warn("can't setup clkdm for basic clk %s\n",
 				__clk_get_name(clk));
+			clk_put(clk);
 			continue;
 		}
 		to_clk_hw_omap(clk_hw)->clkdm_name = clkdm_name;
 		omap2_init_clk_clkdm(clk_hw);
+		clk_put(clk);
 	}
 }
 
drivers/cpufreq/acpi-cpufreq.c +2 -1
index d6f7df33ab8c..4195834a4591 100644
@@ -688,7 +688,8 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 		cpumask_copy(policy->cpus, topology_core_cpumask(cpu));
 	}
 
-	if (check_amd_hwpstate_cpu(cpu) && !acpi_pstate_strict) {
+	if (check_amd_hwpstate_cpu(cpu) && boot_cpu_data.x86 < 0x19 &&
+	    !acpi_pstate_strict) {
 		cpumask_clear(policy->cpus);
 		cpumask_set_cpu(cpu, policy->cpus);
 		cpumask_copy(data->freqdomain_cpus,
drivers/cpufreq/sti-cpufreq.c +4 -2
index 8f16bbb164b8..2855b7878a20 100644
@@ -141,7 +141,8 @@ static const struct reg_field sti_stih407_dvfs_regfields[DVFS_MAX_REGFIELDS] = {
 static const struct reg_field *sti_cpufreq_match(void)
 {
 	if (of_machine_is_compatible("st,stih407") ||
-	    of_machine_is_compatible("st,stih410"))
+	    of_machine_is_compatible("st,stih410") ||
+	    of_machine_is_compatible("st,stih418"))
 		return sti_stih407_dvfs_regfields;
 
 	return NULL;
@@ -258,7 +259,8 @@ static int sti_cpufreq_init(void)
 	int ret;
 
 	if ((!of_machine_is_compatible("st,stih407")) &&
-		(!of_machine_is_compatible("st,stih410")))
+		(!of_machine_is_compatible("st,stih410")) &&
+		(!of_machine_is_compatible("st,stih418")))
 		return -ENODEV;
 
 	ddata.cpu = get_cpu_device(0);
drivers/dma/dma-jz4780.c +4 -3
index 0ecb724b394f..e27043427653 100644
@@ -639,11 +639,11 @@ static enum dma_status jz4780_dma_tx_status(struct dma_chan *chan,
 	unsigned long flags;
 	unsigned long residue = 0;
 
+	spin_lock_irqsave(&jzchan->vchan.lock, flags);
+
 	status = dma_cookie_status(chan, cookie, txstate);
 	if ((status == DMA_COMPLETE) || (txstate == NULL))
-		return status;
-
-	spin_lock_irqsave(&jzchan->vchan.lock, flags);
+		goto out_unlock_irqrestore;
 
 	vdesc = vchan_find_desc(&jzchan->vchan, cookie);
 	if (vdesc) {
@@ -660,6 +660,7 @@ static enum dma_status jz4780_dma_tx_status(struct dma_chan *chan,
 	    && jzchan->desc->status & (JZ_DMA_DCS_AR | JZ_DMA_DCS_HLT))
 		status = DMA_ERROR;
 
+out_unlock_irqrestore:
 	spin_unlock_irqrestore(&jzchan->vchan.lock, flags);
 	return status;
 }
drivers/extcon/extcon-ptn5150.c +4 -4
index d1c997599390..5f5252752644 100644
@@ -127,7 +127,7 @@ static void ptn5150_irq_work(struct work_struct *work)
 			case PTN5150_DFP_ATTACHED:
 				extcon_set_state_sync(info->edev,
 						EXTCON_USB_HOST, false);
-				gpiod_set_value(info->vbus_gpiod, 0);
+				gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 				extcon_set_state_sync(info->edev, EXTCON_USB,
 						true);
 				break;
@@ -138,9 +138,9 @@ static void ptn5150_irq_work(struct work_struct *work)
 					PTN5150_REG_CC_VBUS_DETECTION_MASK) >>
 					PTN5150_REG_CC_VBUS_DETECTION_SHIFT);
 				if (vbus)
-					gpiod_set_value(info->vbus_gpiod, 0);
+					gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 				else
-					gpiod_set_value(info->vbus_gpiod, 1);
+					gpiod_set_value_cansleep(info->vbus_gpiod, 1);
 
 				extcon_set_state_sync(info->edev,
 						EXTCON_USB_HOST, true);
@@ -156,7 +156,7 @@ static void ptn5150_irq_work(struct work_struct *work)
 					EXTCON_USB_HOST, false);
 			extcon_set_state_sync(info->edev,
 					EXTCON_USB, false);
-			gpiod_set_value(info->vbus_gpiod, 0);
+			gpiod_set_value_cansleep(info->vbus_gpiod, 0);
 		}
 	}
 
drivers/firmware/arm_scmi/base.c +2 -0
index f804e8af6521..f986ee8919f0 100644
@@ -173,6 +173,8 @@ static int scmi_base_implementation_list_get(const struct scmi_handle *handle,
 			protocols_imp[tot_num_ret + loop] = *(list + loop);
 
 		tot_num_ret += loop_num_ret;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 	} while (loop_num_ret);
 
 	scmi_xfer_put(handle, t);
drivers/firmware/arm_scmi/clock.c +2 -0
index 32526a793f3a..38400a8d0ca8 100644
@@ -177,6 +177,8 @@ scmi_clock_describe_rates_get(const struct scmi_handle *handle, u32 clk_id,
 		}
 
 		tot_rate_cnt += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
drivers/firmware/arm_scmi/common.h +2 -0
index 5237c2ff79fe..9a680b9af9e5 100644
@@ -103,6 +103,8 @@ int scmi_do_xfer_with_response(const struct scmi_handle *h,
 			       struct scmi_xfer *xfer);
 int scmi_xfer_get_init(const struct scmi_handle *h, u8 msg_id, u8 prot_id,
 		       size_t tx_size, size_t rx_size, struct scmi_xfer **p);
+void scmi_reset_rx_to_maxsz(const struct scmi_handle *handle,
+			    struct scmi_xfer *xfer);
 int scmi_handle_put(const struct scmi_handle *handle);
 struct scmi_handle *scmi_handle_get(struct device *dev);
 void scmi_set_handle(struct scmi_device *scmi_dev);
drivers/firmware/arm_scmi/driver.c +8 -0
index 3eb0382491ce..11078199abed 100644
@@ -481,6 +481,14 @@ int scmi_do_xfer(const struct scmi_handle *handle, struct scmi_xfer *xfer)
 	return ret;
 }
 
+void scmi_reset_rx_to_maxsz(const struct scmi_handle *handle,
+			    struct scmi_xfer *xfer)
+{
+	struct scmi_info *info = handle_to_scmi_info(handle);
+
+	xfer->rx.len = info->desc->max_msg_size;
+}
+
 #define SCMI_MAX_RESPONSE_TIMEOUT	(2 * MSEC_PER_SEC)
 
 /**
drivers/firmware/arm_scmi/perf.c +2 -0
index 601af4edad5e..129a2887e964 100644
@@ -281,6 +281,8 @@ scmi_perf_describe_levels_get(const struct scmi_handle *handle, u32 domain,
 		}
 
 		tot_opp_cnt += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
drivers/firmware/arm_scmi/reset.c +1 -3
index ab42c21c5517..6d223f345b6c 100644
@@ -35,9 +35,7 @@ struct scmi_msg_reset_domain_reset {
 #define EXPLICIT_RESET_ASSERT	BIT(1)
 #define ASYNCHRONOUS_RESET	BIT(2)
 	__le32 reset_state;
-#define ARCH_RESET_TYPE		BIT(31)
-#define COLD_RESET_STATE	BIT(0)
-#define ARCH_COLD_RESET		(ARCH_RESET_TYPE | COLD_RESET_STATE)
+#define ARCH_COLD_RESET		0
 };
 
 struct reset_dom_info {
drivers/firmware/arm_scmi/sensors.c +2 -0
index a400ea805fc2..931208bc48f1 100644
@@ -154,6 +154,8 @@ static int scmi_sensor_description_get(const struct scmi_handle *handle,
 		}
 
 		desc_index += num_returned;
+
+		scmi_reset_rx_to_maxsz(handle, t);
 		/*
 		 * check for both returned and remaining to avoid infinite
 		 * loop due to buggy firmware
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -1
index 4105fbf57167..29141bff4b57 100644
@@ -3890,7 +3890,7 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,
 
 		amdgpu_device_lock_adev(tmp_adev, false);
 		r = amdgpu_device_pre_asic_reset(tmp_adev,
-						 NULL,
+						 (tmp_adev == adev) ? job : NULL,
 						 &need_full_reset);
 		/*TODO Should we stop ?*/
 		if (r) {
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +10 -0
index 5fa5158d18ee..9d61d1b7a569 100644
@@ -561,6 +561,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
 	struct ww_acquire_ctx ticket;
 	struct list_head list, duplicates;
 	uint64_t va_flags;
+	uint64_t vm_size;
 	int r = 0;
 
 	if (args->va_address < AMDGPU_VA_RESERVED_SIZE) {
@@ -581,6 +582,15 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
 
 	args->va_address &= AMDGPU_GMC_HOLE_MASK;
 
+	vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;
+	vm_size -= AMDGPU_VA_RESERVED_SIZE;
+	if (args->va_address + args->map_size > vm_size) {
+		dev_dbg(&dev->pdev->dev,
+			"va_address 0x%llx is in top reserved area 0x%llx\n",
+			args->va_address + args->map_size, vm_size);
+		return -EINVAL;
+	}
+
 	if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) {
 		dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n",
 			args->flags);
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +2 -2
index 2eda3a8c330d..4a64825b53cb 100644
@@ -105,8 +105,8 @@ struct amdgpu_bo_list_entry;
 #define AMDGPU_MMHUB_0				1
 #define AMDGPU_MMHUB_1				2
 
-/* hardcode that limit for now */
-#define AMDGPU_VA_RESERVED_SIZE			(1ULL << 20)
+/* Reserve 2MB at top/bottom of address space for kernel use */
+#define AMDGPU_VA_RESERVED_SIZE			(2ULL << 20)
 
 /* max vmids dedicated for process */
 #define AMDGPU_VM_MAX_RESERVED_VMID	1
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v10.c +3 -2
index 72e4d61ac752..ad0593342333 100644
@@ -58,8 +58,9 @@ static int update_qpd_v10(struct device_queue_manager *dqm,
 	/* check if sh_mem_config register already configured */
 	if (qpd->sh_mem_config == 0) {
 		qpd->sh_mem_config =
-				SH_MEM_ALIGNMENT_MODE_UNALIGNED <<
-					SH_MEM_CONFIG__ALIGNMENT_MODE__SHIFT;
+			(SH_MEM_ALIGNMENT_MODE_UNALIGNED <<
+				SH_MEM_CONFIG__ALIGNMENT_MODE__SHIFT) |
+			(3 << SH_MEM_CONFIG__INITIAL_INST_PREFETCH__SHIFT);
 #if 0
 		/* TODO:
 		 *    This shouldn't be an issue with Navi10.  Verify.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +7 -0
index 7c5808503173..d2dd387c95d8 100644
@@ -3956,6 +3956,13 @@ static void amdgpu_dm_connector_destroy(struct drm_connector *connector)
 	struct amdgpu_device *adev = connector->dev->dev_private;
 	struct amdgpu_display_manager *dm = &adev->dm;
 
+	/*
+	 * Call only if mst_mgr was iniitalized before since it's not done
+	 * for all connector types.
+	 */
+	if (aconnector->mst_mgr.dev)
+		drm_dp_mst_topology_mgr_destroy(&aconnector->mst_mgr);
+
 #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) ||\
 	defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE)
 
drivers/gpu/drm/amd/display/dc/core/dc_link.c +1 -1
index 3efee7b3378a..47cefc05fd3f 100644
@@ -2268,7 +2268,7 @@ enum dc_status dc_link_validate_mode_timing(
 	/* A hack to avoid failing any modes for EDID override feature on
 	 * topology change such as lower quality cable for DP or different dongle
 	 */
-	if (link->remote_sinks[0])
+	if (link->remote_sinks[0] && link->remote_sinks[0]->sink_signal == SIGNAL_TYPE_VIRTUAL)
 		return DC_OK;
 
 	/* Passive Dongle */
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c +2 -2
index ddf66046616d..6718777c826d 100644
@@ -898,10 +898,10 @@ void enc1_stream_encoder_dp_blank(
 	 */
 	REG_UPDATE(DP_VID_STREAM_CNTL, DP_VID_STREAM_DIS_DEFER, 2);
 	/* Larger delay to wait until VBLANK - use max retry of
-	 * 10us*5000=50ms. This covers 41.7ms of minimum 24 Hz mode +
+	 * 10us*10200=102ms. This covers 100.0ms of minimum 10 Hz mode +
 	 * a little more because we may not trust delay accuracy.
 	 */
-	max_retries = DP_BLANK_MAX_RETRY * 250;
+	max_retries = DP_BLANK_MAX_RETRY * 501;
 
 	/* disable DP stream */
 	REG_UPDATE(DP_VID_STREAM_CNTL, DP_VID_STREAM_ENABLE, 0);
drivers/gpu/drm/amd/display/dc/gpio/gpio_base.c +2 -2
index f8f85490e77e..8a6fb58d0199 100644
@@ -63,13 +63,13 @@ enum gpio_result dal_gpio_open_ex(
 	enum gpio_mode mode)
 {
 	if (gpio->pin) {
-		ASSERT_CRITICAL(false);
+		BREAK_TO_DEBUGGER();
 		return GPIO_RESULT_ALREADY_OPENED;
 	}
 
 	// No action if allocation failed during gpio construct
 	if (!gpio->hw_container.ddc) {
-		ASSERT_CRITICAL(false);
+		BREAK_TO_DEBUGGER();
 		return GPIO_RESULT_NON_SPECIFIC_ERROR;
 	}
 	gpio->mode = mode;
drivers/gpu/drm/amd/display/dc/os_types.h +1 -1
index 30ec80ac6fc8..8da322582b68 100644
@@ -57,7 +57,7 @@
  * general debug capabilities
  *
  */
-#if defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB)
+#if defined(CONFIG_DEBUG_KERNEL_DC) && (defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB))
 #define ASSERT_CRITICAL(expr) do {	\
 	if (WARN_ON(!(expr))) { \
 		kgdb_breakpoint(); \
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c +1 -1
index 1b55f037ba4a..35e6cbe805eb 100644
@@ -2864,7 +2864,7 @@ static int smu7_vblank_too_short(struct pp_hwmgr *hwmgr,
 		if (hwmgr->is_kicker)
 			switch_limit_us = data->is_memory_gddr5 ? 450 : 150;
 		else
-			switch_limit_us = data->is_memory_gddr5 ? 190 : 150;
+			switch_limit_us = data->is_memory_gddr5 ? 200 : 150;
 		break;
 	case CHIP_VEGAM:
 		switch_limit_us = 30;
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +10 -2
index 6e81e5db57f2..b050fd1f3d20 100644
@@ -295,8 +295,12 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
 				       const struct i2c_device_id *id)
 {
 	struct device *dev = &stdp4028_i2c->dev;
+	int ret;
+
+	ret = ge_b850v3_lvds_init(dev);
 
-	ge_b850v3_lvds_init(dev);
+	if (ret)
+		return ret;
 
 	ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
 	i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
@@ -354,8 +358,12 @@ static int stdp2690_ge_b850v3_fw_probe(struct i2c_client *stdp2690_i2c,
 				       const struct i2c_device_id *id)
 {
 	struct device *dev = &stdp2690_i2c->dev;
+	int ret;
+
+	ret = ge_b850v3_lvds_init(dev);
 
-	ge_b850v3_lvds_init(dev);
+	if (ret)
+		return ret;
 
 	ge_b850v3_lvds_ptr->stdp2690_i2c = stdp2690_i2c;
 	i2c_set_clientdata(stdp2690_i2c, ge_b850v3_lvds_ptr);
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c +7 -2
index 675442bfc1bd..77384c49fb8d 100644
@@ -365,7 +365,6 @@ static void dw_mipi_message_config(struct dw_mipi_dsi *dsi,
 	if (lpm)
 		val |= CMD_MODE_ALL_LP;
 
-	dsi_write(dsi, DSI_LPCLK_CTRL, lpm ? 0 : PHY_TXREQUESTCLKHS);
 	dsi_write(dsi, DSI_CMD_MODE_CFG, val);
 }
 
@@ -541,16 +540,22 @@ static void dw_mipi_dsi_video_mode_config(struct dw_mipi_dsi *dsi)
 static void dw_mipi_dsi_set_mode(struct dw_mipi_dsi *dsi,
 				 unsigned long mode_flags)
 {
+	u32 val;
+
 	dsi_write(dsi, DSI_PWR_UP, RESET);
 
 	if (mode_flags & MIPI_DSI_MODE_VIDEO) {
 		dsi_write(dsi, DSI_MODE_CFG, ENABLE_VIDEO_MODE);
 		dw_mipi_dsi_video_mode_config(dsi);
-		dsi_write(dsi, DSI_LPCLK_CTRL, PHY_TXREQUESTCLKHS);
 	} else {
 		dsi_write(dsi, DSI_MODE_CFG, ENABLE_CMD_MODE);
 	}
 
+	val = PHY_TXREQUESTCLKHS;
+	if (dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)
+		val |= AUTO_CLKLANE_CTRL;
+	dsi_write(dsi, DSI_LPCLK_CTRL, val);
+
 	dsi_write(dsi, DSI_PWR_UP, POWERUP);
 }
 
drivers/gpu/drm/i915/i915_drv.h +5 -1
index 89b6112bd66b..126a0eb6e054 100644
@@ -33,6 +33,8 @@
 #include <uapi/drm/i915_drm.h>
 #include <uapi/drm/drm_fourcc.h>
 
+#include <asm/hypervisor.h>
+
 #include <linux/io-mapping.h>
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
@@ -2197,7 +2199,9 @@ static inline bool intel_vtd_active(void)
 	if (intel_iommu_gfx_mapped)
 		return true;
 #endif
-	return false;
+
+	/* Running as a guest, we assume the host is enforcing VT'd */
+	return !hypervisor_is_type(X86_HYPER_NATIVE);
 }
 
 static inline bool intel_scanout_needs_vtd_wa(struct drm_i915_private *dev_priv)
drivers/gpu/drm/ttm/ttm_bo.c +1 -1
index 3ce8ad7603c7..3ffcbaa13878 100644
@@ -761,7 +761,7 @@ bool ttm_bo_eviction_valuable(struct ttm_buffer_object *bo,
 	/* Don't evict this BO if it's outside of the
 	 * requested placement range
 	 */
-	if (place->fpfn >= (bo->mem.start + bo->mem.size) ||
+	if (place->fpfn >= (bo->mem.start + bo->mem.num_pages) ||
 	    (place->lpfn && place->lpfn <= bo->mem.start))
 		return false;
 
drivers/hid/wacom_wac.c +3 -1
index 1c96809b51c9..b74acbd5997b 100644
@@ -2773,7 +2773,9 @@ static int wacom_wac_collection(struct hid_device *hdev, struct hid_report *repo
 	if (report->type != HID_INPUT_REPORT)
 		return -1;
 
-	if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
+	if (WACOM_PAD_FIELD(field))
+		return 0;
+	else if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
 		wacom_wac_pen_report(hdev, report);
 	else if (WACOM_FINGER_FIELD(field) && wacom->wacom_wac.touch_input)
 		wacom_wac_finger_report(hdev, report);
drivers/hwtracing/coresight/coresight-priv.h +2 -1
index 82e563cdc879..dfd24b85a577 100644
@@ -147,7 +147,8 @@ static inline void coresight_write_reg_pair(void __iomem *addr, u64 val,
 void coresight_disable_path(struct list_head *path);
 int coresight_enable_path(struct list_head *path, u32 mode, void *sink_data);
 struct coresight_device *coresight_get_sink(struct list_head *path);
-struct coresight_device *coresight_get_enabled_sink(bool reset);
+struct coresight_device *
+coresight_get_enabled_sink(struct coresight_device *source);
 struct coresight_device *coresight_get_sink_by_id(u32 id);
 struct list_head *coresight_build_path(struct coresight_device *csdev,
 				       struct coresight_device *sink);
drivers/hwtracing/coresight/coresight.c +27 -35

88 lines not on this page · raw message

drivers/i2c/busses/i2c-imx.c +13 -11
index a3b61336fe55..9543c9816eed 100644
@@ -1112,14 +1112,6 @@ static int i2c_imx_probe(struct platform_device *pdev)
 		return ret;
 	}
 
-	/* Request IRQ */
-	ret = devm_request_irq(&pdev->dev, irq, i2c_imx_isr, IRQF_SHARED,
-				pdev->name, i2c_imx);
-	if (ret) {
-		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
-		goto clk_disable;
-	}
-
 	/* Init queue */
 	init_waitqueue_head(&i2c_imx->queue);
 
@@ -1138,6 +1130,14 @@ static int i2c_imx_probe(struct platform_device *pdev)
 	if (ret < 0)
 		goto rpm_disable;
 
+	/* Request IRQ */
+	ret = request_threaded_irq(irq, i2c_imx_isr, NULL, IRQF_SHARED,
+				   pdev->name, i2c_imx);
+	if (ret) {
+		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
+		goto rpm_disable;
+	}
+
 	/* Set up clock divider */
 	i2c_imx->bitrate = IMX_I2C_BIT_RATE;
 	ret = of_property_read_u32(pdev->dev.of_node,
@@ -1180,13 +1180,12 @@ static int i2c_imx_probe(struct platform_device *pdev)
 
 clk_notifier_unregister:
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	free_irq(irq, i2c_imx);
 rpm_disable:
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 	pm_runtime_set_suspended(&pdev->dev);
 	pm_runtime_dont_use_autosuspend(&pdev->dev);
-
-clk_disable:
 	clk_disable_unprepare(i2c_imx->clk);
 	return ret;
 }
@@ -1194,7 +1193,7 @@ static int i2c_imx_probe(struct platform_device *pdev)
 static int i2c_imx_remove(struct platform_device *pdev)
 {
 	struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev);
-	int ret;
+	int irq, ret;
 
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0)
@@ -1214,6 +1213,9 @@ static int i2c_imx_remove(struct platform_device *pdev)
 	imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2SR);
 
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	irq = platform_get_irq(pdev, 0);
+	if (irq >= 0)
+		free_irq(irq, i2c_imx);
 	clk_disable_unprepare(i2c_imx->clk);
 
 	pm_runtime_put_noidle(&pdev->dev);
drivers/iio/adc/rcar-gyroadc.c +15 -6
index c37f201294b2..b1fb1fd763fc 100644
@@ -357,7 +357,7 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
 			num_channels = ARRAY_SIZE(rcar_gyroadc_iio_channels_3);
 			break;
 		default:
-			return -EINVAL;
+			goto err_e_inval;
 		}
 
 		/*
@@ -374,7 +374,7 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
 				dev_err(dev,
 					"Failed to get child reg property of ADC \"%pOFn\".\n",
 					child);
-				return ret;
+				goto err_of_node_put;
 			}
 
 			/* Channel number is too high. */
@@ -382,7 +382,7 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
 				dev_err(dev,
 					"Only %i channels supported with %pOFn, but reg = <%i>.\n",
 					num_channels, child, reg);
-				return -EINVAL;
+				goto err_e_inval;
 			}
 		}
 
@@ -391,7 +391,7 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
 			dev_err(dev,
 				"Channel %i uses different ADC mode than the rest.\n",
 				reg);
-			return -EINVAL;
+			goto err_e_inval;
 		}
 
 		/* Channel is valid, grab the regulator. */
@@ -401,7 +401,8 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
 		if (IS_ERR(vref)) {
 			dev_dbg(dev, "Channel %i 'vref' supply not connected.\n",
 				reg);
-			return PTR_ERR(vref);
+			ret = PTR_ERR(vref);
+			goto err_of_node_put;
 		}
 
 		priv->vref[reg] = vref;
@@ -425,8 +426,10 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
 		 * attached to the GyroADC at a time, so if we found it,
 		 * we can stop parsing here.
 		 */
-		if (childmode == RCAR_GYROADC_MODE_SELECT_1_MB88101A)
+		if (childmode == RCAR_GYROADC_MODE_SELECT_1_MB88101A) {
+			of_node_put(child);
 			break;
+		}
 	}
 
 	if (first) {
@@ -435,6 +438,12 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
 	}
 
 	return 0;
+
+err_e_inval:
+	ret = -EINVAL;
+err_of_node_put:
+	of_node_put(child);
+	return ret;
 }
 
 static void rcar_gyroadc_deinit_supplies(struct iio_dev *indio_dev)
drivers/iio/adc/ti-adc0832.c +8 -3
index 6ea39f4bbb37..55abd2fd2ccc 100644
@@ -28,6 +28,12 @@ struct adc0832 {
 	struct regulator *reg;
 	struct mutex lock;
 	u8 mux_bits;
+	/*
+	 * Max size needed: 16x 1 byte ADC data + 8 bytes timestamp
+	 * May be shorter if not all channels are enabled subject
+	 * to the timestamp remaining 8 byte aligned.
+	 */
+	u8 data[24] __aligned(8);
 
 	u8 tx_buf[2] ____cacheline_aligned;
 	u8 rx_buf[2];
@@ -199,7 +205,6 @@ static irqreturn_t adc0832_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc0832 *adc = iio_priv(indio_dev);
-	u8 data[24] = { }; /* 16x 1 byte ADC data + 8 bytes timestamp */
 	int scan_index;
 	int i = 0;
 
@@ -217,10 +222,10 @@ static irqreturn_t adc0832_trigger_handler(int irq, void *p)
 			goto out;
 		}
 
-		data[i] = ret;
+		adc->data[i] = ret;
 		i++;
 	}
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, adc->data,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
drivers/iio/adc/ti-adc12138.c +9 -4
index 68a9dcb8faa2..db476482cc75 100644
@@ -47,6 +47,12 @@ struct adc12138 {
 	struct completion complete;
 	/* The number of cclk periods for the S/H's acquisition time */
 	unsigned int acquisition_time;
+	/*
+	 * Maximum size needed: 16x 2 bytes ADC data + 8 bytes timestamp.
+	 * Less may be need if not all channels are enabled, as long as
+	 * the 8 byte alignment of the timestamp is maintained.
+	 */
+	__be16 data[20] __aligned(8);
 
 	u8 tx_buf[2] ____cacheline_aligned;
 	u8 rx_buf[2];
@@ -329,7 +335,6 @@ static irqreturn_t adc12138_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc12138 *adc = iio_priv(indio_dev);
-	__be16 data[20] = { }; /* 16x 2 bytes ADC data + 8 bytes timestamp */
 	__be16 trash;
 	int ret;
 	int scan_index;
@@ -345,7 +350,7 @@ static irqreturn_t adc12138_trigger_handler(int irq, void *p)
 		reinit_completion(&adc->complete);
 
 		ret = adc12138_start_and_read_conv(adc, scan_chan,
-						   i ? &data[i - 1] : &trash);
+					i ? &adc->data[i - 1] : &trash);
 		if (ret) {
 			dev_warn(&adc->spi->dev,
 				 "failed to start conversion\n");
@@ -362,7 +367,7 @@ static irqreturn_t adc12138_trigger_handler(int irq, void *p)
 	}
 
 	if (i) {
-		ret = adc12138_read_conv_data(adc, &data[i - 1]);
+		ret = adc12138_read_conv_data(adc, &adc->data[i - 1]);
 		if (ret) {
 			dev_warn(&adc->spi->dev,
 				 "failed to get conversion data\n");
@@ -370,7 +375,7 @@ static irqreturn_t adc12138_trigger_handler(int irq, void *p)
 		}
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, adc->data,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
drivers/iio/gyro/itg3200_buffer.c +11 -4
index d3fbe9d86467..1c3c1bd53374 100644
@@ -46,13 +46,20 @@ static irqreturn_t itg3200_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct itg3200 *st = iio_priv(indio_dev);
-	__be16 buf[ITG3200_SCAN_ELEMENTS + sizeof(s64)/sizeof(u16)];
-
-	int ret = itg3200_read_all_channels(st->i2c, buf);
+	/*
+	 * Ensure correct alignment and padding including for the
+	 * timestamp that may be inserted.
+	 */
+	struct {
+		__be16 buf[ITG3200_SCAN_ELEMENTS];
+		s64 ts __aligned(8);
+	} scan;
+
+	int ret = itg3200_read_all_channels(st->i2c, scan.buf);
 	if (ret < 0)
 		goto error_ret;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan, pf->timestamp);
 
 	iio_trigger_notify_done(indio_dev->trig);
 
drivers/iio/light/si1145.c +11 -8
index 982bba0c54e7..cb40345e7b51 100644
@@ -169,6 +169,7 @@ struct si1145_part_info {
  * @part_info:	Part information
  * @trig:	Pointer to iio trigger
  * @meas_rate:	Value of MEAS_RATE register. Only set in HW in auto mode
+ * @buffer:	Used to pack data read from sensor.
  */
 struct si1145_data {
 	struct i2c_client *client;
@@ -180,6 +181,14 @@ struct si1145_data {
 	bool autonomous;
 	struct iio_trigger *trig;
 	int meas_rate;
+	/*
+	 * Ensure timestamp will be naturally aligned if present.
+	 * Maximum buffer size (may be only partly used if not all
+	 * channels are enabled):
+	 *   6*2 bytes channels data + 4 bytes alignment +
+	 *   8 bytes timestamp
+	 */
+	u8 buffer[24] __aligned(8);
 };
 
 /**
@@ -441,12 +450,6 @@ static irqreturn_t si1145_trigger_handler(int irq, void *private)
 	struct iio_poll_func *pf = private;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct si1145_data *data = iio_priv(indio_dev);
-	/*
-	 * Maximum buffer size:
-	 *   6*2 bytes channels data + 4 bytes alignment +
-	 *   8 bytes timestamp
-	 */
-	u8 buffer[24];
 	int i, j = 0;
 	int ret;
 	u8 irq_status = 0;
@@ -479,7 +482,7 @@ static irqreturn_t si1145_trigger_handler(int irq, void *private)
 
 		ret = i2c_smbus_read_i2c_block_data_or_emulated(
 				data->client, indio_dev->channels[i].address,
-				sizeof(u16) * run, &buffer[j]);
+				sizeof(u16) * run, &data->buffer[j]);
 		if (ret < 0)
 			goto done;
 		j += run * sizeof(u16);
@@ -494,7 +497,7 @@ static irqreturn_t si1145_trigger_handler(int irq, void *private)
 			goto done;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
 		iio_get_time_ns(indio_dev));
 
 done:
drivers/infiniband/hw/qedr/qedr_iw_cm.c +1 -0
index e521f3c3dbbf..653ddf30973e 100644
@@ -727,6 +727,7 @@ int qedr_iw_destroy_listen(struct iw_cm_id *cm_id)
 						    listener->qed_handle);
 
 	cm_id->rem_ref(cm_id);
+	kfree(listener);
 	return rc;
 }
 
drivers/input/serio/hil_mlc.c +18 -3
index e1423f7648d6..4c039e4125d9 100644
@@ -74,7 +74,7 @@ EXPORT_SYMBOL(hil_mlc_unregister);
 static LIST_HEAD(hil_mlcs);
 static DEFINE_RWLOCK(hil_mlcs_lock);
 static struct timer_list	hil_mlcs_kicker;
-static int			hil_mlcs_probe;
+static int			hil_mlcs_probe, hil_mlc_stop;
 
 static void hil_mlcs_process(unsigned long unused);
 static DECLARE_TASKLET_DISABLED(hil_mlcs_tasklet, hil_mlcs_process, 0);
@@ -702,9 +702,13 @@ static int hilse_donode(hil_mlc *mlc)
 		if (!mlc->ostarted) {
 			mlc->ostarted = 1;
 			mlc->opacket = pack;
-			mlc->out(mlc);
+			rc = mlc->out(mlc);
 			nextidx = HILSEN_DOZE;
 			write_unlock_irqrestore(&mlc->lock, flags);
+			if (rc) {
+				hil_mlc_stop = 1;
+				return 1;
+			}
 			break;
 		}
 		mlc->ostarted = 0;
@@ -715,8 +719,13 @@ static int hilse_donode(hil_mlc *mlc)
 
 	case HILSE_CTS:
 		write_lock_irqsave(&mlc->lock, flags);
-		nextidx = mlc->cts(mlc) ? node->bad : node->good;
+		rc = mlc->cts(mlc);
+		nextidx = rc ? node->bad : node->good;
 		write_unlock_irqrestore(&mlc->lock, flags);
+		if (rc) {
+			hil_mlc_stop = 1;
+			return 1;
+		}
 		break;
 
 	default:
@@ -780,6 +789,12 @@ static void hil_mlcs_process(unsigned long unused)
 
 static void hil_mlcs_timer(struct timer_list *unused)
 {
+	if (hil_mlc_stop) {
+		/* could not send packet - stop immediately. */
+		pr_warn(PREFIX "HIL seems stuck - Disabling HIL MLC.\n");
+		return;
+	}
+
 	hil_mlcs_probe = 1;
 	tasklet_schedule(&hil_mlcs_tasklet);
 	/* Re-insert the periodic task. */
drivers/input/serio/hp_sdc_mlc.c +4 -4
index 232d30c825bd..3e85e9039374 100644
@@ -210,7 +210,7 @@ static int hp_sdc_mlc_cts(hil_mlc *mlc)
 	priv->tseq[2] = 1;
 	priv->tseq[3] = 0;
 	priv->tseq[4] = 0;
-	__hp_sdc_enqueue_transaction(&priv->trans);
+	return __hp_sdc_enqueue_transaction(&priv->trans);
  busy:
 	return 1;
  done:
@@ -219,7 +219,7 @@ static int hp_sdc_mlc_cts(hil_mlc *mlc)
 	return 0;
 }
 
-static void hp_sdc_mlc_out(hil_mlc *mlc)
+static int hp_sdc_mlc_out(hil_mlc *mlc)
 {
 	struct hp_sdc_mlc_priv_s *priv;
 
@@ -234,7 +234,7 @@ static void hp_sdc_mlc_out(hil_mlc *mlc)
  do_data:
 	if (priv->emtestmode) {
 		up(&mlc->osem);
-		return;
+		return 0;
 	}
 	/* Shouldn't be sending commands when loop may be busy */
 	BUG_ON(down_trylock(&mlc->csem));
@@ -296,7 +296,7 @@ static void hp_sdc_mlc_out(hil_mlc *mlc)
 		BUG_ON(down_trylock(&mlc->csem));
 	}
  enqueue:
-	hp_sdc_enqueue_transaction(&priv->trans);
+	return hp_sdc_enqueue_transaction(&priv->trans);
 }
 
 static int __init hp_sdc_mlc_init(void)
drivers/leds/leds-bcm6328.c +1 -1
index c50d34e2b098..de932755bcb3 100644
@@ -332,7 +332,7 @@ static int bcm6328_led(struct device *dev, struct device_node *nc, u32 reg,
 	led->cdev.brightness_set = bcm6328_led_set;
 	led->cdev.blink_set = bcm6328_blink_set;
 
-	rc = led_classdev_register(dev, &led->cdev);
+	rc = devm_led_classdev_register(dev, &led->cdev);
 	if (rc < 0)
 		return rc;
 
drivers/leds/leds-bcm6358.c +1 -1
index aec285fd21c0..dbb8953334d9 100644
@@ -137,7 +137,7 @@ static int bcm6358_led(struct device *dev, struct device_node *nc, u32 reg,
 
 	led->cdev.brightness_set = bcm6358_led_set;
 
-	rc = led_classdev_register(dev, &led->cdev);
+	rc = devm_led_classdev_register(dev, &led->cdev);
 	if (rc < 0)
 		return rc;
 
drivers/md/md-bitmap.c +1 -1
index 7227d03dbbea..0a6c200e3dcb 100644
@@ -1372,7 +1372,7 @@ __acquires(bitmap->lock)
 	if (bitmap->bp[page].hijacked ||
 	    bitmap->bp[page].map == NULL)
 		csize = ((sector_t)1) << (bitmap->chunkshift +
-					  PAGE_COUNTER_SHIFT - 1);
+					  PAGE_COUNTER_SHIFT);
 	else
 		csize = ((sector_t)1) << bitmap->chunkshift;
 	*blocks = csize - (offset & (csize - 1));
drivers/md/raid5.c +2 -2
index 02acd5d5a848..08a7f97750f7 100644
@@ -2407,8 +2407,6 @@ static int resize_stripes(struct r5conf *conf, int newsize)
 	} else
 		err = -ENOMEM;
 
-	mutex_unlock(&conf->cache_size_mutex);
-
 	conf->slab_cache = sc;
 	conf->active_name = 1-conf->active_name;
 
@@ -2431,6 +2429,8 @@ static int resize_stripes(struct r5conf *conf, int newsize)
 
 	if (!err)
 		conf->pool_size = newsize;
+	mutex_unlock(&conf->cache_size_mutex);
+
 	return err;
 }
 
drivers/media/i2c/imx274.c +5 -3
index 6011cec5e351..e6aa9f32b6a8 100644
@@ -1235,6 +1235,8 @@ static int imx274_s_frame_interval(struct v4l2_subdev *sd,
 	ret = imx274_set_frame_interval(imx274, fi->interval);
 
 	if (!ret) {
+		fi->interval = imx274->frame_interval;
+
 		/*
 		 * exposure time range is decided by frame interval
 		 * need to update it after frame interval changes
@@ -1730,9 +1732,9 @@ static int imx274_set_frame_interval(struct stimx274 *priv,
 		__func__, frame_interval.numerator,
 		frame_interval.denominator);
 
-	if (frame_interval.numerator == 0) {
-		err = -EINVAL;
-		goto fail;
+	if (frame_interval.numerator == 0 || frame_interval.denominator == 0) {
+		frame_interval.denominator = IMX274_DEF_FRAME_RATE;
+		frame_interval.numerator = 1;
 	}
 
 	req_frame_rate = (u32)(frame_interval.denominator
drivers/media/pci/tw5864/tw5864-video.c +6 -0
index 09732eed7eb4..656142c7a2cc 100644
@@ -767,6 +767,9 @@ static int tw5864_enum_frameintervals(struct file *file, void *priv,
 	fintv->type = V4L2_FRMIVAL_TYPE_STEPWISE;
 
 	ret = tw5864_frameinterval_get(input, &frameinterval);
+	if (ret)
+		return ret;
+
 	fintv->stepwise.step = frameinterval;
 	fintv->stepwise.min = frameinterval;
 	fintv->stepwise.max = frameinterval;
@@ -785,6 +788,9 @@ static int tw5864_g_parm(struct file *file, void *priv,
 	cp->capability = V4L2_CAP_TIMEPERFRAME;
 
 	ret = tw5864_frameinterval_get(input, &cp->timeperframe);
+	if (ret)
+		return ret;
+
 	cp->timeperframe.numerator *= input->frame_interval;
 	cp->capturemode = 0;
 	cp->readbuffers = 2;
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c +7 -0
index ee802fc3bcdf..9fa1bc5514f3 100644
@@ -571,6 +571,13 @@ static int mtk_jpeg_queue_setup(struct vb2_queue *q,
 	if (!q_data)
 		return -EINVAL;
 
+	if (*num_planes) {
+		for (i = 0; i < *num_planes; i++)
+			if (sizes[i] < q_data->sizeimage[i])
+				return -EINVAL;
+		return 0;
+	}
+
 	*num_planes = q_data->fmt->colplanes;
 	for (i = 0; i < q_data->fmt->colplanes; i++) {
 		sizes[i] = q_data->sizeimage[i];
drivers/media/usb/uvc/uvc_ctrl.c +16 -11
index a30a8a731eda..36abe47997b0 100644
@@ -1848,30 +1848,35 @@ int uvc_xu_ctrl_query(struct uvc_video_chain *chain,
 {
 	struct uvc_entity *entity;
 	struct uvc_control *ctrl;
-	unsigned int i, found = 0;
+	unsigned int i;
+	bool found;
 	u32 reqflags;
 	u16 size;
 	u8 *data = NULL;
 	int ret;
 
 	/* Find the extension unit. */
+	found = false;
 	list_for_each_entry(entity, &chain->entities, chain) {
 		if (UVC_ENTITY_TYPE(entity) == UVC_VC_EXTENSION_UNIT &&
-		    entity->id == xqry->unit)
+		    entity->id == xqry->unit) {
+			found = true;
 			break;
+		}
 	}
 
-	if (entity->id != xqry->unit) {
+	if (!found) {
 		uvc_trace(UVC_TRACE_CONTROL, "Extension unit %u not found.\n",
 			xqry->unit);
 		return -ENOENT;
 	}
 
 	/* Find the control and perform delayed initialization if needed. */
+	found = false;
 	for (i = 0; i < entity->ncontrols; ++i) {
 		ctrl = &entity->controls[i];
 		if (ctrl->index == xqry->selector - 1) {
-			found = 1;
+			found = true;
 			break;
 		}
 	}
@@ -2028,13 +2033,6 @@ static int uvc_ctrl_add_info(struct uvc_device *dev, struct uvc_control *ctrl,
 		goto done;
 	}
 
-	/*
-	 * Retrieve control flags from the device. Ignore errors and work with
-	 * default flag values from the uvc_ctrl array when the device doesn't
-	 * properly implement GET_INFO on standard controls.
-	 */
-	uvc_ctrl_get_flags(dev, ctrl, &ctrl->info);
-
 	ctrl->initialized = 1;
 
 	uvc_trace(UVC_TRACE_CONTROL, "Added control %pUl/%u to device %s "
@@ -2257,6 +2255,13 @@ static void uvc_ctrl_init_ctrl(struct uvc_device *dev, struct uvc_control *ctrl)
 		if (uvc_entity_match_guid(ctrl->entity, info->entity) &&
 		    ctrl->index == info->index) {
 			uvc_ctrl_add_info(dev, ctrl, info);
+			/*
+			 * Retrieve control flags from the device. Ignore errors
+			 * and work with default flag values from the uvc_ctrl
+			 * array when the device doesn't properly implement
+			 * GET_INFO on standard controls.
+			 */
+			uvc_ctrl_get_flags(dev, ctrl, &ctrl->info);
 			break;
 		 }
 	}
drivers/memory/emif.c +5 -28
index 402c6bc8e621..af296b6fcbbd 100644
@@ -163,35 +163,12 @@ static const struct file_operations emif_mr4_fops = {
 
 static int __init_or_module emif_debugfs_init(struct emif_data *emif)
 {
-	struct dentry	*dentry;
-	int		ret;
-
-	dentry = debugfs_create_dir(dev_name(emif->dev), NULL);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err0;
-	}
-	emif->debugfs_root = dentry;
-
-	dentry = debugfs_create_file("regcache_dump", S_IRUGO,
-			emif->debugfs_root, emif, &emif_regdump_fops);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err1;
-	}
-
-	dentry = debugfs_create_file("mr4", S_IRUGO,
-			emif->debugfs_root, emif, &emif_mr4_fops);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err1;
-	}
-
+	emif->debugfs_root = debugfs_create_dir(dev_name(emif->dev), NULL);
+	debugfs_create_file("regcache_dump", S_IRUGO, emif->debugfs_root, emif,
+			    &emif_regdump_fops);
+	debugfs_create_file("mr4", S_IRUGO, emif->debugfs_root, emif,
+			    &emif_mr4_fops);
 	return 0;
[… more lines in the raw message]

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

drivers/message/fusion/mptscsih.c +8 -5
index 1491561d2e5c..4bc43d8eeb9e 100644

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

drivers/mmc/host/sdhci-acpi.c +37 -0
index b2d924c5e82e..0dc8eafdc81d 100644

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

drivers/mmc/host/sdhci-of-esdhc.c +11 -0
index 66ad46d0ba88..64196c1b1c8f 100644

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

drivers/mmc/host/sdhci-pci-core.c +154 -0

154 lines not on this page · raw message

drivers/mmc/host/sdhci.c +4 -2
index 136f9737713d..a1aeb2e10564 100644

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

drivers/mmc/host/via-sdmmc.c +3 -0
index 8d96ecba1b55..d12a068b0f9e 100644

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

drivers/mtd/ubi/wl.c +13 -0
index 5d77a38dba54..7def041bbe48 100644

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

drivers/net/can/flexcan.c +20 -10
index aaa7ed1dc97e..d59c6c87164f 100644

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

drivers/net/ethernet/broadcom/bnxt/bnxt.c +5 -1
index cdd3764760ed..6f777e9b4b93 100644

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

drivers/net/ethernet/mellanox/mlxsw/core.c +3 -0
index 7277706847b1..8f0eec9fb17b 100644

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

drivers/net/wan/hdlc_fr.c +51 -47

98 lines not on this page · raw message

drivers/net/wireless/ath/ath10k/htt_rx.c +7 -1
index 8ca0a808a644..04095f91d301 100644

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

drivers/net/wireless/ath/ath10k/sdio.c +4 -0
index 8fe626deadeb..24b1927a0751 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c +6 -4
index 79c8a858b6d6..a30fcfbf2ee7 100644

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

drivers/net/xen-netback/common.h +15 -0
index 05847eb91a1b..32fe131ba366 100644

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

drivers/net/xen-netback/interface.c +52 -9

61 lines not on this page · raw message

drivers/net/xen-netback/netback.c +10 -1
index 0020b2e8c279..fa1ac0abc924 100644

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

drivers/net/xen-netback/rx.c +9 -4
index ef5887037b22..9b62f65b630e 100644

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

drivers/nvme/host/rdma.c +0 -1
index abe4fe496d05..a41ee9feab8e 100644

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

drivers/pci/pci-acpi.c +10 -0
index 0c02d500158f..3f40f951a6cd 100644

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

drivers/power/supply/bq27xxx_battery.c +4 -2
index 664e50103eaa..aff0a0a5e7f8 100644

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

drivers/power/supply/test_power.c +6 -0
index c3cad2b6daba..1139ca725195 100644

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

drivers/rpmsg/qcom_glink_native.c +3 -3
index 1995f5b3ea67..d5114abcde19 100644

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

drivers/rtc/rtc-rx8010.c +17 -7
index 8102469e27c0..0c436aea0da4 100644

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

drivers/scsi/qla2xxx/qla_target.c +7 -6
index d84d95cac2a1..412009e2b948 100644

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

drivers/spi/spi-sprd.c +1 -1
index fa597e27be17..e60aff990395 100644

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

drivers/staging/comedi/drivers/cb_pcidas.c +1 -0
index 02ae00c95313..1893c70de0b9 100644

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

drivers/staging/fieldbus/anybuss/arcx-anybus.c +1 -1
index 2ecffa42e561..fbe693816f07 100644

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

drivers/staging/octeon/ethernet-mdio.c +0 -6
index ffac0c4b3f5c..022c71e69a23 100644

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

drivers/staging/octeon/ethernet-rx.c +19 -15
index 0e65955c746b..9a242d68a26b 100644

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

drivers/staging/octeon/ethernet.c +9 -0
index cf8e9a23ebf9..77b7c1fd9d78 100644

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

drivers/tty/vt/keyboard.c +19 -20
index 568b2171f335..b6e78fdbfdff 100644

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

drivers/tty/vt/vt_ioctl.c +17 -15
index cbc85c995d92..4f51be17427c 100644

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

drivers/uio/uio.c +2 -2
index a57698985f9c..8313f81968d5 100644

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

drivers/usb/class/cdc-acm.c +5 -7
index 808722b8294a..ed99d98172f4 100644

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

drivers/usb/class/cdc-acm.h +1 -2
index cd5e9d8ab237..b95ff769072e 100644

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

drivers/usb/dwc3/core.c +13 -2
index 4cbf29539006..440dbf55ddf7 100644

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

drivers/usb/dwc3/core.h +1 -0
index 4dfbffa944de..c848f9164f92 100644

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

drivers/usb/dwc3/dwc3-pci.c +2 -1
index 139474c3e77b..ba88039449e0 100644

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

drivers/usb/dwc3/ep0.c +25 -2
index 6dee4dabc0a4..991cab9a7491 100644

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

drivers/usb/dwc3/gadget.c +45 -15

60 lines not on this page · raw message

drivers/usb/dwc3/gadget.h +1 -0
index 5faf4d1249e0..f207e59c7d03 100644

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

drivers/usb/host/fsl-mph-dr-of.c +6 -3
index ae8f60f6e6a5..44a7e58a26e3 100644

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

drivers/usb/host/xhci-pci.c +17 -0
index bbd616324faa..3c90c14390d6 100644

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

drivers/usb/host/xhci.c +5 -2
index 0d10ede581cb..7123ab44671b 100644

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

drivers/usb/host/xhci.h +1 -0
index c656b41b57b5..b483317bcb17 100644

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

drivers/usb/misc/adutux.c +1 -0
index d8d157c4c271..96495fcd952a 100644

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

drivers/usb/typec/tcpm/tcpm.c +4 -4
index 355a2c7fac0b..5bb84cb4876a 100644

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

drivers/vhost/vringh.c +5 -4
index a0a2d74967ef..026a37ee4177 100644

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

drivers/video/fbdev/pvr2fb.c +2 -0
index 0a3b2b7c7891..c916e9161443 100644

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

drivers/w1/masters/mxc_w1.c +7 -7
index 1ca880e01476..090cbbf9e1e2 100644

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

drivers/watchdog/rdc321x_wdt.c +2 -3
index 2e608ae6cbc7..e0efbc583198 100644

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

drivers/xen/events/events_2l.c +4 -5
index 8edef51c92e5..f026624898e7 100644

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

drivers/xen/events/events_base.c +395 -27

422 lines not on this page · raw message

drivers/xen/events/events_fifo.c +39 -44

83 lines not on this page · raw message

drivers/xen/events/events_internal.h +16 -4
index 82938cff6c7a..a35c8c7ac606 100644

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

drivers/xen/evtchn.c +3 -4
index 052b55a14ebc..a43930191e20 100644

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

drivers/xen/pvcalls-back.c +46 -30

76 lines not on this page · raw message

drivers/xen/xen-pciback/pci_stub.c +7 -7
index 097410a7cdb7..adf3aae2939f 100644

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

drivers/xen/xen-pciback/pciback.h +10 -2
index 263c059bff90..235cdfe13494 100644

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

drivers/xen/xen-pciback/pciback_ops.c +38 -10

48 lines not on this page · raw message

drivers/xen/xen-pciback/xenbus.c +1 -1
index 833b2d2c4318..e7a670235965 100644

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

drivers/xen/xen-scsiback.c +13 -10
index ba0942e481bc..33d6499d8472 100644

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

fs/9p/vfs_file.c +2 -2
index fe7f0bd2048e..ee9cabac1204 100644

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

fs/btrfs/ctree.c +6 -0
index c05127f50637..e25133a9e9df 100644

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

fs/btrfs/ctree.h +2 -0
index 23b4f38e2392..27128164fac9 100644

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

fs/btrfs/delayed-inode.c +1 -2
index a34ee9c2f315..bef62b01824d 100644

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

fs/btrfs/dev-replace.c +6 -1
index 196bd241e701..96843934dcbb 100644

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

fs/btrfs/reada.c +47 -0

47 lines not on this page · raw message

fs/btrfs/send.c +160 -41

201 lines not on this page · raw message

fs/btrfs/tree-checker.c +30 -5
index 84b8d6ebf98f..48e46323d519 100644

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

fs/btrfs/tree-log.c +8 -0
index 7042b84edc89..de53e5166997 100644

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

fs/btrfs/volumes.c +11 -6
index e798caee978e..58910a0a3e4a 100644

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

fs/btrfs/volumes.h +1 -0
index 5acf5c507ec2..aa6a6d7b2978 100644

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

fs/buffer.c +0 -16
index 22d8ac4a8c40..0d7bd7712076 100644

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

fs/cachefiles/rdwr.c +2 -1
index ad057ed2b30b..bd5fe8d00d00 100644

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

fs/ceph/addr.c +1 -1
index 7ab616601141..a02e845eb0fb 100644

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

fs/cifs/inode.c +9 -4
index 17df90b5f57a..fd9e289f3e72 100644

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

fs/exec.c +15 -2
index de833553ae27..2441eb1a1e2d 100644

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

fs/ext4/inode.c +6 -5
index 95a8a04c77dd..cbd028a31daf 100644

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

fs/ext4/resize.c +3 -1
index 080e25f6ef56..ad1d4c8faf44 100644

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

fs/ext4/super.c +6 -0
index 4aae7e3e89a1..6a260cc8bce6 100644

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

fs/f2fs/checkpoint.c +8 -2
index bbd07fe8a492..c966ccc44c15 100644

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

fs/f2fs/dir.c +3 -5
index e9af46dc06f7..78d041f9775a 100644

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

fs/f2fs/f2fs.h +1 -1
index b3b7e63394be..63440abe58c4 100644

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

fs/f2fs/node.c +1 -1
index ed12e9668184..2a4a382f28fe 100644

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

fs/f2fs/segment.c +9 -3
index 7d8578401267..5ba677f85533 100644

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

fs/gfs2/incore.h +1 -0
index 5f89c515f5bb..33a6b074209d 100644

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

fs/gfs2/ops_fstype.c +16 -24
index e0c55765b06d..29b27d769860 100644

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

fs/gfs2/super.c +1 -0
index 5fa1eec4fb4f..5935ce5ae563 100644

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

fs/gfs2/sys.c +4 -1
index dd15b8e4af2c..1c6e52dc878e 100644

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

fs/nfs/namespace.c +8 -4
index 9287eb666322..2db17fdf516b 100644

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

fs/nfs/nfs4_fs.h +8 -0
index bb322d9de313..c4a98cbda6dd 100644

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

fs/nfs/nfs4file.c +2 -1
index 534b6fd70ffd..6b31cb5f9c9d 100644

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

fs/nfs/nfs4proc.c +53 -37

90 lines not on this page · raw message

fs/nfs/nfs4trace.h +1 -0
index 9398c0b6e0a3..2295a934a154 100644

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

fs/nfsd/nfsproc.c +16 -0
index c83ddac22f38..754c763374dd 100644

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

fs/ubifs/debug.c +1 -0
index e4b52783819d..992b74f9c941 100644

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

fs/ubifs/journal.c +4 -2
index 5f2ac5ef0891..f78c3e3ef931 100644

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

fs/ubifs/orphan.c +2 -0
index 283f9eb48410..b0117878b3a0 100644

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

fs/ubifs/super.c +32 -12

44 lines not on this page · raw message

fs/ubifs/tnc.c +3 -0
index e8e7b0e9532e..33742ee3945b 100644

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

fs/ubifs/xattr.c +2 -0
index 9aefbb60074f..a0b9b349efe6 100644

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

fs/udf/super.c +13 -8
index a0cd766b41cd..4aba4878ed96 100644

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

fs/xfs/libxfs/xfs_bmap.c +12 -7
index f8db3fe616df..c114d24be619 100644

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

fs/xfs/xfs_rtalloc.c +8 -2
index b58366937082..6d5ddc4e5135 100644

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

include/linux/hil_mlc.h +1 -1
index 774f7d3b8f6a..369221fd5518 100644

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

include/linux/usb/pd.h +1 -0
index 145c38e351c2..6655ce32feff 100644

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

include/uapi/linux/btrfs_tree.h +14 -0
index b65c7ee75bc7..035e59eef05b 100644

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

include/uapi/linux/nfs4.h +3 -0
index 8572930cf5b0..54a78529c8b3 100644

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

include/uapi/linux/videodev2.h +8 -9
index 530638dffd93..3210b3c82a4a 100644

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

include/xen/events.h +25 -4
index c0e6a0598397..31952308a6d5 100644

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

init/Kconfig +2 -1
index 6db3e310a5e4..96fc45d1b686 100644

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

kernel/bpf/verifier.c +4 -0
index 507474f79195..a67bfa803d98 100644

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

kernel/debug/debug_core.c +14 -8
index 2222f3225e53..097ab02989f9 100644

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

kernel/futex.c +3 -1
index 5660c02b01b0..17fba7a986e0 100644

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

kernel/seccomp.c +31 -7
index e0fd97235653..0d991e9626f6 100644

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

kernel/trace/ring_buffer.c +4 -4
index 9a2581fe7ed5..67cdb401c6ce 100644

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

lib/scatterlist.c +1 -1
index 5813072bc589..29346184fcf2 100644

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

net/9p/trans_fd.c +1 -1
index 12ecacf0c55f..60eb9a2b209b 100644

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

net/ceph/messenger.c +5 -0
index 3d2e9f944e0f..49726c378aab 100644

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

net/sunrpc/xprt.c +4 -2
index 41df4c507193..a6fee86f400e 100644

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

samples/bpf/xdpsock_user.c +1 -0
index df011ac33402..79d1005ff2ee 100644

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

tools/perf/util/print_binary.c +1 -1
index 599a1543871d..13fdc51c61d9 100644

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

tools/testing/selftests/bpf/progs/test_sysctl_prog.c +2 -2
index 5cbbff416998..4396faf33394 100644

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

tools/testing/selftests/x86/fsgsbase.c +68 -0

68 lines not on this page · 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.