Skip to contentSkip to conversation

Linux 4.19.116

DISCUSSION Greg KH 1 participant 2 messages Apr 17, 2020 Stable branch

lore
Share & tools
lore

Greg KH

author maintainer
#0 lore raw

I'm announcing the release of the 4.19.116 kernel.

All users of the 4.19 kernel series must upgrade.

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

thanks,

greg k-h

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

 Documentation/sound/hd-audio/index.rst                |    1 
 Documentation/sound/hd-audio/models.rst               |    2 
 Documentation/sound/hd-audio/realtek-pc-beep.rst      |  129 +++++++++
 Makefile                                              |    2 
 arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts             |    4 
 arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi          |    3 
 arch/arm64/kernel/armv8_deprecated.c                  |    2 
 arch/mips/cavium-octeon/octeon-irq.c                  |    3 
 arch/mips/mm/tlbex.c                                  |    5 
 arch/powerpc/include/asm/book3s/64/hash-4k.h          |    6 
 arch/powerpc/include/asm/book3s/64/hash-64k.h         |    8 
 arch/powerpc/include/asm/book3s/64/pgtable.h          |    4 
 arch/powerpc/include/asm/book3s/64/radix.h            |    5 
 arch/powerpc/include/asm/drmem.h                      |    4 
 arch/powerpc/include/asm/setjmp.h                     |    6 
 arch/powerpc/kernel/Makefile                          |    3 
 arch/powerpc/kernel/idle_book3s.S                     |   27 +-
 arch/powerpc/kernel/kprobes.c                         |    3 
 arch/powerpc/kernel/signal_64.c                       |    4 
 arch/powerpc/mm/tlb_nohash_low.S                      |   12 
 arch/powerpc/platforms/pseries/hotplug-memory.c       |    8 
 arch/powerpc/platforms/pseries/lpar.c                 |    2 
 arch/powerpc/sysdev/xive/common.c                     |   12 
 arch/powerpc/sysdev/xive/native.c                     |    4 
 arch/powerpc/sysdev/xive/spapr.c                      |    4 
 arch/powerpc/sysdev/xive/xive-internal.h              |    7 
 arch/powerpc/xmon/Makefile                            |    3 
 arch/s390/kernel/diag.c                               |    2 
 arch/s390/kvm/vsie.c                                  |    1 
 arch/s390/mm/gmap.c                                   |    6 
 arch/x86/boot/compressed/head_32.S                    |    2 
 arch/x86/boot/compressed/head_64.S                    |    4 
 arch/x86/entry/entry_32.S                             |    1 
 arch/x86/include/asm/kvm_host.h                       |    2 
 arch/x86/include/asm/pgtable.h                        |    7 
 arch/x86/include/asm/pgtable_types.h                  |    2 
 arch/x86/kernel/acpi/boot.c                           |    2 
 arch/x86/kvm/svm.c                                    |    4 
 arch/x86/kvm/vmx.c                                    |  110 ++------
 arch/x86/kvm/x86.c                                    |   21 +
 arch/x86/platform/efi/efi_64.c                        |    4 
 block/bfq-iosched.c                                   |   16 -
 block/blk-ioc.c                                       |    7 
 block/blk-settings.c                                  |    3 
 drivers/ata/libata-pmp.c                              |    1 
 drivers/ata/libata-scsi.c                             |    9 
 drivers/base/firmware_loader/fallback.c               |    2 
 drivers/block/null_blk_main.c                         |   10 
 drivers/block/xen-blkfront.c                          |   17 -
 drivers/bus/sunxi-rsb.c                               |    2 
 drivers/char/ipmi/ipmi_msghandler.c                   |    4 
 drivers/char/tpm/eventlog/common.c                    |   12 
 drivers/char/tpm/eventlog/tpm1.c                      |    2 
 drivers/char/tpm/eventlog/tpm2.c                      |    2 
 drivers/char/tpm/tpm-chip.c                           |    4 
 drivers/char/tpm/tpm.h                                |    2 
 drivers/clk/ingenic/jz4770-cgu.c                      |    4 
 drivers/cpufreq/imx6q-cpufreq.c                       |    3 
 drivers/cpufreq/powernv-cpufreq.c                     |    6 
 drivers/crypto/caam/caamalg_desc.c                    |   16 +
 drivers/crypto/ccree/cc_aead.c                        |   56 +++-
 drivers/crypto/ccree/cc_aead.h                        |    1 
 drivers/crypto/ccree/cc_buffer_mgr.c                  |  108 ++++----
 drivers/crypto/mxs-dcp.c                              |   58 ++--
 drivers/firmware/arm_sdei.c                           |   32 +-
 drivers/firmware/efi/efi.c                            |    2 
 drivers/gpu/drm/drm_dp_mst_topology.c                 |   19 -
 drivers/gpu/drm/drm_pci.c                             |   25 -
 drivers/gpu/drm/etnaviv/etnaviv_perfmon.c             |  103 ++++++-
 drivers/i2c/busses/i2c-st.c                           |    1 
 drivers/infiniband/hw/mlx5/main.c                     |    6 
 drivers/input/serio/i8042-x86ia64io.h                 |   11 
 drivers/irqchip/irq-gic-v3-its.c                      |    6 
 drivers/irqchip/irq-versatile-fpga.c                  |   18 +
 drivers/md/dm-verity-fec.c                            |    1 
 drivers/md/dm-writecache.c                            |    6 
 drivers/md/dm-zoned-metadata.c                        |    1 
 drivers/md/md.c                                       |    2 
 drivers/media/i2c/ov5695.c                            |   49 ++-
 drivers/media/i2c/video-i2c.c                         |    2 
 drivers/media/platform/qcom/venus/hfi_parser.c        |    1 
 drivers/media/platform/ti-vpe/cal.c                   |   16 -
 drivers/mfd/dln2.c                                    |    9 
 drivers/misc/echo/echo.c                              |    2 
 drivers/mtd/nand/spi/core.c                           |   17 -
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c        |    3 
 drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c     |    3 
 drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c      |   51 ---
 drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c     |    5 
 drivers/net/ethernet/neterion/vxge/vxge-config.h      |    2 
 drivers/net/ethernet/neterion/vxge/vxge-main.h        |   14 -
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c |    2 
 drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c    |   31 +-
 drivers/net/wireless/ath/ath9k/main.c                 |    3 
 drivers/nvme/host/core.c                              |   11 
 drivers/nvme/host/fc.c                                |   14 -
 drivers/nvme/target/fcloop.c                          |    1 
 drivers/pci/endpoint/pci-epc-mem.c                    |   10 
 drivers/pci/hotplug/pciehp_hpc.c                      |   14 -
 drivers/pci/pcie/aspm.c                               |    4 
 drivers/pci/quirks.c                                  |   80 +++++-
 drivers/pci/switch/switchtec.c                        |    2 
 drivers/rtc/rtc-omap.c                                |    4 
 drivers/s390/scsi/zfcp_erp.c                          |    2 
 drivers/scsi/lpfc/lpfc_nvme.c                         |    2 
 drivers/scsi/mpt3sas/mpt3sas_scsih.c                  |    8 
 drivers/scsi/qla2xxx/qla_nvme.c                       |    1 
 drivers/staging/erofs/utils.c                         |    2 
 drivers/usb/dwc3/core.c                               |    5 
 drivers/usb/dwc3/core.h                               |    4 
 drivers/usb/gadget/composite.c                        |    9 
 drivers/usb/gadget/function/f_fs.c                    |    1 
 drivers/usb/host/xhci.c                               |    4 
 fs/btrfs/async-thread.c                               |    8 
 fs/btrfs/async-thread.h                               |    1 
 fs/btrfs/delayed-inode.c                              |   13 +
 fs/btrfs/disk-io.c                                    |   27 +-
 fs/btrfs/file.c                                       |   11 
 fs/btrfs/qgroup.c                                     |   11 
 fs/btrfs/relocation.c                                 |   35 +-
 fs/cifs/file.c                                        |    2 
 fs/exec.c                                             |    2 
 fs/ext4/inode.c                                       |    2 
 fs/filesystems.c                                      |    4 
 fs/gfs2/glock.c                                       |    3 
 fs/hfsplus/attributes.c                               |    4 
 fs/nfs/write.c                                        |    1 
 fs/ocfs2/alloc.c                                      |    4 
 fs/pstore/inode.c                                     |    5 
 fs/pstore/platform.c                                  |    4 
 include/linux/devfreq_cooling.h                       |    2 
 include/linux/iocontext.h                             |    1 
 include/linux/mlx5/mlx5_ifc.h                         |    9 
 include/linux/nvme-fc-driver.h                        |    4 
 include/linux/pci-epc.h                               |    3 
 include/linux/sched.h                                 |    4 
 include/linux/swab.h                                  |    1 
 include/uapi/linux/swab.h                             |   10 
 kernel/cpu.c                                          |    5 
 kernel/irq/irqdomain.c                                |   10 
 kernel/kmod.c                                         |    4 
 kernel/locking/lockdep.c                              |    4 
 kernel/sched/sched.h                                  |    8 
 kernel/signal.c                                       |    2 
 kernel/trace/trace_kprobe.c                           |    2 
 lib/find_bit.c                                        |   16 -
 mm/page_alloc.c                                       |    8 
 mm/slub.c                                             |    2 
 security/keys/key.c                                   |    2 
 security/keys/keyctl.c                                |    4 
 sound/core/oss/pcm_plugin.c                           |   32 +-
 sound/pci/hda/hda_beep.c                              |    6 
 sound/pci/hda/hda_intel.c                             |   16 +
 sound/pci/hda/patch_realtek.c                         |   50 ---
 sound/pci/ice1712/prodigy_hifi.c                      |    4 
 sound/soc/soc-dapm.c                                  |    8 
 sound/soc/soc-ops.c                                   |    4 
 sound/soc/soc-pcm.c                                   |    6 
 sound/soc/soc-topology.c                              |    2 
 sound/usb/mixer_maps.c                                |   28 ++
 tools/gpio/Makefile                                   |    2 
 tools/perf/Makefile.config                            |   11 
 tools/testing/selftests/vm/mlock2-tests.c             |  233 ++----------------
 tools/testing/selftests/x86/ptrace_syscall.c          |    8 
 164 files changed, 1221 insertions(+), 834 deletions(-)

Alain Volmat (1):
i2c: st: fix missing struct parameter description

Alex Vesker (1):
IB/mlx5: Replace tunnel mpls capability bits for tunnel_offloads

Alexander Duyck (1):
mm: Use fixed constant in page_frag_alloc instead of size + 1

Alexander Sverdlin (1):
genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()

Alexey Dobriyan (1):
null_blk: fix spurious IO errors after failed past-wp access

Andrei Botila (1):
crypto: caam - update xts sector size for large input length

Andy Lutomirski (1):
selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault

Andy Shevchenko (1):
mfd: dln2: Fix sanity checking for endpoints

Aneesh Kumar K.V (1):
powerpc/hash64/devmap: Use H_PAGE_THP_HUGE when setting up huge devmap PTE entries

Anssi Hannula (1):
tools: gpio: Fix out-of-tree build regression

Ard Biesheuvel (1):
efi/x86: Ignore the memory attributes table on i386

Arvind Sankar (1):
x86/boot: Use unsigned comparison for addresses

Bart Van Assche (2):
null_blk: Fix the null_add_dev() error path
null_blk: Handle null_add_dev() failures properly

Benoit Parrot (1):
media: ti-vpe: cal: fix disable_irqs to only the intended target

Bob Liu (1):
dm zoned: remove duplicate nr_rnd_zones increase in dmz_init_zone()

Bob Peterson (1):
gfs2: Don't demote a glock until its revokes are written

Boqun Feng (1):
locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()

Changwei Ge (1):
ocfs2: no need try to truncate file beyond i_size

Chris Wilson (1):
drm: Remove PageReserved manipulation from drm_pci_alloc

Christian Gmeiner (2):
drm/etnaviv: rework perfmon query infrastructure
etnaviv: perfmon: fix total and idle HI cyleces readout

Christoph Niedermaier (1):
cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL

Christophe Leroy (1):
powerpc/kprobes: Ignore traps that happened in real mode

Clement Courbet (1):
powerpc: Make setjmp/longjmp signature standard

Cédric Le Goater (1):
powerpc/xive: Use XIVE_BAD_IRQ instead of zero to catch non configured IPIs

David Hildenbrand (2):
KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks
KVM: s390: vsie: Fix delivery of addressing exceptions

Dongchun Zhu (1):
media: i2c: ov5695: Fix power on and off sequences

Eric Biggers (2):
fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
kmod: make request_module() return an error when autoloading is disabled

Eric W. Biederman (1):
signal: Extend exec_id to 64bits

Filipe Manana (2):
Btrfs: fix crash during unmount due to race with delayed inode workers
btrfs: fix missing file extent item for hole after ranged fsync

Fredrik Strupe (1):
arm64: armv8_deprecated: Fix undef_hook mask for thumb setend

Frieder Schrempf (2):
mtd: spinand: Stop using spinand->oobbuf for buffering bad block markers
mtd: spinand: Do not erase the block before writing a bad block marker

Gao Xiang (1):
erofs: correct the remaining shrink objects

Gary Lin (1):
efi/x86: Fix the deletion of variables in mixed mode

Gilad Ben-Yossef (4):
crypto: ccree - zero out internal struct before use
crypto: ccree - don't mangle the request assoclen
crypto: ccree - dec auth tag size from cryptlen map
crypto: ccree - only try to map auth tag if needed

Greg Kroah-Hartman (1):

      Linux 4.19.116

Guoqing Jiang (1):
md: check arrays is suspended in mddev_detach before call quiesce operations

Gustavo A. R. Silva (1):
MIPS: OCTEON: irq: Fix potential NULL pointer dereference

Hadar Gat (1):
crypto: ccree - improve error handling

Hans de Goede (1):
Input: i8042 - add Acer Aspire 5738z to nomux list

Huacai Chen (1):
MIPS/tlbex: Fix LDDIR usage in setup_pw() for Loongson-3

James Morse (1):
firmware: arm_sdei: fix double-lock on hibernate with shared events

James Smart (2):
nvme-fc: Revert "add module to ops template to allow module references"
nvme: Treat discovery subsystems as unique subsystems

Jan Engelhardt (1):
acpi/x86: ignore unspecified bit positions in the ACPI global lock field

John Garry (1):
libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()

Josef Bacik (5):
btrfs: remove a BUG_ON() from merge_reloc_roots()
btrfs: track reloc roots based on their commit root bytenr
btrfs: set update the uuid generation as soon as possible
btrfs: drop block from cache on error in relocation
btrfs: use nofs allocations for running delayed items

