Skip to contentSkip to conversation

Linux 4.19.155

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

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 4.19.155 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/admin-guide/kernel-parameters.txt          |    8 
 Documentation/filesystems/fscrypt.rst                    |   12 
 Documentation/media/uapi/v4l/colorspaces-defs.rst        |    9 
 Documentation/media/uapi/v4l/colorspaces-details.rst     |    5 
 Makefile                                                 |    2 
 arch/Kconfig                                             |    7 
 arch/arm/Kconfig                                         |    2 
 arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts            |    1 
 arch/arm/boot/dts/omap4.dtsi                             |    2 
 arch/arm/boot/dts/omap443x.dtsi                          |   10 
 arch/arm/boot/dts/s5pv210.dtsi                           |  127 +---
 arch/arm/kernel/hw_breakpoint.c                          |  100 ++-
 arch/arm/plat-samsung/Kconfig                            |    1 
 arch/arm64/Kconfig.platforms                             |    1 
 arch/arm64/Makefile                                      |    4 
 arch/arm64/boot/dts/renesas/ulcb.dtsi                    |    1 
 arch/arm64/include/asm/kvm_host.h                        |    1 
 arch/arm64/include/asm/numa.h                            |    3 
 arch/arm64/kernel/cpu_errata.c                           |    8 
 arch/arm64/kernel/topology.c                             |   32 -
 arch/arm64/kvm/sys_regs.c                                |    6 
 arch/arm64/mm/numa.c                                     |    6 
 arch/ia64/kernel/Makefile                                |    2 
 arch/ia64/kernel/kprobes.c                               |   77 --
 arch/powerpc/Kconfig                                     |   14 
 arch/powerpc/include/asm/drmem.h                         |    4 
 arch/powerpc/include/asm/mmu_context.h                   |    2 
 arch/powerpc/kernel/rtas.c                               |  153 +++++
 arch/powerpc/kernel/sysfs.c                              |   42 -
 arch/powerpc/kernel/traps.c                              |    2 
 arch/powerpc/platforms/powernv/opal-elog.c               |   33 -
 arch/powerpc/platforms/powernv/smp.c                     |    2 
 arch/riscv/include/uapi/asm/auxvec.h                     |    3 
 arch/s390/kernel/time.c                                  |  118 ++-
 arch/sparc/kernel/smp_64.c                               |   65 --
 arch/um/kernel/sigio.c                                   |    6 
 arch/x86/events/amd/ibs.c                                |   53 +
 arch/x86/include/asm/msr-index.h                         |    1 
 arch/x86/kernel/unwind_orc.c                             |    9 
 arch/x86/pci/intel_mid_pci.c                             |    1 
 arch/x86/xen/enlighten_pv.c                              |    9 
 block/blk-core.c                                         |    9 
 drivers/acpi/acpi_dbg.c                                  |    3 
 drivers/acpi/acpi_extlog.c                               |    6 
 drivers/acpi/button.c                                    |   13 
 drivers/acpi/numa.c                                      |    2 
 drivers/acpi/video_detect.c                              |    9 
 drivers/ata/sata_nv.c                                    |    2 
 drivers/ata/sata_rcar.c                                  |    2 
 drivers/base/core.c                                      |    4 
 drivers/block/nbd.c                                      |    2 
 drivers/block/xen-blkback/blkback.c                      |   22 
 drivers/block/xen-blkback/xenbus.c                       |    5 
 drivers/bus/fsl-mc/mc-io.c                               |    7 
 drivers/clk/ti/clockdomain.c                             |    2 
 drivers/cpufreq/acpi-cpufreq.c                           |    3 
 drivers/cpufreq/sti-cpufreq.c                            |    6 
 drivers/crypto/chelsio/chtls/chtls_cm.c                  |   29 
 drivers/crypto/chelsio/chtls/chtls_io.c                  |    7 
 drivers/dma/dma-jz4780.c                                 |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c                  |   10 
 drivers/gpu/drm/amd/display/dc/core/dc_link.c            |    2 
 drivers/gpu/drm/amd/display/dc/os_types.h                |    2 
 drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c |   12 
 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c            |    9 
 drivers/gpu/drm/i915/i915_drv.h                          |    6 
 drivers/gpu/drm/ttm/ttm_bo.c                             |    2 
 drivers/hid/wacom_wac.c                                  |    4 
 drivers/i2c/busses/i2c-imx.c                             |   24 
 drivers/iio/adc/ti-adc0832.c                             |   11 
 drivers/iio/adc/ti-adc12138.c                            |   13 
 drivers/iio/gyro/itg3200_buffer.c                        |   15 
 drivers/iio/light/si1145.c                               |   19 
 drivers/infiniband/core/addr.c                           |   11 
 drivers/infiniband/hw/qedr/qedr_iw_cm.c                  |    1 
 drivers/input/serio/hil_mlc.c                            |   21 
 drivers/input/serio/hp_sdc_mlc.c                         |    8 
 drivers/leds/leds-bcm6328.c                              |    2 
 drivers/leds/leds-bcm6358.c                              |    2 
 drivers/md/md-bitmap.c                                   |    2 
 drivers/md/raid5.c                                       |    4 
 drivers/media/i2c/imx274.c                               |    8 
 drivers/media/pci/tw5864/tw5864-video.c                  |    6 
 drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c          |    7 
 drivers/media/usb/uvc/uvc_ctrl.c                         |   27 
 drivers/memory/emif.c                                    |   33 -
 drivers/message/fusion/mptscsih.c                        |   13 
 drivers/misc/cxl/pci.c                                   |    4 
 drivers/mmc/host/sdhci-acpi.c                            |   37 +
 drivers/mmc/host/via-sdmmc.c                             |    3 
 drivers/mtd/ubi/wl.c                                     |   13 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                |    6 
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c        |   56 -
 drivers/net/ethernet/chelsio/cxgb4/t4_tcb.h              |    4 
 drivers/net/ethernet/mellanox/mlxsw/core.c               |    5 
 drivers/net/ethernet/realtek/r8169.c                     |    4 
 drivers/net/ethernet/renesas/ravb_main.c                 |   10 
 drivers/net/gtp.c                                        |   16 
 drivers/net/wan/hdlc_fr.c                                |   98 +--
 drivers/net/wireless/ath/ath10k/htt_rx.c                 |    8 
 drivers/net/wireless/ath/ath10k/sdio.c                   |    4 
 drivers/net/wireless/intersil/p54/p54pci.c               |    4 
 drivers/net/xen-netback/common.h                         |   15 
 drivers/net/xen-netback/interface.c                      |   61 +-
 drivers/net/xen-netback/netback.c                        |   11 
 drivers/net/xen-netback/rx.c                             |   13 
 drivers/nvme/host/rdma.c                                 |    1 
 drivers/power/supply/bq27xxx_battery.c                   |    6 
 drivers/power/supply/test_power.c                        |    6 
 drivers/rpmsg/qcom_glink_native.c                        |    6 
 drivers/rtc/rtc-rx8010.c                                 |   24 
 drivers/scsi/qla2xxx/qla_target.c                        |   13 
 drivers/staging/comedi/drivers/cb_pcidas.c               |    1 
 drivers/staging/octeon/ethernet-mdio.c                   |    6 
 drivers/staging/octeon/ethernet-rx.c                     |   34 -
 drivers/staging/octeon/ethernet.c                        |    9 
 drivers/tty/serial/amba-pl011.c                          |   11 
 drivers/tty/vt/keyboard.c                                |   39 -
 drivers/tty/vt/vt_ioctl.c                                |   32 -
 drivers/uio/uio.c                                        |    4 
 drivers/usb/class/cdc-acm.c                              |   12 
 drivers/usb/class/cdc-acm.h                              |    3 
 drivers/usb/dwc3/core.c                                  |   15 
 drivers/usb/dwc3/ep0.c                                   |   11 
 drivers/usb/dwc3/gadget.c                                |    4 
 drivers/usb/host/fsl-mph-dr-of.c                         |    9 
 drivers/usb/host/xhci-pci.c                              |   17 
 drivers/usb/host/xhci.c                                  |    7 
 drivers/usb/host/xhci.h                                  |    1 
 drivers/usb/misc/adutux.c                                |    1 
 drivers/usb/typec/tcpm.c                                 |    8 
 drivers/vhost/vringh.c                                   |    9 
 drivers/video/fbdev/pvr2fb.c                             |    2 
 drivers/w1/masters/mxc_w1.c                              |   14 
 drivers/watchdog/rdc321x_wdt.c                           |    5 
 drivers/xen/events/events_2l.c                           |    9 
 drivers/xen/events/events_base.c                         |  451 +++++++++++++--
 drivers/xen/events/events_fifo.c                         |   83 +-
 drivers/xen/events/events_internal.h                     |   20 
 drivers/xen/evtchn.c                                     |    7 
 drivers/xen/pvcalls-back.c                               |   76 +-
 drivers/xen/xen-pciback/pci_stub.c                       |   14 
 drivers/xen/xen-pciback/pciback.h                        |   12 
 drivers/xen/xen-pciback/pciback_ops.c                    |   48 +
 drivers/xen/xen-pciback/xenbus.c                         |    2 
 drivers/xen/xen-scsiback.c                               |   23 
 fs/9p/vfs_file.c                                         |    4 
 fs/btrfs/ctree.c                                         |    6 
 fs/btrfs/delayed-inode.c                                 |    3 
 fs/btrfs/dev-replace.c                                   |    2 
 fs/btrfs/reada.c                                         |    2 
 fs/btrfs/send.c                                          |   74 ++
 fs/btrfs/tree-log.c                                      |    8 
 fs/btrfs/volumes.c                                       |   14 
 fs/buffer.c                                              |   16 
 fs/cachefiles/rdwr.c                                     |    3 
 fs/ceph/addr.c                                           |    2 
 fs/cifs/inode.c                                          |   13 
 fs/crypto/crypto.c                                       |   58 -
 fs/crypto/fname.c                                        |    1 
 fs/crypto/hooks.c                                        |   34 -
 fs/crypto/policy.c                                       |    3 
 fs/dcache.c                                              |   15 
 fs/efivarfs/super.c                                      |    3 
 fs/exec.c                                                |   15 
 fs/ext4/ext4.h                                           |   62 +-
 fs/ext4/inode.c                                          |   11 
 fs/ext4/namei.c                                          |   76 +-
 fs/ext4/resize.c                                         |    4 
 fs/ext4/super.c                                          |    6 
 fs/f2fs/checkpoint.c                                     |    8 
 fs/f2fs/dir.c                                            |    8 
 fs/f2fs/namei.c                                          |   17 
 fs/fuse/dev.c                                            |   28 
 fs/gfs2/ops_fstype.c                                     |   18 
 fs/nfs/namespace.c                                       |   12 
 fs/nfs/nfs4proc.c                                        |    9 
 fs/nfsd/nfsproc.c                                        |   16 
 fs/ubifs/debug.c                                         |    1 
 fs/ubifs/dir.c                                           |    8 
 fs/udf/super.c                                           |   21 
 fs/xfs/libxfs/xfs_bmap.c                                 |   19 
 fs/xfs/xfs_rtalloc.c                                     |   10 
 include/linux/dcache.h                                   |    2 
 include/linux/fscrypt.h                                  |   34 -
 include/linux/fscrypt_notsupp.h                          |    9 
 include/linux/fscrypt_supp.h                             |    6 
 include/linux/hil_mlc.h                                  |    2 
 include/linux/mtd/pfow.h                                 |    2 
 include/linux/usb/pd.h                                   |    1 
 include/uapi/linux/bpf.h                                 |    4 
 include/uapi/linux/nfs4.h                                |    3 
 include/uapi/linux/videodev2.h                           |   17 
 include/xen/events.h                                     |   29 
 init/Kconfig                                             |    3 
 kernel/debug/debug_core.c                                |   22 
 kernel/futex.c                                           |    4 
 kernel/trace/ring_buffer.c                               |    8 
 lib/scatterlist.c                                        |    2 
 net/9p/trans_fd.c                                        |    2 
 net/ceph/messenger.c                                     |    5 
 net/ipv4/tcp.c                                           |    2 
 net/ipv4/tcp_input.c                                     |    3 
 net/sched/sch_netem.c                                    |    9 
 net/tipc/msg.c                                           |    5 
 scripts/setlocalversion                                  |   21 
 security/integrity/evm/evm_main.c                        |    6 
 tools/include/uapi/linux/bpf.h                           |    4 
 tools/objtool/orc_gen.c                                  |   33 -
 tools/perf/util/print_binary.c                           |    2 
 210 files changed, 2489 insertions(+), 1146 deletions(-)

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

Aleksandr Nogikh (1):
netem: fix zero division in tabledist

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

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

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

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

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

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

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

Andrew Gabbasov (1):
ravb: Fix bit fields checking in ravb_hwtstamp_get()

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

Aneesh Kumar K.V (1):
powerpc/drmem: Make lmb_size 64 bit

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

Arjun Roy (1):
tcp: Prevent low rmem stalls with SO_RCVLOWAT.

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

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

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

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

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

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

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

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

Chuck Lever (1):
NFSD: Add missing NFSv2 .pc_func methods

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

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

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

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

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

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

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

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

Douglas Gilbert (1):
sgl_alloc_order: fix memory leak

Eric Biggers (7):
fscrypt: return -EXDEV for incompatible rename or link into encrypted dir
fscrypt: clean up and improve dentry revalidation
fscrypt: fix race allowing rename() and link() of ciphertext dentries fs, fscrypt: clear DCACHE_ENCRYPTED_NAME when unaliasing directory
fscrypt: only set dentry_operations on ciphertext dentries
fscrypt: fix race where ->lookup() marks plaintext dentry as ciphertext
ext4: fix leaking sysfs kobject after failed mount

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

Filipe Manana (3):
btrfs: reschedule if necessary when logging directory items
btrfs: send, recompute reference path after orphanization of a directory
btrfs: fix use-after-free on readahead extent after failure to create it

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

Frederic Barrat (1):
cxl: Rework error message for incompatible slots

Geert Uytterhoeven (1):
ata: sata_rcar: Fix DMA boundary mask

Greg Kroah-Hartman (2):
Revert "block: ratelimit handle_bad_sector() message" Linux 4.19.155

Gustavo A. R. Silva (1):
mtd: lpddr: Fix bad logic in print_drs_error

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

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

Heiner Kallweit (1):
r8169: fix issue with forced threading in combination with shared interrupts

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

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

Ido Schimmel (1):
mlxsw: core: Fix memory leak on module removal

Ilya Dryomov (1):

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

Jamie Iles (1):
ACPI: debug: don't allow debugging when ACPI is disabled

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

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

Jason Gunthorpe (1):
RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()

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

Jia-Ju Bai (1):
p54: avoid accessing the data mapped to streaming DMA

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

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

Jisheng Zhang (1):
arm64: berlin: Select DW_APB_TIMER_OF

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

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

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

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

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

Josh Poimboeuf (1):
objtool: Support Clang non-section symbols in ORC generation

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

Kim Phillips (3):
arch/x86/amd/ibs: Fix re-arming IBS Fetch perf/x86/amd/ibs: Don't include randomized bits in get_ibs_op_count() perf/x86/amd/ibs: Fix raw sample data accumulation

Krzysztof Kozlowski (8):
power: supply: bq27xxx: report "not charging" on all types
ARM: dts: s5pv210: remove DMA controller bus node name to fix dtschema warnings
ARM: dts: s5pv210: move PMU node out of clock controller
ARM: dts: s5pv210: remove dedicated 'audio-subsystem' node
ia64: fix build error with !COREDUMP
i2c: imx: Fix external abort on interrupt in exit paths
ARM: samsung: fix PM debug build with DEBUG_LL but !MMU
ARM: s3c24xx: fix missing system reset

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

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

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

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

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

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

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

Marc Zyngier (2):
arm64: Run ARCH_WORKAROUND_1 enabling code on all CPUs
KVM: arm64: Fix AArch32 handling of DBGD{CCINT,SCRext} and DBGVCR

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

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

Masahiro Fujiwara (1):
gtp: fix an use-before-init in gtp_newlink()

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

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

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

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

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

Michael Schaller (1):
efivarfs: Replace invalid slashes with exclamation marks in dentries.

Miklos Szeredi (1):
fuse: fix page dereference after free

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

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

Nick Desaulniers (1):
arm64: link with -z norelro regardless of CONFIG_RELOCATABLE

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

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

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

Paul Cercueil (1):

      dmaengine: dma-jz4780: Fix race in jz4780_dma_tx_status

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

Peter Zijlstra (1):
serial: pl011: Fix lockdep splat when handling magic-sysrq interrupt

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

Qu Wenruo (1):
btrfs: qgroup: fix wrong qgroup metadata reserve for delayed inode

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

Raju Rangoju (1):
cxgb4: set up filter action after rewrites

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

Randy Dunlap (1):
x86/PCI: Fix intel_mid_pci.c build error when ACPI is not enabled

Rasmus Villemoes (1):
scripts/setlocalversion: make git describe output more reliable

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

Roberto Sassu (1):
evm: Check size of security.evm before using it

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

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

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

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

Song Liu (2):
bpf: Fix comment for helper bpf_current_task_under_cgroup() md/raid5: fix oops during stripe resizing

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

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

Takashi Iwai (1):
drm/amd/display: Don't invoke kgdb_breakpoint() unconditionally

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

Thinh Nguyen (2):
usb: dwc3: ep0: Fix ZLP for OUT ep0 requests
usb: dwc3: gadget: Check MPS of the request length

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

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

Tung Nguyen (1):
tipc: fix memory leak caused by tipc_buf_append()

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

Vinay Kumar Yadav (3):
chelsio/chtls: fix deadlock issue chelsio/chtls: fix memory leaks in CPL handlers chelsio/chtls: fix tls record info to user

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

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

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

Xie He (1):

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

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

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

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

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

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

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

Zhihao Cheng (2):
ubifs: dent: Fix some potential memory leaks while iterating entries
ubi: check kthread_should_stop() after the setting of task state

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

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

author maintainer
#1 lore raw
Documentation/admin-guide/kernel-parameters.txt +8 -0
index fb129272240c..8dbc8d4ec8f0 100644
@@ -5270,6 +5270,14 @@
 			with /sys/devices/system/xen_memory/xen_memory0/scrub_pages.
 			Default value controlled with CONFIG_XEN_SCRUB_PAGES_DEFAULT.
 
+	xen.event_eoi_delay=	[XEN]
+			How long to delay EOI handling in case of event
+			storms (jiffies). Default is 10.
+
+	xen.event_loop_timeout=	[XEN]
+			After which time (jiffies) the event handling loop
+			should start to delay EOI handling. Default is 2.
+
 	xirc2ps_cs=	[NET,PCMCIA]
 			Format:
 			<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