Juergen Gross (1):
xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()

Junyong Sun (1):
firmware: fix a double abort case with fw_load_sysfs_fallback

Kai-Heng Feng (1):
libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set

Kees Cook (1):
slub: improve bit diffusion for freelist ptr obfuscation

Kishon Vijay Abraham I (1):
PCI: endpoint: Fix for concurrent memory allocation in OB address region

Konstantin Khlebnikov (1):

      block: keep bdi->io_pages in sync with max_sectors_kb for stacked devices

Laurentiu Tudor (1):
powerpc/fsl_booke: Avoid creating duplicate tlb1 entry

Libor Pechacek (1):
powerpc/pseries: Avoid NULL pointer dereference when drmem is unavailable

Logan Gunthorpe (1):
PCI/switchtec: Fix init_completion race condition with poll_wait()

Lukas Wunner (1):
PCI: pciehp: Fix indefinite wait on sysfs requests

Luo bin (2):
hinic: fix a bug of waitting for IO stopped
hinic: fix wrong para of wait_for_completion_timeout

Lyude Paul (1):
drm/dp_mst: Fix clearing payload state on topology disable

Marc Zyngier (1):
irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency

Martin Blumenstingl (1):
thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n

Masami Hiramatsu (1):
ftrace/kprobe: Show the maxactive number on kprobe_events

Mathias Nyman (1):
xhci: bail out early if driver can't accress host in resume

Matt Ranostay (1):
media: i2c: video-i2c: fix build errors due to 'imply hwmon'

Matthew Garrett (1):
tpm: Don't make log failures fatal

Maxime Ripard (1):
arm64: dts: allwinner: h6: Fix PMU compatible

Michael Ellerman (2):
powerpc/powernv/idle: Restore AMR/UAMOR/AMOR after idle powerpc/64/tm: Don't let userspace set regs->trap via sigreturn

Michael Mueller (1):
s390/diag: fix display of diagnose call statistics

Michael Wang (1):
sched: Avoid scale real weight down to zero

Michal Hocko (1):
selftests: vm: drop dependencies on page flags from mlock2 tests

Mikulas Patocka (1):
dm writecache: add cond_resched to avoid CPU hangs

Nathan Chancellor (2):
rtc: omap: Use define directive for PIN_CONFIG_ACTIVE_HIGH
misc: echo: Remove unnecessary parentheses and simplify check for zero

Neil Armstrong (1):
usb: dwc3: core: add support for disabling SS instances in park mode

Oliver O'Halloran (1):
cpufreq: powernv: Fix use-after-free

Ondrej Jirman (2):
ARM: dts: sun8i-a83t-tbs-a711: HM5065 doesn't like such a high voltage
bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads

Paul Cercueil (1):
clk: ingenic/jz4770: Exit with error if CGU init failed

Qian Cai (1):

      ext4: fix a data race at inode->i_blocks

Qu Wenruo (1):
btrfs: qgroup: ensure qgroup_rescan_running is only set when the worker is at least queued

Raju Rangoju (1):
cxgb4/ptp: pass the sign of offset delta in FW CMD

Remi Pommarel (1):
ath9k: Handle txpower changes even when TPC is disabled

Robbie Ko (1):
btrfs: fix missing semaphore unlock in btrfs_sync_file

Rosioru Dragos (1):
crypto: mxs-dcp - fix scatterlist linearization for hash

Sahitya Tummala (1):
block: Fix use-after-free issue accessing struct io_cq

Sam Lunt (1):
perf tools: Support Python 3.8+ in Makefile

Sasha Levin (1):
Revert "drm/dp_mst: Remove VCPI while disabling topology mgr"

Sean Christopherson (4):
KVM: nVMX: Properly handle userspace interrupt window request
KVM: x86: Allocate new rmap and large page tracking when moving memslot
KVM: VMX: Always VMCLEAR in-use VMCSes during crash with kexec support
KVM: x86: Gracefully handle __vmalloc() failure during VM allocation

Sean V Kelley (1):
PCI: Add boot interrupt quirk mechanism for Xeon chipsets

Segher Boessenkool (1):
powerpc: Add attributes for setjmp/longjmp

Shetty, Harshini X (EXT-Sony Mobile) (1):
dm verity fec: fix memory leak in verity_fec_dtr

Simon Gander (1):
hfsplus: fix crash and filesystem corruption when deleting files

Sreekanth Reddy (1):
scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug

Sriharsha Allenki (1):
usb: gadget: f_fs: Fix use after free issue as part of queue failure

Steffen Maier (1):
scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point

Stephan Gerhold (1):
media: venus: hfi_parser: Ignore HEVC encoding for V1

Subash Abhinov Kasiviswanathan (1):
net: qualcomm: rmnet: Allow configuration updates to existing devices

Sungbo Eo (2):
irqchip/versatile-fpga: Handle chained IRQs properly irqchip/versatile-fpga: Apply clear-mask earlier

Takashi Iwai (6):
ALSA: usb-audio: Add mixer workaround for TRX40 and co
ALSA: hda: Add driver blacklist
ALSA: hda: Fix potential access overflow in beep helper
ALSA: ice1724: Fix invalid access for enumerated ctl items
ALSA: pcm: oss: Fix regression by buffer overflow fix
ALSA: hda/realtek - Add quirk for MSI GL63

Thinh Nguyen (1):
usb: gadget: composite: Inform controller driver of self-powered

Thomas Gleixner (1):
x86/entry/32: Add missing ASM_CLAC to general_protection entry

Thomas Hebb (3):
ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise fixups

Thomas Hellstrom (1):
x86: Don't let pgprot_modify() change the page encryption bit

Trond Myklebust (1):
NFS: Fix a page leak in nfs_destroy_unlinked_subrequests()

Vasily Averin (3):
tpm: tpm1_bios_measurements_next should increase position index
tpm: tpm2_bios_measurements_next should increase position index
pstore: pstore_ftrace_seq_next should increase position index

Vitaly Kuznetsov (1):
KVM: VMX: fix crash cleanup when KVM wasn't used

Wen Yang (1):
ipmi: fix hung processes in __get_guid()

Xu Wang (1):
qlcnic: Fix bad kzalloc null test

Yang Xu (1):
KEYS: reaching the keys quotas correctly

Yicong Yang (1):
PCI/ASPM: Clear the correct bits when enabling L1 substates

Yilu Lin (1):
CIFS: Fix bug which the return value by asynchronous read is error

YueHaibing (1):
powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init()

Yury Norov (1):
uapi: rename ext2_swab() to swab() and share globally in swab.h

Zheng Wei (1):
net: vxge: fix wrong __VA_ARGS__ usage

Zhenzhong Duan (1):
x86/speculation: Remove redundant arch_smt_update() invocation

Zhiqiang Liu (1):
block, bfq: fix use-after-free in bfq_idle_slice_timer_body

chenqiwu (1):
pstore/platform: fix potential mem leak if pstore_init_fs failed

이경택 (4):
ASoC: fix regwmask
ASoC: dapm: connect virtual mux with default value
ASoC: dpcm: allow start or stop during pause for backend
ASoC: topology: use name_prefix for new kcontrol

author maintainer
#1 lore raw
Documentation/sound/hd-audio/index.rst +1 -0
index f8a72ffffe66..6e12de9fc34e 100644
@@ -8,3 +8,4 @@ HD-Audio
    models
    controls
    dp-mst
+   realtek-pc-beep
Documentation/sound/hd-audio/models.rst +0 -2
index e06238131f77..8c0de54b5649 100644
@@ -216,8 +216,6 @@ alc298-dell-aio
     ALC298 fixups on Dell AIO machines
 alc275-dell-xps
     ALC275 fixups on Dell XPS models
-alc256-dell-xps13
-    ALC256 fixups on Dell XPS13
 lenovo-spk-noise
     Workaround for speaker noise on Lenovo machines
 lenovo-hotkey
Documentation/sound/hd-audio/realtek-pc-beep.rst new file +129 -0

129 lines not on this page · raw message

Makefile +1 -1
index 9830a71e9192..d85ff698f5b9 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 19
-SUBLEVEL = 115
+SUBLEVEL = 116
 EXTRAVERSION =
 NAME = "People's Front"
 
arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts +2 -2
index 49547a43cc90..54cbdaf7ffdc 100644
@@ -318,8 +318,8 @@
 };
 
 &reg_dldo3 {
-	regulator-min-microvolt = <2800000>;
-	regulator-max-microvolt = <2800000>;
+	regulator-min-microvolt = <1800000>;
+	regulator-max-microvolt = <1800000>;
 	regulator-name = "vdd-csi";
 };
 
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +1 -2
index bd4391269611..6e4e45907738 100644
@@ -70,8 +70,7 @@
 	};
 
 	pmu {
-		compatible = "arm,cortex-a53-pmu",
-			     "arm,armv8-pmuv3";
+		compatible = "arm,cortex-a53-pmu";
 		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
 			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
arch/arm64/kernel/armv8_deprecated.c +1 -1
index 39dc98dd78eb..181c29af5617 100644
@@ -604,7 +604,7 @@ static struct undef_hook setend_hooks[] = {
 	},
 	{
 		/* Thumb mode */
-		.instr_mask	= 0x0000fff7,
+		.instr_mask	= 0xfffffff7,
 		.instr_val	= 0x0000b650,
 		.pstate_mask	= (PSR_AA32_T_BIT | PSR_AA32_MODE_MASK),
 		.pstate_val	= (PSR_AA32_T_BIT | PSR_AA32_MODE_USR),
arch/mips/cavium-octeon/octeon-irq.c +3 -0
index 8272d8c648ca..43e4fc1b373c 100644
@@ -2199,6 +2199,9 @@ static int octeon_irq_cib_map(struct irq_domain *d,
 	}
 
 	cd = kzalloc(sizeof(*cd), GFP_KERNEL);
+	if (!cd)
+		return -ENOMEM;
+
 	cd->host_data = host_data;
 	cd->bit = hw;
 
arch/mips/mm/tlbex.c +4 -1
index 3944c49eee0c..620abc968624 100644
@@ -1479,6 +1479,7 @@ static void build_r4000_tlb_refill_handler(void)
 
 static void setup_pw(void)
 {
+	unsigned int pwctl;
 	unsigned long pgd_i, pgd_w;
 #ifndef __PAGETABLE_PMD_FOLDED
 	unsigned long pmd_i, pmd_w;
@@ -1505,6 +1506,7 @@ static void setup_pw(void)
 
 	pte_i = ilog2(_PAGE_GLOBAL);
 	pte_w = 0;
+	pwctl = 1 << 30; /* Set PWDirExt */
 
 #ifndef __PAGETABLE_PMD_FOLDED
 	write_c0_pwfield(pgd_i << 24 | pmd_i << 12 | pt_i << 6 | pte_i);
@@ -1515,8 +1517,9 @@ static void setup_pw(void)
 #endif
 
 #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT
-	write_c0_pwctl(1 << 6 | psn);
+	pwctl |= (1 << 6 | psn);
 #endif
+	write_c0_pwctl(pwctl);
 	write_c0_kpgd((long)swapper_pg_dir);
 	kscratch_used_mask |= (1 << 7); /* KScratch6 is used for KPGD */
 }
arch/powerpc/include/asm/book3s/64/hash-4k.h +6 -0
index 9a3798660cef..fc68c0fc08b5 100644
@@ -145,6 +145,12 @@ extern pmd_t hash__pmdp_huge_get_and_clear(struct mm_struct *mm,
 extern int hash__has_transparent_hugepage(void);
 #endif
 
+static inline pmd_t hash__pmd_mkdevmap(pmd_t pmd)
+{
+	BUG();
+	return pmd;
+}
+
 #endif /* !__ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_BOOK3S_64_HASH_4K_H */
arch/powerpc/include/asm/book3s/64/hash-64k.h +7 -1
index f82ee8a3b561..790e4a946f6e 100644
@@ -233,7 +233,7 @@ static inline void mark_hpte_slot_valid(unsigned char *hpte_slot_array,
  */
 static inline int hash__pmd_trans_huge(pmd_t pmd)
 {
-	return !!((pmd_val(pmd) & (_PAGE_PTE | H_PAGE_THP_HUGE)) ==
+	return !!((pmd_val(pmd) & (_PAGE_PTE | H_PAGE_THP_HUGE | _PAGE_DEVMAP)) ==
 		  (_PAGE_PTE | H_PAGE_THP_HUGE));
 }
 
@@ -259,6 +259,12 @@ extern pmd_t hash__pmdp_huge_get_and_clear(struct mm_struct *mm,
 				       unsigned long addr, pmd_t *pmdp);
 extern int hash__has_transparent_hugepage(void);
 #endif /*  CONFIG_TRANSPARENT_HUGEPAGE */
+
+static inline pmd_t hash__pmd_mkdevmap(pmd_t pmd)
+{
+	return __pmd(pmd_val(pmd) | (_PAGE_PTE | H_PAGE_THP_HUGE | _PAGE_DEVMAP));
+}
+
 #endif	/* __ASSEMBLY__ */
 
 #endif /* _ASM_POWERPC_BOOK3S_64_HASH_64K_H */
arch/powerpc/include/asm/book3s/64/pgtable.h +3 -1
index 855dbae6d351..2aea6efc2e63 100644
@@ -1253,7 +1253,9 @@ extern void serialize_against_pte_lookup(struct mm_struct *mm);
 
 static inline pmd_t pmd_mkdevmap(pmd_t pmd)
 {
-	return __pmd(pmd_val(pmd) | (_PAGE_PTE | _PAGE_DEVMAP));
+	if (radix_enabled())
+		return radix__pmd_mkdevmap(pmd);
+	return hash__pmd_mkdevmap(pmd);
 }
 
 static inline int pmd_devmap(pmd_t pmd)
arch/powerpc/include/asm/book3s/64/radix.h +5 -0
index 7d1a3d1543fc..da01badef0cb 100644
@@ -255,6 +255,11 @@ extern pmd_t radix__pmdp_huge_get_and_clear(struct mm_struct *mm,
 extern int radix__has_transparent_hugepage(void);
 #endif
 
+static inline pmd_t radix__pmd_mkdevmap(pmd_t pmd)
+{
+	return __pmd(pmd_val(pmd) | (_PAGE_PTE | _PAGE_DEVMAP));
+}
+
 extern int __meminit radix__vmemmap_create_mapping(unsigned long start,
 					     unsigned long page_size,
 					     unsigned long phys);
arch/powerpc/include/asm/drmem.h +2 -2
index 7c1d8e74b25d..9e516fe3daab 100644
@@ -28,12 +28,12 @@ struct drmem_lmb_info {
 extern struct drmem_lmb_info *drmem_info;
 
 #define for_each_drmem_lmb_in_range(lmb, start, end)		\
-	for ((lmb) = (start); (lmb) <= (end); (lmb)++)
+	for ((lmb) = (start); (lmb) < (end); (lmb)++)
 
 #define for_each_drmem_lmb(lmb)					\
 	for_each_drmem_lmb_in_range((lmb),			\
 		&drmem_info->lmbs[0],				\
-		&drmem_info->lmbs[drmem_info->n_lmbs - 1])
+		&drmem_info->lmbs[drmem_info->n_lmbs])
 
 /*
  * The of_drconf_cell_v1 struct defines the layout of the LMB data
arch/powerpc/include/asm/setjmp.h +4 -2
index 279d03a1eec6..6941fe202bc8 100644
@@ -12,7 +12,9 @@
 
 #define JMP_BUF_LEN    23
 
-extern long setjmp(long *);
-extern void longjmp(long *, long);
+typedef long jmp_buf[JMP_BUF_LEN];
+
+extern int setjmp(jmp_buf env) __attribute__((returns_twice));
+extern void longjmp(jmp_buf env, int val) __attribute__((noreturn));
 
 #endif /* _ASM_POWERPC_SETJMP_H */
arch/powerpc/kernel/Makefile +0 -3
index d450280e5c29..1e64cfe22a83 100644
@@ -5,9 +5,6 @@
 
 CFLAGS_ptrace.o		+= -DUTS_MACHINE='"$(UTS_MACHINE)"'
 
-# Avoid clang warnings around longjmp/setjmp declarations
-CFLAGS_crash.o += -ffreestanding
-
 subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
 
 ifdef CONFIG_PPC64
arch/powerpc/kernel/idle_book3s.S +23 -4
index 36178000a2f2..4a860d3b9229 100644
@@ -170,8 +170,11 @@ core_idle_lock_held:
 	bne-	core_idle_lock_held
 	blr
 
-/* Reuse an unused pt_regs slot for IAMR */
+/* Reuse some unused pt_regs slots for AMR/IAMR/UAMOR/UAMOR */
+#define PNV_POWERSAVE_AMR	_TRAP
 #define PNV_POWERSAVE_IAMR	_DAR
+#define PNV_POWERSAVE_UAMOR	_DSISR
+#define PNV_POWERSAVE_AMOR	RESULT
 
 /*
  * Pass requested state in r3:
@@ -205,8 +208,16 @@ pnv_powersave_common:
 	SAVE_NVGPRS(r1)
 
 BEGIN_FTR_SECTION
+	mfspr	r4, SPRN_AMR
 	mfspr	r5, SPRN_IAMR
+	mfspr	r6, SPRN_UAMOR
+	std	r4, PNV_POWERSAVE_AMR(r1)
 	std	r5, PNV_POWERSAVE_IAMR(r1)
+	std	r6, PNV_POWERSAVE_UAMOR(r1)
+BEGIN_FTR_SECTION_NESTED(42)
+	mfspr	r7, SPRN_AMOR
+	std	r7, PNV_POWERSAVE_AMOR(r1)
+END_FTR_SECTION_NESTED_IFSET(CPU_FTR_HVMODE, 42)
 END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
 
 	mfcr	r5
@@ -935,12 +946,20 @@ END_FTR_SECTION_IFSET(CPU_FTR_HVMODE)
 	REST_GPR(2, r1)
 
 BEGIN_FTR_SECTION
-	/* IAMR was saved in pnv_powersave_common() */
+	/* These regs were saved in pnv_powersave_common() */
+	ld	r4, PNV_POWERSAVE_AMR(r1)
 	ld	r5, PNV_POWERSAVE_IAMR(r1)
+	ld	r6, PNV_POWERSAVE_UAMOR(r1)
+	mtspr	SPRN_AMR, r4
 	mtspr	SPRN_IAMR, r5
+	mtspr	SPRN_UAMOR, r6
+BEGIN_FTR_SECTION_NESTED(42)
+	ld	r7, PNV_POWERSAVE_AMOR(r1)
+	mtspr	SPRN_AMOR, r7
+END_FTR_SECTION_NESTED_IFSET(CPU_FTR_HVMODE, 42)
 	/*
-	 * We don't need an isync here because the upcoming mtmsrd is
-	 * execution synchronizing.
+	 * We don't need an isync here after restoring IAMR because the upcoming
+	 * mtmsrd is execution synchronizing.
 	 */
 END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
 
arch/powerpc/kernel/kprobes.c +3 -0
index 5c60bb0f927f..53a39661eb13 100644
@@ -277,6 +277,9 @@ int kprobe_handler(struct pt_regs *regs)
 	if (user_mode(regs))
 		return 0;
 
+	if (!(regs->msr & MSR_IR) || !(regs->msr & MSR_DR))
+		return 0;
+
 	/*
 	 * We don't want to be preempted for the entire
 	 * duration of kprobe processing
arch/powerpc/kernel/signal_64.c +3 -1
index b088b0700d0d..7aba592bba36 100644
@@ -477,8 +477,10 @@ static long restore_tm_sigcontexts(struct task_struct *tsk,
 	err |= __get_user(tsk->thread.ckpt_regs.ccr,
 			  &sc->gp_regs[PT_CCR]);
 
+	/* Don't allow userspace to set the trap value */
+	regs->trap = 0;
+
 	/* These regs are not checkpointed; they can go in 'regs'. */
-	err |= __get_user(regs->trap, &sc->gp_regs[PT_TRAP]);
 	err |= __get_user(regs->dar, &sc->gp_regs[PT_DAR]);
 	err |= __get_user(regs->dsisr, &sc->gp_regs[PT_DSISR]);
 	err |= __get_user(regs->result, &sc->gp_regs[PT_RESULT]);
arch/powerpc/mm/tlb_nohash_low.S +11 -1
index e066a658acac..56f58a362ea5 100644
@@ -402,7 +402,7 @@ _GLOBAL(set_context)
  * extern void loadcam_entry(unsigned int index)
  *
  * Load TLBCAM[index] entry in to the L2 CAM MMU
- * Must preserve r7, r8, r9, and r10
+ * Must preserve r7, r8, r9, r10 and r11
  */
 _GLOBAL(loadcam_entry)
 	mflr	r5
@@ -438,6 +438,10 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_BIG_PHYS)
  */
 _GLOBAL(loadcam_multi)
 	mflr	r8
+	/* Don't switch to AS=1 if already there */
+	mfmsr	r11
+	andi.	r11,r11,MSR_IS
+	bne	10f
 
 	/*
 	 * Set up temporary TLB entry that is the same as what we're
@@ -463,6 +467,7 @@ _GLOBAL(loadcam_multi)
 	mtmsr	r6
 	isync
 
+10:
 	mr	r9,r3
 	add	r10,r3,r4
 2:	bl	loadcam_entry
@@ -471,6 +476,10 @@ _GLOBAL(loadcam_multi)
 	mr	r3,r9
 	blt	2b
 
+	/* Don't return to AS=0 if we were in AS=1 at function start */
+	andi.	r11,r11,MSR_IS
+	bne	3f
+
 	/* Return to AS=0 and clear the temporary entry */
 	mfmsr	r6
 	rlwinm.	r6,r6,0,~(MSR_IS|MSR_DS)
@@ -486,6 +495,7 @@ _GLOBAL(loadcam_multi)
 	tlbwe
 	isync
 
+3:
 	mtlr	r8
 	blr
 #endif
arch/powerpc/platforms/pseries/hotplug-memory.c +4 -4
index fc01a2c0f8ed..b168c3742b43 100644
@@ -227,7 +227,7 @@ static int get_lmb_range(u32 drc_index, int n_lmbs,
 			 struct drmem_lmb **end_lmb)
 {
 	struct drmem_lmb *lmb, *start, *end;
-	struct drmem_lmb *last_lmb;
+	struct drmem_lmb *limit;
 
 	start = NULL;
 	for_each_drmem_lmb(lmb) {
@@ -240,10 +240,10 @@ static int get_lmb_range(u32 drc_index, int n_lmbs,
 	if (!start)
 		return -EINVAL;
 
-	end = &start[n_lmbs - 1];
+	end = &start[n_lmbs];
 
-	last_lmb = &drmem_info->lmbs[drmem_info->n_lmbs - 1];
-	if (end > last_lmb)
+	limit = &drmem_info->lmbs[drmem_info->n_lmbs];
+	if (end > limit)
 		return -EINVAL;
 
 	*start_lmb = start;
arch/powerpc/platforms/pseries/lpar.c +1 -1
index 49e3a88b6a0c..d660a90616cd 100644
@@ -1056,7 +1056,7 @@ static int __init vpa_debugfs_init(void)
 {
 	char name[16];
 	long i;
-	static struct dentry *vpa_dir;
+	struct dentry *vpa_dir;
 
 	if (!firmware_has_feature(FW_FEATURE_SPLPAR))
 		return 0;
arch/powerpc/sysdev/xive/common.c +3 -9
index 3c939b9de488..1c31a08cdd54 100644
@@ -72,13 +72,6 @@ static u32 xive_ipi_irq;
 /* Xive state for each CPU */
 static DEFINE_PER_CPU(struct xive_cpu *, xive_cpu);
 
-/*
- * A "disabled" interrupt should never fire, to catch problems
- * we set its logical number to this
- */
-#define XIVE_BAD_IRQ		0x7fffffff
-#define XIVE_MAX_IRQ		(XIVE_BAD_IRQ - 1)
-
 /* An invalid CPU target */
 #define XIVE_INVALID_TARGET	(-1)
 
@@ -1074,7 +1067,7 @@ static int xive_setup_cpu_ipi(unsigned int cpu)
 	xc = per_cpu(xive_cpu, cpu);
 
 	/* Check if we are already setup */
-	if (xc->hw_ipi != 0)
+	if (xc->hw_ipi != XIVE_BAD_IRQ)
 		return 0;
 
 	/* Grab an IPI from the backend, this will populate xc->hw_ipi */
@@ -1111,7 +1104,7 @@ static void xive_cleanup_cpu_ipi(unsigned int cpu, struct xive_cpu *xc)
 	/* Disable the IPI and free the IRQ data */
 
 	/* Already cleaned up ? */
-	if (xc->hw_ipi == 0)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 
 	/* Mask the IPI */
@@ -1267,6 +1260,7 @@ static int xive_prepare_cpu(unsigned int cpu)
 		if (np)
 			xc->chip_id = of_get_ibm_chip_id(np);
 		of_node_put(np);
+		xc->hw_ipi = XIVE_BAD_IRQ;
 
 		per_cpu(xive_cpu, cpu) = xc;
 	}
arch/powerpc/sysdev/xive/native.c +2 -2
index 6d5b28022452..cb1f51ad48e4 100644
@@ -311,7 +311,7 @@ static void xive_native_put_ipi(unsigned int cpu, struct xive_cpu *xc)
 	s64 rc;
 
 	/* Free the IPI */
-	if (!xc->hw_ipi)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 	for (;;) {
 		rc = opal_xive_free_irq(xc->hw_ipi);
@@ -319,7 +319,7 @@ static void xive_native_put_ipi(unsigned int cpu, struct xive_cpu *xc)
 			msleep(OPAL_BUSY_DELAY_MS);
 			continue;
 		}
-		xc->hw_ipi = 0;
+		xc->hw_ipi = XIVE_BAD_IRQ;
 		break;
 	}
 }
arch/powerpc/sysdev/xive/spapr.c +2 -2
index e3ebf6469392..5566bbc86f4a 100644
@@ -509,11 +509,11 @@ static int xive_spapr_get_ipi(unsigned int cpu, struct xive_cpu *xc)
 
 static void xive_spapr_put_ipi(unsigned int cpu, struct xive_cpu *xc)
 {
-	if (!xc->hw_ipi)
+	if (xc->hw_ipi == XIVE_BAD_IRQ)
 		return;
 
 	xive_irq_bitmap_free(xc->hw_ipi);
-	xc->hw_ipi = 0;
+	xc->hw_ipi = XIVE_BAD_IRQ;
 }
 #endif /* CONFIG_SMP */
 
arch/powerpc/sysdev/xive/xive-internal.h +7 -0
index f34abed0c05f..48808dbb25dc 100644
@@ -9,6 +9,13 @@
 #ifndef __XIVE_INTERNAL_H
 #define __XIVE_INTERNAL_H
 
+/*
+ * A "disabled" interrupt should never fire, to catch problems
+ * we set its logical number to this
+ */
+#define XIVE_BAD_IRQ		0x7fffffff
+#define XIVE_MAX_IRQ		(XIVE_BAD_IRQ - 1)
+
 /* Each CPU carry one of these with various per-CPU state */
 struct xive_cpu {
 #ifdef CONFIG_SMP
arch/powerpc/xmon/Makefile +0 -3
index 365e711bebab..ab193cd7dbf9 100644
@@ -1,9 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 # Makefile for xmon
 
-# Avoid clang warnings around longjmp/setjmp declarations
-subdir-ccflags-y := -ffreestanding
-
 subdir-ccflags-$(CONFIG_PPC_WERROR) += -Werror
 
 GCOV_PROFILE := n
arch/s390/kernel/diag.c +1 -1
index 53a5316cc4b7..35c842aa8705 100644
@@ -79,7 +79,7 @@ static int show_diag_stat(struct seq_file *m, void *v)
 
 static void *show_diag_stat_start(struct seq_file *m, loff_t *pos)
 {
-	return *pos <= nr_cpu_ids ? (void *)((unsigned long) *pos + 1) : NULL;
+	return *pos <= NR_DIAG_STAT ? (void *)((unsigned long) *pos + 1) : NULL;
 }
 
 static void *show_diag_stat_next(struct seq_file *m, void *v, loff_t *pos)
arch/s390/kvm/vsie.c +1 -0
index a2b28cd1e3fe..17d73b71df1d 100644
@@ -1024,6 +1024,7 @@ static int vsie_run(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
 		scb_s->iprcc = PGM_ADDRESSING;
 		scb_s->pgmilc = 4;
 		scb_s->gpsw.addr = __rewind_psw(scb_s->gpsw, 4);
+		rc = 1;
 	}
 	return rc;
 }
arch/s390/mm/gmap.c +5 -1
index 911c7ded35f1..b56c4fdb1517 100644
@@ -787,14 +787,18 @@ static void gmap_call_notifier(struct gmap *gmap, unsigned long start,
 static inline unsigned long *gmap_table_walk(struct gmap *gmap,
 					     unsigned long gaddr, int level)
 {
+	const int asce_type = gmap->asce & _ASCE_TYPE_MASK;
 	unsigned long *table;
 
 	if ((gmap->asce & _ASCE_TYPE_MASK) + 4 < (level * 4))
 		return NULL;
 	if (gmap_is_shadow(gmap) && gmap->removed)
 		return NULL;
-	if (gaddr & (-1UL << (31 + ((gmap->asce & _ASCE_TYPE_MASK) >> 2)*11)))
+
+	if (asce_type != _ASCE_TYPE_REGION1 &&
+	    gaddr & (-1UL << (31 + (asce_type >> 2) * 11)))
 		return NULL;
+
 	table = gmap->table;
 	switch (gmap->asce & _ASCE_TYPE_MASK) {
 	case _ASCE_TYPE_REGION1:
arch/x86/boot/compressed/head_32.S +1 -1
index 37380c0d5999..01d628ea3402 100644
@@ -106,7 +106,7 @@ ENTRY(startup_32)
 	notl	%eax
 	andl    %eax, %ebx
 	cmpl	$LOAD_PHYSICAL_ADDR, %ebx
-	jge	1f
+	jae	1f
 #endif
 	movl	$LOAD_PHYSICAL_ADDR, %ebx
 1:
arch/x86/boot/compressed/head_64.S +2 -2
index 4eaa724afce3..9fa644c62839 100644
@@ -106,7 +106,7 @@ ENTRY(startup_32)
 	notl	%eax
 	andl	%eax, %ebx
 	cmpl	$LOAD_PHYSICAL_ADDR, %ebx
-	jge	1f
+	jae	1f
 #endif
 	movl	$LOAD_PHYSICAL_ADDR, %ebx
 1:
@@ -297,7 +297,7 @@ ENTRY(startup_64)
 	notq	%rax
 	andq	%rax, %rbp
 	cmpq	$LOAD_PHYSICAL_ADDR, %rbp
-	jge	1f
+	jae	1f
 #endif
 	movq	$LOAD_PHYSICAL_ADDR, %rbp
 1:
arch/x86/entry/entry_32.S +1 -0
index d07432062ee6..37d9016d4768 100644
@@ -1489,6 +1489,7 @@ ENTRY(int3)
 END(int3)
 
 ENTRY(general_protection)
+	ASM_CLAC
 	pushl	$do_general_protection
 	jmp	common_exception
 END(general_protection)
arch/x86/include/asm/kvm_host.h +1 -1
index 067288d4ef6e..5c99b9bfce04 100644
@@ -1070,7 +1070,7 @@ struct kvm_x86_ops {
 	bool (*xsaves_supported)(void);
 	bool (*umip_emulated)(void);
 
-	int (*check_nested_events)(struct kvm_vcpu *vcpu, bool external_intr);
+	int (*check_nested_events)(struct kvm_vcpu *vcpu);
 	void (*request_immediate_exit)(struct kvm_vcpu *vcpu);
 
 	void (*sched_in)(struct kvm_vcpu *kvm, int cpu);
arch/x86/include/asm/pgtable.h +5 -2
index 690c0307afed..2e1ed12c65f8 100644
@@ -608,12 +608,15 @@ static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
 	return __pmd(val);
 }
 
-/* mprotect needs to preserve PAT bits when updating vm_page_prot */
+/*
+ * mprotect needs to preserve PAT and encryption bits when updating
+ * vm_page_prot
+ */
 #define pgprot_modify pgprot_modify
 static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
 {
 	pgprotval_t preservebits = pgprot_val(oldprot) & _PAGE_CHG_MASK;
-	pgprotval_t addbits = pgprot_val(newprot);
+	pgprotval_t addbits = pgprot_val(newprot) & ~_PAGE_CHG_MASK;
 	return __pgprot(preservebits | addbits);
 }
 
arch/x86/include/asm/pgtable_types.h +1 -1
index 106b7d0e2dae..71ea49e7db74 100644
@@ -124,7 +124,7 @@
  */
 #define _PAGE_CHG_MASK	(PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT |		\
 			 _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY |	\
-			 _PAGE_SOFT_DIRTY | _PAGE_DEVMAP)
+			 _PAGE_SOFT_DIRTY | _PAGE_DEVMAP | _PAGE_ENC)
 #define _HPAGE_CHG_MASK (_PAGE_CHG_MASK | _PAGE_PSE)
 
 /*
arch/x86/kernel/acpi/boot.c +1 -1
index 3b20607d581b..7303bb398862 100644
@@ -1752,7 +1752,7 @@ int __acpi_acquire_global_lock(unsigned int *lock)
 		new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1));
 		val = cmpxchg(lock, old, new);
 	} while (unlikely (val != old));
-	return (new < 3) ? -1 : 0;
+	return ((new & 0x3) < 3) ? -1 : 0;
 }
 
 int __acpi_release_global_lock(unsigned int *lock)
arch/x86/kvm/svm.c +4 -0
index cc8f3b41a1b2..df2274414640 100644
@@ -1917,6 +1917,10 @@ static void __unregister_enc_region_locked(struct kvm *kvm,
 static struct kvm *svm_vm_alloc(void)
 {
 	struct kvm_svm *kvm_svm = vzalloc(sizeof(struct kvm_svm));
+
+	if (!kvm_svm)
+		return NULL;
+
 	return &kvm_svm->kvm;
 }
 
arch/x86/kvm/vmx.c +38 -72

198 lines not on this page · raw message

arch/x86/kvm/x86.c +16 -5
index 2cb379e261c0..1a6e1aa2fb29 100644
@@ -7124,7 +7124,7 @@ static void update_cr8_intercept(struct kvm_vcpu *vcpu)
 	kvm_x86_ops->update_cr8_intercept(vcpu, tpr, max_irr);
 }
 
-static int inject_pending_event(struct kvm_vcpu *vcpu, bool req_int_win)
+static int inject_pending_event(struct kvm_vcpu *vcpu)
 {
 	int r;
 
@@ -7160,7 +7160,7 @@ static int inject_pending_event(struct kvm_vcpu *vcpu, bool req_int_win)
 	 * from L2 to L1.
 	 */
 	if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events) {
-		r = kvm_x86_ops->check_nested_events(vcpu, req_int_win);
+		r = kvm_x86_ops->check_nested_events(vcpu);
 		if (r != 0)
 			return r;
 	}
@@ -7210,7 +7210,7 @@ static int inject_pending_event(struct kvm_vcpu *vcpu, bool req_int_win)
 		 * KVM_REQ_EVENT only on certain events and not unconditionally?
 		 */
 		if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events) {
-			r = kvm_x86_ops->check_nested_events(vcpu, req_int_win);
+			r = kvm_x86_ops->check_nested_events(vcpu);
 			if (r != 0)
 				return r;
 		}
@@ -7683,7 +7683,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
 			goto out;
 		}
 
-		if (inject_pending_event(vcpu, req_int_win) != 0)
+		if (inject_pending_event(vcpu) != 0)
 			req_immediate_exit = true;
 		else {
 			/* Enable SMI/NMI/IRQ window open exits if needed.
@@ -7894,7 +7894,7 @@ static inline int vcpu_block(struct kvm *kvm, struct kvm_vcpu *vcpu)
 static inline bool kvm_vcpu_running(struct kvm_vcpu *vcpu)
 {
 	if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events)
-		kvm_x86_ops->check_nested_events(vcpu, false);
+		kvm_x86_ops->check_nested_events(vcpu);
 
 	return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE &&
 		!vcpu->arch.apf.halted);
@@ -9229,6 +9229,13 @@ int kvm_arch_create_memslot(struct kvm *kvm, struct kvm_memory_slot *slot,
 {
 	int i;
 
+	/*
+	 * Clear out the previous array pointers for the KVM_MR_MOVE case.  The
+	 * old arrays will be freed by __kvm_set_memory_region() if installing
+	 * the new memslot is successful.
+	 */
+	memset(&slot->arch, 0, sizeof(slot->arch));
+
 	for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) {
 		struct kvm_lpage_info *linfo;
 		unsigned long ugfn;
@@ -9303,6 +9310,10 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
 				const struct kvm_userspace_memory_region *mem,
 				enum kvm_mr_change change)
 {
+	if (change == KVM_MR_MOVE)
+		return kvm_arch_create_memslot(kvm, memslot,
+					       mem->memory_size >> PAGE_SHIFT);
+
 	return 0;
 }
 
arch/x86/platform/efi/efi_64.c +2 -2
index 2a9a703ef4a0..52dd59af873e 100644
@@ -833,7 +833,7 @@ efi_thunk_set_variable(efi_char16_t *name, efi_guid_t *vendor,
 	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_data = virt_to_phys_or_null_size(data, data_size);
 
-	if (!phys_name || !phys_data)
+	if (!phys_name || (data && !phys_data))
 		status = EFI_INVALID_PARAMETER;
 	else
 		status = efi_thunk(set_variable, phys_name, phys_vendor,
@@ -864,7 +864,7 @@ efi_thunk_set_variable_nonblocking(efi_char16_t *name, efi_guid_t *vendor,
 	phys_vendor = virt_to_phys_or_null(vnd);
 	phys_data = virt_to_phys_or_null_size(data, data_size);
 
-	if (!phys_name || !phys_data)
+	if (!phys_name || (data && !phys_data))
 		status = EFI_INVALID_PARAMETER;
 	else
 		status = efi_thunk(set_variable, phys_name, phys_vendor,
block/bfq-iosched.c +12 -4
index 66b1ebc21ce4..5198ed1b3669 100644
@@ -5156,20 +5156,28 @@ static struct bfq_queue *bfq_init_rq(struct request *rq)
 	return bfqq;
 }
 
-static void bfq_idle_slice_timer_body(struct bfq_queue *bfqq)
+static void
+bfq_idle_slice_timer_body(struct bfq_data *bfqd, struct bfq_queue *bfqq)
 {
-	struct bfq_data *bfqd = bfqq->bfqd;
 	enum bfqq_expiration reason;
 	unsigned long flags;
 
 	spin_lock_irqsave(&bfqd->lock, flags);
-	bfq_clear_bfqq_wait_request(bfqq);
 
+	/*
+	 * Considering that bfqq may be in race, we should firstly check
+	 * whether bfqq is in service before doing something on it. If
+	 * the bfqq in race is not in service, it has already been expired
+	 * through __bfq_bfqq_expire func and its wait_request flags has
+	 * been cleared in __bfq_bfqd_reset_in_service func.
+	 */
 	if (bfqq != bfqd->in_service_queue) {
 		spin_unlock_irqrestore(&bfqd->lock, flags);
 		return;
 	}
 
+	bfq_clear_bfqq_wait_request(bfqq);
+
 	if (bfq_bfqq_budget_timeout(bfqq))
 		/*
 		 * Also here the queue can be safely expired
@@ -5214,7 +5222,7 @@ static enum hrtimer_restart bfq_idle_slice_timer(struct hrtimer *timer)
 	 * early.
 	 */
 	if (bfqq)
-		bfq_idle_slice_timer_body(bfqq);
+		bfq_idle_slice_timer_body(bfqd, bfqq);
 
 	return HRTIMER_NORESTART;
 }
block/blk-ioc.c +7 -0
index 01580f88fcb3..4c810969c3e2 100644
@@ -87,6 +87,7 @@ static void ioc_destroy_icq(struct io_cq *icq)
 	 * making it impossible to determine icq_cache.  Record it in @icq.
 	 */
 	icq->__rcu_icq_cache = et->icq_cache;
+	icq->flags |= ICQ_DESTROYED;
 	call_rcu(&icq->__rcu_head, icq_free_icq_rcu);
 }
 
@@ -230,15 +231,21 @@ static void __ioc_clear_queue(struct list_head *icq_list)
 {
 	unsigned long flags;
 
+	rcu_read_lock();
 	while (!list_empty(icq_list)) {
 		struct io_cq *icq = list_entry(icq_list->next,
 					       struct io_cq, q_node);
 		struct io_context *ioc = icq->ioc;
 
 		spin_lock_irqsave(&ioc->lock, flags);
+		if (icq->flags & ICQ_DESTROYED) {
+			spin_unlock_irqrestore(&ioc->lock, flags);
+			continue;
+		}
 		ioc_destroy_icq(icq);
 		spin_unlock_irqrestore(&ioc->lock, flags);
 	}
+	rcu_read_unlock();
 }
 
 /**
block/blk-settings.c +3 -0
index be9b39caadbd..01093b8f3e62 100644
@@ -717,6 +717,9 @@ void disk_stack_limits(struct gendisk *disk, struct block_device *bdev,
 		printk(KERN_NOTICE "%s: Warning: Device %s is misaligned\n",
 		       top, bottom);
 	}
+
+	t->backing_dev_info->io_pages =
+		t->limits.max_sectors >> (PAGE_SHIFT - 9);
 }
 EXPORT_SYMBOL(disk_stack_limits);
 
drivers/ata/libata-pmp.c +1 -0
index 2ae1799f4992..51eeaea65833 100644
@@ -764,6 +764,7 @@ static int sata_pmp_eh_recover_pmp(struct ata_port *ap,
 
 	if (dev->flags & ATA_DFLAG_DETACH) {
 		detach = 1;
+		rc = -ENODEV;
 		goto fail;
 	}
 
drivers/ata/libata-scsi.c +3 -6
index 3a64fa4aaf7e..0c1572a1cc5e 100644
@@ -4570,22 +4570,19 @@ int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht)
 		 */
 		shost->max_host_blocked = 1;
 
-		rc = scsi_add_host_with_dma(ap->scsi_host,
-						&ap->tdev, ap->host->dev);
+		rc = scsi_add_host_with_dma(shost, &ap->tdev, ap->host->dev);
 		if (rc)
-			goto err_add;
+			goto err_alloc;
 	}
 
 	return 0;
 
- err_add:
-	scsi_host_put(host->ports[i]->scsi_host);
  err_alloc:
 	while (--i >= 0) {
 		struct Scsi_Host *shost = host->ports[i]->scsi_host;
 
+		/* scsi_host_put() is in ata_devres_release() */
 		scsi_remove_host(shost);
-		scsi_host_put(shost);
 	}
 	return rc;
 }
drivers/base/firmware_loader/fallback.c +1 -1
index 818d8c37d70a..3b7b748c4d4f 100644
@@ -572,7 +572,7 @@ static int fw_load_sysfs_fallback(struct fw_sysfs *fw_sysfs,
 	}
 
 	retval = fw_sysfs_wait_timeout(fw_priv, timeout);
-	if (retval < 0) {
+	if (retval < 0 && retval != -ENOENT) {
 		mutex_lock(&fw_lock);
 		fw_load_abort(fw_sysfs);
 		mutex_unlock(&fw_lock);
drivers/block/null_blk_main.c +9 -1
index c5c0b7c89481..d2d7dc9cd58d 100644
@@ -571,6 +571,7 @@ static struct nullb_cmd *__alloc_cmd(struct nullb_queue *nq)
 	if (tag != -1U) {
 		cmd = &nq->cmds[tag];
 		cmd->tag = tag;
+		cmd->error = BLK_STS_OK;
 		cmd->nq = nq;
 		if (nq->dev->irqmode == NULL_IRQ_TIMER) {
 			hrtimer_init(&cmd->timer, CLOCK_MONOTONIC,
@@ -1433,6 +1434,7 @@ static blk_status_t null_queue_rq(struct blk_mq_hw_ctx *hctx,
 		cmd->timer.function = null_cmd_timer_expired;
 	}
 	cmd->rq = bd->rq;
+	cmd->error = BLK_STS_OK;
 	cmd->nq = nq;
 
 	blk_mq_start_request(bd->rq);
@@ -1480,7 +1482,12 @@ static void cleanup_queues(struct nullb *nullb)
 
 static void null_del_dev(struct nullb *nullb)
 {
-	struct nullb_device *dev = nullb->dev;
+	struct nullb_device *dev;
+
+	if (!nullb)
+		return;
+
+	dev = nullb->dev;
 
 	ida_simple_remove(&nullb_indexes, nullb->index);
 
@@ -1844,6 +1851,7 @@ static int null_add_dev(struct nullb_device *dev)
 	cleanup_queues(nullb);
 out_free_nullb:
 	kfree(nullb);
+	dev->nullb = NULL;
 out:
 	return rv;
 }
drivers/block/xen-blkfront.c +12 -5
index 9a57af79f330..adc0e3ed01c2 100644
@@ -47,6 +47,7 @@
 #include <linux/bitmap.h>
 #include <linux/list.h>
 #include <linux/workqueue.h>
+#include <linux/sched/mm.h>
 
 #include <xen/xen.h>
 #include <xen/xenbus.h>
@@ -2188,10 +2189,12 @@ static void blkfront_setup_discard(struct blkfront_info *info)
 
 static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
 {
-	unsigned int psegs, grants;
+	unsigned int psegs, grants, memflags;
 	int err, i;
 	struct blkfront_info *info = rinfo->dev_info;
 
+	memflags = memalloc_noio_save();
+
 	if (info->max_indirect_segments == 0) {
 		if (!HAS_EXTRA_REQ)
 			grants = BLKIF_MAX_SEGMENTS_PER_REQUEST;
@@ -2223,7 +2226,7 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
 
 		BUG_ON(!list_empty(&rinfo->indirect_pages));
 		for (i = 0; i < num; i++) {
-			struct page *indirect_page = alloc_page(GFP_NOIO);
+			struct page *indirect_page = alloc_page(GFP_KERNEL);
 			if (!indirect_page)
 				goto out_of_memory;
 			list_add(&indirect_page->lru, &rinfo->indirect_pages);
@@ -2234,15 +2237,15 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
 		rinfo->shadow[i].grants_used =
 			kvcalloc(grants,
 				 sizeof(rinfo->shadow[i].grants_used[0]),
-				 GFP_NOIO);
+				 GFP_KERNEL);
 		rinfo->shadow[i].sg = kvcalloc(psegs,
 					       sizeof(rinfo->shadow[i].sg[0]),
-					       GFP_NOIO);
+					       GFP_KERNEL);
 		if (info->max_indirect_segments)
 			rinfo->shadow[i].indirect_grants =
 				kvcalloc(INDIRECT_GREFS(grants),
 					 sizeof(rinfo->shadow[i].indirect_grants[0]),
-					 GFP_NOIO);
+					 GFP_KERNEL);
 		if ((rinfo->shadow[i].grants_used == NULL) ||
 			(rinfo->shadow[i].sg == NULL) ||
 		     (info->max_indirect_segments &&
@@ -2251,6 +2254,7 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
 		sg_init_table(rinfo->shadow[i].sg, psegs);
 	}
 
+	memalloc_noio_restore(memflags);
 
 	return 0;
 
@@ -2270,6 +2274,9 @@ static int blkfront_setup_indirect(struct blkfront_ring_info *rinfo)
 			__free_page(indirect_page);
 		}
 	}
+
+	memalloc_noio_restore(memflags);
+
 	return -ENOMEM;
 }
 
drivers/bus/sunxi-rsb.c +1 -1
index 1b76d9585902..2ca2cc56bcef 100644
@@ -345,7 +345,7 @@ static int sunxi_rsb_read(struct sunxi_rsb *rsb, u8 rtaddr, u8 addr,
 	if (ret)
 		goto unlock;
 
-	*buf = readl(rsb->regs + RSB_DATA);
+	*buf = readl(rsb->regs + RSB_DATA) & GENMASK(len * 8 - 1, 0);
 
 unlock:
 	mutex_unlock(&rsb->lock);
drivers/char/ipmi/ipmi_msghandler.c +2 -2
index 980eb7c60952..69734b1df792 100644
@@ -3134,8 +3134,8 @@ static void __get_guid(struct ipmi_smi *intf)
 	if (rv)
 		/* Send failed, no GUID available. */
 		bmc->dyn_guid_set = 0;
-
-	wait_event(intf->waitq, bmc->dyn_guid_set != 2);
+	else
+		wait_event(intf->waitq, bmc->dyn_guid_set != 2);
 
 	/* dyn_guid_set makes the guid data available. */
 	smp_rmb();
drivers/char/tpm/eventlog/common.c +4 -8
index 5a8720df2b51..7d70b654df04 100644
@@ -104,11 +104,8 @@ static int tpm_read_log(struct tpm_chip *chip)
  *
  * If an event log is found then the securityfs files are setup to
  * export it to userspace, otherwise nothing is done.
- *
- * Returns -ENODEV if the firmware has no event log or securityfs is not
- * supported.
  */
-int tpm_bios_log_setup(struct tpm_chip *chip)
+void tpm_bios_log_setup(struct tpm_chip *chip)
 {
 	const char *name = dev_name(&chip->dev);
 	unsigned int cnt;
@@ -117,7 +114,7 @@ int tpm_bios_log_setup(struct tpm_chip *chip)
 
 	rc = tpm_read_log(chip);
 	if (rc < 0)
-		return rc;
+		return;
 	log_version = rc;
 
 	cnt = 0;
@@ -163,13 +160,12 @@ int tpm_bios_log_setup(struct tpm_chip *chip)
 		cnt++;
 	}
 
-	return 0;
+	return;
 
 err:
-	rc = PTR_ERR(chip->bios_dir[cnt]);
 	chip->bios_dir[cnt] = NULL;
 	tpm_bios_log_teardown(chip);
-	return rc;
+	return;
 }
 
 void tpm_bios_log_teardown(struct tpm_chip *chip)
drivers/char/tpm/eventlog/tpm1.c +1 -1
index 58c84784ba25..a4621c83e2bf 100644
@@ -129,6 +129,7 @@ static void *tpm1_bios_measurements_next(struct seq_file *m, void *v,
 	u32 converted_event_size;
 	u32 converted_event_type;
 
+	(*pos)++;
 	converted_event_size = do_endian_conversion(event->event_size);
 
 	v += sizeof(struct tcpa_event) + converted_event_size;
@@ -146,7 +147,6 @@ static void *tpm1_bios_measurements_next(struct seq_file *m, void *v,
 	    ((v + sizeof(struct tcpa_event) + converted_event_size) >= limit))
 		return NULL;
 
-	(*pos)++;
 	return v;
 }
 
drivers/char/tpm/eventlog/tpm2.c +1 -1
index 41b9f6c92da7..aec49c925cee 100644
@@ -143,6 +143,7 @@ static void *tpm2_bios_measurements_next(struct seq_file *m, void *v,
 	size_t event_size;
 	void *marker;
 
+	(*pos)++;
 	event_header = log->bios_event_log;
 
 	if (v == SEQ_START_TOKEN) {
@@ -167,7 +168,6 @@ static void *tpm2_bios_measurements_next(struct seq_file *m, void *v,
 	if (((v + event_size) >= limit) || (event_size == 0))
 		return NULL;
 
-	(*pos)++;
 	return v;
 }
 
drivers/char/tpm/tpm-chip.c +1 -3
index 0b01eb7b14e5..4946c5b37d04 100644
@@ -463,9 +463,7 @@ int tpm_chip_register(struct tpm_chip *chip)
 
 	tpm_sysfs_add_device(chip);
 
-	rc = tpm_bios_log_setup(chip);
-	if (rc != 0 && rc != -ENODEV)
-		return rc;
+	tpm_bios_log_setup(chip);
 
 	tpm_add_ppi(chip);
 
drivers/char/tpm/tpm.h +1 -1
index f3501d05264f..289221d653cb 100644
@@ -602,6 +602,6 @@ int tpm2_prepare_space(struct tpm_chip *chip, struct tpm_space *space, u32 cc,
 int tpm2_commit_space(struct tpm_chip *chip, struct tpm_space *space,
 		      u32 cc, u8 *buf, size_t *bufsiz);
 
-int tpm_bios_log_setup(struct tpm_chip *chip);
+void tpm_bios_log_setup(struct tpm_chip *chip);
 void tpm_bios_log_teardown(struct tpm_chip *chip);
 #endif
drivers/clk/ingenic/jz4770-cgu.c +3 -1
index bf46a0df2004..e3057bb5ffd8 100644
@@ -436,8 +436,10 @@ static void __init jz4770_cgu_init(struct device_node *np)
 
 	cgu = ingenic_cgu_new(jz4770_cgu_clocks,
 			      ARRAY_SIZE(jz4770_cgu_clocks), np);
-	if (!cgu)
+	if (!cgu) {
 		pr_err("%s: failed to initialise CGU\n", __func__);
+		return;
+	}
 
 	retval = ingenic_cgu_register_clocks(cgu);
 	if (retval)
drivers/cpufreq/imx6q-cpufreq.c +3 -0
index d8c3595e9023..a0cbbdfc7735 100644
@@ -310,6 +310,9 @@ static int imx6ul_opp_check_speed_grading(struct device *dev)
 		void __iomem *base;
 
 		np = of_find_compatible_node(NULL, NULL, "fsl,imx6ul-ocotp");
+		if (!np)
+			np = of_find_compatible_node(NULL, NULL,
+						     "fsl,imx6ull-ocotp");
 		if (!np)
 			return -ENOENT;
 
drivers/cpufreq/powernv-cpufreq.c +6 -0
index 5fff39dae625..687c92ef7644 100644
@@ -1081,6 +1081,12 @@ static int init_chip_info(void)
 
 static inline void clean_chip_info(void)
 {
+	int i;
+
+	/* flush any pending work items */
+	if (chips)
+		for (i = 0; i < nr_chips; i++)
+			cancel_work_sync(&chips[i].throttle);
 	kfree(chips);
 }
 
drivers/crypto/caam/caamalg_desc.c +14 -2
index edacf9b39b63..ceb033930535 100644
@@ -1457,7 +1457,13 @@ EXPORT_SYMBOL(cnstr_shdsc_ablkcipher_givencap);
  */
 void cnstr_shdsc_xts_ablkcipher_encap(u32 * const desc, struct alginfo *cdata)
 {
-	__be64 sector_size = cpu_to_be64(512);
+	/*
+	 * Set sector size to a big value, practically disabling
+	 * sector size segmentation in xts implementation. We cannot
+	 * take full advantage of this HW feature with existing
+	 * crypto API / dm-crypt SW architecture.
+	 */
+	__be64 sector_size = cpu_to_be64(BIT(15));
 	u32 *key_jump_cmd;
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
@@ -1509,7 +1515,13 @@ EXPORT_SYMBOL(cnstr_shdsc_xts_ablkcipher_encap);
  */
 void cnstr_shdsc_xts_ablkcipher_decap(u32 * const desc, struct alginfo *cdata)
 {
-	__be64 sector_size = cpu_to_be64(512);
+	/*
+	 * Set sector size to a big value, practically disabling
+	 * sector size segmentation in xts implementation. We cannot
+	 * take full advantage of this HW feature with existing
+	 * crypto API / dm-crypt SW architecture.
+	 */
+	__be64 sector_size = cpu_to_be64(BIT(15));
 	u32 *key_jump_cmd;
 
 	init_sh_desc(desc, HDR_SHARE_SERIAL | HDR_SAVECTX);
drivers/crypto/ccree/cc_aead.c +41 -15

206 lines not on this page · raw message

drivers/crypto/ccree/cc_aead.h +1 -0
index 5edf3b351fa4..74bc99067f18 100644
@@ -67,6 +67,7 @@ struct aead_req_ctx {
 	u8 backup_mac[MAX_MAC_SIZE];
 	u8 *backup_iv; /*store iv for generated IV flow*/
 	u8 *backup_giv; /*store iv for rfc3686(ctr) flow*/
+	u32 assoclen; /* internal assoclen */
 	dma_addr_t mac_buf_dma_addr; /* internal ICV DMA buffer */
 	/* buffer for internal ccm configurations */
 	dma_addr_t ccm_iv0_dma_addr;
drivers/crypto/ccree/cc_buffer_mgr.c +55 -53

253 lines not on this page · raw message

drivers/crypto/mxs-dcp.c +28 -30

83 lines not on this page · raw message

drivers/firmware/arm_sdei.c +15 -17
index c64c7da73829..05b528c7ed8f 100644
@@ -489,11 +489,6 @@ static int _sdei_event_unregister(struct sdei_event *event)
 {
 	lockdep_assert_held(&sdei_events_lock);
 
-	spin_lock(&sdei_list_lock);
-	event->reregister = false;
-	event->reenable = false;
-	spin_unlock(&sdei_list_lock);
-
 	if (event->type == SDEI_EVENT_TYPE_SHARED)
 		return sdei_api_event_unregister(event->event_num);
 
@@ -516,6 +511,11 @@ int sdei_event_unregister(u32 event_num)
 			break;
 		}
 
+		spin_lock(&sdei_list_lock);
+		event->reregister = false;
+		event->reenable = false;
+		spin_unlock(&sdei_list_lock);
+
 		err = _sdei_event_unregister(event);
 		if (err)
 			break;
@@ -583,26 +583,15 @@ static int _sdei_event_register(struct sdei_event *event)
 
 	lockdep_assert_held(&sdei_events_lock);
 
-	spin_lock(&sdei_list_lock);
-	event->reregister = true;
-	spin_unlock(&sdei_list_lock);
-
 	if (event->type == SDEI_EVENT_TYPE_SHARED)
 		return sdei_api_event_register(event->event_num,
 					       sdei_entry_point,
 					       event->registered,
 					       SDEI_EVENT_REGISTER_RM_ANY, 0);
 
-
 	err = sdei_do_cross_call(_local_event_register, event);
-	if (err) {
-		spin_lock(&sdei_list_lock);
-		event->reregister = false;
-		event->reenable = false;
-		spin_unlock(&sdei_list_lock);
-
+	if (err)
 		sdei_do_cross_call(_local_event_unregister, event);
-	}
 
 	return err;
 }
@@ -630,8 +619,17 @@ int sdei_event_register(u32 event_num, sdei_event_callback *cb, void *arg)
 			break;
 		}
 
+		spin_lock(&sdei_list_lock);
+		event->reregister = true;
+		spin_unlock(&sdei_list_lock);
+
 		err = _sdei_event_register(event);
 		if (err) {
+			spin_lock(&sdei_list_lock);
+			event->reregister = false;
+			event->reenable = false;
+			spin_unlock(&sdei_list_lock);
+
 			sdei_event_destroy(event);
 			pr_warn("Failed to register event %u: %d\n", event_num,
 				err);
drivers/firmware/efi/efi.c +1 -1
index d54fca902e64..f1e0a2715269 100644
@@ -572,7 +572,7 @@ int __init efi_config_parse_tables(void *config_tables, int count, int sz,
 		}
 	}
 
-	if (efi_enabled(EFI_MEMMAP))
+	if (!IS_ENABLED(CONFIG_X86_32) && efi_enabled(EFI_MEMMAP))
 		efi_memattr_init();
 
 	efi_tpm_eventlog_init();
drivers/gpu/drm/drm_dp_mst_topology.c +6 -13
index 7c3c323773d3..5f508ec321fe 100644
@@ -2115,9 +2115,9 @@ static bool drm_dp_get_vc_payload_bw(int dp_link_bw,
 int drm_dp_mst_topology_mgr_set_mst(struct drm_dp_mst_topology_mgr *mgr, bool mst_state)
 {
 	int ret = 0;
-	int i = 0;
 	struct drm_dp_mst_branch *mstb = NULL;
 
+	mutex_lock(&mgr->payload_lock);
 	mutex_lock(&mgr->lock);
 	if (mst_state == mgr->mst_state)
 		goto out_unlock;
@@ -2176,25 +2176,18 @@ int drm_dp_mst_topology_mgr_set_mst(struct drm_dp_mst_topology_mgr *mgr, bool ms
 		/* this can fail if the device is gone */
 		drm_dp_dpcd_writeb(mgr->aux, DP_MSTM_CTRL, 0);
 		ret = 0;
-		mutex_lock(&mgr->payload_lock);
-		memset(mgr->payloads, 0, mgr->max_payloads * sizeof(struct drm_dp_payload));
+		memset(mgr->payloads, 0,
+		       mgr->max_payloads * sizeof(mgr->payloads[0]));
+		memset(mgr->proposed_vcpis, 0,
+		       mgr->max_payloads * sizeof(mgr->proposed_vcpis[0]));
 		mgr->payload_mask = 0;
 		set_bit(0, &mgr->payload_mask);
-		for (i = 0; i < mgr->max_payloads; i++) {
-			struct drm_dp_vcpi *vcpi = mgr->proposed_vcpis[i];
-
-			if (vcpi) {
-				vcpi->vcpi = 0;
-				vcpi->num_slots = 0;
-			}
-			mgr->proposed_vcpis[i] = NULL;
-		}
 		mgr->vcpi_mask = 0;
-		mutex_unlock(&mgr->payload_lock);
 	}
 
 out_unlock:
 	mutex_unlock(&mgr->lock);
+	mutex_unlock(&mgr->payload_lock);
 	if (mstb)
 		drm_dp_put_mst_branch_device(mstb);
 	return ret;
drivers/gpu/drm/drm_pci.c +2 -23
index 896e42a34895..d89a992829be 100644
@@ -46,8 +46,6 @@
 drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align)
 {
 	drm_dma_handle_t *dmah;
-	unsigned long addr;
-	size_t sz;
 
 	/* pci_alloc_consistent only guarantees alignment to the smallest
 	 * PAGE_SIZE order which is greater than or equal to the requested size.
@@ -61,22 +59,13 @@ drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t ali
 		return NULL;
 
 	dmah->size = size;
-	dmah->vaddr = dma_alloc_coherent(&dev->pdev->dev, size, &dmah->busaddr, GFP_KERNEL | __GFP_COMP);
+	dmah->vaddr = dma_alloc_coherent(&dev->pdev->dev, size, &dmah->busaddr, GFP_KERNEL);
 
 	if (dmah->vaddr == NULL) {
 		kfree(dmah);
 		return NULL;
 	}
 
-	memset(dmah->vaddr, 0, size);
-
-	/* XXX - Is virt_to_page() legal for consistent mem? */
-	/* Reserve */
-	for (addr = (unsigned long)dmah->vaddr, sz = size;
-	     sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) {
-		SetPageReserved(virt_to_page((void *)addr));
-	}
-
 	return dmah;
 }
 
@@ -89,19 +78,9 @@ EXPORT_SYMBOL(drm_pci_alloc);
  */
 void __drm_legacy_pci_free(struct drm_device * dev, drm_dma_handle_t * dmah)
 {
-	unsigned long addr;
-	size_t sz;
-
-	if (dmah->vaddr) {
-		/* XXX - Is virt_to_page() legal for consistent mem? */
-		/* Unreserve */
-		for (addr = (unsigned long)dmah->vaddr, sz = dmah->size;
-		     sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) {
-			ClearPageReserved(virt_to_page((void *)addr));
-		}
+	if (dmah->vaddr)
 		dma_free_coherent(&dev->pdev->dev, dmah->size, dmah->vaddr,
 				  dmah->busaddr);
-	}
 }
 
 /**
drivers/gpu/drm/etnaviv/etnaviv_perfmon.c +85 -18

177 lines not on this page · raw message

drivers/i2c/busses/i2c-st.c +1 -0
index 9e62f893958a..81158ae8bfe3 100644
@@ -437,6 +437,7 @@ static void st_i2c_wr_fill_tx_fifo(struct st_i2c_dev *i2c_dev)
 /**
  * st_i2c_rd_fill_tx_fifo() - Fill the Tx FIFO in read mode
  * @i2c_dev: Controller's private data
+ * @max: Maximum amount of data to fill into the Tx FIFO
  *
  * This functions fills the Tx FIFO with fixed pattern when
  * in read mode to trigger clock.
drivers/infiniband/hw/mlx5/main.c +2 -4
index 2db34f7b5ced..f41f3ff689c5 100644
@@ -1070,12 +1070,10 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
 		if (MLX5_CAP_ETH(mdev, tunnel_stateless_gre))
 			resp.tunnel_offloads_caps |=
 				MLX5_IB_TUNNELED_OFFLOADS_GRE;
-		if (MLX5_CAP_GEN(mdev, flex_parser_protocols) &
-		    MLX5_FLEX_PROTO_CW_MPLS_GRE)
+		if (MLX5_CAP_ETH(mdev, tunnel_stateless_mpls_over_gre))
 			resp.tunnel_offloads_caps |=
 				MLX5_IB_TUNNELED_OFFLOADS_MPLS_GRE;
-		if (MLX5_CAP_GEN(mdev, flex_parser_protocols) &
-		    MLX5_FLEX_PROTO_CW_MPLS_UDP)
+		if (MLX5_CAP_ETH(mdev, tunnel_stateless_mpls_over_udp))
 			resp.tunnel_offloads_caps |=
 				MLX5_IB_TUNNELED_OFFLOADS_MPLS_UDP;
 	}
drivers/input/serio/i8042-x86ia64io.h +11 -0
index 136f6e7bf797..0d0f977a2f39 100644
@@ -534,6 +534,17 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
 			DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo LaVie Z"),
 		},
 	},
+	{
+		/*
+		 * Acer Aspire 5738z
+		 * Touchpad stops working in mux mode when dis- + re-enabled
+		 * with the touchpad enable/disable toggle hotkey
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5738"),
+		},
+	},
 	{ }
 };
 
drivers/irqchip/irq-gic-v3-its.c +6 -0
index f9b73336a39e..fe7d63cdfb1d 100644
@@ -2858,12 +2858,18 @@ static int its_vpe_set_irqchip_state(struct irq_data *d,
 	return 0;
 }
 
+static int its_vpe_retrigger(struct irq_data *d)
+{
+	return !its_vpe_set_irqchip_state(d, IRQCHIP_STATE_PENDING, true);
+}
+
 static struct irq_chip its_vpe_irq_chip = {
 	.name			= "GICv4-vpe",
 	.irq_mask		= its_vpe_mask_irq,
 	.irq_unmask		= its_vpe_unmask_irq,
 	.irq_eoi		= irq_chip_eoi_parent,
 	.irq_set_affinity	= its_vpe_set_affinity,
+	.irq_retrigger		= its_vpe_retrigger,
 	.irq_set_irqchip_state	= its_vpe_set_irqchip_state,
 	.irq_set_vcpu_affinity	= its_vpe_set_vcpu_affinity,
 };
drivers/irqchip/irq-versatile-fpga.c +13 -5
index 928858dada75..f1386733d3bc 100644
@@ -6,6 +6,7 @@
 #include <linux/irq.h>
 #include <linux/io.h>
 #include <linux/irqchip.h>
+#include <linux/irqchip/chained_irq.h>
 #include <linux/irqchip/versatile-fpga.h>
 #include <linux/irqdomain.h>
 #include <linux/module.h>
@@ -68,12 +69,16 @@ static void fpga_irq_unmask(struct irq_data *d)
 
 static void fpga_irq_handle(struct irq_desc *desc)
 {
+	struct irq_chip *chip = irq_desc_get_chip(desc);
 	struct fpga_irq_data *f = irq_desc_get_handler_data(desc);
-	u32 status = readl(f->base + IRQ_STATUS);
+	u32 status;
+
+	chained_irq_enter(chip, desc);
 
+	status = readl(f->base + IRQ_STATUS);
 	if (status == 0) {
 		do_bad_IRQ(desc);
-		return;
+		goto out;
 	}
 
 	do {
@@ -82,6 +87,9 @@ static void fpga_irq_handle(struct irq_desc *desc)
 		status &= ~(1 << irq);
 		generic_handle_irq(irq_find_mapping(f->domain, irq));
 	} while (status);
+
+out:
+	chained_irq_exit(chip, desc);
 }
 
 /*
@@ -204,6 +212,9 @@ int __init fpga_irq_of_init(struct device_node *node,
 	if (of_property_read_u32(node, "valid-mask", &valid_mask))
 		valid_mask = 0;
 
+	writel(clear_mask, base + IRQ_ENABLE_CLEAR);
+	writel(clear_mask, base + FIQ_ENABLE_CLEAR);
+
 	/* Some chips are cascaded from a parent IRQ */
 	parent_irq = irq_of_parse_and_map(node, 0);
 	if (!parent_irq) {
@@ -213,9 +224,6 @@ int __init fpga_irq_of_init(struct device_node *node,
 
 	fpga_irq_init(base, node->name, 0, parent_irq, valid_mask, node);
 
-	writel(clear_mask, base + IRQ_ENABLE_CLEAR);
-	writel(clear_mask, base + FIQ_ENABLE_CLEAR);
-
 	/*
 	 * On Versatile AB/PB, some secondary interrupts have a direct
 	 * pass-thru to the primary controller for IRQs 20 and 22-31 which need
drivers/md/dm-verity-fec.c +1 -0
index 684af08d0747..0f4a2143bf55 100644
@@ -552,6 +552,7 @@ void verity_fec_dtr(struct dm_verity *v)
 	mempool_exit(&f->rs_pool);
 	mempool_exit(&f->prealloc_pool);
 	mempool_exit(&f->extra_pool);
+	mempool_exit(&f->output_pool);
 	kmem_cache_destroy(f->cache);
 
 	if (f->data_bufio)
drivers/md/dm-writecache.c +5 -1
index 4e4a09054f85..a76eda50ad48 100644
@@ -878,6 +878,7 @@ static int writecache_alloc_entries(struct dm_writecache *wc)
 		struct wc_entry *e = &wc->entries[b];
 		e->index = b;
 		e->write_in_progress = false;
+		cond_resched();
 	}
 
 	return 0;
@@ -932,6 +933,7 @@ static void writecache_resume(struct dm_target *ti)
 			e->original_sector = le64_to_cpu(wme.original_sector);
 			e->seq_count = le64_to_cpu(wme.seq_count);
 		}
+		cond_resched();
 	}
 #endif
 	for (b = 0; b < wc->n_blocks; b++) {
@@ -1764,8 +1766,10 @@ static int init_memory(struct dm_writecache *wc)
 	pmem_assign(sb(wc)->n_blocks, cpu_to_le64(wc->n_blocks));
 	pmem_assign(sb(wc)->seq_count, cpu_to_le64(0));
 
-	for (b = 0; b < wc->n_blocks; b++)
+	for (b = 0; b < wc->n_blocks; b++) {
 		write_original_sector_seq_count(wc, &wc->entries[b], -1, -1);
+		cond_resched();
+	}
 
 	writecache_flush_all_metadata(wc);
 	writecache_commit_flushed(wc, false);
drivers/md/dm-zoned-metadata.c +0 -1
index 086a870087cf..53eb21343b11 100644
@@ -1105,7 +1105,6 @@ static int dmz_init_zone(struct dmz_metadata *zmd, struct dm_zone *zone,
 
 	if (blkz->type == BLK_ZONE_TYPE_CONVENTIONAL) {
 		set_bit(DMZ_RND, &zone->flags);
-		zmd->nr_rnd_zones++;
 	} else if (blkz->type == BLK_ZONE_TYPE_SEQWRITE_REQ ||
 		   blkz->type == BLK_ZONE_TYPE_SEQWRITE_PREF) {
 		set_bit(DMZ_SEQ, &zone->flags);
drivers/md/md.c +1 -1
index 62f214d43e15..9426976e0860 100644
@@ -5874,7 +5874,7 @@ EXPORT_SYMBOL_GPL(md_stop_writes);
 static void mddev_detach(struct mddev *mddev)
 {
 	md_bitmap_wait_behind_writes(mddev);
-	if (mddev->pers && mddev->pers->quiesce) {
+	if (mddev->pers && mddev->pers->quiesce && !mddev->suspended) {
 		mddev->pers->quiesce(mddev, 1);
 		mddev->pers->quiesce(mddev, 0);
 	}
drivers/media/i2c/ov5695.c +31 -18

84 lines not on this page · raw message

drivers/media/i2c/video-i2c.c +1 -1
index f27d294dcbef..dd50acc085d8 100644
@@ -105,7 +105,7 @@ static int amg88xx_xfer(struct video_i2c_data *data, char *buf)
 	return (ret == 2) ? 0 : -EIO;
 }
 
-#if IS_ENABLED(CONFIG_HWMON)
+#if IS_REACHABLE(CONFIG_HWMON)
 
 static const u32 amg88xx_temp_config[] = {
 	HWMON_T_INPUT,
drivers/media/platform/qcom/venus/hfi_parser.c +1 -0
index 2293d936e49c..7f515a4b9bd1 100644
@@ -181,6 +181,7 @@ static void parse_codecs(struct venus_core *core, void *data)
 	if (IS_V1(core)) {
 		core->dec_codecs &= ~HFI_VIDEO_CODEC_HEVC;
 		core->dec_codecs &= ~HFI_VIDEO_CODEC_SPARK;
+		core->enc_codecs &= ~HFI_VIDEO_CODEC_HEVC;
 	}
 }
 
drivers/media/platform/ti-vpe/cal.c +8 -8
index d1febe5baa6d..be3155275a6b 100644
@@ -541,16 +541,16 @@ static void enable_irqs(struct cal_ctx *ctx)
 
 static void disable_irqs(struct cal_ctx *ctx)
 {
+	u32 val;
+
 	/* Disable IRQ_WDMA_END 0/1 */
-	reg_write_field(ctx->dev,
-			CAL_HL_IRQENABLE_CLR(2),
-			CAL_HL_IRQ_CLEAR,
-			CAL_HL_IRQ_MASK(ctx->csi2_port));
+	val = 0;
+	set_field(&val, CAL_HL_IRQ_CLEAR, CAL_HL_IRQ_MASK(ctx->csi2_port));
+	reg_write(ctx->dev, CAL_HL_IRQENABLE_CLR(2), val);
 	/* Disable IRQ_WDMA_START 0/1 */
-	reg_write_field(ctx->dev,
-			CAL_HL_IRQENABLE_CLR(3),
-			CAL_HL_IRQ_CLEAR,
-			CAL_HL_IRQ_MASK(ctx->csi2_port));
+	val = 0;
+	set_field(&val, CAL_HL_IRQ_CLEAR, CAL_HL_IRQ_MASK(ctx->csi2_port));
+	reg_write(ctx->dev, CAL_HL_IRQENABLE_CLR(3), val);
 	/* Todo: Add VC_IRQ and CSI2_COMPLEXIO_IRQ handling */
 	reg_write(ctx->dev, CAL_CSI2_VC_IRQENABLE(1), 0);
 }
drivers/mfd/dln2.c +7 -2
index 1476465ce803..6ea0dd37b453 100644
@@ -93,6 +93,11 @@ struct dln2_mod_rx_slots {
 	spinlock_t lock;
 };
 
+enum dln2_endpoint {
+	DLN2_EP_OUT	= 0,
+	DLN2_EP_IN	= 1,
+};
+
 struct dln2_dev {
 	struct usb_device *usb_dev;
 	struct usb_interface *interface;
@@ -736,10 +741,10 @@ static int dln2_probe(struct usb_interface *interface,
 	    hostif->desc.bNumEndpoints < 2)
 		return -ENODEV;
 
-	epin = &hostif->endpoint[0].desc;
-	epout = &hostif->endpoint[1].desc;
+	epout = &hostif->endpoint[DLN2_EP_OUT].desc;
 	if (!usb_endpoint_is_bulk_out(epout))
 		return -ENODEV;
+	epin = &hostif->endpoint[DLN2_EP_IN].desc;
 	if (!usb_endpoint_is_bulk_in(epin))
 		return -ENODEV;
 
drivers/misc/echo/echo.c +1 -1
index 8a5adc0d2e88..3ebe5d75ad6a 100644
@@ -381,7 +381,7 @@ int16_t oslec_update(struct oslec_state *ec, int16_t tx, int16_t rx)
 	 */
 	ec->factor = 0;
 	ec->shift = 0;
-	if ((ec->nonupdate_dwell == 0)) {
+	if (!ec->nonupdate_dwell) {
 		int p, logp, shift;
 
 		/* Determine:
drivers/mtd/nand/spi/core.c +7 -10
index 48b3ab26b124..ee0c74b02220 100644
@@ -629,18 +629,18 @@ static int spinand_mtd_write(struct mtd_info *mtd, loff_t to,
 static bool spinand_isbad(struct nand_device *nand, const struct nand_pos *pos)
 {
 	struct spinand_device *spinand = nand_to_spinand(nand);
+	u8 marker[2] = { };
 	struct nand_page_io_req req = {
 		.pos = *pos,
-		.ooblen = 2,
+		.ooblen = sizeof(marker),
 		.ooboffs = 0,
-		.oobbuf.in = spinand->oobbuf,
+		.oobbuf.in = marker,
 		.mode = MTD_OPS_RAW,
 	};
 
-	memset(spinand->oobbuf, 0, 2);
 	spinand_select_target(spinand, pos->target);
 	spinand_read_page(spinand, &req, false);
-	if (spinand->oobbuf[0] != 0xff || spinand->oobbuf[1] != 0xff)
+	if (marker[0] != 0xff || marker[1] != 0xff)
 		return true;
 
 	return false;
@@ -664,15 +664,15 @@ static int spinand_mtd_block_isbad(struct mtd_info *mtd, loff_t offs)
 static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos)
 {
 	struct spinand_device *spinand = nand_to_spinand(nand);
+	u8 marker[2] = { };
 	struct nand_page_io_req req = {
 		.pos = *pos,
 		.ooboffs = 0,
-		.ooblen = 2,
-		.oobbuf.out = spinand->oobbuf,
+		.ooblen = sizeof(marker),
+		.oobbuf.out = marker,
 	};
 	int ret;
 
-	/* Erase block before marking it bad. */
 	ret = spinand_select_target(spinand, pos->target);
 	if (ret)
 		return ret;
@@ -681,9 +681,6 @@ static int spinand_markbad(struct nand_device *nand, const struct nand_pos *pos)
 	if (ret)
 		return ret;
 
-	spinand_erase_op(spinand, pos);
-
-	memset(spinand->oobbuf, 0, 2);
 	return spinand_write_page(spinand, &req);
 }
 
drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.c +3 -0
index 9f9d6cae39d5..758f2b836328 100644
@@ -246,6 +246,9 @@ static int  cxgb4_ptp_fineadjtime(struct adapter *adapter, s64 delta)
 			     FW_PTP_CMD_PORTID_V(0));
 	c.retval_len16 = cpu_to_be32(FW_CMD_LEN16_V(sizeof(c) / 16));
 	c.u.ts.sc = FW_PTP_SC_ADJ_FTIME;
+	c.u.ts.sign = (delta < 0) ? 1 : 0;
+	if (delta < 0)
+		delta = -delta;
 	c.u.ts.tm = cpu_to_be64(delta);
 
 	err = t4_wr_mbox(adapter, adapter->mbox, &c, sizeof(c), NULL);
drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c +2 -1
index 4d09ea786b35..ee715bf785ad 100644
@@ -398,7 +398,8 @@ static int cmdq_sync_cmd_direct_resp(struct hinic_cmdq *cmdq,
 
 	spin_unlock_bh(&cmdq->cmdq_lock);
 
-	if (!wait_for_completion_timeout(&done, CMDQ_TIMEOUT)) {
+	if (!wait_for_completion_timeout(&done,
+					 msecs_to_jiffies(CMDQ_TIMEOUT))) {
 		spin_lock_bh(&cmdq->cmdq_lock);
 
 		if (cmdq->errcode[curr_prod_idx] == &errcode)
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c +2 -49

63 lines not on this page · raw message

drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c +3 -2
index 278dc13f3dae..9fcf2e5e0003 100644
@@ -52,7 +52,7 @@
 
 #define MSG_NOT_RESP                    0xFFFF
 
-#define MGMT_MSG_TIMEOUT                1000
+#define MGMT_MSG_TIMEOUT                5000
 
 #define mgmt_to_pfhwdev(pf_mgmt)        \
 		container_of(pf_mgmt, struct hinic_pfhwdev, pf_to_mgmt)
@@ -276,7 +276,8 @@ static int msg_to_mgmt_sync(struct hinic_pf_to_mgmt *pf_to_mgmt,
 		goto unlock_sync_msg;
 	}
 
-	if (!wait_for_completion_timeout(recv_done, MGMT_MSG_TIMEOUT)) {
+	if (!wait_for_completion_timeout(recv_done,
+					 msecs_to_jiffies(MGMT_MSG_TIMEOUT))) {
 		dev_err(&pdev->dev, "MGMT timeout, MSG id = %d\n", msg_id);
 		err = -ETIMEDOUT;
 		goto unlock_sync_msg;
drivers/net/ethernet/neterion/vxge/vxge-config.h +1 -1
index d743a37a3cee..e5dda2c27f18 100644
@@ -2065,7 +2065,7 @@ vxge_hw_vpath_strip_fcs_check(struct __vxge_hw_device *hldev, u64 vpath_mask);
 	if ((level >= VXGE_ERR && VXGE_COMPONENT_LL & VXGE_DEBUG_ERR_MASK) ||  \
 	    (level >= VXGE_TRACE && VXGE_COMPONENT_LL & VXGE_DEBUG_TRACE_MASK))\
 		if ((mask & VXGE_DEBUG_MASK) == mask)			       \
-			printk(fmt "\n", __VA_ARGS__);			       \
+			printk(fmt "\n", ##__VA_ARGS__);		       \
 } while (0)
 #else
 #define vxge_debug_ll(level, mask, fmt, ...)
drivers/net/ethernet/neterion/vxge/vxge-main.h +7 -7
index 59a57ff5e96a..9c86f4f9cd42 100644
@@ -452,49 +452,49 @@ int vxge_fw_upgrade(struct vxgedev *vdev, char *fw_name, int override);
 
 #if (VXGE_DEBUG_LL_CONFIG & VXGE_DEBUG_MASK)
 #define vxge_debug_ll_config(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_LL_CONFIG, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_LL_CONFIG, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_ll_config(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_INIT & VXGE_DEBUG_MASK)
 #define vxge_debug_init(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_INIT, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_INIT, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_init(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_TX & VXGE_DEBUG_MASK)
 #define vxge_debug_tx(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_TX, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_TX, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_tx(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_RX & VXGE_DEBUG_MASK)
 #define vxge_debug_rx(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_RX, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_RX, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_rx(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_MEM & VXGE_DEBUG_MASK)
 #define vxge_debug_mem(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_MEM, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_MEM, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_mem(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_ENTRYEXIT & VXGE_DEBUG_MASK)
 #define vxge_debug_entryexit(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_ENTRYEXIT, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_ENTRYEXIT, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_entryexit(level, fmt, ...)
 #endif
 
 #if (VXGE_DEBUG_INTR & VXGE_DEBUG_MASK)
 #define vxge_debug_intr(level, fmt, ...) \
-	vxge_debug_ll(level, VXGE_DEBUG_INTR, fmt, __VA_ARGS__)
+	vxge_debug_ll(level, VXGE_DEBUG_INTR, fmt, ##__VA_ARGS__)
 #else
 #define vxge_debug_intr(level, fmt, ...)
 #endif
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c +1 -1
index 07f9067affc6..cda5b0a9e948 100644
@@ -1720,7 +1720,7 @@ static int qlcnic_83xx_get_reset_instruction_template(struct qlcnic_adapter *p_d
 
 	ahw->reset.seq_error = 0;
 	ahw->reset.buff = kzalloc(QLC_83XX_RESTART_TEMPLATE_SIZE, GFP_KERNEL);
-	if (p_dev->ahw->reset.buff == NULL)
+	if (ahw->reset.buff == NULL)
 		return -ENOMEM;
 
 	p_buff = p_dev->ahw->reset.buff;
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c +19 -12
index 37786affa975..7389648d0fea 100644
@@ -288,7 +288,6 @@ static int rmnet_changelink(struct net_device *dev, struct nlattr *tb[],
 {
 	struct rmnet_priv *priv = netdev_priv(dev);
 	struct net_device *real_dev;
-	struct rmnet_endpoint *ep;
 	struct rmnet_port *port;
 	u16 mux_id;
 
@@ -303,19 +302,27 @@ static int rmnet_changelink(struct net_device *dev, struct nlattr *tb[],
 
 	if (data[IFLA_RMNET_MUX_ID]) {
 		mux_id = nla_get_u16(data[IFLA_RMNET_MUX_ID]);
-		if (rmnet_get_endpoint(port, mux_id)) {
-			NL_SET_ERR_MSG_MOD(extack, "MUX ID already exists");
-			return -EINVAL;
-		}
-		ep = rmnet_get_endpoint(port, priv->mux_id);
-		if (!ep)
-			return -ENODEV;
 
-		hlist_del_init_rcu(&ep->hlnode);
-		hlist_add_head_rcu(&ep->hlnode, &port->muxed_ep[mux_id]);
+		if (mux_id != priv->mux_id) {
+			struct rmnet_endpoint *ep;
+
+			ep = rmnet_get_endpoint(port, priv->mux_id);
+			if (!ep)
+				return -ENODEV;
 
-		ep->mux_id = mux_id;
-		priv->mux_id = mux_id;
+			if (rmnet_get_endpoint(port, mux_id)) {
+				NL_SET_ERR_MSG_MOD(extack,
+						   "MUX ID already exists");
+				return -EINVAL;
+			}
+
+			hlist_del_init_rcu(&ep->hlnode);
+			hlist_add_head_rcu(&ep->hlnode,
+					   &port->muxed_ep[mux_id]);
+
+			ep->mux_id = mux_id;
+			priv->mux_id = mux_id;
+		}
 	}
 
 	if (data[IFLA_RMNET_FLAGS]) {
drivers/net/wireless/ath/ath9k/main.c +3 -0
index 74f98bbaea88..3e92b88045a5 100644
@@ -1457,6 +1457,9 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
 		ath_chanctx_set_channel(sc, ctx, &hw->conf.chandef);
 	}
 
+	if (changed & IEEE80211_CONF_CHANGE_POWER)
+		ath9k_set_txpower(sc, NULL);
+
 	mutex_unlock(&sc->mutex);
 	ath9k_ps_restore(sc);
 
drivers/nvme/host/core.c +11 -0
index a8132e8d72bb..d5359c7c811a 100644
@@ -2200,6 +2200,17 @@ static struct nvme_subsystem *__nvme_find_get_subsystem(const char *subsysnqn)
 
 	lockdep_assert_held(&nvme_subsystems_lock);
 
+	/*
+	 * Fail matches for discovery subsystems. This results
+	 * in each discovery controller bound to a unique subsystem.
+	 * This avoids issues with validating controller values
+	 * that can only be true when there is a single unique subsystem.
+	 * There may be multiple and completely independent entities
+	 * that provide discovery controllers.
+	 */
+	if (!strcmp(subsysnqn, NVME_DISC_SUBSYS_NAME))
+		return NULL;
+
 	list_for_each_entry(subsys, &nvme_subsystems, entry) {
 		if (strcmp(subsys->subnqn, subsysnqn))
 			continue;
drivers/nvme/host/fc.c +2 -12
index 1875f6b8a907..ed43b06353a3 100644
@@ -342,8 +342,7 @@ nvme_fc_register_localport(struct nvme_fc_port_info *pinfo,
 	    !template->ls_req || !template->fcp_io ||
 	    !template->ls_abort || !template->fcp_abort ||
 	    !template->max_hw_queues || !template->max_sgl_segments ||
-	    !template->max_dif_sgl_segments || !template->dma_boundary ||
-	    !template->module) {
+	    !template->max_dif_sgl_segments || !template->dma_boundary) {
 		ret = -EINVAL;
 		goto out_reghost_failed;
 	}
@@ -1987,7 +1986,6 @@ nvme_fc_ctrl_free(struct kref *ref)
 {
 	struct nvme_fc_ctrl *ctrl =
 		container_of(ref, struct nvme_fc_ctrl, ref);
-	struct nvme_fc_lport *lport = ctrl->lport;
 	unsigned long flags;
 
 	if (ctrl->ctrl.tagset) {
@@ -2013,7 +2011,6 @@ nvme_fc_ctrl_free(struct kref *ref)
 	if (ctrl->ctrl.opts)
 		nvmf_free_options(ctrl->ctrl.opts);
 	kfree(ctrl);
-	module_put(lport->ops->module);
 }
 
 static void
@@ -3055,15 +3052,10 @@ nvme_fc_init_ctrl(struct device *dev, struct nvmf_ctrl_options *opts,
 		goto out_fail;
 	}
 
-	if (!try_module_get(lport->ops->module)) {
-		ret = -EUNATCH;
-		goto out_free_ctrl;
-	}
-
 	idx = ida_simple_get(&nvme_fc_ctrl_cnt, 0, 0, GFP_KERNEL);
 	if (idx < 0) {
 		ret = -ENOSPC;
-		goto out_mod_put;
+		goto out_free_ctrl;
 	}
 
 	ctrl->ctrl.opts = opts;
@@ -3205,8 +3197,6 @@ nvme_fc_init_ctrl(struct device *dev, struct nvmf_ctrl_options *opts,
 out_free_ida:
 	put_device(ctrl->dev);
 	ida_simple_remove(&nvme_fc_ctrl_cnt, ctrl->cnum);
-out_mod_put:
-	module_put(lport->ops->module);
 out_free_ctrl:
 	kfree(ctrl);
 out_fail:
drivers/nvme/target/fcloop.c +0 -1
index f0536d341f2f..291f4121f516 100644
@@ -825,7 +825,6 @@ fcloop_targetport_delete(struct nvmet_fc_target_port *targetport)
 #define FCLOOP_DMABOUND_4G		0xFFFFFFFF
 
 static struct nvme_fc_port_template fctemplate = {
-	.module			= THIS_MODULE,
 	.localport_delete	= fcloop_localport_delete,
 	.remoteport_delete	= fcloop_remoteport_delete,
 	.create_queue		= fcloop_create_queue,
drivers/pci/endpoint/pci-epc-mem.c +8 -2
index 2bf8bd1f0563..0471643cf536 100644
@@ -79,6 +79,7 @@ int __pci_epc_mem_init(struct pci_epc *epc, phys_addr_t phys_base, size_t size,
 	mem->page_size = page_size;
 	mem->pages = pages;
 	mem->size = size;
+	mutex_init(&mem->lock);
 
 	epc->mem = mem;
 
@@ -122,7 +123,7 @@ void __iomem *pci_epc_mem_alloc_addr(struct pci_epc *epc,
 				     phys_addr_t *phys_addr, size_t size)
 {
 	int pageno;
-	void __iomem *virt_addr;
+	void __iomem *virt_addr = NULL;
 	struct pci_epc_mem *mem = epc->mem;
 	unsigned int page_shift = ilog2(mem->page_size);
 	int order;
@@ -130,15 +131,18 @@ void __iomem *pci_epc_mem_alloc_addr(struct pci_epc *epc,
 	size = ALIGN(size, mem->page_size);
 	order = pci_epc_mem_get_order(mem, size);
 
+	mutex_lock(&mem->lock);
 	pageno = bitmap_find_free_region(mem->bitmap, mem->pages, order);
 	if (pageno < 0)
-		return NULL;
+		goto ret;
 
 	*phys_addr = mem->phys_base + (pageno << page_shift);
 	virt_addr = ioremap(*phys_addr, size);
 	if (!virt_addr)
 		bitmap_release_region(mem->bitmap, pageno, order);
 
+ret:
+	mutex_unlock(&mem->lock);
 	return virt_addr;
 }
 EXPORT_SYMBOL_GPL(pci_epc_mem_alloc_addr);
@@ -164,7 +168,9 @@ void pci_epc_mem_free_addr(struct pci_epc *epc, phys_addr_t phys_addr,
 	pageno = (phys_addr - mem->phys_base) >> page_shift;
 	size = ALIGN(size, mem->page_size);
 	order = pci_epc_mem_get_order(mem, size);
+	mutex_lock(&mem->lock);
 	bitmap_release_region(mem->bitmap, pageno, order);
+	mutex_unlock(&mem->lock);
 }
 EXPORT_SYMBOL_GPL(pci_epc_mem_free_addr);
 
drivers/pci/hotplug/pciehp_hpc.c +7 -7
index c3e3f5358b3b..07940d1d83b7 100644
@@ -627,17 +627,15 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id)
 	if (atomic_fetch_and(~RERUN_ISR, &ctrl->pending_events) & RERUN_ISR) {
 		ret = pciehp_isr(irq, dev_id);
 		enable_irq(irq);
-		if (ret != IRQ_WAKE_THREAD) {
-			pci_config_pm_runtime_put(pdev);
-			return ret;
-		}
+		if (ret != IRQ_WAKE_THREAD)
+			goto out;
 	}
 
 	synchronize_hardirq(irq);
 	events = atomic_xchg(&ctrl->pending_events, 0);
 	if (!events) {
-		pci_config_pm_runtime_put(pdev);
-		return IRQ_NONE;
+		ret = IRQ_NONE;
+		goto out;
 	}
 
 	/* Check Attention Button Pressed */
@@ -666,10 +664,12 @@ static irqreturn_t pciehp_ist(int irq, void *dev_id)
 		pciehp_handle_presence_or_link_change(slot, events);
 	up_read(&ctrl->reset_lock);
 
+	ret = IRQ_HANDLED;
+out:
 	pci_config_pm_runtime_put(pdev);
 	ctrl->ist_running = false;
 	wake_up(&ctrl->requester);
-	return IRQ_HANDLED;
+	return ret;
 }
 
 static int pciehp_poll(void *data)
drivers/pci/pcie/aspm.c +2 -2
index 1117b25fbe0b..af79a7168677 100644
@@ -747,9 +747,9 @@ static void pcie_config_aspm_l1ss(struct pcie_link_state *link, u32 state)
 
 	/* Enable what we need to enable */
 	pci_clear_and_set_dword(parent, up_cap_ptr + PCI_L1SS_CTL1,
-				PCI_L1SS_CAP_L1_PM_SS, val);
+				PCI_L1SS_CTL1_L1SS_MASK, val);
 	pci_clear_and_set_dword(child, dw_cap_ptr + PCI_L1SS_CTL1,
-				PCI_L1SS_CAP_L1_PM_SS, val);
+				PCI_L1SS_CTL1_L1SS_MASK, val);
 }
 
 static void pcie_config_aspm_dev(struct pci_dev *pdev, u32 val)
drivers/pci/quirks.c +73 -7

80 lines not on this page · raw message

drivers/pci/switch/switchtec.c +1 -1
index 43431816412c..291c0074ad6f 100644

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

drivers/rtc/rtc-omap.c +1 -3
index 323ff55cc165..080211dd916a 100644

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

drivers/s390/scsi/zfcp_erp.c +1 -1
index f602b42b8343..7522aa06672d 100644

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

drivers/scsi/lpfc/lpfc_nvme.c +0 -2
index 6c355d87c709..f73726e55e44 100644

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

drivers/scsi/mpt3sas/mpt3sas_scsih.c +4 -4
index d3c944d99703..5a5e5c3da657 100644

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

drivers/scsi/qla2xxx/qla_nvme.c +0 -1
index db367e428095..5590d6e8b576 100644

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

drivers/staging/erofs/utils.c +1 -1
index 2d96820da62e..4de9c39535eb 100644

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

drivers/usb/dwc3/core.c +5 -0
index 6666d2a52bf5..60d08269ad9a 100644

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

drivers/usb/dwc3/core.h +4 -0
index 131028501752..e34308d64619 100644

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

drivers/usb/gadget/composite.c +9 -0
index 30aefd1adbad..f3436913fd3f 100644

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

drivers/usb/gadget/function/f_fs.c +1 -0
index a9239455eb6d..31b3dda3089c 100644

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

drivers/usb/host/xhci.c +3 -1
index 65cc362717fc..b4177287d7d0 100644

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

fs/btrfs/async-thread.c +8 -0
index 02e4e903dfe9..f79c0cb7697a 100644

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

fs/btrfs/async-thread.h +1 -0
index 7861c9feba5f..e87be7c8be58 100644

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

fs/btrfs/delayed-inode.c +13 -0
index e9522f2f25cc..7374fb23381c 100644

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

fs/btrfs/disk-io.c +25 -2
index b5039b16de93..da7a2a530647 100644

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

fs/btrfs/file.c +11 -0
index c2c93fe9d7fd..dc1841855a69 100644

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

fs/btrfs/qgroup.c +9 -2
index 0cd043f03081..cbd40826f5dc 100644

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

fs/btrfs/relocation.c +23 -12
index f98913061a40..d1c5cd90b182 100644

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

fs/cifs/file.c +1 -1
index ad93b063f866..cfb0d91289ec 100644

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

fs/exec.c +1 -1
index 561ea64829ec..3818813d725d 100644

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

fs/ext4/inode.c +1 -1
index 23b4b1745a39..56218c79a856 100644

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

fs/filesystems.c +3 -1
index b03f57b1105b..181200daeeba 100644

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

fs/gfs2/glock.c +3 -0
index ccdd8c821abd..f8a5eef3d014 100644

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

fs/hfsplus/attributes.c +4 -0
index e6d554476db4..eeebe80c6be4 100644

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

fs/nfs/write.c +1 -0
index ce1da8cbac00..63d20308a9bb 100644

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

fs/ocfs2/alloc.c +4 -0
index a342f008e42f..ff0e083ce2a1 100644

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

fs/pstore/inode.c +4 -1
index 6f90d91a8733..6f51c6d7b965 100644

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

fs/pstore/platform.c +2 -2
index 4bae3f4fe829..dcd9c3163587 100644

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

include/linux/devfreq_cooling.h +1 -1
index 4635f95000a4..79a6e37a1d6f 100644

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

include/linux/iocontext.h +1 -0
index dba15ca8e60b..1dcd9198beb7 100644

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

include/linux/mlx5/mlx5_ifc.h +8 -1
index 76b76b6aa83d..b87b1569d15b 100644

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

include/linux/nvme-fc-driver.h +0 -4
index 2f3ae41c212d..496ff759f84c 100644

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

include/linux/pci-epc.h +3 -0
index 37dab8116901..931fda3e5e0d 100644

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

include/linux/sched.h +2 -2
index 0530de9a4efc..c69f308f3a53 100644

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

include/linux/swab.h +1 -0
index e466fd159c85..bcff5149861a 100644

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

include/uapi/linux/swab.h +10 -0
index 23cd84868cc3..fa7f97da5b76 100644

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

kernel/cpu.c +1 -4
index 2d850eaaf82e..6d6c106a495c 100644

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

kernel/irq/irqdomain.c +5 -5
index e0eda2bd3975..0a76c44eb6b2 100644

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

kernel/kmod.c +2 -2
index bc6addd9152b..a2de58de6ab6 100644

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

kernel/locking/lockdep.c +4 -0
index 1e272f6a01e7..8a1758b094b7 100644

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

kernel/sched/sched.h +7 -1
index 94bec97bd5e2..5f0eb4565957 100644

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

kernel/signal.c +1 -1
index c42eaf39b572..6a5692118139 100644

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

kernel/trace/trace_kprobe.c +2 -0
index c61b2b0a99e9..65b4e28ff425 100644

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

lib/find_bit.c +2 -14
index ee3df93ba69a..8a5492173267 100644

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

mm/page_alloc.c +4 -4
index e5c610d711f3..57888cedf244 100644

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

mm/slub.c +1 -1
index 9b7b989273d4..d8116a43a287 100644

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

security/keys/key.c +1 -1
index 749a5cf27a19..d5fa8c4fc554 100644

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

security/keys/keyctl.c +2 -2
index ca31af186abd..e00e20204de0 100644

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

sound/core/oss/pcm_plugin.c +24 -8
index 732bbede7ebf..8539047145de 100644

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

sound/pci/hda/hda_beep.c +5 -1
index 066b5b59c4d7..0224011a240f 100644

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

sound/pci/hda/hda_intel.c +16 -0
index 3ee5b7b9b595..a2eeb08fa61d 100644

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

sound/pci/hda/patch_realtek.c +10 -40

50 lines not on this page · raw message

sound/pci/ice1712/prodigy_hifi.c +2 -2
index c97b5528e4b8..317bbb725b29 100644

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

sound/soc/soc-dapm.c +7 -1
index db5b005f4b1e..d61e954417d0 100644

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

sound/soc/soc-ops.c +2 -2
index f4dc3d445aae..95fc24580f85 100644

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

sound/soc/soc-pcm.c +4 -2
index 356d4e754561..a0d1ce0edaf9 100644

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

sound/soc/soc-topology.c +1 -1
index 30fc45aa1869..756dd2303106 100644

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

sound/usb/mixer_maps.c +28 -0
index 71069e110897..f6e2cc66153a 100644

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

tools/gpio/Makefile +1 -1
index 6a73c06e069c..3dbf7e8b07a5 100644

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

tools/perf/Makefile.config +10 -1
index 510caedd7319..ae0c5bee8014 100644

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

tools/testing/selftests/vm/mlock2-tests.c +37 -196

233 lines not on this page · raw message

tools/testing/selftests/x86/ptrace_syscall.c +6 -2
index 6f22238f3217..12aaa063196e 100644

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

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

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