Documentation/filesystems/fscrypt.rst +10 -2
index cfbc18f0d9c9..5b667ee1242a 100644
@@ -426,10 +426,18 @@ astute users may notice some differences in behavior:
 - Unencrypted files, or files encrypted with a different encryption
   policy (i.e. different key, modes, or flags), cannot be renamed or
   linked into an encrypted directory; see `Encryption policy
-  enforcement`_.  Attempts to do so will fail with EPERM.  However,
+  enforcement`_.  Attempts to do so will fail with EXDEV.  However,
   encrypted files can be renamed within an encrypted directory, or
   into an unencrypted directory.
 
+  Note: "moving" an unencrypted file into an encrypted directory, e.g.
+  with the `mv` program, is implemented in userspace by a copy
+  followed by a delete.  Be aware that the original unencrypted data
+  may remain recoverable from free space on the disk; prefer to keep
+  all files encrypted from the very beginning.  The `shred` program
+  may be used to overwrite the source files but isn't guaranteed to be
+  effective on all filesystems and storage devices.
+
 - Direct I/O is not supported on encrypted files.  Attempts to use
   direct I/O on such files will fall back to buffered I/O.
 
@@ -516,7 +524,7 @@ not be encrypted.
 Except for those special files, it is forbidden to have unencrypted
 files, or files encrypted with a different encryption policy, in an
 encrypted directory tree.  Attempts to link or rename such a file into
-an encrypted directory will fail with EPERM.  This is also enforced
+an encrypted directory will fail with EXDEV.  This is also enforced
 during ->lookup() to provide limited protection against offline
 attacks that try to disable or downgrade encryption in known locations
 where applications may later write sensitive data.  It is recommended
Documentation/media/uapi/v4l/colorspaces-defs.rst +4 -5
index f24615544792..16e46bec8093 100644
@@ -29,8 +29,7 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
 :c:type:`v4l2_hsv_encoding` specifies which encoding is used.
 
 .. note:: The default R'G'B' quantization is full range for all
-   colorspaces except for BT.2020 which uses limited range R'G'B'
-   quantization.
+   colorspaces. HSV formats are always full range.
 
 .. tabularcolumns:: |p{6.0cm}|p{11.5cm}|
 
@@ -162,8 +161,8 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
       - Details
     * - ``V4L2_QUANTIZATION_DEFAULT``
       - Use the default quantization encoding as defined by the
-	colorspace. This is always full range for R'G'B' (except for the
-	BT.2020 colorspace) and HSV. It is usually limited range for Y'CbCr.
+	colorspace. This is always full range for R'G'B' and HSV.
+	It is usually limited range for Y'CbCr.
     * - ``V4L2_QUANTIZATION_FULL_RANGE``
       - Use the full range quantization encoding. I.e. the range [0…1] is
 	mapped to [0…255] (with possible clipping to [1…254] to avoid the
@@ -173,4 +172,4 @@ whole range, 0-255, dividing the angular value by 1.41. The enum
     * - ``V4L2_QUANTIZATION_LIM_RANGE``
       - Use the limited range quantization encoding. I.e. the range [0…1]
 	is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
-	[16…240].
+	[16…240]. Limited Range cannot be used with HSV.
Documentation/media/uapi/v4l/colorspaces-details.rst +2 -3
index 09fabf4cd412..ca7176cae8dd 100644
@@ -370,9 +370,8 @@ Colorspace BT.2020 (V4L2_COLORSPACE_BT2020)
 The :ref:`itu2020` standard defines the colorspace used by Ultra-high
 definition television (UHDTV). The default transfer function is
 ``V4L2_XFER_FUNC_709``. The default Y'CbCr encoding is
-``V4L2_YCBCR_ENC_BT2020``. The default R'G'B' quantization is limited
-range (!), and so is the default Y'CbCr quantization. The chromaticities
-of the primary colors and the white reference are:
+``V4L2_YCBCR_ENC_BT2020``. The default Y'CbCr quantization is limited range.
+The chromaticities of the primary colors and the white reference are:
 
 
 
Makefile +1 -1
index a7056e26947c..9fc16d34e1bb 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 4
 PATCHLEVEL = 19
-SUBLEVEL = 154
+SUBLEVEL = 155
 EXTRAVERSION =
 NAME = "People's Front"
 
arch/Kconfig +7 -0
index a336548487e6..e3a030f7a722 100644
@@ -366,6 +366,13 @@ config HAVE_RCU_TABLE_FREE
 config HAVE_RCU_TABLE_INVALIDATE
 	bool
 
+config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
+	bool
+	help
+	  Temporary select until all architectures can be converted to have
+	  irqs disabled over activate_mm. Architectures that do IPI based TLB
+	  shootdowns should enable this.
+
 config ARCH_HAVE_NMI_SAFE_CMPXCHG
 	bool
 
arch/arm/Kconfig +2 -0
index e2f7c50dbace..1877da816f65 100644
@@ -592,8 +592,10 @@ config ARCH_S3C24XX
 	select HAVE_S3C2410_WATCHDOG if WATCHDOG
 	select HAVE_S3C_RTC if RTC_CLASS
 	select NEED_MACH_IO_H
+	select S3C2410_WATCHDOG
 	select SAMSUNG_ATAGS
 	select USE_OF
+	select WATCHDOG
 	help
 	  Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
 	  and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts +1 -0
index 2b760f90f38c..5375c6699843 100644
@@ -192,6 +192,7 @@
 					fixed-link {
 						speed = <1000>;
 						full-duplex;
+						pause;
 					};
 				};
 			};
arch/arm/boot/dts/omap4.dtsi +1 -1
index 1a96d4317c97..8f907c235b02 100644
@@ -516,7 +516,7 @@
 			status = "disabled";
 		};
 
-		target-module@56000000 {
+		sgx_module: target-module@56000000 {
 			compatible = "ti,sysc-omap4", "ti,sysc";
 			ti,hwmods = "gpu";
 			reg = <0x5601fc00 0x4>,
arch/arm/boot/dts/omap443x.dtsi +10 -0
index cbcdcb4e7d1c..86b9caf461df 100644
@@ -74,3 +74,13 @@
 };
 
 /include/ "omap443x-clocks.dtsi"
+
+/*
+ * Use dpll_per for sgx at 153.6MHz like droid4 stock v3.0.8 Android kernel
+ */
+&sgx_module {
+	assigned-clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 24>,
+			  <&dpll_per_m7x2_ck>;
+	assigned-clock-rates = <0>, <153600000>;
+	assigned-clock-parents = <&dpll_per_m7x2_ck>;
+};
arch/arm/boot/dts/s5pv210.dtsi +55 -72

152 lines not on this page · raw message

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

147 lines not on this page · raw message

arch/arm/plat-samsung/Kconfig +1 -0
index 377ff9cda667..c83baa51289f 100644
@@ -240,6 +240,7 @@ config SAMSUNG_PM_DEBUG
 	bool "Samsung PM Suspend debug"
 	depends on PM && DEBUG_KERNEL
 	depends on DEBUG_EXYNOS_UART || DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
+	depends on DEBUG_LL && MMU
 	help
 	  Say Y here if you want verbose debugging from the PM Suspend and
 	  Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt>
arch/arm64/Kconfig.platforms +1 -0
index 393d2b524284..91c7ffad8541 100644
@@ -46,6 +46,7 @@ config ARCH_BCM_IPROC
 config ARCH_BERLIN
 	bool "Marvell Berlin SoC Family"
 	select DW_APB_ICTL
+	select DW_APB_TIMER_OF
 	select GPIOLIB
 	select PINCTRL
 	help
arch/arm64/Makefile +2 -2
index 9a5e28141211..dc54a883513a 100644
@@ -10,7 +10,7 @@
 #
 # Copyright (C) 1995-2001 by Russell King
 
-LDFLAGS_vmlinux	:=--no-undefined -X
+LDFLAGS_vmlinux	:=--no-undefined -X -z norelro
 CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
 GZFLAGS		:=-9
 
@@ -18,7 +18,7 @@ ifeq ($(CONFIG_RELOCATABLE), y)
 # Pass --no-apply-dynamic-relocs to restore pre-binutils-2.27 behaviour
 # for relative relocs, since this leads to better Image compression
 # with the relocation offsets always being zero.
-LDFLAGS_vmlinux		+= -shared -Bsymbolic -z notext -z norelro \
+LDFLAGS_vmlinux		+= -shared -Bsymbolic -z notext \
 			$(call ld-option, --no-apply-dynamic-relocs)
 endif
 
arch/arm64/boot/dts/renesas/ulcb.dtsi +1 -0
index 0ead552d7eae..600adc25eaef 100644
@@ -430,6 +430,7 @@
 	bus-width = <8>;
 	mmc-hs200-1_8v;
 	non-removable;
+	full-pwr-cycle-in-suspend;
 	status = "okay";
 };
 
arch/arm64/include/asm/kvm_host.h +1 -0
index 5e720742d647..c67cae9d5229 100644
@@ -192,6 +192,7 @@ enum vcpu_sysreg {
 #define cp14_DBGWCR0	(DBGWCR0_EL1 * 2)
 #define cp14_DBGWVR0	(DBGWVR0_EL1 * 2)
 #define cp14_DBGDCCINT	(MDCCINT_EL1 * 2)
+#define cp14_DBGVCR	(DBGVCR32_EL2 * 2)
 
 #define NR_COPRO_REGS	(NR_SYS_REGS * 2)
 
arch/arm64/include/asm/numa.h +3 -0
index 626ad01e83bf..dd870390d639 100644
@@ -25,6 +25,9 @@ const struct cpumask *cpumask_of_node(int node);
 /* Returns a pointer to the cpumask of CPUs on Node 'node'. */
 static inline const struct cpumask *cpumask_of_node(int node)
 {
+	if (node == NUMA_NO_NODE)
+		return cpu_all_mask;
+
 	return node_to_cpumask_map[node];
 }
 #endif
arch/arm64/kernel/cpu_errata.c +8 -0
index 76490b0cefce..d191ce8410db 100644
@@ -619,6 +619,12 @@ check_branch_predictor(const struct arm64_cpu_capabilities *entry, int scope)
 	return (need_wa > 0);
 }
 
+static void
+cpu_enable_branch_predictor_hardening(const struct arm64_cpu_capabilities *cap)
+{
+	cap->matches(cap, SCOPE_LOCAL_CPU);
+}
+
 static const __maybe_unused struct midr_range tx2_family_cpus[] = {
 	MIDR_ALL_VERSIONS(MIDR_BRCM_VULCAN),
 	MIDR_ALL_VERSIONS(MIDR_CAVIUM_THUNDERX2),
@@ -813,9 +819,11 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 	},
 #endif
 	{
+		.desc = "Branch predictor hardening",
 		.capability = ARM64_HARDEN_BRANCH_PREDICTOR,
 		.type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
 		.matches = check_branch_predictor,
+		.cpu_enable = cpu_enable_branch_predictor_hardening,
 	},
 #ifdef CONFIG_HARDEN_EL2_VECTORS
 	{
arch/arm64/kernel/topology.c +17 -15
index 6106c49f84bc..655a308af9e3 100644
@@ -272,21 +272,23 @@ void store_cpu_topology(unsigned int cpuid)
 	if (mpidr & MPIDR_UP_BITMASK)
 		return;
 
-	/* Create cpu topology mapping based on MPIDR. */
-	if (mpidr & MPIDR_MT_BITMASK) {
-		/* Multiprocessor system : Multi-threads per core */
-		cpuid_topo->thread_id  = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-		cpuid_topo->core_id    = MPIDR_AFFINITY_LEVEL(mpidr, 1);
-		cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 2) |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 3) << 8;
-	} else {
-		/* Multiprocessor system : Single-thread per core */
-		cpuid_topo->thread_id  = -1;
-		cpuid_topo->core_id    = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-		cpuid_topo->package_id = MPIDR_AFFINITY_LEVEL(mpidr, 1) |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 2) << 8 |
-					 MPIDR_AFFINITY_LEVEL(mpidr, 3) << 16;
-	}
+	/*
+	 * This would be the place to create cpu topology based on MPIDR.
+	 *
+	 * However, it cannot be trusted to depict the actual topology; some
+	 * pieces of the architecture enforce an artificial cap on Aff0 values
+	 * (e.g. GICv3's ICC_SGI1R_EL1 limits it to 15), leading to an
+	 * artificial cycling of Aff1, Aff2 and Aff3 values. IOW, these end up
+	 * having absolutely no relationship to the actual underlying system
+	 * topology, and cannot be reasonably used as core / package ID.
+	 *
+	 * If the MT bit is set, Aff0 *could* be used to define a thread ID, but
+	 * we still wouldn't be able to obtain a sane core ID. This means we
+	 * need to entirely ignore MPIDR for any topology deduction.
+	 */
+	cpuid_topo->thread_id  = -1;
+	cpuid_topo->core_id    = cpuid;
+	cpuid_topo->package_id = cpu_to_node(cpuid);
 
 	pr_debug("CPU%u: cluster %d core %d thread %d mpidr %#016llx\n",
 		 cpuid, cpuid_topo->package_id, cpuid_topo->core_id,
arch/arm64/kvm/sys_regs.c +3 -3
index 0c073f3ca122..b53d0ebb87fc 100644
@@ -1555,9 +1555,9 @@ static const struct sys_reg_desc cp14_regs[] = {
 	{ Op1( 0), CRn( 0), CRm( 1), Op2( 0), trap_raz_wi },
 	DBG_BCR_BVR_WCR_WVR(1),
 	/* DBGDCCINT */
-	{ Op1( 0), CRn( 0), CRm( 2), Op2( 0), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 2), Op2( 0), trap_debug32, NULL, cp14_DBGDCCINT },
 	/* DBGDSCRext */
-	{ Op1( 0), CRn( 0), CRm( 2), Op2( 2), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 2), Op2( 2), trap_debug32, NULL, cp14_DBGDSCRext },
 	DBG_BCR_BVR_WCR_WVR(2),
 	/* DBGDTR[RT]Xint */
 	{ Op1( 0), CRn( 0), CRm( 3), Op2( 0), trap_raz_wi },
@@ -1572,7 +1572,7 @@ static const struct sys_reg_desc cp14_regs[] = {
 	{ Op1( 0), CRn( 0), CRm( 6), Op2( 2), trap_raz_wi },
 	DBG_BCR_BVR_WCR_WVR(6),
 	/* DBGVCR */
-	{ Op1( 0), CRn( 0), CRm( 7), Op2( 0), trap_debug32 },
+	{ Op1( 0), CRn( 0), CRm( 7), Op2( 0), trap_debug32, NULL, cp14_DBGVCR },
 	DBG_BCR_BVR_WCR_WVR(7),
 	DBG_BCR_BVR_WCR_WVR(8),
 	DBG_BCR_BVR_WCR_WVR(9),
arch/arm64/mm/numa.c +5 -1
index 54529b4ed513..15eaf1e09d0c 100644
@@ -58,7 +58,11 @@ EXPORT_SYMBOL(node_to_cpumask_map);
  */
 const struct cpumask *cpumask_of_node(int node)
 {
-	if (WARN_ON(node >= nr_node_ids))
+
+	if (node == NUMA_NO_NODE)
+		return cpu_all_mask;
+
+	if (WARN_ON(node < 0 || node >= nr_node_ids))
 		return cpu_none_mask;
 
 	if (WARN_ON(node_to_cpumask_map[node] == NULL))
arch/ia64/kernel/Makefile +1 -1
index d0c0ccdd656a..03ee3ff3cefa 100644
@@ -42,7 +42,7 @@ obj-y				+= esi_stub.o	# must be in kernel proper
 endif
 obj-$(CONFIG_INTEL_IOMMU)	+= pci-dma.o
 
-obj-$(CONFIG_BINFMT_ELF)	+= elfcore.o
+obj-$(CONFIG_ELF_CORE)		+= elfcore.o
 
 # fp_emulate() expects f2-f5,f16-f31 to contain the user-level state.
 CFLAGS_traps.o  += -mfixed-range=f2-f5,f16-f31
arch/ia64/kernel/kprobes.c +2 -75

91 lines not on this page · raw message

arch/powerpc/Kconfig +14 -0
index f38d153d2586..d18ea3c1f4fa 100644
@@ -152,6 +152,7 @@ config PPC
 	select ARCH_USE_BUILTIN_BSWAP
 	select ARCH_USE_CMPXCHG_LOCKREF		if PPC64
 	select ARCH_WANT_IPC_PARSE_VERSION
+	select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
 	select ARCH_WEAK_RELEASE_ACQUIRE
 	select BINFMT_ELF
 	select BUILDTIME_EXTABLE_SORT
@@ -1009,6 +1010,19 @@ config FSL_RIO
 
 source "drivers/rapidio/Kconfig"
 
+config PPC_RTAS_FILTER
+	bool "Enable filtering of RTAS syscalls"
+	default y
+	depends on PPC_RTAS
+	help
+	  The RTAS syscall API has security issues that could be used to
+	  compromise system integrity. This option enforces restrictions on the
+	  RTAS calls and arguments passed by userspace programs to mitigate
+	  these issues.
+
+	  Say Y unless you know what you are doing and the filter is causing
+	  problems for you.
+
 endmenu
 
 config NONSTATIC_KERNEL
arch/powerpc/include/asm/drmem.h +2 -2
index 668d8a121f1a..8b196720e9a0 100644
@@ -24,7 +24,7 @@ struct drmem_lmb {
 struct drmem_lmb_info {
 	struct drmem_lmb        *lmbs;
 	int                     n_lmbs;
-	u32                     lmb_size;
+	u64                     lmb_size;
 };
 
 extern struct drmem_lmb_info *drmem_info;
@@ -83,7 +83,7 @@ struct of_drconf_cell_v2 {
 #define DRCONF_MEM_AI_INVALID	0x00000040
 #define DRCONF_MEM_RESERVED	0x00000080
 
-static inline u32 drmem_lmb_size(void)
+static inline u64 drmem_lmb_size(void)
 {
 	return drmem_info->lmb_size;
 }
arch/powerpc/include/asm/mmu_context.h +1 -1
index ae953958c0f3..d93bdcaa4a46 100644
@@ -204,7 +204,7 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
  */
 static inline void activate_mm(struct mm_struct *prev, struct mm_struct *next)
 {
-	switch_mm(prev, next, current);
+	switch_mm_irqs_off(prev, next, current);
 }
 
 /* We don't currently use enter_lazy_tlb() for anything */
arch/powerpc/kernel/rtas.c +153 -0

177 lines not on this page · raw message

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

71 lines not on this page · raw message

arch/powerpc/kernel/traps.c +1 -1
index 7781f0168ce8..1b2d84cb373b 100644
@@ -794,7 +794,7 @@ static void p9_hmi_special_emu(struct pt_regs *regs)
 {
 	unsigned int ra, rb, t, i, sel, instr, rc;
 	const void __user *addr;
-	u8 vbuf[16], *vdst;
+	u8 vbuf[16] __aligned(16), *vdst;
 	unsigned long ea, msr, msr_mask;
 	bool swap;
 
arch/powerpc/platforms/powernv/opal-elog.c +26 -7
index ba6e437abb4b..398a06631456 100644
@@ -183,14 +183,14 @@ static ssize_t raw_attr_read(struct file *filep, struct kobject *kobj,
 	return count;
 }
 
-static struct elog_obj *create_elog_obj(uint64_t id, size_t size, uint64_t type)
+static void create_elog_obj(uint64_t id, size_t size, uint64_t type)
 {
 	struct elog_obj *elog;
 	int rc;
 
 	elog = kzalloc(sizeof(*elog), GFP_KERNEL);
 	if (!elog)
-		return NULL;
+		return;
 
 	elog->kobj.kset = elog_kset;
 
@@ -223,18 +223,37 @@ static struct elog_obj *create_elog_obj(uint64_t id, size_t size, uint64_t type)
 	rc = kobject_add(&elog->kobj, NULL, "0x%llx", id);
 	if (rc) {
 		kobject_put(&elog->kobj);
-		return NULL;
+		return;
 	}
 
+	/*
+	 * As soon as the sysfs file for this elog is created/activated there is
+	 * a chance the opal_errd daemon (or any userspace) might read and
+	 * acknowledge the elog before kobject_uevent() is called. If that
+	 * happens then there is a potential race between
+	 * elog_ack_store->kobject_put() and kobject_uevent() which leads to a
+	 * use-after-free of a kernfs object resulting in a kernel crash.
+	 *
+	 * To avoid that, we need to take a reference on behalf of the bin file,
+	 * so that our reference remains valid while we call kobject_uevent().
+	 * We then drop our reference before exiting the function, leaving the
+	 * bin file to drop the last reference (if it hasn't already).
+	 */
+
+	/* Take a reference for the bin file */
+	kobject_get(&elog->kobj);
 	rc = sysfs_create_bin_file(&elog->kobj, &elog->raw_attr);
-	if (rc) {
+	if (rc == 0) {
+		kobject_uevent(&elog->kobj, KOBJ_ADD);
+	} else {
+		/* Drop the reference taken for the bin file */
 		kobject_put(&elog->kobj);
-		return NULL;
 	}
 
-	kobject_uevent(&elog->kobj, KOBJ_ADD);
+	/* Drop our reference */
+	kobject_put(&elog->kobj);
 
-	return elog;
+	return;
 }
 
 static irqreturn_t elog_event(int irq, void *data)
arch/powerpc/platforms/powernv/smp.c +1 -1
index 8d49ba370c50..889c3dbec6fb 100644
@@ -47,7 +47,7 @@
 #include <asm/udbg.h>
 #define DBG(fmt...) udbg_printf(fmt)
 #else
-#define DBG(fmt...)
+#define DBG(fmt...) do { } while (0)
 #endif
 
 static void pnv_smp_setup_cpu(int cpu)
arch/riscv/include/uapi/asm/auxvec.h +3 -0
index 1376515547cd..ed7bf7c7add5 100644
@@ -21,4 +21,7 @@
 /* vDSO location */
 #define AT_SYSINFO_EHDR 33
 
+/* entries in ARCH_DLINFO */
+#define AT_VECTOR_SIZE_ARCH	1
+
 #endif /* _UAPI_ASM_RISCV_AUXVEC_H */
arch/s390/kernel/time.c +85 -33

196 lines not on this page · raw message

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

101 lines not on this page · raw message

arch/um/kernel/sigio.c +3 -3
index b5e0cbb34382..476ded92affa 100644
@@ -36,14 +36,14 @@ int write_sigio_irq(int fd)
 }
 
 /* These are called from os-Linux/sigio.c to protect its pollfds arrays. */
-static DEFINE_SPINLOCK(sigio_spinlock);
+static DEFINE_MUTEX(sigio_mutex);
 
 void sigio_lock(void)
 {
-	spin_lock(&sigio_spinlock);
+	mutex_lock(&sigio_mutex);
 }
 
 void sigio_unlock(void)
 {
-	spin_unlock(&sigio_spinlock);
+	mutex_unlock(&sigio_mutex);
 }
arch/x86/events/amd/ibs.c +38 -15

86 lines not on this page · raw message

arch/x86/include/asm/msr-index.h +1 -0
index 5bb11a8c245e..892af8ab95d7 100644
@@ -377,6 +377,7 @@
 #define MSR_AMD64_IBSOP_REG_MASK	((1UL<<MSR_AMD64_IBSOP_REG_COUNT)-1)
 #define MSR_AMD64_IBSCTL		0xc001103a
 #define MSR_AMD64_IBSBRTARGET		0xc001103b
+#define MSR_AMD64_ICIBSEXTDCTL		0xc001103c
 #define MSR_AMD64_IBSOPDATA4		0xc001103d
 #define MSR_AMD64_IBS_REG_COUNT_MAX	8 /* includes MSR_AMD64_IBSBRTARGET */
 #define MSR_AMD64_SEV			0xc0010131
arch/x86/kernel/unwind_orc.c +1 -8
index 1d264ba1e56d..8fa9ca3c3bd7 100644
@@ -300,19 +300,12 @@ EXPORT_SYMBOL_GPL(unwind_get_return_address);
 
 unsigned long *unwind_get_return_address_ptr(struct unwind_state *state)
 {
-	struct task_struct *task = state->task;
-
 	if (unwind_done(state))
 		return NULL;
 
 	if (state->regs)
 		return &state->regs->ip;
 
-	if (task != current && state->sp == task->thread.sp) {
-		struct inactive_task_frame *frame = (void *)task->thread.sp;
-		return &frame->ret_addr;
-	}
-
 	if (state->sp)
 		return (unsigned long *)state->sp - 1;
 
@@ -634,7 +627,7 @@ void __unwind_start(struct unwind_state *state, struct task_struct *task,
 	} else {
 		struct inactive_task_frame *frame = (void *)task->thread.sp;
 
-		state->sp = task->thread.sp;
+		state->sp = task->thread.sp + sizeof(*frame);
 		state->bp = READ_ONCE_NOCHECK(frame->bp);
 		state->ip = READ_ONCE_NOCHECK(frame->ret_addr);
 		state->signal = (void *)state->ip == ret_from_fork;
arch/x86/pci/intel_mid_pci.c +1 -0
index 43867bc85368..eea5a0f3b959 100644
@@ -33,6 +33,7 @@
 #include <asm/hw_irq.h>
 #include <asm/io_apic.h>
 #include <asm/intel-mid.h>
+#include <asm/acpi.h>
 
 #define PCIE_CAP_OFFSET	0x100
 
arch/x86/xen/enlighten_pv.c +9 -0
index 76864ea59160..9f8995cd28f6 100644
@@ -1383,6 +1383,15 @@ asmlinkage __visible void __init xen_start_kernel(void)
 		x86_init.mpparse.get_smp_config = x86_init_uint_noop;
 
 		xen_boot_params_init_edd();
+
+#ifdef CONFIG_ACPI
+		/*
+		 * Disable selecting "Firmware First mode" for correctable
+		 * memory errors, as this is the duty of the hypervisor to
+		 * decide.
+		 */
+		acpi_disable_cmcff = 1;
+#endif
 	}
 
 	if (!boot_params.screen_info.orig_video_isVGA)
block/blk-core.c +5 -4
index 445b878e3519..ce3710404544 100644
@@ -2127,10 +2127,11 @@ static void handle_bad_sector(struct bio *bio, sector_t maxsector)
 {
 	char b[BDEVNAME_SIZE];
 
-	pr_info_ratelimited("attempt to access beyond end of device\n"
-			    "%s: rw=%d, want=%llu, limit=%llu\n",
-			    bio_devname(bio, b), bio->bi_opf,
-			    bio_end_sector(bio), maxsector);
+	printk(KERN_INFO "attempt to access beyond end of device\n");
+	printk(KERN_INFO "%s: rw=%d, want=%Lu, limit=%Lu\n",
+			bio_devname(bio, b), bio->bi_opf,
+			(unsigned long long)bio_end_sector(bio),
+			(long long)maxsector);
 }
 
 #ifdef CONFIG_FAIL_MAKE_REQUEST
drivers/acpi/acpi_dbg.c +3 -0
index f21c99ec46ee..ed19d9822bc0 100644
@@ -757,6 +757,9 @@ int __init acpi_aml_init(void)
 		goto err_exit;
 	}
 
+	if (acpi_disabled)
+		return -ENODEV;
+
 	/* Initialize AML IO interface */
 	mutex_init(&acpi_aml_io.lock);
 	init_waitqueue_head(&acpi_aml_io.wait);
drivers/acpi/acpi_extlog.c +3 -3
index 560fdae8cc59..943b1dc2d0b3 100644
@@ -224,9 +224,9 @@ static int __init extlog_init(void)
 	u64 cap;
 	int rc;
 
-	rdmsrl(MSR_IA32_MCG_CAP, cap);
-
-	if (!(cap & MCG_ELOG_P) || !extlog_get_l1addr())
+	if (rdmsrl_safe(MSR_IA32_MCG_CAP, &cap) ||
+	    !(cap & MCG_ELOG_P) ||
+	    !extlog_get_l1addr())
 		return -ENODEV;
 
 	if (edac_get_report_status() == EDAC_REPORTING_FORCE) {
drivers/acpi/button.c +7 -6
index d5c19e25ddf5..f43f5adc21b6 100644
@@ -149,6 +149,7 @@ struct acpi_button {
 	int last_state;
 	ktime_t last_time;
 	bool suspended;
+	bool lid_state_initialized;
 };
 
 static BLOCKING_NOTIFIER_HEAD(acpi_lid_notifier);
@@ -404,6 +405,8 @@ static int acpi_lid_update_state(struct acpi_device *device,
 
 static void acpi_lid_initialize_state(struct acpi_device *device)
 {
+	struct acpi_button *button = acpi_driver_data(device);
+
 	switch (lid_init_state) {
 	case ACPI_BUTTON_LID_INIT_OPEN:
 		(void)acpi_lid_notify_state(device, 1);
@@ -415,13 +418,14 @@ static void acpi_lid_initialize_state(struct acpi_device *device)
 	default:
 		break;
 	}
+
+	button->lid_state_initialized = true;
 }
 
 static void acpi_button_notify(struct acpi_device *device, u32 event)
 {
 	struct acpi_button *button = acpi_driver_data(device);
 	struct input_dev *input;
-	int users;
 
 	switch (event) {
 	case ACPI_FIXED_HARDWARE_EVENT:
@@ -430,10 +434,7 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
 	case ACPI_BUTTON_NOTIFY_STATUS:
 		input = button->input;
 		if (button->type == ACPI_BUTTON_TYPE_LID) {
-			mutex_lock(&button->input->mutex);
-			users = button->input->users;
-			mutex_unlock(&button->input->mutex);
-			if (users)
+			if (button->lid_state_initialized)
 				acpi_lid_update_state(device, true);
 		} else {
 			int keycode;
@@ -478,7 +479,7 @@ static int acpi_button_resume(struct device *dev)
 	struct acpi_button *button = acpi_driver_data(device);
 
 	button->suspended = false;
-	if (button->type == ACPI_BUTTON_TYPE_LID && button->input->users) {
+	if (button->type == ACPI_BUTTON_TYPE_LID) {
 		button->last_state = !!acpi_lid_evaluate_state(device);
 		button->last_time = ktime_get();
 		acpi_lid_initialize_state(device);
drivers/acpi/numa.c +1 -1
index 0da58f0bf7e5..a28ff3cfbc29 100644
@@ -46,7 +46,7 @@ int acpi_numa __initdata;
 
 int pxm_to_node(int pxm)
 {
-	if (pxm < 0)
+	if (pxm < 0 || pxm >= MAX_PXM_DOMAINS || numa_off)
 		return NUMA_NO_NODE;
 	return pxm_to_node_map[pxm];
 }
drivers/acpi/video_detect.c +9 -0
index ab1da5e6e7e3..86ffb4af4afc 100644
@@ -274,6 +274,15 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
 		DMI_MATCH(DMI_PRODUCT_NAME, "530U4E/540U4E"),
 		},
 	},
+	/* https://bugs.launchpad.net/bugs/1894667 */
+	{
+	 .callback = video_detect_force_video,
+	 .ident = "HP 635 Notebook",
+	 .matches = {
+		DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+		DMI_MATCH(DMI_PRODUCT_NAME, "HP 635 Notebook PC"),
+		},
+	},
 
 	/* Non win8 machines which need native backlight nevertheless */
 	{
drivers/ata/sata_nv.c +1 -1
index 798d549435cc..2248a40631bf 100644
@@ -2122,7 +2122,7 @@ static int nv_swncq_sdbfis(struct ata_port *ap)
 	pp->dhfis_bits &= ~done_mask;
 	pp->dmafis_bits &= ~done_mask;
 	pp->sdbfis_bits |= done_mask;
-	ata_qc_complete_multiple(ap, ap->qc_active ^ done_mask);
+	ata_qc_complete_multiple(ap, ata_qc_get_active(ap) ^ done_mask);
 
 	if (!ap->qc_active) {
 		DPRINTK("over\n");
drivers/ata/sata_rcar.c +1 -1
index 8323f88d17a5..4dcdf8ee0055 100644
@@ -124,7 +124,7 @@
 /* Descriptor table word 0 bit (when DTA32M = 1) */
 #define SATA_RCAR_DTEND			BIT(0)
 
-#define SATA_RCAR_DMA_BOUNDARY		0x1FFFFFFEUL
+#define SATA_RCAR_DMA_BOUNDARY		0x1FFFFFFFUL
 
 /* Gen2 Physical Layer Control Registers */
 #define RCAR_GEN2_PHY_CTL1_REG		0x1704
drivers/base/core.c +3 -1
index b911c38ad18c..f0cdf38ed31c 100644
@@ -3333,6 +3333,7 @@ static inline bool fwnode_is_primary(struct fwnode_handle *fwnode)
  */
 void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
 {
+	struct device *parent = dev->parent;
 	struct fwnode_handle *fn = dev->fwnode;
 
 	if (fwnode) {
@@ -3347,7 +3348,8 @@ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
 	} else {
 		if (fwnode_is_primary(fn)) {
 			dev->fwnode = fn->secondary;
-			fn->secondary = NULL;
+			if (!(parent && fn == parent->fwnode))
+				fn->secondary = ERR_PTR(-ENODEV);
 		} else {
 			dev->fwnode = NULL;
 		}
drivers/block/nbd.c +1 -1
index d7c7232e438c..52e1e71e8124 100644
@@ -740,9 +740,9 @@ static void recv_work(struct work_struct *work)
 
 		blk_mq_complete_request(blk_mq_rq_from_pdu(cmd));
 	}
+	nbd_config_put(nbd);
 	atomic_dec(&config->recv_threads);
 	wake_up(&config->recv_wq);
-	nbd_config_put(nbd);
 	kfree(args);
 }
 
drivers/block/xen-blkback/blkback.c +17 -5
index 3666afa639d1..b18f0162cb9c 100644
@@ -202,7 +202,7 @@ static inline void shrink_free_pagepool(struct xen_blkif_ring *ring, int num)
 
 #define vaddr(page) ((unsigned long)pfn_to_kaddr(page_to_pfn(page)))
 
-static int do_block_io_op(struct xen_blkif_ring *ring);
+static int do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags);
 static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 				struct blkif_request *req,
 				struct pending_req *pending_req);
@@ -615,6 +615,8 @@ int xen_blkif_schedule(void *arg)
 	struct xen_vbd *vbd = &blkif->vbd;
 	unsigned long timeout;
 	int ret;
+	bool do_eoi;
+	unsigned int eoi_flags = XEN_EOI_FLAG_SPURIOUS;
 
 	set_freezable();
 	while (!kthread_should_stop()) {
@@ -639,16 +641,23 @@ int xen_blkif_schedule(void *arg)
 		if (timeout == 0)
 			goto purge_gnt_list;
 
+		do_eoi = ring->waiting_reqs;
+
 		ring->waiting_reqs = 0;
 		smp_mb(); /* clear flag *before* checking for work */
 
-		ret = do_block_io_op(ring);
+		ret = do_block_io_op(ring, &eoi_flags);
 		if (ret > 0)
 			ring->waiting_reqs = 1;
 		if (ret == -EACCES)
 			wait_event_interruptible(ring->shutdown_wq,
 						 kthread_should_stop());
 
+		if (do_eoi && !ring->waiting_reqs) {
+			xen_irq_lateeoi(ring->irq, eoi_flags);
+			eoi_flags |= XEN_EOI_FLAG_SPURIOUS;
+		}
+
 purge_gnt_list:
 		if (blkif->vbd.feature_gnt_persistent &&
 		    time_after(jiffies, ring->next_lru)) {
@@ -1121,7 +1130,7 @@ static void end_block_io_op(struct bio *bio)
  * and transmute  it to the block API to hand it over to the proper block disk.
  */
 static int
-__do_block_io_op(struct xen_blkif_ring *ring)
+__do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 {
 	union blkif_back_rings *blk_rings = &ring->blk_rings;
 	struct blkif_request req;
@@ -1144,6 +1153,9 @@ __do_block_io_op(struct xen_blkif_ring *ring)
 		if (RING_REQUEST_CONS_OVERFLOW(&blk_rings->common, rc))
 			break;
 
+		/* We've seen a request, so clear spurious eoi flag. */
+		*eoi_flags &= ~XEN_EOI_FLAG_SPURIOUS;
+
 		if (kthread_should_stop()) {
 			more_to_do = 1;
 			break;
@@ -1202,13 +1214,13 @@ __do_block_io_op(struct xen_blkif_ring *ring)
 }
 
 static int
-do_block_io_op(struct xen_blkif_ring *ring)
+do_block_io_op(struct xen_blkif_ring *ring, unsigned int *eoi_flags)
 {
 	union blkif_back_rings *blk_rings = &ring->blk_rings;
 	int more_to_do;
 
 	do {
-		more_to_do = __do_block_io_op(ring);
+		more_to_do = __do_block_io_op(ring, eoi_flags);
 		if (more_to_do)
 			break;
 
drivers/block/xen-blkback/xenbus.c +2 -3
index 25c41ce070a7..93896c992245 100644
@@ -237,9 +237,8 @@ static int xen_blkif_map(struct xen_blkif_ring *ring, grant_ref_t *gref,
 		BUG();
 	}
 
-	err = bind_interdomain_evtchn_to_irqhandler(blkif->domid, evtchn,
-						    xen_blkif_be_int, 0,
-						    "blkif-backend", ring);
+	err = bind_interdomain_evtchn_to_irqhandler_lateeoi(blkif->domid,
+			evtchn, xen_blkif_be_int, 0, "blkif-backend", ring);
 	if (err < 0) {
 		xenbus_unmap_ring_vfree(blkif->be->dev, ring->blk_ring);
 		ring->blk_rings.common.sring = NULL;
drivers/bus/fsl-mc/mc-io.c +6 -1
index 7226cfc49b6f..3f806599748a 100644
@@ -129,7 +129,12 @@ int __must_check fsl_create_mc_io(struct device *dev,
  */
 void fsl_destroy_mc_io(struct fsl_mc_io *mc_io)
 {
-	struct fsl_mc_device *dpmcp_dev = mc_io->dpmcp_dev;
+	struct fsl_mc_device *dpmcp_dev;
+
+	if (!mc_io)
+		return;
+
+	dpmcp_dev = mc_io->dpmcp_dev;
 
 	if (dpmcp_dev)
 		fsl_mc_io_unset_dpmcp(mc_io);
drivers/clk/ti/clockdomain.c +2 -0
index 07a805125e98..11d92311e162 100644
@@ -146,10 +146,12 @@ static void __init of_ti_clockdomain_setup(struct device_node *node)
 		if (clk_hw_get_flags(clk_hw) & CLK_IS_BASIC) {
 			pr_warn("can't setup clkdm for basic clk %s\n",
 				__clk_get_name(clk));
+			clk_put(clk);
 			continue;
 		}
 		to_clk_hw_omap(clk_hw)->clkdm_name = clkdm_name;
 		omap2_init_clk_clkdm(clk_hw);
+		clk_put(clk);
 	}
 }
 
drivers/cpufreq/acpi-cpufreq.c +2 -1
index aca30f45172e..9e86404a361f 100644
@@ -701,7 +701,8 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 		cpumask_copy(policy->cpus, topology_core_cpumask(cpu));
 	}
 
-	if (check_amd_hwpstate_cpu(cpu) && !acpi_pstate_strict) {
+	if (check_amd_hwpstate_cpu(cpu) && boot_cpu_data.x86 < 0x19 &&
+	    !acpi_pstate_strict) {
 		cpumask_clear(policy->cpus);
 		cpumask_set_cpu(cpu, policy->cpus);
 		cpumask_copy(data->freqdomain_cpus,
drivers/cpufreq/sti-cpufreq.c +4 -2
index 47105735df12..6b5d241c30b7 100644
@@ -144,7 +144,8 @@ static const struct reg_field sti_stih407_dvfs_regfields[DVFS_MAX_REGFIELDS] = {
 static const struct reg_field *sti_cpufreq_match(void)
 {
 	if (of_machine_is_compatible("st,stih407") ||
-	    of_machine_is_compatible("st,stih410"))
+	    of_machine_is_compatible("st,stih410") ||
+	    of_machine_is_compatible("st,stih418"))
 		return sti_stih407_dvfs_regfields;
 
 	return NULL;
@@ -261,7 +262,8 @@ static int sti_cpufreq_init(void)
 	int ret;
 
 	if ((!of_machine_is_compatible("st,stih407")) &&
-		(!of_machine_is_compatible("st,stih410")))
+		(!of_machine_is_compatible("st,stih410")) &&
+		(!of_machine_is_compatible("st,stih418")))
 		return -ENODEV;
 
 	ddata.cpu = get_cpu_device(0);
drivers/crypto/chelsio/chtls/chtls_cm.c +12 -17
index f1ca66147c28..f7334c42ebd9 100644
@@ -696,14 +696,13 @@ static int chtls_pass_open_rpl(struct chtls_dev *cdev, struct sk_buff *skb)
 	if (rpl->status != CPL_ERR_NONE) {
 		pr_info("Unexpected PASS_OPEN_RPL status %u for STID %u\n",
 			rpl->status, stid);
-		return CPL_RET_BUF_DONE;
+	} else {
+		cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
+		sock_put(listen_ctx->lsk);
+		kfree(listen_ctx);
+		module_put(THIS_MODULE);
 	}
-	cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
-	sock_put(listen_ctx->lsk);
-	kfree(listen_ctx);
-	module_put(THIS_MODULE);
-
-	return 0;
+	return CPL_RET_BUF_DONE;
 }
 
 static int chtls_close_listsrv_rpl(struct chtls_dev *cdev, struct sk_buff *skb)
@@ -720,15 +719,13 @@ static int chtls_close_listsrv_rpl(struct chtls_dev *cdev, struct sk_buff *skb)
 	if (rpl->status != CPL_ERR_NONE) {
 		pr_info("Unexpected CLOSE_LISTSRV_RPL status %u for STID %u\n",
 			rpl->status, stid);
-		return CPL_RET_BUF_DONE;
+	} else {
+		cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
+		sock_put(listen_ctx->lsk);
+		kfree(listen_ctx);
+		module_put(THIS_MODULE);
 	}
-
-	cxgb4_free_stid(cdev->tids, stid, listen_ctx->lsk->sk_family);
-	sock_put(listen_ctx->lsk);
-	kfree(listen_ctx);
-	module_put(THIS_MODULE);
-
-	return 0;
+	return CPL_RET_BUF_DONE;
 }
 
 static void chtls_purge_wr_queue(struct sock *sk)
@@ -1348,7 +1345,6 @@ static void add_to_reap_list(struct sock *sk)
 	struct chtls_sock *csk = sk->sk_user_data;
 
 	local_bh_disable();
-	bh_lock_sock(sk);
 	release_tcp_port(sk); /* release the port immediately */
 
 	spin_lock(&reap_list_lock);
@@ -1357,7 +1353,6 @@ static void add_to_reap_list(struct sock *sk)
 	if (!csk->passive_reap_next)
 		schedule_work(&reap_task);
 	spin_unlock(&reap_list_lock);
-	bh_unlock_sock(sk);
 	local_bh_enable();
 }
 
drivers/crypto/chelsio/chtls/chtls_io.c +5 -2
index e9573e7f9e80..f9874da23a29 100644
@@ -1549,6 +1549,7 @@ static int chtls_pt_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
 			tp->urg_data = 0;
 
 		if ((avail + offset) >= skb->len) {
+			struct sk_buff *next_skb;
 			if (ULP_SKB_CB(skb)->flags & ULPCB_FLAG_TLS_HDR) {
 				tp->copied_seq += skb->len;
 				hws->rcvpld = skb->hdr_len;
@@ -1558,8 +1559,10 @@ static int chtls_pt_recvmsg(struct sock *sk, struct msghdr *msg, size_t len,
 			chtls_free_skb(sk, skb);
 			buffers_freed++;
 			hws->copied_seq = 0;
-			if (copied >= target &&
-			    !skb_peek(&sk->sk_receive_queue))
+			next_skb = skb_peek(&sk->sk_receive_queue);
+			if (copied >= target && !next_skb)
+				break;
+			if (ULP_SKB_CB(next_skb)->flags & ULPCB_FLAG_TLS_HDR)
 				break;
 		}
 	} while (len > 0);
drivers/dma/dma-jz4780.c +4 -3
index edff93aacad3..0d0850b35e45 100644
@@ -574,11 +574,11 @@ static enum dma_status jz4780_dma_tx_status(struct dma_chan *chan,
 	enum dma_status status;
 	unsigned long flags;
 
+	spin_lock_irqsave(&jzchan->vchan.lock, flags);
+
 	status = dma_cookie_status(chan, cookie, txstate);
 	if ((status == DMA_COMPLETE) || (txstate == NULL))
-		return status;
-
-	spin_lock_irqsave(&jzchan->vchan.lock, flags);
+		goto out_unlock_irqrestore;
 
 	vdesc = vchan_find_desc(&jzchan->vchan, cookie);
 	if (vdesc) {
@@ -595,6 +595,7 @@ static enum dma_status jz4780_dma_tx_status(struct dma_chan *chan,
 	    && jzchan->desc->status & (JZ_DMA_DCS_AR | JZ_DMA_DCS_HLT))
 		status = DMA_ERROR;
 
+out_unlock_irqrestore:
 	spin_unlock_irqrestore(&jzchan->vchan.lock, flags);
 	return status;
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +10 -0
index 71792d820ae0..0db05ff4a652 100644
@@ -563,6 +563,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
 	struct ww_acquire_ctx ticket;
 	struct list_head list, duplicates;
 	uint64_t va_flags;
+	uint64_t vm_size;
 	int r = 0;
 
 	if (args->va_address < AMDGPU_VA_RESERVED_SIZE) {
@@ -583,6 +584,15 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
 
 	args->va_address &= AMDGPU_VA_HOLE_MASK;
 
+	vm_size = adev->vm_manager.max_pfn * AMDGPU_GPU_PAGE_SIZE;
+	vm_size -= AMDGPU_VA_RESERVED_SIZE;
+	if (args->va_address + args->map_size > vm_size) {
+		dev_dbg(&dev->pdev->dev,
+			"va_address 0x%llx is in top reserved area 0x%llx\n",
+			args->va_address + args->map_size, vm_size);
+		return -EINVAL;
+	}
+
 	if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) {
 		dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n",
 			args->flags);
drivers/gpu/drm/amd/display/dc/core/dc_link.c +1 -1
index 2fb2c683ad54..fa0e6c8e2447 100644
@@ -2009,7 +2009,7 @@ enum dc_status dc_link_validate_mode_timing(
 	/* A hack to avoid failing any modes for EDID override feature on
 	 * topology change such as lower quality cable for DP or different dongle
 	 */
-	if (link->remote_sinks[0])
+	if (link->remote_sinks[0] && link->remote_sinks[0]->sink_signal == SIGNAL_TYPE_VIRTUAL)
 		return DC_OK;
 
 	/* Passive Dongle */
drivers/gpu/drm/amd/display/dc/os_types.h +1 -1
index a407892905af..d4cb7db89192 100644
@@ -57,7 +57,7 @@
  * general debug capabilities
  *
  */
-#if defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB)
+#if defined(CONFIG_DEBUG_KERNEL_DC) && (defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB))
 #define ASSERT_CRITICAL(expr) do {	\
 	if (WARN_ON(!(expr))) { \
 		kgdb_breakpoint(); \
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +10 -2
index 2136c97aeb8e..dcf091f9d843 100644
@@ -306,8 +306,12 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
 				       const struct i2c_device_id *id)
 {
 	struct device *dev = &stdp4028_i2c->dev;
+	int ret;
+
+	ret = ge_b850v3_lvds_init(dev);
 
-	ge_b850v3_lvds_init(dev);
+	if (ret)
+		return ret;
 
 	ge_b850v3_lvds_ptr->stdp4028_i2c = stdp4028_i2c;
 	i2c_set_clientdata(stdp4028_i2c, ge_b850v3_lvds_ptr);
@@ -365,8 +369,12 @@ static int stdp2690_ge_b850v3_fw_probe(struct i2c_client *stdp2690_i2c,
 				       const struct i2c_device_id *id)
 {
 	struct device *dev = &stdp2690_i2c->dev;
+	int ret;
+
+	ret = ge_b850v3_lvds_init(dev);
 
-	ge_b850v3_lvds_init(dev);
+	if (ret)
+		return ret;
 
 	ge_b850v3_lvds_ptr->stdp2690_i2c = stdp2690_i2c;
 	i2c_set_clientdata(stdp2690_i2c, ge_b850v3_lvds_ptr);
drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c +7 -2
index fd7999642cf8..8b5f9241a887 100644
@@ -326,7 +326,6 @@ static void dw_mipi_message_config(struct dw_mipi_dsi *dsi,
 	if (lpm)
 		val |= CMD_MODE_ALL_LP;
 
-	dsi_write(dsi, DSI_LPCLK_CTRL, lpm ? 0 : PHY_TXREQUESTCLKHS);
 	dsi_write(dsi, DSI_CMD_MODE_CFG, val);
 }
 
@@ -488,16 +487,22 @@ static void dw_mipi_dsi_video_mode_config(struct dw_mipi_dsi *dsi)
 static void dw_mipi_dsi_set_mode(struct dw_mipi_dsi *dsi,
 				 unsigned long mode_flags)
 {
+	u32 val;
+
 	dsi_write(dsi, DSI_PWR_UP, RESET);
 
 	if (mode_flags & MIPI_DSI_MODE_VIDEO) {
 		dsi_write(dsi, DSI_MODE_CFG, ENABLE_VIDEO_MODE);
 		dw_mipi_dsi_video_mode_config(dsi);
-		dsi_write(dsi, DSI_LPCLK_CTRL, PHY_TXREQUESTCLKHS);
 	} else {
 		dsi_write(dsi, DSI_MODE_CFG, ENABLE_CMD_MODE);
 	}
 
+	val = PHY_TXREQUESTCLKHS;
+	if (dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)
+		val |= AUTO_CLKLANE_CTRL;
+	dsi_write(dsi, DSI_LPCLK_CTRL, val);
+
 	dsi_write(dsi, DSI_PWR_UP, POWERUP);
 }
 
drivers/gpu/drm/i915/i915_drv.h +5 -1
index db2e9af49ae6..37c80cfecd09 100644
@@ -33,6 +33,8 @@
 #include <uapi/drm/i915_drm.h>
 #include <uapi/drm/drm_fourcc.h>
 
+#include <asm/hypervisor.h>
+
 #include <linux/io-mapping.h>
 #include <linux/i2c.h>
 #include <linux/i2c-algo-bit.h>
@@ -2683,7 +2685,9 @@ static inline bool intel_vtd_active(void)
 	if (intel_iommu_gfx_mapped)
 		return true;
 #endif
-	return false;
+
+	/* Running as a guest, we assume the host is enforcing VT'd */
+	return !hypervisor_is_type(X86_HYPER_NATIVE);
 }
 
 static inline bool intel_scanout_needs_vtd_wa(struct drm_i915_private *dev_priv)
drivers/gpu/drm/ttm/ttm_bo.c +1 -1
index 268f5a3b3122..81e076662c7a 100644
@@ -671,7 +671,7 @@ bool ttm_bo_eviction_valuable(struct ttm_buffer_object *bo,
 	/* Don't evict this BO if it's outside of the
 	 * requested placement range
 	 */
-	if (place->fpfn >= (bo->mem.start + bo->mem.size) ||
+	if (place->fpfn >= (bo->mem.start + bo->mem.num_pages) ||
 	    (place->lpfn && place->lpfn <= bo->mem.start))
 		return false;
 
drivers/hid/wacom_wac.c +3 -1
index 77bb46948eea..da83884b90d2 100644
@@ -2729,7 +2729,9 @@ static int wacom_wac_collection(struct hid_device *hdev, struct hid_report *repo
 	if (report->type != HID_INPUT_REPORT)
 		return -1;
 
-	if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
+	if (WACOM_PAD_FIELD(field))
+		return 0;
+	else if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input)
 		wacom_wac_pen_report(hdev, report);
 	else if (WACOM_FINGER_FIELD(field) && wacom->wacom_wac.touch_input)
 		wacom_wac_finger_report(hdev, report);
drivers/i2c/busses/i2c-imx.c +13 -11
index d4b72e4ffd71..0e7f9bd17a91 100644
@@ -1101,14 +1101,6 @@ static int i2c_imx_probe(struct platform_device *pdev)
 		return ret;
 	}
 
-	/* Request IRQ */
-	ret = devm_request_irq(&pdev->dev, irq, i2c_imx_isr, IRQF_SHARED,
-				pdev->name, i2c_imx);
-	if (ret) {
-		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
-		goto clk_disable;
-	}
-
 	/* Init queue */
 	init_waitqueue_head(&i2c_imx->queue);
 
@@ -1127,6 +1119,14 @@ static int i2c_imx_probe(struct platform_device *pdev)
 	if (ret < 0)
 		goto rpm_disable;
 
+	/* Request IRQ */
+	ret = request_threaded_irq(irq, i2c_imx_isr, NULL, IRQF_SHARED,
+				   pdev->name, i2c_imx);
+	if (ret) {
+		dev_err(&pdev->dev, "can't claim irq %d\n", irq);
+		goto rpm_disable;
+	}
+
 	/* Set up clock divider */
 	i2c_imx->bitrate = IMX_I2C_BIT_RATE;
 	ret = of_property_read_u32(pdev->dev.of_node,
@@ -1169,13 +1169,12 @@ static int i2c_imx_probe(struct platform_device *pdev)
 
 clk_notifier_unregister:
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	free_irq(irq, i2c_imx);
 rpm_disable:
 	pm_runtime_put_noidle(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
 	pm_runtime_set_suspended(&pdev->dev);
 	pm_runtime_dont_use_autosuspend(&pdev->dev);
-
-clk_disable:
 	clk_disable_unprepare(i2c_imx->clk);
 	return ret;
 }
@@ -1183,7 +1182,7 @@ static int i2c_imx_probe(struct platform_device *pdev)
 static int i2c_imx_remove(struct platform_device *pdev)
 {
 	struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev);
-	int ret;
+	int irq, ret;
 
 	ret = pm_runtime_get_sync(&pdev->dev);
 	if (ret < 0)
@@ -1203,6 +1202,9 @@ static int i2c_imx_remove(struct platform_device *pdev)
 	imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2SR);
 
 	clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
+	irq = platform_get_irq(pdev, 0);
+	if (irq >= 0)
+		free_irq(irq, i2c_imx);
 	clk_disable_unprepare(i2c_imx->clk);
 
 	pm_runtime_put_noidle(&pdev->dev);
drivers/iio/adc/ti-adc0832.c +8 -3
index 188dae705bf7..a408d97e2d2e 100644
@@ -31,6 +31,12 @@ struct adc0832 {
 	struct regulator *reg;
 	struct mutex lock;
 	u8 mux_bits;
+	/*
+	 * Max size needed: 16x 1 byte ADC data + 8 bytes timestamp
+	 * May be shorter if not all channels are enabled subject
+	 * to the timestamp remaining 8 byte aligned.
+	 */
+	u8 data[24] __aligned(8);
 
 	u8 tx_buf[2] ____cacheline_aligned;
 	u8 rx_buf[2];
@@ -202,7 +208,6 @@ static irqreturn_t adc0832_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc0832 *adc = iio_priv(indio_dev);
-	u8 data[24] = { }; /* 16x 1 byte ADC data + 8 bytes timestamp */
 	int scan_index;
 	int i = 0;
 
@@ -220,10 +225,10 @@ static irqreturn_t adc0832_trigger_handler(int irq, void *p)
 			goto out;
 		}
 
-		data[i] = ret;
+		adc->data[i] = ret;
 		i++;
 	}
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, adc->data,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
drivers/iio/adc/ti-adc12138.c +9 -4
index 703d68ae96b7..4517d7742bc3 100644
@@ -50,6 +50,12 @@ struct adc12138 {
 	struct completion complete;
 	/* The number of cclk periods for the S/H's acquisition time */
 	unsigned int acquisition_time;
+	/*
+	 * Maximum size needed: 16x 2 bytes ADC data + 8 bytes timestamp.
+	 * Less may be need if not all channels are enabled, as long as
+	 * the 8 byte alignment of the timestamp is maintained.
+	 */
+	__be16 data[20] __aligned(8);
 
 	u8 tx_buf[2] ____cacheline_aligned;
 	u8 rx_buf[2];
@@ -332,7 +338,6 @@ static irqreturn_t adc12138_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct adc12138 *adc = iio_priv(indio_dev);
-	__be16 data[20] = { }; /* 16x 2 bytes ADC data + 8 bytes timestamp */
 	__be16 trash;
 	int ret;
 	int scan_index;
@@ -348,7 +353,7 @@ static irqreturn_t adc12138_trigger_handler(int irq, void *p)
 		reinit_completion(&adc->complete);
 
 		ret = adc12138_start_and_read_conv(adc, scan_chan,
-						   i ? &data[i - 1] : &trash);
+					i ? &adc->data[i - 1] : &trash);
 		if (ret) {
 			dev_warn(&adc->spi->dev,
 				 "failed to start conversion\n");
@@ -365,7 +370,7 @@ static irqreturn_t adc12138_trigger_handler(int irq, void *p)
 	}
 
 	if (i) {
-		ret = adc12138_read_conv_data(adc, &data[i - 1]);
+		ret = adc12138_read_conv_data(adc, &adc->data[i - 1]);
 		if (ret) {
 			dev_warn(&adc->spi->dev,
 				 "failed to get conversion data\n");
@@ -373,7 +378,7 @@ static irqreturn_t adc12138_trigger_handler(int irq, void *p)
 		}
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, data,
+	iio_push_to_buffers_with_timestamp(indio_dev, adc->data,
 					   iio_get_time_ns(indio_dev));
 out:
 	mutex_unlock(&adc->lock);
drivers/iio/gyro/itg3200_buffer.c +11 -4
index 59770e5b6660..b080362a8766 100644
@@ -49,13 +49,20 @@ static irqreturn_t itg3200_trigger_handler(int irq, void *p)
 	struct iio_poll_func *pf = p;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct itg3200 *st = iio_priv(indio_dev);
-	__be16 buf[ITG3200_SCAN_ELEMENTS + sizeof(s64)/sizeof(u16)];
-
-	int ret = itg3200_read_all_channels(st->i2c, buf);
+	/*
+	 * Ensure correct alignment and padding including for the
+	 * timestamp that may be inserted.
+	 */
+	struct {
+		__be16 buf[ITG3200_SCAN_ELEMENTS];
+		s64 ts __aligned(8);
+	} scan;
+
+	int ret = itg3200_read_all_channels(st->i2c, scan.buf);
 	if (ret < 0)
 		goto error_ret;
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buf, pf->timestamp);
+	iio_push_to_buffers_with_timestamp(indio_dev, &scan, pf->timestamp);
 
 	iio_trigger_notify_done(indio_dev->trig);
 
drivers/iio/light/si1145.c +11 -8
index 76f16f9c7616..31f78fd7f915 100644
@@ -172,6 +172,7 @@ struct si1145_part_info {
  * @part_info:	Part information
  * @trig:	Pointer to iio trigger
  * @meas_rate:	Value of MEAS_RATE register. Only set in HW in auto mode
+ * @buffer:	Used to pack data read from sensor.
  */
 struct si1145_data {
 	struct i2c_client *client;
@@ -183,6 +184,14 @@ struct si1145_data {
 	bool autonomous;
 	struct iio_trigger *trig;
 	int meas_rate;
+	/*
+	 * Ensure timestamp will be naturally aligned if present.
+	 * Maximum buffer size (may be only partly used if not all
+	 * channels are enabled):
+	 *   6*2 bytes channels data + 4 bytes alignment +
+	 *   8 bytes timestamp
+	 */
+	u8 buffer[24] __aligned(8);
 };
 
 /**
@@ -444,12 +453,6 @@ static irqreturn_t si1145_trigger_handler(int irq, void *private)
 	struct iio_poll_func *pf = private;
 	struct iio_dev *indio_dev = pf->indio_dev;
 	struct si1145_data *data = iio_priv(indio_dev);
-	/*
-	 * Maximum buffer size:
-	 *   6*2 bytes channels data + 4 bytes alignment +
-	 *   8 bytes timestamp
-	 */
-	u8 buffer[24];
 	int i, j = 0;
 	int ret;
 	u8 irq_status = 0;
@@ -482,7 +485,7 @@ static irqreturn_t si1145_trigger_handler(int irq, void *private)
 
 		ret = i2c_smbus_read_i2c_block_data_or_emulated(
 				data->client, indio_dev->channels[i].address,
-				sizeof(u16) * run, &buffer[j]);
+				sizeof(u16) * run, &data->buffer[j]);
 		if (ret < 0)
 			goto done;
 		j += run * sizeof(u16);
@@ -497,7 +500,7 @@ static irqreturn_t si1145_trigger_handler(int irq, void *private)
 			goto done;
 	}
 
-	iio_push_to_buffers_with_timestamp(indio_dev, buffer,
+	iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
 		iio_get_time_ns(indio_dev));
 
 done:
drivers/infiniband/core/addr.c +5 -6
index df8f5ceea2dd..30385ba7c5d9 100644
@@ -571,13 +571,12 @@ static void process_one_req(struct work_struct *_work)
 	req->callback = NULL;
 
 	spin_lock_bh(&lock);
+	/*
+	 * Although the work will normally have been canceled by the workqueue,
+	 * it can still be requeued as long as it is on the req_list.
+	 */
+	cancel_delayed_work(&req->work);
 	if (!list_empty(&req->list)) {
-		/*
-		 * Although the work will normally have been canceled by the
-		 * workqueue, it can still be requeued as long as it is on the
-		 * req_list.
-		 */
-		cancel_delayed_work(&req->work);
 		list_del_init(&req->list);
 		kfree(req);
 	}
drivers/infiniband/hw/qedr/qedr_iw_cm.c +1 -0
index e908dfbaa137..1f1d6a000e5c 100644
@@ -677,6 +677,7 @@ int qedr_iw_destroy_listen(struct iw_cm_id *cm_id)
 						    listener->qed_handle);
 
 	cm_id->rem_ref(cm_id);
+	kfree(listener);
 	return rc;
 }
 
drivers/input/serio/hil_mlc.c +18 -3
index e1423f7648d6..4c039e4125d9 100644
@@ -74,7 +74,7 @@ EXPORT_SYMBOL(hil_mlc_unregister);
 static LIST_HEAD(hil_mlcs);
 static DEFINE_RWLOCK(hil_mlcs_lock);
 static struct timer_list	hil_mlcs_kicker;
-static int			hil_mlcs_probe;
+static int			hil_mlcs_probe, hil_mlc_stop;
 
 static void hil_mlcs_process(unsigned long unused);
 static DECLARE_TASKLET_DISABLED(hil_mlcs_tasklet, hil_mlcs_process, 0);
@@ -702,9 +702,13 @@ static int hilse_donode(hil_mlc *mlc)
 		if (!mlc->ostarted) {
 			mlc->ostarted = 1;
 			mlc->opacket = pack;
-			mlc->out(mlc);
+			rc = mlc->out(mlc);
 			nextidx = HILSEN_DOZE;
 			write_unlock_irqrestore(&mlc->lock, flags);
+			if (rc) {
+				hil_mlc_stop = 1;
+				return 1;
+			}
 			break;
 		}
 		mlc->ostarted = 0;
@@ -715,8 +719,13 @@ static int hilse_donode(hil_mlc *mlc)
 
 	case HILSE_CTS:
 		write_lock_irqsave(&mlc->lock, flags);
-		nextidx = mlc->cts(mlc) ? node->bad : node->good;
+		rc = mlc->cts(mlc);
+		nextidx = rc ? node->bad : node->good;
 		write_unlock_irqrestore(&mlc->lock, flags);
+		if (rc) {
+			hil_mlc_stop = 1;
+			return 1;
+		}
 		break;
 
 	default:
@@ -780,6 +789,12 @@ static void hil_mlcs_process(unsigned long unused)
 
 static void hil_mlcs_timer(struct timer_list *unused)
 {
+	if (hil_mlc_stop) {
+		/* could not send packet - stop immediately. */
+		pr_warn(PREFIX "HIL seems stuck - Disabling HIL MLC.\n");
+		return;
+	}
+
 	hil_mlcs_probe = 1;
 	tasklet_schedule(&hil_mlcs_tasklet);
 	/* Re-insert the periodic task. */
drivers/input/serio/hp_sdc_mlc.c +4 -4
index 232d30c825bd..3e85e9039374 100644
@@ -210,7 +210,7 @@ static int hp_sdc_mlc_cts(hil_mlc *mlc)
 	priv->tseq[2] = 1;
 	priv->tseq[3] = 0;
 	priv->tseq[4] = 0;
-	__hp_sdc_enqueue_transaction(&priv->trans);
+	return __hp_sdc_enqueue_transaction(&priv->trans);
  busy:
 	return 1;
  done:
@@ -219,7 +219,7 @@ static int hp_sdc_mlc_cts(hil_mlc *mlc)
 	return 0;
 }
 
-static void hp_sdc_mlc_out(hil_mlc *mlc)
+static int hp_sdc_mlc_out(hil_mlc *mlc)
 {
 	struct hp_sdc_mlc_priv_s *priv;
 
@@ -234,7 +234,7 @@ static void hp_sdc_mlc_out(hil_mlc *mlc)
  do_data:
 	if (priv->emtestmode) {
 		up(&mlc->osem);
-		return;
+		return 0;
 	}
 	/* Shouldn't be sending commands when loop may be busy */
 	BUG_ON(down_trylock(&mlc->csem));
@@ -296,7 +296,7 @@ static void hp_sdc_mlc_out(hil_mlc *mlc)
 		BUG_ON(down_trylock(&mlc->csem));
 	}
  enqueue:
-	hp_sdc_enqueue_transaction(&priv->trans);
+	return hp_sdc_enqueue_transaction(&priv->trans);
 }
 
 static int __init hp_sdc_mlc_init(void)
drivers/leds/leds-bcm6328.c +1 -1
index 2cfd9389ee96..b944ae828004 100644
@@ -336,7 +336,7 @@ static int bcm6328_led(struct device *dev, struct device_node *nc, u32 reg,
 	led->cdev.brightness_set = bcm6328_led_set;
 	led->cdev.blink_set = bcm6328_blink_set;
 
-	rc = led_classdev_register(dev, &led->cdev);
+	rc = devm_led_classdev_register(dev, &led->cdev);
 	if (rc < 0)
 		return rc;
 
drivers/leds/leds-bcm6358.c +1 -1
index b2cc06618abe..a86ab6197a4e 100644
@@ -141,7 +141,7 @@ static int bcm6358_led(struct device *dev, struct device_node *nc, u32 reg,
 
 	led->cdev.brightness_set = bcm6358_led_set;
 
-	rc = led_classdev_register(dev, &led->cdev);
+	rc = devm_led_classdev_register(dev, &led->cdev);
 	if (rc < 0)
 		return rc;
 
drivers/md/md-bitmap.c +1 -1
index fd8607124bdb..503f5e06fa86 100644
@@ -1371,7 +1371,7 @@ __acquires(bitmap->lock)
 	if (bitmap->bp[page].hijacked ||
 	    bitmap->bp[page].map == NULL)
 		csize = ((sector_t)1) << (bitmap->chunkshift +
-					  PAGE_COUNTER_SHIFT - 1);
+					  PAGE_COUNTER_SHIFT);
 	else
 		csize = ((sector_t)1) << bitmap->chunkshift;
 	*blocks = csize - (offset & (csize - 1));
drivers/md/raid5.c +2 -2
index d91154d65455..c7bda4b0bced 100644
@@ -2417,8 +2417,6 @@ static int resize_stripes(struct r5conf *conf, int newsize)
 	} else
 		err = -ENOMEM;
 
-	mutex_unlock(&conf->cache_size_mutex);
-
 	conf->slab_cache = sc;
 	conf->active_name = 1-conf->active_name;
 
@@ -2441,6 +2439,8 @@ static int resize_stripes(struct r5conf *conf, int newsize)
 
 	if (!err)
 		conf->pool_size = newsize;
+	mutex_unlock(&conf->cache_size_mutex);
+
 	return err;
 }
 
drivers/media/i2c/imx274.c +5 -3
index 8cc3bdb7f608..0fe8b869245b 100644
@@ -1239,6 +1239,8 @@ static int imx274_s_frame_interval(struct v4l2_subdev *sd,
 	ret = imx274_set_frame_interval(imx274, fi->interval);
 
 	if (!ret) {
+		fi->interval = imx274->frame_interval;
+
 		/*
 		 * exposure time range is decided by frame interval
 		 * need to update it after frame interval changes
@@ -1760,9 +1762,9 @@ static int imx274_set_frame_interval(struct stimx274 *priv,
 		__func__, frame_interval.numerator,
 		frame_interval.denominator);
 
-	if (frame_interval.numerator == 0) {
-		err = -EINVAL;
-		goto fail;
+	if (frame_interval.numerator == 0 || frame_interval.denominator == 0) {
+		frame_interval.denominator = IMX274_DEF_FRAME_RATE;
+		frame_interval.numerator = 1;
 	}
 
 	req_frame_rate = (u32)(frame_interval.denominator
drivers/media/pci/tw5864/tw5864-video.c +6 -0
index 6c40e60ac993..b0f8d1532b70 100644
@@ -776,6 +776,9 @@ static int tw5864_enum_frameintervals(struct file *file, void *priv,
 	fintv->type = V4L2_FRMIVAL_TYPE_STEPWISE;
 
 	ret = tw5864_frameinterval_get(input, &frameinterval);
+	if (ret)
+		return ret;
+
 	fintv->stepwise.step = frameinterval;
 	fintv->stepwise.min = frameinterval;
 	fintv->stepwise.max = frameinterval;
@@ -794,6 +797,9 @@ static int tw5864_g_parm(struct file *file, void *priv,
 	cp->capability = V4L2_CAP_TIMEPERFRAME;
 
 	ret = tw5864_frameinterval_get(input, &cp->timeperframe);
+	if (ret)
+		return ret;
+
 	cp->timeperframe.numerator *= input->frame_interval;
 	cp->capturemode = 0;
 	cp->readbuffers = 2;
drivers/media/platform/mtk-jpeg/mtk_jpeg_core.c +7 -0
index 11429633b2fb..f0bca30a0a80 100644
@@ -579,6 +579,13 @@ static int mtk_jpeg_queue_setup(struct vb2_queue *q,
 	if (!q_data)
 		return -EINVAL;
 
+	if (*num_planes) {
+		for (i = 0; i < *num_planes; i++)
+			if (sizes[i] < q_data->sizeimage[i])
+				return -EINVAL;
+		return 0;
+	}
+
 	*num_planes = q_data->fmt->colplanes;
 	for (i = 0; i < q_data->fmt->colplanes; i++) {
 		sizes[i] = q_data->sizeimage[i];
drivers/media/usb/uvc/uvc_ctrl.c +16 -11
index abfc49901222..cb6046481aed 100644
@@ -1853,30 +1853,35 @@ int uvc_xu_ctrl_query(struct uvc_video_chain *chain,
 {
 	struct uvc_entity *entity;
 	struct uvc_control *ctrl;
-	unsigned int i, found = 0;
+	unsigned int i;
+	bool found;
 	u32 reqflags;
 	u16 size;
 	u8 *data = NULL;
 	int ret;
 
 	/* Find the extension unit. */
+	found = false;
 	list_for_each_entry(entity, &chain->entities, chain) {
 		if (UVC_ENTITY_TYPE(entity) == UVC_VC_EXTENSION_UNIT &&
-		    entity->id == xqry->unit)
+		    entity->id == xqry->unit) {
+			found = true;
 			break;
+		}
 	}
 
-	if (entity->id != xqry->unit) {
+	if (!found) {
 		uvc_trace(UVC_TRACE_CONTROL, "Extension unit %u not found.\n",
 			xqry->unit);
 		return -ENOENT;
 	}
 
 	/* Find the control and perform delayed initialization if needed. */
+	found = false;
 	for (i = 0; i < entity->ncontrols; ++i) {
 		ctrl = &entity->controls[i];
 		if (ctrl->index == xqry->selector - 1) {
-			found = 1;
+			found = true;
 			break;
 		}
 	}
@@ -2033,13 +2038,6 @@ static int uvc_ctrl_add_info(struct uvc_device *dev, struct uvc_control *ctrl,
 		goto done;
 	}
 
-	/*
-	 * Retrieve control flags from the device. Ignore errors and work with
-	 * default flag values from the uvc_ctrl array when the device doesn't
-	 * properly implement GET_INFO on standard controls.
-	 */
-	uvc_ctrl_get_flags(dev, ctrl, &ctrl->info);
-
 	ctrl->initialized = 1;
 
 	uvc_trace(UVC_TRACE_CONTROL, "Added control %pUl/%u to device %s "
@@ -2262,6 +2260,13 @@ static void uvc_ctrl_init_ctrl(struct uvc_device *dev, struct uvc_control *ctrl)
 		if (uvc_entity_match_guid(ctrl->entity, info->entity) &&
 		    ctrl->index == info->index) {
 			uvc_ctrl_add_info(dev, ctrl, info);
+			/*
+			 * Retrieve control flags from the device. Ignore errors
+			 * and work with default flag values from the uvc_ctrl
+			 * array when the device doesn't properly implement
+			 * GET_INFO on standard controls.
+			 */
+			uvc_ctrl_get_flags(dev, ctrl, &ctrl->info);
 			break;
 		 }
 	}
drivers/memory/emif.c +5 -28
index 2f214440008c..1c6b2cc6269a 100644
@@ -165,35 +165,12 @@ static const struct file_operations emif_mr4_fops = {
 
 static int __init_or_module emif_debugfs_init(struct emif_data *emif)
 {
-	struct dentry	*dentry;
-	int		ret;
-
-	dentry = debugfs_create_dir(dev_name(emif->dev), NULL);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err0;
-	}
-	emif->debugfs_root = dentry;
-
-	dentry = debugfs_create_file("regcache_dump", S_IRUGO,
-			emif->debugfs_root, emif, &emif_regdump_fops);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err1;
-	}
-
-	dentry = debugfs_create_file("mr4", S_IRUGO,
-			emif->debugfs_root, emif, &emif_mr4_fops);
-	if (!dentry) {
-		ret = -ENOMEM;
-		goto err1;
-	}
-
+	emif->debugfs_root = debugfs_create_dir(dev_name(emif->dev), NULL);
+	debugfs_create_file("regcache_dump", S_IRUGO, emif->debugfs_root, emif,
+			    &emif_regdump_fops);
+	debugfs_create_file("mr4", S_IRUGO, emif->debugfs_root, emif,
+			    &emif_mr4_fops);
 	return 0;
-err1:
-	debugfs_remove_recursive(emif->debugfs_root);
-err0:
-	return ret;
 }
 
 static void __exit emif_debugfs_exit(struct emif_data *emif)
drivers/message/fusion/mptscsih.c +8 -5
index 2af7ae13449d..cec867c10968 100644
@@ -1174,8 +1174,10 @@ mptscsih_remove(struct pci_dev *pdev)
 	MPT_SCSI_HOST		*hd;
 	int sz1;
 
-	if((hd = shost_priv(host)) == NULL)
-		return;
+	if (host == NULL)
+		hd = NULL;
+	else
+		hd = shost_priv(host);
 
 	mptscsih_shutdown(pdev);
 
@@ -1191,14 +1193,15 @@ mptscsih_remove(struct pci_dev *pdev)
 	    "Free'd ScsiLookup (%d) memory\n",
 	    ioc->name, sz1));
 
-	kfree(hd->info_kbuf);
+	if (hd)
+		kfree(hd->info_kbuf);
 
 	/* NULL the Scsi_Host pointer
 	 */
 	ioc->sh = NULL;
 
-	scsi_host_put(host);
-
+	if (host)
+		scsi_host_put(host);
 	mpt_detach(pdev);
 
 }
drivers/misc/cxl/pci.c +2 -2
index 787a69a2a726..b9d3c87e9318 100644
@@ -397,8 +397,8 @@ int cxl_calc_capp_routing(struct pci_dev *dev, u64 *chipid,
 	*capp_unit_id = get_capp_unit_id(np, *phb_index);
 	of_node_put(np);
 	if (!*capp_unit_id) {
-		pr_err("cxl: invalid capp unit id (phb_index: %d)\n",
-		       *phb_index);
+		pr_err("cxl: No capp unit found for PHB[%lld,%d]. Make sure the adapter is on a capi-compatible slot\n",
+		       *chipid, *phb_index);
 		return -ENODEV;
 	}
 
drivers/mmc/host/sdhci-acpi.c +37 -0
index 145143b6a0e6..6cc187ce3a32 100644
@@ -546,6 +546,43 @@ static int sdhci_acpi_emmc_amd_probe_slot(struct platform_device *pdev,
 	    (host->mmc->caps & MMC_CAP_1_8V_DDR))
 		host->mmc->caps2 = MMC_CAP2_HS400_1_8V;
 
+	/*
+	 * There are two types of presets out in the wild:
+	 * 1) Default/broken presets.
+	 *    These presets have two sets of problems:
+	 *    a) The clock divisor for SDR12, SDR25, and SDR50 is too small.
+	 *       This results in clock frequencies that are 2x higher than
+	 *       acceptable. i.e., SDR12 = 25 MHz, SDR25 = 50 MHz, SDR50 =
+	 *       100 MHz.x
+	 *    b) The HS200 and HS400 driver strengths don't match.
+	 *       By default, the SDR104 preset register has a driver strength of
+	 *       A, but the (internal) HS400 preset register has a driver
+	 *       strength of B. As part of initializing HS400, HS200 tuning
+	 *       needs to be performed. Having different driver strengths
+	 *       between tuning and operation is wrong. It results in different
+	 *       rise/fall times that lead to incorrect sampling.
+	 * 2) Firmware with properly initialized presets.
+	 *    These presets have proper clock divisors. i.e., SDR12 => 12MHz,
+	 *    SDR25 => 25 MHz, SDR50 => 50 MHz. Additionally the HS200 and
+	 *    HS400 preset driver strengths match.
+	 *
+	 *    Enabling presets for HS400 doesn't work for the following reasons:
+	 *    1) sdhci_set_ios has a hard coded list of timings that are used
+	 *       to determine if presets should be enabled.
+	 *    2) sdhci_get_preset_value is using a non-standard register to
+	 *       read out HS400 presets. The AMD controller doesn't support this
+	 *       non-standard register. In fact, it doesn't expose the HS400
+	 *       preset register anywhere in the SDHCI memory map. This results
+	 *       in reading a garbage value and using the wrong presets.
+	 *
+	 *       Since HS400 and HS200 presets must be identical, we could
+	 *       instead use the the SDR104 preset register.
+	 *
+	 *    If the above issues are resolved we could remove this quirk for
+	 *    firmware that that has valid presets (i.e., SDR12 <= 12 MHz).
+	 */
+	host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN;
+
 	host->mmc_host_ops.select_drive_strength = amd_select_drive_strength;
 	host->mmc_host_ops.set_ios = amd_set_ios;
 	return 0;
drivers/mmc/host/via-sdmmc.c +3 -0
index 246dc6255e69..9fdb92729c28 100644
@@ -1273,11 +1273,14 @@ static void via_init_sdc_pm(struct via_crdr_mmc_host *host)
 static int via_sd_suspend(struct pci_dev *pcidev, pm_message_t state)
 {
 	struct via_crdr_mmc_host *host;
+	unsigned long flags;
 
 	host = pci_get_drvdata(pcidev);
 
+	spin_lock_irqsave(&host->lock, flags);
 	via_save_pcictrlreg(host);
 	via_save_sdcreg(host);
+	spin_unlock_irqrestore(&host->lock, flags);
 
 	pci_save_state(pcidev);
 	pci_enable_wake(pcidev, pci_choose_state(pcidev, state), 0);
drivers/mtd/ubi/wl.c +13 -0
index 80d64d7e7a8b..ac336164f625 100644
@@ -1471,6 +1471,19 @@ int ubi_thread(void *u)
 		    !ubi->thread_enabled || ubi_dbg_is_bgt_disabled(ubi)) {
 			set_current_state(TASK_INTERRUPTIBLE);
 			spin_unlock(&ubi->wl_lock);
+
+			/*
+			 * Check kthread_should_stop() after we set the task
+			 * state to guarantee that we either see the stop bit
+			 * and exit or the task state is reset to runnable such
+			 * that it's not scheduled out indefinitely and detects
+			 * the stop bit at kthread_should_stop().
+			 */
+			if (kthread_should_stop()) {
+				set_current_state(TASK_RUNNING);
+				break;
+			}
+
 			schedule();
 			continue;
 		}
drivers/net/ethernet/broadcom/bnxt/bnxt.c +5 -1
index c3f04fb31955..01d28ede1fb2 100644
@@ -6326,6 +6326,11 @@ static void bnxt_report_link(struct bnxt *bp)
 		u16 fec;
 
 		netif_carrier_on(bp->dev);
+		speed = bnxt_fw_to_ethtool_speed(bp->link_info.link_speed);
+		if (speed == SPEED_UNKNOWN) {
+			netdev_info(bp->dev, "NIC Link is Up, speed unknown\n");
+			return;
+		}
 		if (bp->link_info.duplex == BNXT_LINK_DUPLEX_FULL)
 			duplex = "full";
 		else
@@ -6338,7 +6343,6 @@ static void bnxt_report_link(struct bnxt *bp)
 			flow_ctrl = "ON - receive";
 		else
 			flow_ctrl = "none";
-		speed = bnxt_fw_to_ethtool_speed(bp->link_info.link_speed);
 		netdev_info(bp->dev, "NIC Link is Up, %u Mbps %s duplex, Flow control: %s\n",
 			    speed, duplex, flow_ctrl);
 		if (bp->flags & BNXT_FLAG_EEE_CAP)
drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c +27 -29

103 lines not on this page · raw message

drivers/net/ethernet/chelsio/cxgb4/t4_tcb.h +4 -0
index 3297ce025e8b..6ddc2baa7481 100644
@@ -42,6 +42,10 @@
 
 #define TCB_T_FLAGS_W		1
 
+#define TF_DROP_S		22
+#define TF_DIRECT_STEER_S	23
+#define TF_LPBK_S		59
+
 #define TF_CCTRL_ECE_S		60
 #define TF_CCTRL_CWR_S		61
 #define TF_CCTRL_RFR_S		62
drivers/net/ethernet/mellanox/mlxsw/core.c +5 -0
index d8e7ca48753f..423c3e9925d0 100644
@@ -488,6 +488,9 @@ static void mlxsw_emad_transmit_retry(struct mlxsw_core *mlxsw_core,
 		err = mlxsw_emad_transmit(trans->core, trans);
 		if (err == 0)
 			return;
+
+		if (!atomic_dec_and_test(&trans->active))
+			return;
 	} else {
 		err = -EIO;
 	}
@@ -1111,6 +1114,8 @@ void mlxsw_core_bus_device_unregister(struct mlxsw_core *mlxsw_core,
 	if (!reload)
 		devlink_resources_unregister(devlink, NULL);
 	mlxsw_core->bus->fini(mlxsw_core->bus_priv);
+	if (!reload)
+		devlink_free(devlink);
 
 	return;
 
drivers/net/ethernet/realtek/r8169.c +2 -2
index 58dc4fe139fb..1555c0dae490 100644
@@ -6630,7 +6630,7 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 		return IRQ_NONE;
 
 	rtl_irq_disable(tp);
-	napi_schedule_irqoff(&tp->napi);
+	napi_schedule(&tp->napi);
 
 	return IRQ_HANDLED;
 }
@@ -6886,7 +6886,7 @@ static int rtl_open(struct net_device *dev)
 	rtl_request_firmware(tp);
 
 	retval = request_irq(pci_irq_vector(pdev, 0), rtl8169_interrupt,
-			     IRQF_NO_THREAD | IRQF_SHARED, dev->name, tp);
+			     IRQF_SHARED, dev->name, tp);
 	if (retval < 0)
 		goto err_release_fw_2;
 
drivers/net/ethernet/renesas/ravb_main.c +7 -3
index 569e698b5c80..c24b7ea37e39 100644
@@ -1732,12 +1732,16 @@ static int ravb_hwtstamp_get(struct net_device *ndev, struct ifreq *req)
 	config.flags = 0;
 	config.tx_type = priv->tstamp_tx_ctrl ? HWTSTAMP_TX_ON :
 						HWTSTAMP_TX_OFF;
-	if (priv->tstamp_rx_ctrl & RAVB_RXTSTAMP_TYPE_V2_L2_EVENT)
+	switch (priv->tstamp_rx_ctrl & RAVB_RXTSTAMP_TYPE) {
+	case RAVB_RXTSTAMP_TYPE_V2_L2_EVENT:
 		config.rx_filter = HWTSTAMP_FILTER_PTP_V2_L2_EVENT;
-	else if (priv->tstamp_rx_ctrl & RAVB_RXTSTAMP_TYPE_ALL)
+		break;
+	case RAVB_RXTSTAMP_TYPE_ALL:
 		config.rx_filter = HWTSTAMP_FILTER_ALL;
-	else
+		break;
+	default:
 		config.rx_filter = HWTSTAMP_FILTER_NONE;
+	}
 
 	return copy_to_user(req->ifr_data, &config, sizeof(config)) ?
 		-EFAULT : 0;
drivers/net/gtp.c +8 -8
index f2fecb684220..bb9cd1262cc9 100644
@@ -667,10 +667,6 @@ static int gtp_newlink(struct net *src_net, struct net_device *dev,
 
 	gtp = netdev_priv(dev);
 
-	err = gtp_encap_enable(gtp, data);
-	if (err < 0)
-		return err;
-
 	if (!data[IFLA_GTP_PDP_HASHSIZE]) {
 		hashsize = 1024;
 	} else {
@@ -681,12 +677,16 @@ static int gtp_newlink(struct net *src_net, struct net_device *dev,
 
 	err = gtp_hashtable_new(gtp, hashsize);
 	if (err < 0)
-		goto out_encap;
+		return err;
+
+	err = gtp_encap_enable(gtp, data);
+	if (err < 0)
+		goto out_hashtable;
 
 	err = register_netdevice(dev);
 	if (err < 0) {
 		netdev_dbg(dev, "failed to register new netdev %d\n", err);
-		goto out_hashtable;
+		goto out_encap;
 	}
 
 	gn = net_generic(dev_net(dev), gtp_net_id);
@@ -697,11 +697,11 @@ static int gtp_newlink(struct net *src_net, struct net_device *dev,
 
 	return 0;
 
+out_encap:
+	gtp_encap_disable(gtp);
 out_hashtable:
 	kfree(gtp->addr_hash);
 	kfree(gtp->tid_hash);
-out_encap:
-	gtp_encap_disable(gtp);
 	return err;
 }
 
drivers/net/wan/hdlc_fr.c +51 -47

130 lines not on this page · raw message

drivers/net/wireless/ath/ath10k/htt_rx.c +7 -1
index 7d15f6208b46..68cda1564c77 100644

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

drivers/net/wireless/ath/ath10k/sdio.c +4 -0
index 0cdaecb0e28a..28d86da65c05 100644

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

drivers/net/wireless/intersil/p54/p54pci.c +3 -1
index 57ad56435dda..8bc0286b4f8c 100644

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

drivers/net/xen-netback/common.h +15 -0
index 936c0b3e0ba2..86d23d0f563c 100644

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

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

61 lines not on this page · raw message

drivers/net/xen-netback/netback.c +10 -1
index 1c849106b793..f228298c3bd0 100644

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

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

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

drivers/nvme/host/rdma.c +0 -1
index 077c67816665..134e14e778f8 100644

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

drivers/power/supply/bq27xxx_battery.c +4 -2
index ff02a917556a..93e3d9c747aa 100644

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

drivers/power/supply/test_power.c +6 -0
index 57246cdbd042..925abec45380 100644

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

drivers/rpmsg/qcom_glink_native.c +3 -3
index facc577ab0ac..a755f85686e5 100644

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

drivers/rtc/rtc-rx8010.c +17 -7
index 7ddc22eb5b0f..f4db80f9c1b1 100644

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

drivers/scsi/qla2xxx/qla_target.c +7 -6
index 29b79e85fa7f..eb6112eb475e 100644

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

drivers/staging/comedi/drivers/cb_pcidas.c +1 -0
index 8429d57087fd..9b716c696477 100644

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

drivers/staging/octeon/ethernet-mdio.c +0 -6
index f67f95043887..5761a31e2318 100644

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

drivers/staging/octeon/ethernet-rx.c +19 -15
index 5e271245273c..6c644ef6f3ff 100644

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

drivers/staging/octeon/ethernet.c +9 -0
index 9b15c9ed844b..b680e5785ae3 100644

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

drivers/tty/serial/amba-pl011.c +7 -4
index 45e4f2952143..1306ce5c5d9b 100644

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

drivers/tty/vt/keyboard.c +19 -20
index a7455f8a4235..94cad9f86ff9 100644

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

drivers/tty/vt/vt_ioctl.c +17 -15
index 6a82030cf1ef..2e959563af53 100644

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

drivers/uio/uio.c +2 -2
index 9c788748bdc6..3926be659147 100644

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

drivers/usb/class/cdc-acm.c +5 -7
index 7376f74a4f04..08751d1a765f 100644

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

drivers/usb/class/cdc-acm.h +1 -2
index 30380d28a504..d8f8651425c4 100644

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

drivers/usb/dwc3/core.c +13 -2
index 60d08269ad9a..86b1cfbe48a0 100644

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

drivers/usb/dwc3/ep0.c +9 -2
index 2fb02f877401..0d95ca804c1e 100644

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

drivers/usb/dwc3/gadget.c +2 -2
index 37cc3fd7c3ca..f0d2f0a4e990 100644

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

drivers/usb/host/fsl-mph-dr-of.c +6 -3
index 677f9d592109..de922022b83a 100644

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

drivers/usb/host/xhci-pci.c +17 -0
index 1a6a23e57201..0c6b6f14b169 100644

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

drivers/usb/host/xhci.c +5 -2
index 6f976c4cccda..0348ea899d06 100644

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

drivers/usb/host/xhci.h +1 -0
index 39efbcf63c11..7a4195f8cd1c 100644

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

drivers/usb/misc/adutux.c +1 -0
index b8073f36ffdc..62fdfde4ad03 100644

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

drivers/usb/typec/tcpm.c +4 -4
index 29d72e9b0f01..af41d4dce3ad 100644

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

drivers/vhost/vringh.c +5 -4
index a94d700a4503..59c61744dcc1 100644

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

drivers/video/fbdev/pvr2fb.c +2 -0
index 8a53d1de611d..3fd2cb4cdfa9 100644

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

drivers/w1/masters/mxc_w1.c +7 -7
index 50b46c4399ea..075454053e5e 100644

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

drivers/watchdog/rdc321x_wdt.c +2 -3
index a281aa84bfb1..4c3b4ea4e17f 100644

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

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

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

drivers/xen/events/events_base.c +416 -35

451 lines not on this page · raw message

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

83 lines not on this page · raw message

drivers/xen/events/events_internal.h +16 -4
index 50c2050a1e32..b9b4f5919893 100644

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

drivers/xen/evtchn.c +3 -4
index 47c70b826a6a..4b11e60e37a3 100644

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

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

76 lines not on this page · raw message

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

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

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

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

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

48 lines not on this page · raw message

drivers/xen/xen-pciback/xenbus.c +1 -1
index 581c4e1a8b82..3bbed47da3fa 100644

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

drivers/xen/xen-scsiback.c +13 -10
index 14a3d4cbc2a7..1abc0a55b8d9 100644

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

fs/9p/vfs_file.c +2 -2
index 550d0b169d7c..61e0c552083f 100644

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

fs/btrfs/ctree.c +6 -0
index 8007b6aacec6..f36b2a386aae 100644

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

fs/btrfs/delayed-inode.c +1 -2
index 7374fb23381c..14855972dee3 100644

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

fs/btrfs/dev-replace.c +1 -1
index 1b9c8ffb038f..36c0490156ac 100644

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

fs/btrfs/reada.c +2 -0
index 4c81ffe12385..368c349c5669 100644

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

fs/btrfs/send.c +73 -1

74 lines not on this page · raw message

fs/btrfs/tree-log.c +8 -0
index 3e903e6a3387..7b940264c7b9 100644

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

fs/btrfs/volumes.c +8 -6
index 815b655b8f10..0879e3dc39c8 100644

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

fs/buffer.c +0 -16
index 362a86876459..356e289d19f2 100644

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

fs/cachefiles/rdwr.c +2 -1
index f822ac9e3cb0..f5bf10729a87 100644

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

fs/ceph/addr.c +1 -1
index 476728bdae8c..e59b2f53a81f 100644

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

fs/cifs/inode.c +9 -4
index 4a38f16d944d..d30eb4350656 100644

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

fs/crypto/crypto.c +30 -28

58 lines not on this page · raw message

fs/crypto/fname.c +1 -0
index d7a0f682ca12..17bb9a3fc0b0 100644

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

fs/crypto/hooks.c +22 -12
index 926e5df20ec3..042d5b44f4ed 100644

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

fs/crypto/policy.c +1 -2
index 4288839501e9..e9d975f39f46 100644

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

fs/dcache.c +15 -0
index 20370a0997bf..1897833a4668 100644

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

fs/efivarfs/super.c +3 -0
index 5b68e4294faa..834615f13f3e 100644

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

fs/exec.c +14 -1
index cece8c14f377..52788644c4af 100644

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

fs/ext4/ext4.h +47 -15

62 lines not on this page · raw message

fs/ext4/inode.c +6 -5
index 52be4c965024..cc092386ac6d 100644

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

fs/ext4/namei.c +52 -24

76 lines not on this page · raw message

fs/ext4/resize.c +3 -1
index ef552d93708e..8098255c2801 100644

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

fs/ext4/super.c +6 -0
index 0c15ff19acbd..6338ca95d8b3 100644

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

fs/f2fs/checkpoint.c +7 -1
index 388500eec729..a563de5ccd21 100644

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

fs/f2fs/dir.c +3 -5
index ebe19894884b..2cd85ce3e450 100644

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

fs/f2fs/namei.c +10 -7
index 4f0cc0c79d1e..8617e742d087 100644

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

fs/fuse/dev.c +18 -10
index c51c9a6881e4..1ff5a6b21db0 100644

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

fs/gfs2/ops_fstype.c +11 -7
index 9448c8461e57..17001f4e9f84 100644

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

fs/nfs/namespace.c +8 -4
index e5686be67be8..d57d453aecc2 100644

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

fs/nfs/nfs4proc.c +6 -3
index b2a2ff3f22a4..fe7b42c277ac 100644

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

fs/nfsd/nfsproc.c +16 -0
index 0d20fd161225..01f7ce1ae127 100644

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

fs/ubifs/debug.c +1 -0
index 564e330d05b1..24bbecd4752b 100644

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

fs/ubifs/dir.c +3 -5
index d7c0aa0626cd..10aab5dccaee 100644

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

fs/udf/super.c +13 -8
index caeb01ca039b..c7f6243f318b 100644

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

fs/xfs/libxfs/xfs_bmap.c +12 -7
index f35e1801f1c9..fc9950a505e6 100644

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

fs/xfs/xfs_rtalloc.c +8 -2
index 08da48b66235..280965fc9bbd 100644

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

include/linux/dcache.h +1 -1
index 0880baefd85f..02b1b40fea5b 100644

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

include/linux/fscrypt.h +20 -14
index 952ab97af325..c1e4a615bd1c 100644

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

include/linux/fscrypt_notsupp.h +5 -4
index ee8b43e4c15a..24b261e49dc1 100644

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

include/linux/fscrypt_supp.h +4 -2
index 6456c6b2005f..8641e20694ce 100644

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

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

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

include/linux/mtd/pfow.h +1 -1
index 122f3439e1af..c65d7a3be3c6 100644

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

include/linux/usb/pd.h +1 -0
index f2162e0fe531..bdf4c88d2aa0 100644

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

include/uapi/linux/bpf.h +2 -2
index d143e277cdaf..71ca8c4dc290 100644

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

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

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

include/uapi/linux/videodev2.h +8 -9
index 1aae2e4b8f10..b73f4423bc09 100644

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

include/xen/events.h +25 -4
index 1650d39decae..d8255ed2052c 100644

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

init/Kconfig +2 -1
index 47035b5a46f6..5eb91dde4018 100644

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

kernel/debug/debug_core.c +14 -8
index fbb1bfdd2fa5..8c76141c99c8 100644

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

kernel/futex.c +3 -1
index 920d853a8e9e..eabb9180ffa8 100644

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

kernel/trace/ring_buffer.c +4 -4
index 564d22691dd7..eef05eb3b284 100644

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

lib/scatterlist.c +1 -1
index 60e7eca2f4be..3b859201f84c 100644

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

net/9p/trans_fd.c +1 -1
index b6dcb40fa8a7..9268f808afc0 100644

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

net/ceph/messenger.c +5 -0
index f7d7f32ac673..21bd37ec5511 100644

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

net/ipv4/tcp.c +2 -0
index 4ce3397e6fcf..98e8ee8bb759 100644

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

net/ipv4/tcp_input.c +2 -1
index c19870d56186..686833dfaa7f 100644

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

net/sched/sch_netem.c +8 -1
index 014a28d8dd4f..02d8d3fd84a5 100644

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

net/tipc/msg.c +2 -3
index 0b8446cd541c..f04843ca8216 100644

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

scripts/setlocalversion +16 -5
index 365b3c2b8f43..2cb0b92f40be 100755

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

security/integrity/evm/evm_main.c +6 -0
index e11d860fdce4..651c0127c00d 100644

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

tools/include/uapi/linux/bpf.h +2 -2
index bf4cd924aed5..13944978ada5 100644

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

tools/objtool/orc_gen.c +26 -7
index 3f98dcfbc177..0b1ba8e7d18a 100644

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

tools/perf/util/print_binary.c +1 -1
index 23e367063446..71aeaf6f45cc 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.