Linux 5.10.52
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.52 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.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/devicetree/bindings/i2c/i2c-at91.txt | 2 Documentation/filesystems/f2fs.rst | 16 Makefile | 2 arch/arm/boot/dts/am335x-cm-t335.dts | 2 arch/arm/boot/dts/am43x-epos-evm.dts | 4 arch/arm/boot/dts/am5718.dtsi | 6 arch/arm/boot/dts/bcm5301x.dtsi | 18 arch/arm/boot/dts/dra7-l4.dtsi | 22 arch/arm/boot/dts/dra71x.dtsi | 4 arch/arm/boot/dts/dra72x.dtsi | 4 arch/arm/boot/dts/dra74x.dtsi | 92 +- arch/arm/boot/dts/exynos5422-odroidhc1.dts | 2 arch/arm/boot/dts/exynos5422-odroidxu4.dts | 2 arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi | 4 arch/arm/boot/dts/gemini-rut1xx.dts | 12 arch/arm/boot/dts/imx6q-dhcom-som.dtsi | 41 arch/arm/boot/dts/r8a7779-marzen.dts | 2 arch/arm/boot/dts/r8a7779.dtsi | 1 arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi | 10 arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 2 arch/arm/mach-exynos/exynos.c | 2 arch/arm/probes/kprobes/test-thumb.c | 10 arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | 2 arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 2 arch/arm64/boot/dts/renesas/r8a774a1.dtsi | 1 arch/arm64/boot/dts/renesas/r8a77960.dtsi | 7 arch/arm64/boot/dts/renesas/r8a77961.dtsi | 7 arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts | 2 arch/arm64/boot/dts/renesas/r8a779a0.dtsi | 1 arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi | 3 arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 1 arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts | 4 arch/arm64/boot/dts/ti/k3-j721e-main.dtsi | 58 - arch/hexagon/kernel/vmlinux.lds.S | 9 arch/mips/boot/compressed/Makefile | 4 arch/mips/boot/compressed/decompress.c | 2 arch/mips/include/asm/vdso/vdso.h | 2 arch/powerpc/boot/devtree.c | 59 - arch/powerpc/boot/ns16550.c | 9 arch/powerpc/include/asm/ps3.h | 2 arch/powerpc/mm/book3s64/radix_tlb.c | 26 arch/powerpc/platforms/ps3/mm.c | 12 arch/s390/Makefile | 1 arch/s390/boot/ipl_parm.c | 19 arch/s390/boot/mem_detect.c | 47 - arch/s390/include/asm/processor.h | 4 arch/s390/kernel/setup.c | 2 arch/s390/purgatory/Makefile | 1 arch/um/drivers/chan_user.c | 3 arch/um/drivers/slip_user.c | 3 arch/x86/include/asm/fpu/internal.h | 19 arch/x86/kernel/fpu/regset.c | 2 arch/x86/kernel/fpu/xstate.c | 105 +- arch/x86/kernel/signal.c | 24 arch/x86/kvm/cpuid.c | 8 arch/x86/kvm/mmu/mmu.c | 2 arch/x86/kvm/mmu/paging.h | 14 arch/x86/kvm/mmu/paging_tmpl.h | 4 arch/x86/kvm/mmu/spte.h | 6 arch/x86/kvm/svm/svm.c | 11 arch/x86/kvm/x86.c | 2 block/partitions/ldm.c | 2 block/partitions/ldm.h | 3 block/partitions/msdos.c | 24 certs/.gitignore | 1 drivers/acpi/acpi_amba.c | 1 drivers/acpi/acpi_video.c | 9 drivers/block/virtio_blk.c | 2 drivers/char/virtio_console.c | 4 drivers/dma/fsl-qdma.c | 6 drivers/firmware/arm_scmi/driver.c | 4 drivers/firmware/tegra/bpmp-tegra210.c | 2 drivers/firmware/turris-mox-rwtm.c | 55 + drivers/fsi/fsi-master-aspeed.c | 1 drivers/fsi/fsi-master-ast-cf.c | 1 drivers/fsi/fsi-master-gpio.c | 1 drivers/fsi/fsi-occ.c | 1 drivers/gpio/gpio-pca953x.c | 1 drivers/gpio/gpio-zynq.c | 15 drivers/gpu/drm/amd/amdkfd/kfd_process.c | 14 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 1 drivers/gpu/drm/ast/ast_main.c | 5 drivers/gpu/drm/drm_dp_mst_topology.c | 68 - drivers/gpu/drm/gma500/framebuffer.c | 7 drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 5 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 2 drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 20 drivers/gpu/drm/ingenic/ingenic-ipu.c | 2 drivers/hwtracing/intel_th/core.c | 17 drivers/hwtracing/intel_th/gth.c | 16 drivers/hwtracing/intel_th/intel_th.h | 3 drivers/i2c/i2c-core-base.c | 3 drivers/iio/gyro/fxas21002c_core.c | 11 drivers/iio/magnetometer/bmc150_magn.c | 10 drivers/input/touchscreen/hideep.c | 13 drivers/iommu/arm/arm-smmu/arm-smmu.c | 10 drivers/leds/leds-tlc591xx.c | 8 drivers/leds/leds-turris-omnia.c | 1 drivers/memory/atmel-ebi.c | 4 drivers/memory/fsl_ifc.c | 8 drivers/memory/pl353-smc.c | 1 drivers/memory/stm32-fmc2-ebi.c | 4 drivers/mfd/da9052-i2c.c | 1 drivers/mfd/motorola-cpcap.c | 4 drivers/mfd/stmpe-i2c.c | 2 drivers/misc/cardreader/alcor_pci.c | 8 drivers/misc/habanalabs/gaudi/gaudi.c | 3 drivers/misc/habanalabs/goya/goya.c | 1 drivers/misc/ibmasm/module.c | 5 drivers/net/virtio_net.c | 27 drivers/nvme/target/tcp.c | 1 drivers/pci/controller/dwc/pcie-intel-gw.c | 10 drivers/pci/controller/dwc/pcie-tegra194.c | 2 drivers/pci/controller/pci-ftpci100.c | 30 drivers/pci/controller/pci-hyperv.c | 30 drivers/pci/controller/pci-tegra.c | 1 drivers/pci/controller/pcie-iproc-msi.c | 29 drivers/pci/controller/pcie-rockchip-host.c | 12 drivers/pci/hotplug/pciehp_hpc.c | 36 drivers/pci/p2pdma.c | 34 drivers/pci/pci-label.c | 2 drivers/pci/pci.h | 4 drivers/pci/pcie/dpc.c | 74 + drivers/phy/intel/phy-intel-keembay-emmc.c | 3 drivers/power/reset/gpio-poweroff.c | 1 drivers/power/supply/Kconfig | 3 drivers/power/supply/ab8500_btemp.c | 1 drivers/power/supply/ab8500_charger.c | 19 drivers/power/supply/ab8500_fg.c | 1 drivers/power/supply/charger-manager.c | 1 drivers/power/supply/max17042_battery.c | 2 drivers/power/supply/rt5033_battery.c | 7 drivers/power/supply/sc2731_charger.c | 1 drivers/power/supply/sc27xx_fuel_gauge.c | 1 drivers/pwm/pwm-img.c | 2 drivers/pwm/pwm-imx1.c | 2 drivers/pwm/pwm-spear.c | 4 drivers/pwm/pwm-tegra.c | 13 drivers/remoteproc/remoteproc_cdev.c | 2 drivers/remoteproc/remoteproc_core.c | 2 drivers/remoteproc/ti_k3_r5_remoteproc.c | 2 drivers/reset/Kconfig | 4 drivers/reset/core.c | 5 drivers/reset/reset-a10sr.c | 1 drivers/reset/reset-brcmstb.c | 1 drivers/rtc/proc.c | 4 drivers/s390/char/sclp_vt220.c | 4 drivers/s390/scsi/zfcp_sysfs.c | 1 drivers/scsi/arcmsr/arcmsr_hba.c | 19 drivers/scsi/be2iscsi/be_main.c | 5 drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 drivers/scsi/cxgbi/libcxgbi.c | 4 drivers/scsi/device_handler/scsi_dh_alua.c | 11 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 12 drivers/scsi/hosts.c | 4 drivers/scsi/libiscsi.c | 122 +- drivers/scsi/lpfc/lpfc_els.c | 9 drivers/scsi/lpfc/lpfc_sli.c | 5 drivers/scsi/megaraid/megaraid_sas.h | 12 drivers/scsi/megaraid/megaraid_sas_base.c | 96 +- drivers/scsi/megaraid/megaraid_sas_fp.c | 6 drivers/scsi/megaraid/megaraid_sas_fusion.c | 10 drivers/scsi/mpt3sas/mpt3sas_scsih.c | 22 drivers/scsi/qedi/qedi.h | 1 drivers/scsi/qedi/qedi_fw.c | 24 drivers/scsi/qedi/qedi_iscsi.c | 37 drivers/scsi/qedi/qedi_main.c | 2 drivers/scsi/scsi_lib.c | 10 drivers/scsi/scsi_transport_iscsi.c | 12 drivers/scsi/scsi_transport_sas.c | 9 drivers/scsi/sd.c | 12 drivers/scsi/sr.c | 2 drivers/scsi/storvsc_drv.c | 61 - drivers/staging/rtl8723bs/hal/odm.h | 5 drivers/thermal/rcar_gen3_thermal.c | 2 drivers/thermal/sprd_thermal.c | 1 drivers/tty/serial/8250/serial_cs.c | 11 drivers/tty/serial/fsl_lpuart.c | 9 drivers/tty/serial/uartlite.c | 27 drivers/usb/common/usb-conn-gpio.c | 44 drivers/usb/gadget/function/f_hid.c | 2 drivers/usb/gadget/legacy/hid.c | 4 drivers/vdpa/mlx5/net/mlx5_vnet.c | 28 drivers/video/backlight/lm3630a_bl.c | 12 drivers/video/fbdev/core/fbmem.c | 12 drivers/w1/slaves/w1_ds2438.c | 4 drivers/watchdog/aspeed_wdt.c | 2 drivers/watchdog/iTCO_wdt.c | 12 drivers/watchdog/imx_sc_wdt.c | 11 drivers/watchdog/jz4740_wdt.c | 4 drivers/watchdog/lpc18xx_wdt.c | 2 drivers/watchdog/sbc60xxwdt.c | 2 drivers/watchdog/sc520_wdt.c | 2 drivers/watchdog/w83877f_wdt.c | 2 fs/ceph/addr.c | 10 fs/cifs/connect.c | 6 fs/f2fs/gc.c | 1 fs/f2fs/namei.c | 16 fs/f2fs/super.c | 1 fs/jfs/jfs_logmgr.c | 1 fs/nfs/delegation.c | 71 + fs/nfs/delegation.h | 1 fs/nfs/direct.c | 17 fs/nfs/inode.c | 4 fs/nfs/nfs3proc.c | 4 fs/nfs/nfs4_fs.h | 1 fs/nfs/nfs4client.c | 82 - fs/nfs/pnfs.c | 40 fs/nfs/pnfs_nfs.c | 52 - fs/nfsd/nfs4state.c | 3 fs/nfsd/trace.h | 29 fs/nfsd/vfs.c | 18 fs/orangefs/super.c | 2 fs/seq_file.c | 3 fs/ubifs/dir.c | 7 fs/ubifs/journal.c | 3 fs/ubifs/xattr.c | 2 include/linux/compiler-clang.h | 17 include/linux/compiler-gcc.h | 6 include/linux/compiler_types.h | 2 include/linux/nfs_fs.h | 1 include/linux/rcupdate.h | 2 include/linux/sched/signal.h | 19 include/scsi/libiscsi.h | 11 include/scsi/scsi_transport_iscsi.h | 2 kernel/cgroup/cgroup-v1.c | 2 kernel/jump_label.c | 13 kernel/rcu/rcu.h | 2 kernel/rcu/srcutree.c | 3 kernel/rcu/tree.c | 16 kernel/rcu/update.c | 2 kernel/sched/sched.h | 21 kernel/static_call.c | 13 kernel/trace/trace_events_hist.c | 6 lib/decompress_unlz4.c | 8 net/bridge/br_multicast.c | 6 net/sunrpc/xprtsock.c | 3 sound/ac97/bus.c | 2 sound/firewire/Kconfig | 5 sound/firewire/bebob/bebob.c | 5 sound/firewire/motu/motu-protocol-v2.c | 13 sound/firewire/oxfw/oxfw.c | 2 sound/isa/cmi8330.c | 2 sound/isa/sb/sb16_csp.c | 8 sound/pci/hda/hda_tegra.c | 3 sound/ppc/powermac.c | 6 sound/soc/img/img-i2s-in.c | 2 sound/soc/intel/boards/kbl_da7219_max98357a.c | 4 sound/soc/intel/boards/sof_da7219_max98373.c | 1 sound/soc/intel/boards/sof_rt5682.c | 1 sound/soc/intel/boards/sof_sdw.c | 19 sound/soc/intel/boards/sof_sdw_common.h | 1 sound/soc/intel/common/soc-acpi-intel-kbl-match.c | 2 sound/soc/soc-core.c | 2 sound/soc/soc-pcm.c | 2 sound/usb/mixer_scarlett_gen2.c | 39 sound/usb/usx2y/usX2Yhwdep.c | 56 - sound/usb/usx2y/usX2Yhwdep.h | 2 sound/usb/usx2y/usb_stream.c | 7 sound/usb/usx2y/usbus428ctldefs.h | 102 +- sound/usb/usx2y/usbusx2y.c | 218 ++-- sound/usb/usx2y/usbusx2y.h | 58 - sound/usb/usx2y/usbusx2yaudio.c | 448 +++++----- sound/usb/usx2y/usx2yhwdeppcm.c | 410 ++++----- sound/usb/usx2y/usx2yhwdeppcm.h | 4 tools/testing/selftests/powerpc/pmu/ebb/no_handler_test.c | 2 tools/testing/selftests/timers/rtcpie.c | 10 virt/kvm/coalesced_mmio.c | 2 268 files changed, 2518 insertions(+), 1675 deletions(-)
Alex Bee (2):
arm64: dts: rockchip: Re-add regulator-boot-on, regulator-always-on for vdd_gpu on rk3399-roc-pc
arm64: dts: rockchip: Re-add regulator-always-on for vcc_sdio for rk3399-roc-pc
Alexander Shishkin (1):
intel_th: Wait until port is in reset before programming it
Aneesh Kumar K.V (1):
powerpc/mm/book3s64: Fix possible build error
Arnd Bergmann (2):
partitions: msdos: fix one-byte get_unaligned()
mips: always link byteswap helpers into decompressor
Aswath Govindraju (2):
ARM: dts: am335x: align ti,pindir-d0-out-d1-in property with dt-shema
ARM: dts: am437x: align ti,pindir-d0-out-d1-in property with dt-shema
Athira Rajeev (1):
selftests/powerpc: Fix "no_handler" EBB selftest
Benjamin Herrenschmidt (1):
powerpc/boot: Fixup device-tree on little endian
Bixuan Cui (1):
power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE
Chandrakanth Patil (2):
scsi: megaraid_sas: Fix resource leak in case of probe failure
scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs
Chang S. Bae (1):
x86/signal: Detect and prevent an alternate signal stack overflow
Chao Yu (4):
f2fs: atgc: fix to set default age threshold
f2fs: add MODULE_SOFTDEP to ensure crc32 is included in the initramfs
f2fs: compress: fix to disallow temp extension
f2fs: fix to avoid adding tab before doc section
Christian Brauner (1):
cgroup: verify that source is a string
Christoph Niedermaier (3):
ARM: dts: imx6q-dhcom: Fix ethernet reset time properties
ARM: dts: imx6q-dhcom: Fix ethernet plugin detection problems
ARM: dts: imx6q-dhcom: Add gpios pinctrl for i2c bus recovery
Christophe JAILLET (3):
tty: serial: 8250: serial_cs: Fix a memory leak in error handling path
remoteproc: k3-r5: Fix an error message
scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()
Chuck Lever (1):
NFSD: Fix TP_printk() format specifier in nfsd_clid_class
Chunfeng Yun (1):
usb: common: usb-conn-gpio: fix NULL pointer dereference of charger
Chunyan Zhang (1):
thermal/drivers/sprd: Add missing MODULE_DEVICE_TABLE
Corentin Labbe (1):
ARM: dts: gemini-rut1xx: remove duplicate ethernet node
Cristian Marussi (1):
firmware: arm_scmi: Reset Rx buffer to max size during async commands
Dan Carpenter (2):
rtc: fix snprintf() checking in is_rtc_hctosys()
scsi: scsi_dh_alua: Fix signedness bug in alua_rtpg()
Daniel Mack (1):
serial: tty: uartlite: fix console setup
Dimitri John Ledkov (1):
lib/decompress_unlz4.c: correctly handle zero-padding around initrds.
Dmitry Torokhov (1):
i2c: core: Disable client irq on reboot/shutdown
Eli Cohen (3):
vdpa/mlx5: Fix umem sizes assignments on VQ create vdpa/mlx5: Fix possible failure in umem size calculation vdpa/mlx5: Clear vq ready indication upon device reset
Eric Sandeen (1):
seq_file: disallow extremely large seq buffer allocations
Fabio Aiuto (1):
staging: rtl8723bs: fix macro value for 2.4Ghz only device
Fabrice Fontaine (1):
s390: disable SSP when needed
Frederic Weisbecker (1):
srcu: Fix broken node geometry after early ssp init
Gao Xiang (1):
nfs: fix acl memory leak of posix_acl_create()
Geert Uytterhoeven (6):
reset: RESET_BRCMSTB_RESCAL should depend on ARCH_BRCMSTB
reset: RESET_INTEL_GW should depend on X86
ARM: dts: r8a7779, marzen: Fix DU clock names
arm64: dts: renesas: Add missing opp-suspend properties
arm64: dts: renesas: r8a7796[01]: Fix OPP table entry voltages
arm64: dts: renesas: r8a779a0: Drop power-domains property from GIC node
Geoff Levand (1):
powerpc/ps3: Add dma_mask to ps3_dma_region
Geoffrey D. Bennett (4):
ALSA: usb-audio: scarlett2: Fix 18i8 Gen 2 PCM Input count
ALSA: usb-audio: scarlett2: Fix data_mutex lock
ALSA: usb-audio: scarlett2: Fix scarlett2_*_ctl_put() return values
ALSA: usb-audio: scarlett2: Fix 6i6 Gen 2 line out descriptions
Gowtham Tammana (1):
ARM: dts: dra7: Fix duplicate USB4 target module node
Greg Kroah-Hartman (2):
Revert "drm/ast: Remove reference to struct drm_device.pdev" Linux 5.10.52
Hannes Reinecke (2):
scsi: core: Fixup calling convention for scsi_mode_sense()
scsi: scsi_dh_alua: Check for negative result value
Hans de Goede (1):
ACPI: video: Add quirk for the Dell Vostro 3350
Heiko Carstens (4):
s390/processor: always inline stap() and __load_psw_mask() s390/ipl_parm: fix program check new psw handling s390/mem_detect: fix diag260() program check new psw handling s390/mem_detect: fix tprot() program check new psw handling
Icenowy Zheng (1):
arm64: dts: allwinner: a64-sopine-baseboard: change RGMII mode to TXID
James Smart (2):
scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology
scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the SGLs
Jan Kiszka (1):
watchdog: iTCO_wdt: Account for rebooting on second timeout
Jaroslav Kysela (1):
ASoC: soc-pcm: fix the return value in dpcm_apply_symmetry()
Javier Martinez Canillas (1):
PCI: rockchip: Register IRQ handlers after device and data are ready
Jeff Layton (1):
ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
Jiajun Cao (1):
ALSA: hda: Add IRQ check for platform_get_irq()
Jiapeng Chong (1):
fs/jfs: Fix missing error code in lmLogInit()
Jing Xiangfeng (1):
drm/gma500: Add the missed drm_gem_object_put() in psb_user_framebuffer_create()
John Garry (1):
scsi: core: Cap scsi_host cmd_per_lun at can_queue
Jon Hunter (1):
PCI: tegra194: Fix tegra_pcie_ep_raise_msi_irq() ill-defined shift
Jonathan Cameron (2):
iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get().
iio: magn: bmc150: Balance runtime pm + use pm_runtime_resume_and_get()
José Roberto de Souza (1):
drm/dp_mst: Add missing drm parameters to recently added call to drm_dbg_kms()
Kashyap Desai (1):
scsi: megaraid_sas: Early detection of VD deletion through RaidMap update
Kefeng Wang (1):
KVM: mmio: Fix use-after-free Read in kvm_vm_ioctl_unregister_coalesced_mmio
Kishon Vijay Abraham I (1):
arm64: dts: ti: k3-j721e-main: Fix external refclk input to SERDES
Koby Elbaz (2):
habanalabs/gaudi: set the correct cpu_id on MME2_QM failure
habanalabs: remove node from list before freeing the node
Krzysztof Kozlowski (10):
power: supply: max17042: Do not enforce (incorrect) interrupt trigger type
reset: a10sr: add missing of_match_table reference
ARM: exynos: add missing of_node_put for loop iteration
ARM: dts: exynos: fix PWM LED max brightness on Odroid XU/XU3
ARM: dts: exynos: fix PWM LED max brightness on Odroid HC1
ARM: dts: exynos: fix PWM LED max brightness on Odroid XU4
memory: stm32-fmc2-ebi: add missing of_node_put for loop iteration
memory: atmel-ebi: add missing of_node_put for loop iteration
memory: fsl_ifc: fix leak of IO mapping on probe failure
memory: fsl_ifc: fix leak of private memory on probe failure
Krzysztof Wilczyński (1):
PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun
Lai Jiangshan (1):
KVM: X86: Disable hardware breakpoints unconditionally before kvm_x86->run()
Liguang Zhang (1):
ACPI: AMBA: Fix resource name in /proc/iomem
Linus Torvalds (1):
certs: add 'x509_revocation_list' to gitignore
Linus Walleij (1):
power: supply: ab8500: Avoid NULL pointers
Logan Gunthorpe (1):
PCI/P2PDMA: Avoid pci_get_slot(), which may sleep
Long Li (1):
PCI: hv: Fix a race condition when removing the device
Luiz Sampaio (1):
w1: ds2438: fixing bug that would always get page0
Lukas Wunner (1):
PCI: pciehp: Ignore Link Down/Up caused by DPC
Lv Yunlong (1):
misc/libmasm/module: Fix two use after free in ibmasm_init_one
Marco Elver (1):
kcov: add __no_sanitize_coverage to fix noinstr for all architectures
Marek Behún (2):
firmware: turris-mox-rwtm: fix reply status decoding function
firmware: turris-mox-rwtm: report failures better
Marek Vasut (2):
ARM: dts: stm32: Connect PHY IRQ line on DH STM32MP1 SoM
ARM: dts: stm32: Rework LAN8710Ai PHY reset on DHCOM SoM
Martin Blumenstingl (1):
PCI: intel-gw: Fix INTx enable
Martin Fäcknitz (1):
MIPS: vdso: Invalid GIC access through VDSO
Matthew Auld (1):
drm/i915/gtt: drop the page table optimisation
Maurizio Lombardi (1):
nvme-tcp: can't set sk_user_data without write_lock
Michael Kelley (1):
scsi: storvsc: Correctly handle multiple flags in srb_status
Michael S. Tsirkin (1):
virtio_net: move tx vq operation under tx queue lock
Michael Walle (1):
serial: fsl_lpuart: disable DMA for console and fix sysrq
Mike Christie (7):
scsi: iscsi: Add iscsi_cls_conn refcount helpers
scsi: iscsi: Fix conn use after free during resets
scsi: iscsi: Fix shost->max_id use
scsi: qedi: Fix null ref during abort handling
scsi: qedi: Fix race during abort timeouts
scsi: qedi: Fix TMF session block/unblock use
scsi: qedi: Fix cleanup session block/unblock use
Mike Marshall (1):
orangefs: fix orangefs df output.
Nathan Chancellor (2):
hexagon: handle {,SOFT}IRQENTRY_TEXT in linker script
hexagon: use common DISCARDS macro
NeilBrown (1):
SUNRPC: prevent port reuse on transports which don't request it.
Nick Desaulniers (1):
ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1
Nicolas Ferre (1):
dt-bindings: i2c: at91: fix example for scl-gpios
Niklas Söderlund (1):
thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations
Nikolay Aleksandrov (2):
net: bridge: multicast: fix PIM hello router port marking race
net: bridge: multicast: fix MRD advertisement router port marking race
Pali Rohár (2):
firmware: turris-mox-rwtm: fail probing when firmware does not support hwrng
firmware: turris-mox-rwtm: show message about HWRNG registration
Paul Cercueil (2):
drm/ingenic: Fix non-OSD mode drm/ingenic: Switch IPU plane to type OVERLAY
Paul E. McKenney (1):
rcu: Reject RCU_LOCKDEP_WARN() false positives
Paulo Alcantara (1):
cifs: handle reconnect of tcon when there is no cached dfs referral
Peter Robinson (1):
gpio: pca953x: Add support for the On Semi pca9655
Peter Zijlstra (2):
jump_label: Fix jump_label_text_reserved() vs __init
static_call: Fix static_call_text_reserved() vs __init
Philip Yang (1):
drm/amdkfd: fix sysfs kobj leak
Philipp Zabel (1):
reset: bail if try_module_get() fails
Pierre-Louis Bossart (2):
ASoC: Intel: sof_sdw: add mutual exclusion between PCH DMIC and RT715
ASoC: Intel: kbl_da7219_max98357a: shrink platform_id below 20 characters
Po-Hsu Lin (1):
selftests: timers: rtcpie: skip test if default RTC device does not exist
Rafał Miłecki (1):
ARM: dts: BCM5301X: Fixup SPI binding
Randy Dunlap (2):
PCI: ftpci100: Rename macro name collision
mips: disable branch profiling in boot/decompress.o
Rashmi A (1):
phy: intel: Fix for warnings due to EMMC clock 175Mhz change in FIP
Robin Gong (1):
dmaengine: fsl-qdma: check dma_set_mask return value
Roger Quadros (1):
arm64: dts: ti: j7200-main: Enable USB2 PHY RX sensitivity workaround
Ruslan Bilovol (1):
usb: gadget: f_hid: fix endianness issue with descriptors
Salvatore Bonaccorso (1):
ARM: dts: sun8i: h3: orangepi-plus: Fix ethernet phy-mode
Sandor Bodo-Merle (2):
PCI: iproc: Fix multi-MSI base vector number allocation
PCI: iproc: Support multi-MSI only on uniprocessor kernel
Sascha Hauer (1):
ubifs: Fix off-by-one error
Sean Christopherson (2):
KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is enabled
KVM: x86/mmu: Do not apply HPA (memory encryption) mask to GPAs
Sergey Shtylyov (1):
scsi: hisi_sas: Propagate errors in interrupt_init_v1_hw()
Sherry Sun (1):
tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero
Siddharth Gupta (1):
remoteproc: core: Fix cdev remove and rproc del
Srinivas Neeli (2):
gpio: zynq: Check return value of pm_runtime_get_sync
gpio: zynq: Check return value of irq_get_irq_data
Stefan Eichenberger (1):
watchdog: imx_sc_wdt: fix pretimeout
Steffen Maier (1):
scsi: zfcp: Report port fc_security as unknown early during remote cable pull
Stephan Gerhold (1):
power: supply: rt5033_battery: Fix device tree enumeration
Stephen Boyd (1):
arm64: dts: qcom: trogdor: Add no-hpd to DSI bridge node
Steven Rostedt (VMware) (1):
tracing: Do not reference char * as a string in histograms
Suganath Prabu S (1):
scsi: mpt3sas: Fix deadlock while cancelling the running firmware event
Takashi Iwai (3):
ALSA: usx2y: Avoid camelCase
ALSA: usx2y: Don't call free_pages_exact() with NULL address
ALSA: sb: Fix potential double-free of CSP mixer elements
Takashi Sakamoto (3):
Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro"
ALSA: bebob: add support for ToneWeal FW66
ALSA: firewire-motu: fix detection for S/PDIF source on optical interface in v2 protocol
Tao Ren (1):
watchdog: aspeed: fix hardware timeout calculation
Thomas Gleixner (3):
x86/fpu: Return proper error codes from user access functions x86/fpu: Fix copy_xstate_to_kernel() gap handling x86/fpu: Limit xstate copy size in xstateregs_set()
Tong Zhang (2):
misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge
misc: alcor_pci: fix inverted branch condition
Tony Lindgren (1):
mfd: cpcap: Fix cpcap dmamask not set warnings
Trond Myklebust (8):
NFSv4: Fix delegation return in cases where we have to retry
NFS: nfs_find_open_context() may only select open files
NFSv4: Initialise connection to the server in nfs4_alloc_client()
NFSv4: Fix an Oops in pnfs_mark_request_commit() when doing O_DIRECT
nfsd: Reduce contention for the nfsd_file nf_rwsem NFSv4/pnfs: Fix the layout barrier update
NFSv4/pnfs: Fix layoutget behaviour after invalidation NFSv4/pNFS: Don't call _nfs4_pnfs_v3_ds_connect multiple times
Tyrel Datwyler (1):
scsi: core: Fix bad pointer dereference when ehandler kthread is invalid
Uwe Kleine-König (4):
backlight: lm3630a: Fix return code of .update_status() callback
pwm: spear: Don't modify HW state in .remove callback
pwm: tegra: Don't modify HW state in .remove callback
pwm: imx1: Don't disable clocks at device remove time
Valentin Vidic (1):
s390/sclp_vt220: fix console name to match device
Valentine Barshak (1):
arm64: dts: renesas: v3msk: Fix memory size
Ville Syrjälä (1):
drm/i915/gt: Fix -EDEADLK handling regression
Vitaly Kuznetsov (1):
KVM: nSVM: Check the value written to MSR_VM_HSAVE_PA
Wayne Lin (2):
drm/dp_mst: Do not set proposed vcpi directly
drm/dp_mst: Avoid to mess up payload table by ports in stale topology
Wei Yongjun (1):
watchdog: jz4740: Fix return value check in jz4740_wdt_probe()
Xie Yongji (3):
virtio-blk: Fix memory leak among suspend/resume procedure
virtio_net: Fix error handling in virtnet_restore()
virtio_console: Assure used length from device is limited
Xiyu Yang (2):
iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get fails iommu/arm-smmu: Fix arm_smmu_device refcount leak in address translation
Xuewen Yan (1):
sched/uclamp: Ignore max aggregation if rq is idle
Yang Yingliang (3):
leds: tlc591xx: fix return value check in tlc591xx_probe()
ALSA: ppc: fix error return code in snd_pmac_probe()
usb: gadget: hid: fix error return code in hid_bind()
Yizhuo Zhai (1):
Input: hideep - fix the uninitialized use in hideep_nvm_unlock()
Yufen Yu (2):
ALSA: ac97: fix PM reference leak in ac97_bus_remove()
ASoC: img: Fix PM reference leak in img_i2s_in_probe()
Zhen Lei (8):
fbmem: Do not delete the mode that is still in use
ASoC: soc-core: Fix the error return code in snd_soc_of_parse_audio_routing()
um: fix error return code in slip_open()
um: fix error return code in winch_tramp()
ubifs: journal: Fix error return code in ubifs_jnl_write_inode()
ALSA: isa: Fix error return code in snd_cmi8330_probe()
memory: pl353: Fix error return code in pl353_smc_probe()
firmware: tegra: Fix error return code in tegra210_bpmp_init()
Zhihao Cheng (1):
ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode
Zou Wei (14):
ASoC: intel/boards: add missing MODULE_DEVICE_TABLE
mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE
fsi: Add missing MODULE_DEVICE_TABLE
leds: turris-omnia: add missing MODULE_DEVICE_TABLE
power: supply: sc27xx: Add missing MODULE_DEVICE_TABLE
power: supply: sc2731_charger: Add missing MODULE_DEVICE_TABLE
watchdog: Fix possible use-after-free in wdt_startup()
watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff()
watchdog: Fix possible use-after-free by calling del_timer_sync()
PCI: tegra: Add missing MODULE_DEVICE_TABLE
power: supply: charger-manager: add missing MODULE_DEVICE_TABLE
power: supply: ab8500: add missing MODULE_DEVICE_TABLE
pwm: img: Fix PM reference leak in img_pwm_enable()
reset: brcmstb: Add missing MODULE_DEVICE_TABLE
ching Huang (2):
scsi: arcmsr: Fix the wrong CDB payload report to IOP
scsi: arcmsr: Fix doorbell status being updated late on ARC-1886
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/i2c/i2c-at91.txt +1 -1
@@ -73,7 +73,7 @@ i2c0: i2c@f8034600 { pinctrl-0 = <&pinctrl_i2c0>; pinctrl-1 = <&pinctrl_i2c0_gpio>; sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>; - scl-gpios = <&pioA 31 GPIO_ACTIVE_HIGH>; + scl-gpios = <&pioA 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; wm8731: wm8731@1a { compatible = "wm8731";
Documentation/filesystems/f2fs.rst +8 -8
@@ -688,10 +688,10 @@ users. ===================== ======================== =================== User F2FS Block ===================== ======================== =================== - META WRITE_LIFE_NOT_SET - HOT_NODE " - WARM_NODE " - COLD_NODE " +N/A META WRITE_LIFE_NOT_SET +N/A HOT_NODE " +N/A WARM_NODE " +N/A COLD_NODE " ioctl(COLD) COLD_DATA WRITE_LIFE_EXTREME extension list " "
@@ -717,10 +717,10 @@ WRITE_LIFE_LONG " WRITE_LIFE_LONG ===================== ======================== =================== User F2FS Block ===================== ======================== =================== - META WRITE_LIFE_MEDIUM; - HOT_NODE WRITE_LIFE_NOT_SET - WARM_NODE " - COLD_NODE WRITE_LIFE_NONE +N/A META WRITE_LIFE_MEDIUM; +N/A HOT_NODE WRITE_LIFE_NOT_SET +N/A WARM_NODE " +N/A COLD_NODE WRITE_LIFE_NONE ioctl(COLD) COLD_DATA WRITE_LIFE_EXTREME extension list " "
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 51 +SUBLEVEL = 52 EXTRAVERSION = NAME = Dare mighty things
arch/arm/boot/dts/am335x-cm-t335.dts +1 -1
@@ -496,7 +496,7 @@ &spi0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&spi0_pins>; - ti,pindir-d0-out-d1-in = <1>; + ti,pindir-d0-out-d1-in; /* WLS1271 WiFi */ wlcore: wlcore@1 { compatible = "ti,wl1271";
arch/arm/boot/dts/am43x-epos-evm.dts +2 -2
@@ -860,7 +860,7 @@ &spi0 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi0_pins_default>; pinctrl-1 = <&spi0_pins_sleep>; - ti,pindir-d0-out-d1-in = <1>; + ti,pindir-d0-out-d1-in; }; &spi1 {
@@ -868,7 +868,7 @@ &spi1 { pinctrl-names = "default", "sleep"; pinctrl-0 = <&spi1_pins_default>; pinctrl-1 = <&spi1_pins_sleep>; - ti,pindir-d0-out-d1-in = <1>; + ti,pindir-d0-out-d1-in; }; &usb2_phy1 {
arch/arm/boot/dts/am5718.dtsi +1 -5
@@ -17,17 +17,13 @@ / { * VCP1, VCP2 * MLB * ISS - * USB3, USB4 + * USB3 */ &usb3_tm { status = "disabled"; }; -&usb4_tm { - status = "disabled"; -}; - &atl_tm { status = "disabled"; };
arch/arm/boot/dts/bcm5301x.dtsi +9 -9
@@ -515,27 +515,27 @@ spi@18029200 { <0x1811b408 0x004>, <0x180293a0 0x01c>; reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg"; - interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, + interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "spi_lr_fullness_reached", + <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "mspi_done", + "mspi_halted", + "spi_lr_fullness_reached", "spi_lr_session_aborted", "spi_lr_impatient", "spi_lr_session_done", - "spi_lr_overhead", - "mspi_done", - "mspi_halted"; + "spi_lr_overread"; clocks = <&iprocmed>; clock-names = "iprocmed"; num-cs = <2>; #address-cells = <1>; #size-cells = <0>; - spi_nor: spi-nor@0 { + spi_nor: flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <20000000>;
arch/arm/boot/dts/dra7-l4.dtsi +0 -22
@@ -4095,28 +4095,6 @@ usb3: usb@10000 { }; }; - usb4_tm: target-module@140000 { /* 0x48940000, ap 75 3c.0 */ - compatible = "ti,sysc-omap4", "ti,sysc"; - reg = <0x140000 0x4>, - <0x140010 0x4>; - reg-names = "rev", "sysc"; - ti,sysc-mask = <SYSC_OMAP4_DMADISABLE>; - ti,sysc-midle = <SYSC_IDLE_FORCE>, - <SYSC_IDLE_NO>, - <SYSC_IDLE_SMART>, - <SYSC_IDLE_SMART_WKUP>; - ti,sysc-sidle = <SYSC_IDLE_FORCE>, - <SYSC_IDLE_NO>, - <SYSC_IDLE_SMART>, - <SYSC_IDLE_SMART_WKUP>; - /* Domains (P, C): l3init_pwrdm, l3init_clkdm */ - clocks = <&l3init_clkctrl DRA7_L3INIT_USB_OTG_SS4_CLKCTRL 0>; - clock-names = "fck"; - #address-cells = <1>; - #size-cells = <1>; - ranges = <0x0 0x140000 0x20000>; - }; - target-module@170000 { /* 0x48970000, ap 21 0a.0 */ compatible = "ti,sysc-omap4", "ti,sysc"; reg = <0x170010 0x4>;
arch/arm/boot/dts/dra71x.dtsi +0 -4
@@ -11,7 +11,3 @@ &rtctarget { status = "disabled"; }; - -&usb4_tm { - status = "disabled"; -};
arch/arm/boot/dts/dra72x.dtsi +0 -4
@@ -108,7 +108,3 @@ &pcie1_ep { &pcie2_rc { compatible = "ti,dra726-pcie-rc", "ti,dra7-pcie"; }; - -&usb4_tm { - status = "disabled"; -};
arch/arm/boot/dts/dra74x.dtsi +49 -43
101 lines not on this page · raw message
arch/arm/boot/dts/exynos5422-odroidhc1.dts +1 -1
@@ -22,7 +22,7 @@ blueled { label = "blue:heartbeat"; pwms = <&pwm 2 2000000 0>; pwm-names = "pwm2"; - max_brightness = <255>; + max-brightness = <255>; linux,default-trigger = "heartbeat"; }; };
arch/arm/boot/dts/exynos5422-odroidxu4.dts +1 -1
@@ -24,7 +24,7 @@ blueled { label = "blue:heartbeat"; pwms = <&pwm 2 2000000 0>; pwm-names = "pwm2"; - max_brightness = <255>; + max-brightness = <255>; linux,default-trigger = "heartbeat"; }; };
arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi +2 -2
@@ -22,7 +22,7 @@ greenled { * Green LED is much brighter than the others * so limit its max brightness */ - max_brightness = <127>; + max-brightness = <127>; linux,default-trigger = "mmc0"; };
@@ -30,7 +30,7 @@ blueled { label = "blue:heartbeat"; pwms = <&pwm 2 2000000 0>; pwm-names = "pwm2"; - max_brightness = <255>; + max-brightness = <255>; linux,default-trigger = "heartbeat"; }; };
arch/arm/boot/dts/gemini-rut1xx.dts +0 -12
@@ -125,18 +125,6 @@ ethernet-port@1 { }; }; - ethernet@60000000 { - status = "okay"; - - ethernet-port@0 { - phy-mode = "rgmii"; - phy-handle = <&phy0>; - }; - ethernet-port@1 { - /* Not used in this platform */ - }; - }; - usb@68000000 { status = "okay"; };
arch/arm/boot/dts/imx6q-dhcom-som.dtsi +36 -5
84 lines not on this page · raw message
arch/arm/boot/dts/r8a7779-marzen.dts +1 -1
@@ -145,7 +145,7 @@ &du { status = "okay"; clocks = <&mstp1_clks R8A7779_CLK_DU>, <&x3_clk>; - clock-names = "du", "dclkin.0"; + clock-names = "du.0", "dclkin.0"; ports { port@0 {
arch/arm/boot/dts/r8a7779.dtsi +1 -0
@@ -463,6 +463,7 @@ du: display@fff80000 { reg = <0xfff80000 0x40000>; interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; clocks = <&mstp1_clks R8A7779_CLK_DU>; + clock-names = "du.0"; power-domains = <&sysc R8A7779_PD_ALWAYS_ON>; status = "disabled";
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi +9 -1
@@ -118,7 +118,6 @@ ðernet0 { max-speed = <100>; phy-handle = <&phy0>; st,eth-ref-clk-sel; - phy-reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>; mdio0 { #address-cells = <1>;
@@ -127,6 +126,15 @@ mdio0 { phy0: ethernet-phy@1 { reg = <1>; + /* LAN8710Ai */ + compatible = "ethernet-phy-id0007.c0f0", + "ethernet-phy-ieee802.3-c22"; + clocks = <&rcc ETHCK_K>; + reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>; + reset-assert-us = <500>; + reset-deassert-us = <500>; + interrupt-parent = <&gpioi>; + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; }; }; };
arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts +1 -1
@@ -85,7 +85,7 @@ &emac { pinctrl-0 = <&emac_rgmii_pins>; phy-supply = <®_gmac_3v3>; phy-handle = <&ext_rgmii_phy>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; status = "okay"; };
arch/arm/mach-exynos/exynos.c +2 -0
@@ -55,6 +55,7 @@ void __init exynos_sysram_init(void) sysram_base_addr =of_iomap (node,0 ); sysram_base_phys =of_translate_address (node,of_get_address (node,0 ,NULL ,NULL )); +of_node_put (node);break ; }
@@ -62,6 +63,7 @@ void __init exynos_sysram_init(void)if (!of_device_is_available (node))continue ; sysram_ns_base_addr =of_iomap (node,0 ); +of_node_put (node);break ; } }
arch/arm/probes/kprobes/test-thumb.c +5 -5
@@ -441,21 +441,21 @@ void kprobe_thumb32_test_cases(void) "3: mvn r0, r0 \n\t" "2: nop \n\t") - TEST_RX("tbh [pc, r",7, (9f-(1f+4))>>1,"]", + TEST_RX("tbh [pc, r",7, (9f-(1f+4))>>1,", lsl #1]", "9: \n\t" ".short (2f-1b-4)>>1 \n\t" ".short (3f-1b-4)>>1 \n\t" "3: mvn r0, r0 \n\t" "2: nop \n\t") - TEST_RX("tbh [pc, r",12, ((9f-(1f+4))>>1)+1,"]", + TEST_RX("tbh [pc, r",12, ((9f-(1f+4))>>1)+1,", lsl #1]", "9: \n\t" ".short (2f-1b-4)>>1 \n\t" ".short (3f-1b-4)>>1 \n\t" "3: mvn r0, r0 \n\t" "2: nop \n\t") -TEST_RRX ("tbh [r" ,1 ,9f ,", r" ,14 ,1 ,"]" , +TEST_RRX ("tbh [r" ,1 ,9f ,", r" ,14 ,1 ,", lsl #1]" ,"9: \n\t" ".short (2f-1b-4)>>1 \n\t" ".short (3f-1b-4)>>1 \n\t"
@@ -468,10 +468,10 @@ void kprobe_thumb32_test_cases(void) TEST_UNSUPPORTED("strexb r0, r1, [r2]") TEST_UNSUPPORTED("strexh r0, r1, [r2]") - TEST_UNSUPPORTED("strexd r0, r1, [r2]") + TEST_UNSUPPORTED("strexd r0, r1, r2, [r2]") TEST_UNSUPPORTED("ldrexb r0, [r1]") TEST_UNSUPPORTED("ldrexh r0, [r1]") - TEST_UNSUPPORTED("ldrexd r0, [r1]") + TEST_UNSUPPORTED("ldrexd r0, r1, [r1]")TEST_GROUP ("Data-processing (shifted register) and (modified immediate)" )
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +1 -1
@@ -79,7 +79,7 @@ &ehci1 { &emac { pinctrl-names = "default"; pinctrl-0 = <&rgmii_pins>; - phy-mode = "rgmii-id"; + phy-mode = "rgmii-txid"; phy-handle = <&ext_rgmii_phy>; phy-supply = <®_dc1sw>; status = "okay";
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi +2 -0
@@ -622,6 +622,8 @@ sn65dsi86_bridge: bridge@2d { clocks = <&rpmhcc RPMH_LN_BB_CLK3>; clock-names = "refclk"; + no-hpd; + ports { #address-cells = <1>; #size-cells = <0>;
arch/arm64/boot/dts/renesas/r8a774a1.dtsi +1 -0
@@ -76,6 +76,7 @@ opp-1500000000 { opp-hz = /bits/ 64 <1500000000>; opp-microvolt = <820000>; clock-latency-ns = <300000>; + opp-suspend; }; };
arch/arm64/boot/dts/renesas/r8a77960.dtsi +4 -3
@@ -63,18 +63,19 @@ cluster0_opp: opp_table0 { opp-500000000 { opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <820000>; + opp-microvolt = <830000>; clock-latency-ns = <300000>; }; opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; - opp-microvolt = <820000>; + opp-microvolt = <830000>; clock-latency-ns = <300000>; }; opp-1500000000 { opp-hz = /bits/ 64 <1500000000>; - opp-microvolt = <820000>; + opp-microvolt = <830000>; clock-latency-ns = <300000>; + opp-suspend; }; opp-1600000000 { opp-hz = /bits/ 64 <1600000000>;
arch/arm64/boot/dts/renesas/r8a77961.dtsi +4 -3
@@ -52,18 +52,19 @@ cluster0_opp: opp_table0 { opp-500000000 { opp-hz = /bits/ 64 <500000000>; - opp-microvolt = <820000>; + opp-microvolt = <830000>; clock-latency-ns = <300000>; }; opp-1000000000 { opp-hz = /bits/ 64 <1000000000>; - opp-microvolt = <820000>; + opp-microvolt = <830000>; clock-latency-ns = <300000>; }; opp-1500000000 { opp-hz = /bits/ 64 <1500000000>; - opp-microvolt = <820000>; + opp-microvolt = <830000>; clock-latency-ns = <300000>; + opp-suspend; }; opp-1600000000 { opp-hz = /bits/ 64 <1600000000>;
arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts +1 -1
@@ -59,7 +59,7 @@ thc63lvd1024_out: endpoint { memory@48000000 { device_type = "memory"; /* first 128MB is reserved for secure area. */ - reg = <0x0 0x48000000 0x0 0x38000000>; + reg = <0x0 0x48000000 0x0 0x78000000>; }; osc5_clk: osc5-clock {
arch/arm64/boot/dts/renesas/r8a779a0.dtsi +0 -1
@@ -111,7 +111,6 @@ gic: interrupt-controller@f1000000 { <0x0 0xf1060000 0 0x110000>; interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>; - power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>; }; prr: chipid@fff00044 {
arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi +3 -0
@@ -384,6 +384,7 @@ regulator-state-mem { vcc_sdio: LDO_REG4 { regulator-name = "vcc_sdio"; + regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3000000>;
@@ -488,6 +489,8 @@ vdd_gpu: regulator@41 { regulator-min-microvolt = <712500>; regulator-max-microvolt = <1500000>; regulator-ramp-delay = <1000>; + regulator-always-on; + regulator-boot-on; vin-supply = <&vcc3v3_sys>; regulator-state-mem {
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi +1 -0
@@ -446,6 +446,7 @@ usb0: usb@6000000 { "otg"; maximum-speed = "super-speed"; dr_mode = "otg"; + cdns,phyrst-a-enable; }; }; };
arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts +4 -0
@@ -560,6 +560,10 @@ &mcasp10 { status = "okay"; }; +&cmn_refclk1 { + clock-frequency = <100000000>; +}; + &serdes0 { serdes0_pcie_link: link@0 { reg = <0>;
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi +30 -28
165 lines not on this page · raw message
arch/hexagon/kernel/vmlinux.lds.S +3 -6
@@ -38,6 +38,8 @@ SECTIONS .text : AT(ADDR(.text)) { _text = .; TEXT_TEXT + IRQENTRY_TEXT + SOFTIRQENTRY_TEXT SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT
@@ -59,14 +61,9 @@ SECTIONS _end = .; - /DISCARD/ : { - EXIT_TEXT - EXIT_DATA - EXIT_CALL - } - STABS_DEBUG DWARF_DEBUG ELF_DETAILS + DISCARDS }
arch/mips/boot/compressed/Makefile +2 -2
@@ -39,7 +39,7 @@ KCOV_INSTRUMENT := n UBSAN_SANITIZE := n # decompressor objects (linked with vmlinuz) -vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o +vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o $(obj)/bswapsi.o ifdef CONFIG_DEBUG_ZBOOT vmlinuzobjs-$(CONFIG_DEBUG_ZBOOT) += $(obj)/dbg.o
@@ -53,7 +53,7 @@ extra-y += uart-ath79.c $(obj)/uart-ath79.c: $(srctree)/arch/mips/ath79/early_printk.c $(call cmd,shipped) -vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o $(obj)/bswapsi.o +vmlinuzobjs-$(CONFIG_KERNEL_XZ) += $(obj)/ashldi3.o extra-y += ashldi3.c $(obj)/ashldi3.c: $(obj)/%.c: $(srctree)/lib/%.c FORCE
arch/mips/boot/compressed/decompress.c +2 -0
@@ -7,6 +7,8 @@* Author: Wu Zhangjin <[email protected]> */ +#define DISABLE_BRANCH_PROFILING +#include <linux/types.h> #include <linux/kernel.h> #include <linux/string.h>
arch/mips/include/asm/vdso/vdso.h +1 -1
@@ -67,7 +67,7 @@ static inline const struct vdso_data *get_vdso_data(void)static inline void __iomem *get_gic (const struct vdso_data *data) { -return (void __iomem *)data -PAGE_SIZE ; +return (void __iomem *)((unsigned long )data &PAGE_MASK ) -PAGE_SIZE ; }#endif /* CONFIG_CLKSRC_MIPS_GIC */
arch/powerpc/boot/devtree.c +34 -25
165 lines not on this page · raw message
arch/powerpc/boot/ns16550.c +7 -2
@@ -15,6 +15,7 @@#include "stdio.h" #include "io.h" #include "ops.h" +#include "of.h" #define UART_DLL 0/* Out: Divisor Latch Low */ #define UART_DLM 1/* Out: Divisor Latch High */
@@ -58,16 +59,20 @@ int ns16550_console_init(void *devp, struct serial_console_data *scdp)int n;u32 reg_offset; -if (dt_get_virtual_reg (devp, (void **)®_base,1 ) <1 ) +if (dt_get_virtual_reg (devp, (void **)®_base,1 ) <1 ) { +printf ("virt reg parse fail...\r\n" );return -1 ; + } n =getprop (devp,"reg-offset" , ®_offset,sizeof (reg_offset));if (n ==sizeof (reg_offset)) - reg_base += reg_offset; + reg_base +=be32_to_cpu (reg_offset); n =getprop (devp,"reg-shift" , ®_shift,sizeof (reg_shift));if (n !=sizeof (reg_shift)) reg_shift =0 ; +else + reg_shift =be32_to_cpu (reg_shift); scdp->open = ns16550_open; scdp->putc = ns16550_putc;
arch/powerpc/include/asm/ps3.h +2 -0
@@ -71,6 +71,7 @@ struct ps3_dma_region_ops;* @bus_addr: The 'translated' bus address of the region. * @len: The length in bytes of the region. * @offset: The offset from the start of memory of the region. +* @dma_mask: Device dma_mask. * @ioid: The IOID of the device who owns this region * @chunk_list: Opaque variable used by the ioc page manager. * @region_ops: struct ps3_dma_region_ops - dma region operations
@@ -85,6 +86,7 @@ struct ps3_dma_region {enum ps3_dma_region_type region_type;unsigned long len;unsigned long offset; +u64 dma_mask;/* driver variables (set by ps3_dma_region_create) */ unsigned long bus_addr;
arch/powerpc/mm/book3s64/radix_tlb.c +17 -9
@@ -282,22 +282,30 @@ static inline void fixup_tlbie_lpid(unsigned long lpid)/* * We use 128 set in radix mode and 256 set in hpt mode. */ -static __always_inline void _tlbiel_pid(unsigned long pid, unsigned long ric) +static inline void _tlbiel_pid (unsigned long pid,unsigned long ric) {int set; asmvolatile ("ptesync" : : :"memory" ); -/* -* Flush the first set of the TLB, and if we're doing a RIC_FLUSH_ALL, -* also flush the entire Page Walk Cache. -*/ -__tlbiel_pid (pid,0 , ric); +switch (ric) { +case RIC_FLUSH_PWC : -/* For PWC, only one flush is needed */ -if (ric ==RIC_FLUSH_PWC ) { +/* For PWC, only one flush is needed */ +__tlbiel_pid (pid,0 ,RIC_FLUSH_PWC );ppc_after_tlbiel_barrier ();return ; +case RIC_FLUSH_TLB : +__tlbiel_pid (pid,0 ,RIC_FLUSH_TLB ); +break ; +case RIC_FLUSH_ALL : +default : +/* +* Flush the first set of the TLB, and if +* we're doing a RIC_FLUSH_ALL, also flush +* the entire Page Walk Cache. +*/ +__tlbiel_pid (pid,0 ,RIC_FLUSH_ALL ); }/* For the remaining sets, just flush the TLB */
@@ -1068,7 +1076,7 @@ void radix__tlb_flush(struct mmu_gather *tlb) } } -static __always_inline void __radix__flush_tlb_range_psize(struct mm_struct *mm, +static void __radix__flush_tlb_range_psize (struct mm_struct *mm,unsigned long start,unsigned long end,int psize,bool also_pwc) {
arch/powerpc/platforms/ps3/mm.c +12 -0
@@ -6,6 +6,7 @@* Copyright 2006 Sony Corp. */ +#include <linux/dma-mapping.h> #include <linux/kernel.h> #include <linux/export.h> #include <linux/memblock.h>
@@ -1118,6 +1119,7 @@ int ps3_dma_region_init(struct ps3_system_bus_device *dev, enum ps3_dma_region_type region_type, void *addr, unsigned long len) { unsigned long lpar_addr; +int result; lpar_addr = addr ?ps3_mm_phys_to_lpar (__pa (addr)) :0 ;
@@ -1129,6 +1131,16 @@ int ps3_dma_region_init(struct ps3_system_bus_device *dev, r->offset -= map.r1.offset; r->len = len ? len :ALIGN (map.total,1 << r->page_size); + dev->core.dma_mask = &r->dma_mask; + + result =dma_set_mask_and_coherent (&dev->core,DMA_BIT_MASK (32 )); + +if (result <0 ) { +dev_err (&dev->core,"%s:%d: dma_set_mask_and_coherent failed: %d\n" , + __func__, __LINE__, result); +return result; + } +switch (dev->dev_type) {case PS3_DEVICE_TYPE_SB : r->region_ops = (USE_DYNAMIC_DMA )
arch/s390/Makefile +1 -0
@@ -28,6 +28,7 @@ KBUILD_CFLAGS_DECOMPRESSOR += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY KBUILD_CFLAGS_DECOMPRESSOR += -fno-delete-null-pointer-checks -msoft-float KBUILD_CFLAGS_DECOMPRESSOR += -fno-asynchronous-unwind-tables KBUILD_CFLAGS_DECOMPRESSOR += -ffreestanding +KBUILD_CFLAGS_DECOMPRESSOR += -fno-stack-protector KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-member) KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g) KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
arch/s390/boot/ipl_parm.c +11 -8
@@ -28,22 +28,25 @@ static inline int __diag308(unsigned long subcode, void *addr) register unsigned long _addr asm("0") = (unsigned long)addr; register unsigned long _rc asm("1") = 0;unsigned long reg1, reg2; -psw_t old = S390_lowcore.program_new_psw; +psw_t old; asmvolatile ( +" mvc 0(16,%[psw_old]),0(%[psw_pgm])\n" " epsw %0,%1\n" -" st %0,%[psw_pgm]\n" -" st %1,%[psw_pgm]+4\n" +" st %0,0(%[psw_pgm])\n" +" st %1,4(%[psw_pgm])\n" " larl %0,1f\n" -" stg %0,%[psw_pgm]+8\n" +" stg %0,8(%[psw_pgm])\n" " diag %[addr],%[subcode],0x308\n" -"1: nopr %%r7\n" +"1: mvc 0(16,%[psw_pgm]),0(%[psw_old])\n" :"=&d" (reg1),"=&a" (reg2), - [psw_pgm]"=Q" (S390_lowcore.program_new_psw), +"+Q" (S390_lowcore.program_new_psw), +"=Q" (old), [addr]"+d" (_addr),"+d" (_rc) - : [subcode]"d" (subcode) + : [subcode]"d" (subcode), + [psw_old]"a" (&old), + [psw_pgm]"a" (&S390_lowcore.program_new_psw) :"cc" ,"memory" ); - S390_lowcore.program_new_psw = old;return _rc; }
arch/s390/boot/mem_detect.c +28 -19
76 lines not on this page · raw message
arch/s390/include/asm/processor.h +2 -2
@@ -211,7 +211,7 @@ static __always_inline unsigned long current_stack_pointer(void)return sp; } -static __no_kasan_or_inline unsigned short stap (void ) +static __always_inline unsigned short stap (void ) {unsigned short cpu_address;
@@ -250,7 +250,7 @@ static inline void __load_psw(psw_t psw)* Set PSW mask to specified value, while leaving the * PSW addr pointing to the next instruction. */ -static __no_kasan_or_inline void __load_psw_mask(unsigned long mask) +static __always_inline void __load_psw_mask(unsigned long mask) {unsigned long addr;psw_t psw;
arch/s390/kernel/setup.c +1 -1
@@ -166,7 +166,7 @@ static void __init set_preferred_console(void)else if (CONSOLE_IS_3270 )add_preferred_console ("tty3270" ,0 ,NULL );else if (CONSOLE_IS_VT220 ) -add_preferred_console ("ttyS" ,1 ,NULL ); +add_preferred_console ("ttysclp" ,0 ,NULL );else if (CONSOLE_IS_HVC )add_preferred_console ("hvc" ,0 ,NULL ); }
arch/s390/purgatory/Makefile +1 -0
@@ -24,6 +24,7 @@ KBUILD_CFLAGS := -fno-strict-aliasing -Wall -Wstrict-prototypes KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding KBUILD_CFLAGS += -c -MD -Os -m64 -msoft-float -fno-common +KBUILD_CFLAGS += -fno-stack-protector KBUILD_CFLAGS += $(CLANG_FLAGS) KBUILD_CFLAGS += $(call cc-option,-fno-PIE) KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
arch/um/drivers/chan_user.c +2 -1
@@ -256,7 +256,8 @@ static int winch_tramp(int fd, struct tty_port *port, int *fd_out, goto out_close; } -if (os_set_fd_block (*fd_out,0 )) { + err =os_set_fd_block (*fd_out,0 ); +if (err) {printk (UM_KERN_ERR "winch_tramp: failed to set thread_fd " "non-blocking.\n" ); goto out_close;
arch/um/drivers/slip_user.c +2 -1
@@ -145,7 +145,8 @@ static int slip_open(void *data) } sfd = err; -if (set_up_tty (sfd)) + err =set_up_tty (sfd); +if (err) goto out_close2; pri->slave = sfd;
arch/x86/include/asm/fpu/internal.h +12 -7
@@ -103,6 +103,7 @@ static inline void fpstate_init_fxstate(struct fxregs_state *fx) }extern void fpstate_sanitize_xstate (struct fpu *fpu); +/* Returns 0 or the negated trap number, which results in -EFAULT for #PF */ #define user_insn(insn, output, input...) \ ({ \ int err; \
@@ -110,14 +111,14 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);might_fault (); \ \ asm volatile(ASM_STAC "\n" \ - "1:" #insn "\n\t" \ + "1: " #insn "\n" \ "2: " ASM_CLAC "\n" \ ".section .fixup,\"ax\"\n" \ - "3: movl $-1,%[err]\n" \ + "3: negl %%eax\n" \ " jmp 2b\n" \ ".previous\n" \ - _ASM_EXTABLE(1b, 3b) \ - : [err] "=r" (err), output \ + _ASM_EXTABLE_FAULT(1b, 3b) \ + : [err] "=a" (err), output \ : "0"(0), input); \ err; \ })
@@ -219,16 +220,20 @@ static inline void fxsave(struct fxregs_state *fx)#define XRSTOR ".byte " REX_PREFIX "0x0f,0xae,0x2f"#define XRSTORS ".byte " REX_PREFIX "0x0f,0xc7,0x1f" +/* +* After this @err contains 0 on success or the negated trap number when +* the operation raises an exception. For faults this results in -EFAULT. +*/ #define XSTATE_OP (op, st, lmask, hmask, err) \ asm volatile("1:" op "\n\t" \ "xor %[err], %[err]\n" \ "2:\n\t" \ ".pushsection .fixup,\"ax\"\n\t" \ - "3: movl $-2,%[err]\n\t" \ + "3: negl %%eax\n\t" \ "jmp 2b\n\t" \ ".popsection\n\t" \ - _ASM_EXTABLE(1b, 3b) \ - : [err] "=r" (err) \ + _ASM_EXTABLE_FAULT(1b, 3b) \ + : [err] "=a" (err) \ : "D" (st), "m" (*st), "a" (lmask), "d" (hmask) \ : "memory")
arch/x86/kernel/fpu/regset.c +1 -1
@@ -117,7 +117,7 @@ int xstateregs_set(struct task_struct *target, const struct user_regset *regset,/* * A whole standard-format XSAVE buffer is needed: */ -if ((pos !=0 ) || (count < fpu_user_xstate_size)) +if (pos !=0 || count != fpu_user_xstate_size)return -EFAULT ; xsave = &fpu->state.xsave;
arch/x86/kernel/fpu/xstate.c +61 -44
132 lines not on this page · raw message
arch/x86/kernel/signal.c +20 -4
@@ -234,10 +234,11 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size, void __user **fpstate) {/* Default to using normal stack */ +bool nested_altstack =on_sig_stack (regs->sp); +bool entering_altstack = false;unsigned long math_size =0 ;unsigned long sp = regs->sp;unsigned long buf_fx =0 ; -int onsigstack =on_sig_stack (sp);int ret;/* redzone */
@@ -246,15 +247,23 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,/* This is the X/Open sanctioned signal stack switching. */ if (ka->sa.sa_flags &SA_ONSTACK ) { -if (sas_ss_flags (sp) ==0 ) +/* +* This checks nested_altstack via sas_ss_flags(). Sensible +* programs use SS_AUTODISARM, which disables that check, and +* programs that don't use SS_AUTODISARM get compatible. +*/ +if (sas_ss_flags (sp) ==0 ) { sp = current->sas_ss_sp + current->sas_ss_size; + entering_altstack = true; + } }else if (IS_ENABLED (CONFIG_X86_32 ) && - !onsigstack && + !nested_altstack && regs->ss != __USER_DS && !(ka->sa.sa_flags &SA_RESTORER ) && ka->sa.sa_restorer) {/* This is the legacy signal stack switching. */ sp = (unsigned long ) ka->sa.sa_restorer; + entering_altstack = true; } sp = fpu__alloc_mathframe(sp, IS_ENABLED(CONFIG_X86_32),
@@ -267,8 +276,15 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size,* If we are on the alternate signal stack and would overflow it, don't. * Return an always-bogus address instead so we will die with SIGSEGV. */ -if (onsigstack && !likely (on_sig_stack (sp))) +if (unlikely ((nested_altstack || entering_altstack) && + !__on_sig_stack (sp))) { + +if (show_unhandled_signals &&printk_ratelimit ()) +pr_info ("%s[%d] overflowed sigaltstack\n" , + current->comm,task_pid_nr (current)); +return (void __user *)-1L ; + }/* save i387 and extended state */ ret =copy_fpstate_to_sigframe (*fpstate, (void __user *)buf_fx, math_size);
arch/x86/kvm/cpuid.c +7 -1
@@ -827,8 +827,14 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)unsigned virt_as =max ((entry->eax >>8 ) &0xff ,48U );unsigned phys_as = entry->eax &0xff ; -if (!g_phys_as) +/* +* Use bare metal's MAXPHADDR if the CPU doesn't report guest +* MAXPHYADDR separately, or if TDP (NPT) is disabled, as the +* guest version "applies only to guests using nested paging". +*/ +if (!g_phys_as || !tdp_enabled) g_phys_as = phys_as; + entry->eax = g_phys_as | (virt_as <<8 ); entry->edx =0 ;cpuid_entry_override (entry,CPUID_8000_0008_EBX );
arch/x86/kvm/mmu/mmu.c +2 -0
@@ -52,6 +52,8 @@#include <asm/kvm_page_track.h> #include "trace.h" +#include "paging.h" +extern bool itlb_multihit_kvm_mitigation;static int __read_mostly nx_huge_pages =-1 ;
arch/x86/kvm/mmu/paging.h new file +14 -0
@@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* Shadow paging constants/helpers that don't need to be #undef'd. */ +#ifndef __KVM_X86_PAGING_H +#define __KVM_X86_PAGING_H + +#define GUEST_PT64_BASE_ADDR_MASK (((1ULL << 52) - 1) & ~(u64)(PAGE_SIZE-1)) +#define PT64_LVL_ADDR_MASK (level) \ + (GUEST_PT64_BASE_ADDR_MASK & ~((1ULL << (PAGE_SHIFT + (((level) - 1) \ + * PT64_LEVEL_BITS))) - 1)) +#define PT64_LVL_OFFSET_MASK (level) \ + (GUEST_PT64_BASE_ADDR_MASK & ((1ULL << (PAGE_SHIFT + (((level) - 1) \ + * PT64_LEVEL_BITS))) - 1)) +#endif /* __KVM_X86_PAGING_H */ +
arch/x86/kvm/mmu/paging_tmpl.h +2 -2
@@ -24,7 +24,7 @@#define pt_element_t u64#define guest_walker guest_walker64#define FNAME (name) paging##64_##name -#define PT_BASE_ADDR_MASK PT64_BASE_ADDR_MASK +#define PT_BASE_ADDR_MASK GUEST_PT64_BASE_ADDR_MASK#define PT_LVL_ADDR_MASK (lvl) PT64_LVL_ADDR_MASK(lvl)#define PT_LVL_OFFSET_MASK (lvl) PT64_LVL_OFFSET_MASK(lvl)#define PT_INDEX (addr, level) PT64_INDEX(addr, level)
@@ -57,7 +57,7 @@#define pt_element_t u64#define guest_walker guest_walkerEPT#define FNAME (name) ept_##name -#define PT_BASE_ADDR_MASK PT64_BASE_ADDR_MASK +#define PT_BASE_ADDR_MASK GUEST_PT64_BASE_ADDR_MASK#define PT_LVL_ADDR_MASK (lvl) PT64_LVL_ADDR_MASK(lvl)#define PT_LVL_OFFSET_MASK (lvl) PT64_LVL_OFFSET_MASK(lvl)#define PT_INDEX (addr, level) PT64_INDEX(addr, level)
arch/x86/kvm/mmu/spte.h +0 -6
@@ -23,12 +23,6 @@#else #define PT64_BASE_ADDR_MASK (((1ULL << 52) - 1) & ~(u64)(PAGE_SIZE-1))#endif -#define PT64_LVL_ADDR_MASK (level) \ - (PT64_BASE_ADDR_MASK & ~((1ULL << (PAGE_SHIFT + (((level) - 1) \ - * PT64_LEVEL_BITS))) - 1)) -#define PT64_LVL_OFFSET_MASK (level) \ - (PT64_BASE_ADDR_MASK & ((1ULL << (PAGE_SHIFT + (((level) - 1) \ - * PT64_LEVEL_BITS))) - 1))#define PT64_PERM_MASK (PT_PRESENT_MASK | PT_WRITABLE_MASK | shadow_user_mask \ | shadow_x_mask | shadow_nx_mask | shadow_me_mask)
arch/x86/kvm/svm/svm.c +10 -1
@@ -2745,7 +2745,16 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr)svm_disable_lbrv (vcpu);break ;case MSR_VM_HSAVE_PA : - svm->nested.hsave_msr = data; +/* +* Old kernels did not validate the value written to +* MSR_VM_HSAVE_PA. Allow KVM_SET_MSR to set an invalid +* value to allow live migrating buggy or malicious guests +* originating from those kernels. +*/ +if (!msr->host_initiated && !page_address_valid (vcpu, data)) +return 1 ; + + svm->nested.hsave_msr = data &PAGE_MASK ;break ;case MSR_VM_CR :return svm_set_vm_cr (vcpu, data);
arch/x86/kvm/x86.c +2 -0
@@ -9020,6 +9020,8 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)set_debugreg (vcpu->arch.eff_db[3 ],3 );set_debugreg (vcpu->arch.dr6,6 ); vcpu->arch.switch_db_regs &= ~KVM_DEBUGREG_RELOAD ; + }else if (unlikely (hw_breakpoint_active ())) { +set_debugreg (0 ,7 ); } exit_fastpath = kvm_x86_ops.run (vcpu);
block/partitions/ldm.c +1 -1
@@ -510,7 +510,7 @@ static bool ldm_validate_partition_table(struct parsed_partitions *state) p = (struct msdos_partition *)(data +0x01BE );for (i =0 ; i <4 ; i++, p++) -if (SYS_IND (p) ==LDM_PARTITION ) { +if (p->sys_ind ==LDM_PARTITION ) { result = true;break ; }
block/partitions/ldm.h +0 -3
@@ -84,9 +84,6 @@ struct parsed_partitions;#define TOC_BITMAP1 "config"/* Names of the two defined */ #define TOC_BITMAP2 "log"/* bitmaps in the TOCBLOCK. */ -/* Borrowed from msdos.c */ -#define SYS_IND (p) (get_unaligned(&(p)->sys_ind)) -struct frag {/* VBLK Fragment handling */ struct list_head list;u32 group;
block/partitions/msdos.c +11 -13
@@ -38,8 +38,6 @@*/ #include <asm/unaligned.h> -#define SYS_IND (p) get_unaligned(&p->sys_ind) -static inline sector_t nr_sects (struct msdos_partition *p) {return (sector_t )get_unaligned_le32 (&p->nr_sects);
@@ -52,9 +50,9 @@ static inline sector_t start_sect(struct msdos_partition *p)static inline int is_extended_partition (struct msdos_partition *p) { -return (SYS_IND (p) ==DOS_EXTENDED_PARTITION || -SYS_IND (p) ==WIN98_EXTENDED_PARTITION || -SYS_IND (p) ==LINUX_EXTENDED_PARTITION ); +return (p->sys_ind ==DOS_EXTENDED_PARTITION || + p->sys_ind ==WIN98_EXTENDED_PARTITION || + p->sys_ind ==LINUX_EXTENDED_PARTITION ); }#define MSDOS_LABEL_MAGIC1 0x55
@@ -193,7 +191,7 @@ static void parse_extended(struct parsed_partitions *state,put_partition (state, state->next, next, size);set_info (state, state->next, disksig); -if (SYS_IND (p) ==LINUX_RAID_PARTITION ) +if (p->sys_ind ==LINUX_RAID_PARTITION ) state->parts[state->next].flags =ADDPART_FLAG_RAID ; loopct =0 ;if (++state->next == state->limit)
@@ -546,7 +544,7 @@ static void parse_minix(struct parsed_partitions *state,* a secondary MBR describing its subpartitions, or * the normal boot sector. */ if (msdos_magic_present (data +510 ) && -SYS_IND (p) ==MINIX_PARTITION ) {/* subpartition table present */ + p->sys_ind ==MINIX_PARTITION ) {/* subpartition table present */ char tmp[1 +BDEVNAME_SIZE +10 +9 +1 ];snprintf (tmp,sizeof (tmp)," %s%d: <minix:" , state->name, origin);
@@ -555,7 +553,7 @@ static void parse_minix(struct parsed_partitions *state,if (state->next == state->limit)break ;/* add each partition in use */ -if (SYS_IND (p) ==MINIX_PARTITION ) +if (p->sys_ind ==MINIX_PARTITION )put_partition (state, state->next++,start_sect (p),nr_sects (p)); }
@@ -643,7 +641,7 @@ int msdos_partition(struct parsed_partitions *state) p = (struct msdos_partition *) (data +0x1be );for (slot =1 ; slot <=4 ; slot++, p++) {/* If this is an EFI GPT disk, msdos should ignore it. */ -if (SYS_IND (p) ==EFI_PMBR_OSTYPE_EFI_GPT ) { +if (p->sys_ind ==EFI_PMBR_OSTYPE_EFI_GPT ) {put_dev_sector (sect);return 0 ; }
@@ -685,11 +683,11 @@ int msdos_partition(struct parsed_partitions *state) }put_partition (state, slot, start, size);set_info (state, slot, disksig); -if (SYS_IND (p) ==LINUX_RAID_PARTITION ) +if (p->sys_ind ==LINUX_RAID_PARTITION ) state->parts[slot].flags =ADDPART_FLAG_RAID ; -if (SYS_IND (p) ==DM6_PARTITION ) +if (p->sys_ind ==DM6_PARTITION )strlcat (state->pp_buf,"[DM]" ,PAGE_SIZE ); -if (SYS_IND (p) ==EZD_PARTITION ) +if (p->sys_ind ==EZD_PARTITION )strlcat (state->pp_buf,"[EZD]" ,PAGE_SIZE ); }
@@ -698,7 +696,7 @@ int msdos_partition(struct parsed_partitions *state)/* second pass - output for each on a separate line */ p = (struct msdos_partition *) (0x1be + data);for (slot =1 ; slot <=4 ; slot++, p++) { -unsigned char id =SYS_IND (p); +unsigned char id = p->sys_ind;int n;if (!nr_sects (p))
certs/.gitignore +1 -0
@@ -1,2 +1,3 @@ # SPDX-License-Identifier: GPL-2.0-only x509_certificate_list +x509_revocation_list
drivers/acpi/acpi_amba.c +1 -0
@@ -76,6 +76,7 @@ static int amba_handler_attach(struct acpi_device *adev,case IORESOURCE_MEM :if (!address_found) { dev->res = *rentry->res; + dev->res.name =dev_name (&dev->dev); address_found = true; }break ;
drivers/acpi/acpi_video.c +9 -0
@@ -543,6 +543,15 @@ static const struct dmi_system_id video_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V131"), }, }, + { + .callback = video_set_report_key_events, + .driver_data = (void *)((uintptr_t)REPORT_BRIGHTNESS_KEY_EVENTS), + .ident = "Dell Vostro 3350", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3350"), + }, + },/* * Some machines change the brightness themselves when a brightness * hotkey gets pressed, despite us telling them not to. In this case
drivers/block/virtio_blk.c +2 -0
@@ -946,6 +946,8 @@ static int virtblk_freeze(struct virtio_device *vdev)blk_mq_quiesce_queue (vblk->disk->queue); vdev->config->del_vqs (vdev); +kfree (vblk->vqs); +return 0 ; }
drivers/char/virtio_console.c +2 -2
@@ -475,7 +475,7 @@ static struct port_buffer *get_inbuf(struct port *port) buf =virtqueue_get_buf (port->in_vq, &len);if (buf) { - buf->len = len; + buf->len =min_t (size_t, len, buf->size); buf->offset =0 ; port->stats.bytes_received += len; }
@@ -1712,7 +1712,7 @@ static void control_work_handler(struct work_struct *work)while ((buf =virtqueue_get_buf (vq, &len))) {spin_unlock (&portdev->c_ivq_lock); - buf->len = len; + buf->len =min_t (size_t, len, buf->size); buf->offset =0 ;handle_control_message (vq->vdev, portdev, buf);
drivers/dma/fsl-qdma.c +5 -1
@@ -1235,7 +1235,11 @@ static int fsl_qdma_probe(struct platform_device *pdev) fsl_qdma->dma_dev.device_synchronize = fsl_qdma_synchronize; fsl_qdma->dma_dev.device_terminate_all = fsl_qdma_terminate_all; -dma_set_mask (&pdev->dev,DMA_BIT_MASK (40 )); + ret =dma_set_mask (&pdev->dev,DMA_BIT_MASK (40 )); +if (ret) { +dev_err (&pdev->dev,"dma_set_mask failure.\n" ); +return ret; + }platform_set_drvdata (pdev, fsl_qdma);
drivers/firmware/arm_scmi/driver.c +4 -0
@@ -268,6 +268,10 @@ static void scmi_handle_response(struct scmi_chan_info *cinfo,return ; } +/* rx.len could be shrunk in the sync do_xfer, so reset to maxsz */ +if (msg_type ==MSG_TYPE_DELAYED_RESP ) + xfer->rx.len = info->desc->max_msg_size; +scmi_dump_header_dbg (dev, &xfer->hdr); info->desc->ops->fetch_response (cinfo, xfer);
drivers/firmware/tegra/bpmp-tegra210.c +1 -1
@@ -210,7 +210,7 @@ static int tegra210_bpmp_init(struct tegra_bpmp *bpmp) priv->tx_irq_data =irq_get_irq_data (err);if (!priv->tx_irq_data) {dev_err (&pdev->dev,"failed to get IRQ data for TX IRQ\n" ); -return err; +return -ENOENT ; } err =platform_get_irq_byname (pdev,"rx" );
drivers/firmware/turris-mox-rwtm.c +47 -8
97 lines not on this page · raw message
drivers/fsi/fsi-master-aspeed.c +1 -0
@@ -645,6 +645,7 @@ static const struct of_device_id fsi_master_aspeed_match[] = { { .compatible = "aspeed,ast2600-fsi-master" }, { }, }; +MODULE_DEVICE_TABLE (of, fsi_master_aspeed_match);static struct platform_driver fsi_master_aspeed_driver = { .driver = {
drivers/fsi/fsi-master-ast-cf.c +1 -0
@@ -1427,6 +1427,7 @@ static const struct of_device_id fsi_master_acf_match[] = { { .compatible = "aspeed,ast2500-cf-fsi-master" }, { }, }; +MODULE_DEVICE_TABLE (of, fsi_master_acf_match);static struct platform_driver fsi_master_acf = { .driver = {
drivers/fsi/fsi-master-gpio.c +1 -0
@@ -882,6 +882,7 @@ static const struct of_device_id fsi_master_gpio_match[] = { { .compatible = "fsi-master-gpio" }, { }, }; +MODULE_DEVICE_TABLE (of, fsi_master_gpio_match);static struct platform_driver fsi_master_gpio_driver = { .driver = {
drivers/fsi/fsi-occ.c +1 -0
@@ -579,6 +579,7 @@ static const struct of_device_id occ_match[] = { { .compatible = "ibm,p9-occ" }, { }, }; +MODULE_DEVICE_TABLE (of, occ_match);static struct platform_driver occ_driver = { .driver = {
drivers/gpio/gpio-pca953x.c +1 -0
@@ -1239,6 +1239,7 @@ static const struct of_device_id pca953x_dt_ids[] = { { .compatible = "onnn,cat9554", .data = OF_953X( 8, PCA_INT), }, { .compatible = "onnn,pca9654", .data = OF_953X( 8, PCA_INT), }, + { .compatible = "onnn,pca9655", .data = OF_953X(16, PCA_INT), }, { .compatible = "exar,xra1202", .data = OF_953X( 8, 0), }, { }
drivers/gpio/gpio-zynq.c +14 -1
@@ -736,6 +736,11 @@ static int __maybe_unused zynq_gpio_suspend(struct device *dev)struct zynq_gpio *gpio =dev_get_drvdata (dev);struct irq_data *data =irq_get_irq_data (gpio->irq); +if (!data) { +dev_err (dev,"irq_get_irq_data() failed\n" ); +return -EINVAL ; + } +if (!device_may_wakeup (dev))disable_irq (gpio->irq);
@@ -753,6 +758,11 @@ static int __maybe_unused zynq_gpio_resume(struct device *dev)struct irq_data *data =irq_get_irq_data (gpio->irq);int ret; +if (!data) { +dev_err (dev,"irq_get_irq_data() failed\n" ); +return -EINVAL ; + } +if (!device_may_wakeup (dev))enable_irq (gpio->irq);
@@ -1001,8 +1011,11 @@ static int zynq_gpio_probe(struct platform_device *pdev)static int zynq_gpio_remove (struct platform_device *pdev) {struct zynq_gpio *gpio =platform_get_drvdata (pdev); +int ret; -pm_runtime_get_sync (&pdev->dev); + ret =pm_runtime_get_sync (&pdev->dev); +if (ret <0 ) +dev_warn (&pdev->dev,"pm_runtime_get_sync() Failed\n" );gpiochip_remove (&gpio->chip);clk_disable_unprepare (gpio->clk);device_set_wakeup_capable (&pdev->dev,0 );
drivers/gpu/drm/amd/amdkfd/kfd_process.c +6 -8
@@ -452,13 +452,9 @@ static const struct sysfs_ops procfs_stats_ops = { .show = kfd_procfs_stats_show, }; -static struct attribute *procfs_stats_attrs[] = { -NULL -}; -static struct kobj_type procfs_stats_type = { .sysfs_ops = &procfs_stats_ops, - .default_attrs = procfs_stats_attrs, + .release = kfd_procfs_kobj_release, };int kfd_procfs_add_queue (struct queue *q)
@@ -973,9 +969,11 @@ static void kfd_process_wq_release(struct work_struct *work)list_for_each_entry (pdd, &p->per_device_data, per_device_list) {sysfs_remove_file (p->kobj, &pdd->attr_vram);sysfs_remove_file (p->kobj, &pdd->attr_sdma); -sysfs_remove_file (p->kobj, &pdd->attr_evict); -if (pdd->dev->kfd2kgd->get_cu_occupancy !=NULL ) -sysfs_remove_file (p->kobj, &pdd->attr_cu_occupancy); + +sysfs_remove_file (pdd->kobj_stats, &pdd->attr_evict); +if (pdd->dev->kfd2kgd->get_cu_occupancy) +sysfs_remove_file (pdd->kobj_stats, + &pdd->attr_cu_occupancy);kobject_del (pdd->kobj_stats);kobject_put (pdd->kobj_stats); pdd->kobj_stats =NULL ;
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +1 -0
@@ -153,6 +153,7 @@ void pqm_uninit(struct process_queue_manager *pqm)if (pqn->q && pqn->q->gws)amdgpu_amdkfd_remove_gws_from_process (pqm->process->kgd_process_info, pqn->q->gws); +kfd_procfs_del_queue (pqn->q);uninit_queue (pqn->q);list_del (&pqn->process_queue_list);kfree (pqn);
drivers/gpu/drm/ast/ast_main.c +3 -2
@@ -406,6 +406,7 @@ struct ast_private *ast_device_create(struct drm_driver *drv,return ast; dev = &ast->base; + dev->pdev = pdev;pci_set_drvdata (pdev, dev); ast->regs =pcim_iomap (pdev,1 ,0 );
@@ -447,8 +448,8 @@ struct ast_private *ast_device_create(struct drm_driver *drv,/* map reserved buffer */ ast->dp501_fw_buf =NULL ; -if (dev->vram_mm->vram_size <pci_resource_len (pdev,0 )) { - ast->dp501_fw_buf =pci_iomap_range (pdev,0 , dev->vram_mm->vram_size,0 ); +if (dev->vram_mm->vram_size <pci_resource_len (dev->pdev,0 )) { + ast->dp501_fw_buf =pci_iomap_range (dev->pdev,0 , dev->vram_mm->vram_size,0 );if (!ast->dp501_fw_buf)drm_info (dev,"failed to map reserved buffer!\n" ); }
drivers/gpu/drm/drm_dp_mst_topology.c +42 -26
131 lines not on this page · raw message
drivers/gpu/drm/gma500/framebuffer.c +6 -1
@@ -435,6 +435,7 @@ static struct drm_framebuffer *psb_user_framebuffer_create const struct drm_mode_fb_cmd2 *cmd) {struct drm_gem_object *obj; +struct drm_framebuffer *fb;/* * Find the GEM object and thus the gtt range object that is
@@ -445,7 +446,11 @@ static struct drm_framebuffer *psb_user_framebuffer_createreturn ERR_PTR (-ENOENT );/* Let the core code do all the work */ -return psb_framebuffer_create (dev, cmd, obj); + fb =psb_framebuffer_create (dev, cmd, obj); +if (IS_ERR (fb)) +drm_gem_object_put (obj); + +return fb; } static int psbfb_probe(struct drm_fb_helper *fb_helper,
drivers/gpu/drm/i915/gt/gen8_ppgtt.c +1 -4
@@ -299,10 +299,7 @@ static void __gen8_ppgtt_alloc(struct i915_address_space * const vm,__i915_gem_object_pin_pages (pt->base);i915_gem_object_make_unshrinkable (pt->base); -if (lvl || -gen8_pt_count (*start, end) <I915_PDES || -intel_vgpu_active (vm->i915)) -fill_px (pt, vm->scratch[lvl]->encode); +fill_px (pt, vm->scratch[lvl]->encode);spin_lock (&pd->lock);if (likely (!pd->entry[idx])) {
drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c +1 -1
@@ -348,7 +348,7 @@ static struct i915_fence_reg *fence_find(struct i915_ggtt *ggtt)if (intel_has_pending_fb_unpin (ggtt->vm.i915))return ERR_PTR (-EAGAIN ); -return ERR_PTR (-EDEADLK ); +return ERR_PTR (-ENOBUFS ); }int __i915_vma_pin_fence (struct i915_vma *vma)
drivers/gpu/drm/ingenic/ingenic-drm-drv.c +11 -9
@@ -347,7 +347,7 @@ static void ingenic_drm_plane_enable(struct ingenic_drm *priv,unsigned int en_bit;if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) +if (plane != &priv->f0) en_bit =JZ_LCD_OSDC_F1EN ;else en_bit =JZ_LCD_OSDC_F0EN ;
@@ -362,7 +362,7 @@ void ingenic_drm_plane_disable(struct device *dev, struct drm_plane *plane)unsigned int en_bit;if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) +if (plane != &priv->f0) en_bit =JZ_LCD_OSDC_F1EN ;else en_bit =JZ_LCD_OSDC_F0EN ;
@@ -389,8 +389,7 @@ void ingenic_drm_plane_config(struct device *dev,ingenic_drm_plane_enable (priv, plane); -if (priv->soc_info->has_osd && - plane->type ==DRM_PLANE_TYPE_PRIMARY ) { +if (priv->soc_info->has_osd && plane != &priv->f0) {switch (fourcc) {case DRM_FORMAT_XRGB1555 : ctrl |=JZ_LCD_OSDCTRL_RGB555 ;
@@ -423,7 +422,7 @@ void ingenic_drm_plane_config(struct device *dev, }if (priv->soc_info->has_osd) { -if (plane->type ==DRM_PLANE_TYPE_PRIMARY ) { +if (plane != &priv->f0) { xy_reg =JZ_REG_LCD_XYP1 ; size_reg =JZ_REG_LCD_SIZE1 ; }else {
@@ -455,7 +454,7 @@ static void ingenic_drm_plane_atomic_update(struct drm_plane *plane, height = state->src_h >>16 ; cpp = state->fb->format->cpp[0 ]; -if (priv->soc_info->has_osd && plane->type ==DRM_PLANE_TYPE_OVERLAY ) +if (!priv->soc_info->has_osd || plane == &priv->f0) hwdesc = priv->dma_hwdesc_f0;else hwdesc = priv->dma_hwdesc_f1;
@@ -692,6 +691,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)const struct jz_soc_info *soc_info;struct ingenic_drm *priv;struct clk *parent_clk; +struct drm_plane *primary;struct drm_bridge *bridge;struct drm_panel *panel;struct drm_encoder *encoder;
@@ -784,9 +784,11 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)if (soc_info->has_osd) priv->ipu_plane =drm_plane_from_index (drm,0 ); -drm_plane_helper_add (&priv->f1, &ingenic_drm_plane_helper_funcs); + primary = priv->soc_info->has_osd ? &priv->f1 : &priv->f0; + +drm_plane_helper_add (primary, &ingenic_drm_plane_helper_funcs); - ret = drm_universal_plane_init(drm, &priv->f1, 1, + ret = drm_universal_plane_init(drm, primary, 1, &ingenic_drm_primary_plane_funcs, ingenic_drm_primary_formats, ARRAY_SIZE(ingenic_drm_primary_formats),
@@ -798,7 +800,7 @@ static int ingenic_drm_bind(struct device *dev, bool has_components)drm_crtc_helper_add (&priv->crtc, &ingenic_drm_crtc_helper_funcs); - ret =drm_crtc_init_with_planes (drm, &priv->crtc, &priv->f1, + ret =drm_crtc_init_with_planes (drm, &priv->crtc, primary,NULL , &ingenic_drm_crtc_funcs,NULL );if (ret) {dev_err (dev,"Failed to init CRTC: %i\n" , ret);
drivers/gpu/drm/ingenic/ingenic-ipu.c +1 -1
@@ -753,7 +753,7 @@ static int ingenic_ipu_bind(struct device *dev, struct device *master, void *d) err =drm_universal_plane_init (drm, plane,1 , &ingenic_ipu_plane_funcs, soc_info->formats, soc_info->num_formats, -NULL ,DRM_PLANE_TYPE_PRIMARY ,NULL ); +NULL ,DRM_PLANE_TYPE_OVERLAY ,NULL );if (err) {dev_err (dev,"Failed to init plane: %i\n" , err);return err;
drivers/hwtracing/intel_th/core.c +17 -0
@@ -215,6 +215,22 @@ static ssize_t port_show(struct device *dev, struct device_attribute *attr,static DEVICE_ATTR_RO (port); +static void intel_th_trace_prepare (struct intel_th_device *thdev) +{ +struct intel_th_device *hub =to_intel_th_hub (thdev); +struct intel_th_driver *hubdrv =to_intel_th_driver (hub->dev.driver); + +if (hub->type !=INTEL_TH_SWITCH ) +return ; + +if (thdev->type !=INTEL_TH_OUTPUT ) +return ; + +pm_runtime_get_sync (&thdev->dev); + hubdrv->prepare (hub, &thdev->output); +pm_runtime_put (&thdev->dev); +} +static int intel_th_output_activate (struct intel_th_device *thdev) { struct intel_th_driver *thdrv =
@@ -235,6 +251,7 @@ static int intel_th_output_activate(struct intel_th_device *thdev)if (ret) goto fail_put; +intel_th_trace_prepare (thdev);if (thdrv->activate) ret = thdrv->activate (thdev);else
drivers/hwtracing/intel_th/gth.c +16 -0
@@ -564,6 +564,21 @@ static void gth_tscu_resync(struct gth_device *gth)iowrite32 (reg, gth->base +REG_TSCU_TSUCTRL ); } +static void intel_th_gth_prepare (struct intel_th_device *thdev, +struct intel_th_output *output) +{ +struct gth_device *gth =dev_get_drvdata (&thdev->dev); +int count; + +/* +* Wait until the output port is in reset before we start +* programming it. +*/ +for (count =GTH_PLE_WAITLOOP_DEPTH ; + count && !(gth_output_get (gth, output->port) &BIT (5 )); count--) +cpu_relax (); +} +/** * intel_th_gth_enable() - enable tracing to an output device * @thdev: GTH device
@@ -815,6 +830,7 @@ static struct intel_th_driver intel_th_gth_driver = { .assign = intel_th_gth_assign, .unassign = intel_th_gth_unassign, .set_output = intel_th_gth_set_output, + .prepare = intel_th_gth_prepare, .enable = intel_th_gth_enable, .trig_switch = intel_th_gth_switch, .disable = intel_th_gth_disable,
drivers/hwtracing/intel_th/intel_th.h +3 -0
@@ -143,6 +143,7 @@ intel_th_output_assigned(struct intel_th_device *thdev)* @remove: remove method * @assign: match a given output type device against available outputs * @unassign: deassociate an output type device from an output port +* @prepare: prepare output port for tracing * @enable: enable tracing for a given output device * @disable: disable tracing for a given output device * @irq: interrupt callback
@@ -164,6 +165,8 @@ struct intel_th_driver { struct intel_th_device *othdev);void (*unassign)(struct intel_th_device *thdev,struct intel_th_device *othdev); +void (*prepare)(struct intel_th_device *thdev, +struct intel_th_output *output);void (*enable)(struct intel_th_device *thdev,struct intel_th_output *output); void (*trig_switch)(struct intel_th_device *thdev,
drivers/i2c/i2c-core-base.c +3 -0
@@ -24,6 +24,7 @@#include <linux/i2c-smbus.h> #include <linux/idr.h> #include <linux/init.h> +#include <linux/interrupt.h> #include <linux/irqflags.h> #include <linux/jump_label.h> #include <linux/kernel.h>
@@ -585,6 +586,8 @@ static void i2c_device_shutdown(struct device *dev) driver =to_i2c_driver (dev->driver);if (driver->shutdown) driver->shutdown (client); +else if (client->irq >0 ) +disable_irq (client->irq); }static void i2c_client_dev_release (struct device *dev)
drivers/iio/gyro/fxas21002c_core.c +1 -10
@@ -366,14 +366,7 @@ static int fxas21002c_write(struct fxas21002c_data *data,static int fxas21002c_pm_get (struct fxas21002c_data *data) { -struct device *dev =regmap_get_device (data->regmap); -int ret; - - ret =pm_runtime_get_sync (dev); -if (ret <0 ) -pm_runtime_put_noidle (dev); - -return ret; +return pm_runtime_resume_and_get (regmap_get_device (data->regmap)); }static int fxas21002c_pm_put (struct fxas21002c_data *data)
@@ -1005,7 +998,6 @@ int fxas21002c_core_probe(struct device *dev, struct regmap *regmap, int irq, pm_disable:pm_runtime_disable (dev);pm_runtime_set_suspended (dev); -pm_runtime_put_noidle (dev);return ret; }
@@ -1019,7 +1011,6 @@ void fxas21002c_core_remove(struct device *dev)pm_runtime_disable (dev);pm_runtime_set_suspended (dev); -pm_runtime_put_noidle (dev); }EXPORT_SYMBOL_GPL (fxas21002c_core_remove);
drivers/iio/magnetometer/bmc150_magn.c +4 -6
@@ -263,7 +263,7 @@ static int bmc150_magn_set_power_state(struct bmc150_magn_data *data, bool on)int ret;if (on) { - ret =pm_runtime_get_sync (data->dev); + ret =pm_runtime_resume_and_get (data->dev); }else {pm_runtime_mark_last_busy (data->dev); ret =pm_runtime_put_autosuspend (data->dev);
@@ -272,9 +272,6 @@ static int bmc150_magn_set_power_state(struct bmc150_magn_data *data, bool on)if (ret <0 ) {dev_err (data->dev,"failed to change power state to %d\n" , on); -if (on) -pm_runtime_put_noidle (data->dev); -return ret; }#endif
@@ -944,12 +941,14 @@ int bmc150_magn_probe(struct device *dev, struct regmap *regmap, ret =iio_device_register (indio_dev);if (ret <0 ) {dev_err (dev,"unable to register iio device\n" ); - goto err_buffer_cleanup; + goto err_disable_runtime_pm; }dev_dbg (dev,"Registered device %s\n" , name);return 0 ; +err_disable_runtime_pm: +pm_runtime_disable (dev); err_buffer_cleanup:iio_triggered_buffer_cleanup (indio_dev); err_free_irq:
@@ -973,7 +972,6 @@ int bmc150_magn_remove(struct device *dev)pm_runtime_disable (dev);pm_runtime_set_suspended (dev); -pm_runtime_put_noidle (dev);iio_triggered_buffer_cleanup (indio_dev);
drivers/input/touchscreen/hideep.c +10 -3
@@ -361,13 +361,16 @@ static int hideep_enter_pgm(struct hideep_ts *ts)return -EIO ; } -static void hideep_nvm_unlock (struct hideep_ts *ts) +static int hideep_nvm_unlock (struct hideep_ts *ts) {u32 unmask_code; +int error;hideep_pgm_w_reg (ts,HIDEEP_FLASH_CFG ,HIDEEP_NVM_SFR_RPAGE ); -hideep_pgm_r_reg (ts,0x0000000C , &unmask_code); + error =hideep_pgm_r_reg (ts,0x0000000C , &unmask_code);hideep_pgm_w_reg (ts,HIDEEP_FLASH_CFG ,HIDEEP_NVM_DEFAULT_PAGE ); +if (error) +return error;/* make it unprotected code */ unmask_code &= ~HIDEEP_PROT_MODE ;
@@ -384,6 +387,8 @@ static void hideep_nvm_unlock(struct hideep_ts *ts)NVM_W_SFR (HIDEEP_NVM_MASK_OFS , ts->nvm_mask);SET_FLASH_HWCONTROL ();hideep_pgm_w_reg (ts,HIDEEP_FLASH_CFG ,HIDEEP_NVM_DEFAULT_PAGE ); + +return 0 ; }static int hideep_check_status (struct hideep_ts *ts)
@@ -462,7 +467,9 @@ static int hideep_program_nvm(struct hideep_ts *ts,u32 addr =0 ;int error; -hideep_nvm_unlock (ts); + error =hideep_nvm_unlock (ts); +if (error) +return error;while (ucode_len >0 ) { xfer_len =min_t (size_t, ucode_len,HIDEEP_NVM_PAGE_SIZE );
drivers/iommu/arm/arm-smmu/arm-smmu.c +7 -3
@@ -74,7 +74,7 @@ static bool using_legacy_binding, using_generic_binding;static inline int arm_smmu_rpm_get (struct arm_smmu_device *smmu) {if (pm_runtime_enabled (smmu->dev)) -return pm_runtime_get_sync (smmu->dev); +return pm_runtime_resume_and_get (smmu->dev);return 0 ; }
@@ -1284,6 +1284,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,u64 phys;unsigned long va, flags;int ret, idx = cfg->cbndx; +phys_addr_t addr =0 ; ret =arm_smmu_rpm_get (smmu);if (ret <0 )
@@ -1303,6 +1304,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,dev_err (dev,"iova to phys timed out on %pad. Falling back to software table walk.\n" , &iova); +arm_smmu_rpm_put (smmu);return ops->iova_to_phys (ops, iova); }
@@ -1311,12 +1313,14 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,if (phys &ARM_SMMU_CB_PAR_F ) {dev_err (dev,"translation fault!\n" );dev_err (dev,"PAR = 0x%llx\n" , phys); -return 0 ; + goto out; } + addr = (phys &GENMASK_ULL (39 ,12 )) | (iova &0xfff ); +out:arm_smmu_rpm_put (smmu); -return (phys &GENMASK_ULL (39 ,12 )) | (iova &0xfff ); +return addr; } static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
drivers/leds/leds-tlc591xx.c +6 -2
@@ -148,16 +148,20 @@ static int tlc591xx_probe(struct i2c_client *client, const struct i2c_device_id *id) { - struct device_node *np = dev_of_node(&client->dev), *child; + struct device_node *np, *child;struct device *dev = &client->dev;const struct tlc591xx *tlc591xx;struct tlc591xx_priv *priv;int err, count, reg; - tlc591xx =device_get_match_data (dev); + np =dev_of_node (dev);if (!np)return -ENODEV ; + tlc591xx =device_get_match_data (dev); +if (!tlc591xx) +return -ENODEV ; + count =of_get_available_child_count (np);if (!count || count > tlc591xx->max_leds)return -EINVAL ;
drivers/leds/leds-turris-omnia.c +1 -0
@@ -277,6 +277,7 @@ static const struct i2c_device_id omnia_id[] = { { "omnia", 0 }, { } }; +MODULE_DEVICE_TABLE (i2c, omnia_id);static struct i2c_driver omnia_leds_driver = { .probe = omnia_leds_probe,
drivers/memory/atmel-ebi.c +3 -1
@@ -600,8 +600,10 @@ static int atmel_ebi_probe(struct platform_device *pdev) child); ret =atmel_ebi_dev_disable (ebi, child); -if (ret) +if (ret) { +of_node_put (child);return ret; + } } }
drivers/memory/fsl_ifc.c +4 -4
@@ -97,7 +97,6 @@ static int fsl_ifc_ctrl_remove(struct platform_device *dev)iounmap (ctrl->gregs);dev_set_drvdata (&dev->dev,NULL ); -kfree (ctrl);return 0 ; }
@@ -209,7 +208,8 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev)dev_info (&dev->dev,"Freescale Integrated Flash Controller\n" ); - fsl_ifc_ctrl_dev =kzalloc (sizeof (*fsl_ifc_ctrl_dev),GFP_KERNEL ); + fsl_ifc_ctrl_dev =devm_kzalloc (&dev->dev,sizeof (*fsl_ifc_ctrl_dev), +GFP_KERNEL );if (!fsl_ifc_ctrl_dev)return -ENOMEM ;
@@ -219,8 +219,7 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev) fsl_ifc_ctrl_dev->gregs =of_iomap (dev->dev.of_node,0 );if (!fsl_ifc_ctrl_dev->gregs) {dev_err (&dev->dev,"failed to get memory region\n" ); - ret = -ENODEV ; - goto err; +return -ENODEV ; }if (of_property_read_bool (dev->dev.of_node,"little-endian" )) {
@@ -295,6 +294,7 @@ static int fsl_ifc_ctrl_probe(struct platform_device *dev)free_irq (fsl_ifc_ctrl_dev->irq, fsl_ifc_ctrl_dev);irq_dispose_mapping (fsl_ifc_ctrl_dev->irq); err: +iounmap (fsl_ifc_ctrl_dev->gregs);return ret; }
drivers/memory/pl353-smc.c +1 -0
@@ -407,6 +407,7 @@ static int pl353_smc_probe(struct amba_device *adev, const struct amba_id *id)break ; }if (!match) { + err = -ENODEV ;dev_err (&adev->dev,"no matching children\n" ); goto out_clk_disable; }
drivers/memory/stm32-fmc2-ebi.c +4 -0
@@ -1048,16 +1048,19 @@ static int stm32_fmc2_ebi_parse_dt(struct stm32_fmc2_ebi *ebi)if (ret) {dev_err (dev,"could not retrieve reg property: %d\n" , ret); +of_node_put (child);return ret; }if (bank >=FMC2_MAX_BANKS ) {dev_err (dev,"invalid reg value: %d\n" , bank); +of_node_put (child);return -EINVAL ; }if (ebi->bank_assigned &BIT (bank)) {dev_err (dev,"bank already assigned: %d\n" , bank); +of_node_put (child);return -EINVAL ; }
@@ -1066,6 +1069,7 @@ static int stm32_fmc2_ebi_parse_dt(struct stm32_fmc2_ebi *ebi)if (ret) {dev_err (dev,"setup chip select %d failed: %d\n" , bank, ret); +of_node_put (child);return ret; } }
drivers/mfd/da9052-i2c.c +1 -0
@@ -113,6 +113,7 @@ static const struct i2c_device_id da9052_i2c_id[] = { {"da9053-bc", DA9053_BC}, {} }; +MODULE_DEVICE_TABLE (i2c, da9052_i2c_id);#ifdef CONFIG_OF static const struct of_device_id dialog_dt_ids[] = {
drivers/mfd/motorola-cpcap.c +4 -0
@@ -327,6 +327,10 @@ static int cpcap_probe(struct spi_device *spi)if (ret)return ret; +/* Parent SPI controller uses DMA, CPCAP and child devices do not */ + spi->dev.coherent_dma_mask =0 ; + spi->dev.dma_mask = &spi->dev.coherent_dma_mask; +return devm_mfd_add_devices (&spi->dev,0 , cpcap_mfd_devices,ARRAY_SIZE (cpcap_mfd_devices),NULL ,0 ,NULL ); }
drivers/mfd/stmpe-i2c.c +1 -1
@@ -109,7 +109,7 @@ static const struct i2c_device_id stmpe_i2c_id[] = { { "stmpe2403", STMPE2403 }, { } }; -MODULE_DEVICE_TABLE(i2c, stmpe_id); +MODULE_DEVICE_TABLE(i2c, stmpe_i2c_id); static struct i2c_driver stmpe_i2c_driver = { .driver = {
drivers/misc/cardreader/alcor_pci.c +7 -1
@@ -139,7 +139,13 @@ static void alcor_pci_init_check_aspm(struct alcor_pci_priv *priv)u32 val32; priv->pdev_cap_off =alcor_pci_find_cap_offset (priv, priv->pdev); - priv->parent_cap_off =alcor_pci_find_cap_offset (priv, +/* +* A device might be attached to root complex directly and +* priv->parent_pdev will be NULL. In this case we don't check its +* capability and disable ASPM completely. +*/ +if (priv->parent_pdev) + priv->parent_cap_off =alcor_pci_find_cap_offset (priv, priv->parent_pdev);if ((priv->pdev_cap_off ==0 ) || (priv->parent_cap_off ==0 )) {
drivers/misc/habanalabs/gaudi/gaudi.c +2 -1
@@ -2164,7 +2164,7 @@ static void gaudi_init_mme_qman(struct hl_device *hdev, u32 mme_offset,/* Configure RAZWI IRQ */ mme_id = mme_offset / - (mmMME1_QM_GLBL_CFG0 - mmMME0_QM_GLBL_CFG0); + (mmMME1_QM_GLBL_CFG0 - mmMME0_QM_GLBL_CFG0) /2 ; mme_qm_err_cfg =MME_QMAN_GLBL_ERR_CFG_MSG_EN_MASK ;if (hdev->stop_on_err) {
@@ -3708,6 +3708,7 @@ static int gaudi_pin_memory_before_cs(struct hl_device *hdev,return 0 ; unpin_memory: +list_del (&userptr->job_node);hl_unpin_host_memory (hdev, userptr); free_userptr:kfree (userptr);
drivers/misc/habanalabs/goya/goya.c +1 -0
@@ -3190,6 +3190,7 @@ static int goya_pin_memory_before_cs(struct hl_device *hdev,return 0 ; unpin_memory: +list_del (&userptr->job_node);hl_unpin_host_memory (hdev, userptr); free_userptr:kfree (userptr);
drivers/misc/ibmasm/module.c +3 -2
@@ -111,7 +111,7 @@ static int ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id) result =ibmasm_init_remote_input_dev (sp);if (result) {dev_err (sp->dev,"Failed to initialize remote queue\n" ); - goto error_send_message; + goto error_init_remote; } result =ibmasm_send_driver_vpd (sp);
@@ -131,8 +131,9 @@ static int ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id)return 0 ; error_send_message: -disable_sp_interrupts (sp->base_address);ibmasm_free_remote_input_dev (sp); +error_init_remote: +disable_sp_interrupts (sp->base_address);free_irq (sp->irq, (void *)sp); error_request_irq:iounmap (sp->base_address);
drivers/net/virtio_net.c +25 -2
@@ -1519,6 +1519,8 @@ static int virtnet_poll_tx(struct napi_struct *napi, int budget)struct virtnet_info *vi = sq->vq->vdev->priv;unsigned int index =vq2txq (sq->vq);struct netdev_queue *txq; +int opaque; +bool done;if (unlikely (is_xdp_raw_buffer_queue (vi, index))) {/* We don't need to enable cb for XDP */
@@ -1528,10 +1530,28 @@ static int virtnet_poll_tx(struct napi_struct *napi, int budget) txq =netdev_get_tx_queue (vi->dev, index);__netif_tx_lock (txq,raw_smp_processor_id ()); +virtqueue_disable_cb (sq->vq);free_old_xmit_skbs (sq, true); + + opaque =virtqueue_enable_cb_prepare (sq->vq); + + done =napi_complete_done (napi,0 ); + +if (!done) +virtqueue_disable_cb (sq->vq); +__netif_tx_unlock (txq); -virtqueue_napi_complete (napi, sq->vq,0 ); +if (done) { +if (unlikely (virtqueue_poll (sq->vq, opaque))) { +if (napi_schedule_prep (napi)) { +__netif_tx_lock (txq,raw_smp_processor_id ()); +virtqueue_disable_cb (sq->vq); +__netif_tx_unlock (txq); +__napi_schedule (napi); + } + } + }if (sq->vq->num_free >=2 +MAX_SKB_FRAGS )netif_tx_wake_queue (txq);
@@ -3234,8 +3254,11 @@ static __maybe_unused int virtnet_restore(struct virtio_device *vdev)virtnet_set_queues (vi, vi->curr_queue_pairs); err =virtnet_cpu_notif_add (vi); -if (err) +if (err) { +virtnet_freeze_down (vdev); +remove_vq_common (vi);return err; + }return 0 ; }
drivers/nvme/target/tcp.c +0 -1
@@ -1467,7 +1467,6 @@ static void nvmet_tcp_state_change(struct sock *sk)case TCP_CLOSE_WAIT :case TCP_CLOSE :/* FALLTHRU */ - sk->sk_user_data =NULL ;nvmet_tcp_schedule_release_queue (queue);break ;default :
drivers/pci/controller/dwc/pcie-intel-gw.c +6 -4
@@ -39,6 +39,10 @@#define PCIE_APP_IRN_PM_TO_ACK BIT(9)#define PCIE_APP_IRN_LINK_AUTO_BW_STAT BIT(11)#define PCIE_APP_IRN_BW_MGT BIT(12) +#define PCIE_APP_IRN_INTA BIT(13) +#define PCIE_APP_IRN_INTB BIT(14) +#define PCIE_APP_IRN_INTC BIT(15) +#define PCIE_APP_IRN_INTD BIT(16)#define PCIE_APP_IRN_MSG_LTR BIT(18)#define PCIE_APP_IRN_SYS_ERR_RC BIT(29)#define PCIE_APP_INTX_OFST 12
@@ -48,10 +52,8 @@ PCIE_APP_IRN_RX_VDM_MSG | PCIE_APP_IRN_SYS_ERR_RC | \ PCIE_APP_IRN_PM_TO_ACK | PCIE_APP_IRN_MSG_LTR | \ PCIE_APP_IRN_BW_MGT | PCIE_APP_IRN_LINK_AUTO_BW_STAT | \ - (PCIE_APP_INTX_OFST + PCI_INTERRUPT_INTA) | \ - (PCIE_APP_INTX_OFST + PCI_INTERRUPT_INTB) | \ - (PCIE_APP_INTX_OFST + PCI_INTERRUPT_INTC) | \ - (PCIE_APP_INTX_OFST + PCI_INTERRUPT_INTD)) + PCIE_APP_IRN_INTA | PCIE_APP_IRN_INTB | \ + PCIE_APP_IRN_INTC | PCIE_APP_IRN_INTD)#define BUS_IATU_OFFSET SZ_256M#define RESET_INTERVAL_MS 100
drivers/pci/controller/dwc/pcie-tegra194.c +1 -1
@@ -1841,7 +1841,7 @@ static int tegra_pcie_ep_raise_msi_irq(struct tegra_pcie_dw *pcie, u16 irq)if (unlikely (irq >31 ))return -EINVAL ; -appl_writel (pcie, (1 << irq),APPL_MSI_CTRL_1 ); +appl_writel (pcie,BIT (irq),APPL_MSI_CTRL_1 );return 0 ; }
drivers/pci/controller/pci-ftpci100.c +15 -15
@@ -34,12 +34,12 @@* Special configuration registers directly in the first few words * in I/O space. */ -#define PCI_IOSIZE 0x00 -#define PCI_PROT 0x04/* AHB protection */ -#define PCI_CTRL 0x08/* PCI control signal */ -#define PCI_SOFTRST 0x10/* Soft reset counter and response error enable */ -#define PCI_CONFIG 0x28/* PCI configuration command register */ -#define PCI_DATA 0x2C +#define FTPCI_IOSIZE 0x00 +#define FTPCI_PROT 0x04/* AHB protection */ +#define FTPCI_CTRL 0x08/* PCI control signal */ +#define FTPCI_SOFTRST 0x10/* Soft reset counter and response error enable */ +#define FTPCI_CONFIG 0x28/* PCI configuration command register */ +#define FTPCI_DATA 0x2C#define FARADAY_PCI_STATUS_CMD 0x04/* Status and command */ #define FARADAY_PCI_PMC 0x40/* Power management control */
@@ -195,9 +195,9 @@ static int faraday_raw_pci_read_config(struct faraday_pci *p, int bus_number,PCI_CONF_FUNCTION (PCI_FUNC (fn)) |PCI_CONF_WHERE (config) |PCI_CONF_ENABLE , - p->base + PCI_CONFIG); + p->base + FTPCI_CONFIG); - *value =readl (p->base +PCI_DATA ); + *value =readl (p->base +FTPCI_DATA );if (size ==1 ) *value = (*value >> (8 * (config &3 ))) &0xFF ;
@@ -230,17 +230,17 @@ static int faraday_raw_pci_write_config(struct faraday_pci *p, int bus_number,PCI_CONF_FUNCTION (PCI_FUNC (fn)) |PCI_CONF_WHERE (config) |PCI_CONF_ENABLE , - p->base + PCI_CONFIG); + p->base + FTPCI_CONFIG);switch (size) {case 4 : -writel (value, p->base +PCI_DATA ); +writel (value, p->base +FTPCI_DATA );break ;case 2 : -writew (value, p->base +PCI_DATA + (config &3 )); +writew (value, p->base +FTPCI_DATA + (config &3 ));break ;case 1 : -writeb (value, p->base +PCI_DATA + (config &3 )); +writeb (value, p->base +FTPCI_DATA + (config &3 ));break ;default : ret =PCIBIOS_BAD_REGISTER_NUMBER ;
@@ -469,7 +469,7 @@ static int faraday_pci_probe(struct platform_device *pdev)if (!faraday_res_to_memcfg (io->start - win->offset,resource_size (io), &val)) {/* setup I/O space size */ -writel (val, p->base +PCI_IOSIZE ); +writel (val, p->base +FTPCI_IOSIZE ); }else {dev_err (dev,"illegal IO mem size\n" );return -EINVAL ;
@@ -477,11 +477,11 @@ static int faraday_pci_probe(struct platform_device *pdev) }/* Setup hostbridge */ - val =readl (p->base +PCI_CTRL ); + val =readl (p->base +FTPCI_CTRL ); val |=PCI_COMMAND_IO ; val |=PCI_COMMAND_MEMORY ; val |=PCI_COMMAND_MASTER ; -writel (val, p->base +PCI_CTRL ); +writel (val, p->base +FTPCI_CTRL );/* Mask and clear all interrupts */ faraday_raw_pci_write_config (p,0 ,0 ,FARADAY_PCI_CTRL2 +2 ,2 ,0xF000 );if (variant->cascaded_irq) {
drivers/pci/controller/pci-hyperv.c +23 -7
@@ -444,7 +444,6 @@ enum hv_pcibus_state { hv_pcibus_probed, hv_pcibus_installed, hv_pcibus_removing, - hv_pcibus_removed, hv_pcibus_maximum };
@@ -3247,8 +3246,9 @@ static int hv_pci_bus_exit(struct hv_device *hdev, bool keep_devs)struct pci_packet teardown_packet;u8 buffer[sizeof (struct pci_message )]; } pkt; -struct hv_dr_state *dr;struct hv_pci_compl comp_pkt; +struct hv_pci_dev *hpdev, *tmp; +unsigned long flags;int ret;/*
@@ -3260,9 +3260,16 @@ static int hv_pci_bus_exit(struct hv_device *hdev, bool keep_devs)if (!keep_devs) {/* Delete any children which might still exist. */ - dr =kzalloc (sizeof (*dr),GFP_KERNEL ); -if (dr &&hv_pci_start_relations_work (hbus, dr)) -kfree (dr); +spin_lock_irqsave (&hbus->device_list_lock, flags); +list_for_each_entry_safe (hpdev, tmp, &hbus->children, list_entry) { +list_del (&hpdev->list_entry); +if (hpdev->pci_slot) +pci_destroy_slot (hpdev->pci_slot); +/* For the two refs got in new_pcichild_device() */ +put_pcichild (hpdev); +put_pcichild (hpdev); + } +spin_unlock_irqrestore (&hbus->device_list_lock, flags); } ret =hv_send_resources_released (hdev);
@@ -3305,13 +3312,23 @@ static int hv_pci_remove(struct hv_device *hdev) hbus =hv_get_drvdata (hdev);if (hbus->state == hv_pcibus_installed) { +tasklet_disable (&hdev->channel->callback_event); + hbus->state = hv_pcibus_removing; +tasklet_enable (&hdev->channel->callback_event); +destroy_workqueue (hbus->wq); + hbus->wq =NULL ; +/* +* At this point, no work is running or can be scheduled +* on hbus-wq. We can't race with hv_pci_devices_present() +* or hv_pci_eject_device(), it's safe to proceed. +*/ +/* Remove the bus from PCI's point of view. */ pci_lock_rescan_remove ();pci_stop_root_bus (hbus->pci_bus);hv_pci_remove_slots (hbus);pci_remove_root_bus (hbus->pci_bus);pci_unlock_rescan_remove (); - hbus->state = hv_pcibus_removed; } ret =hv_pci_bus_exit (hdev, false);
@@ -3326,7 +3343,6 @@ static int hv_pci_remove(struct hv_device *hdev)irq_domain_free_fwnode (hbus->sysdata.fwnode);put_hvpcibus (hbus);wait_for_completion (&hbus->remove_event); -destroy_workqueue (hbus->wq);hv_put_dom_num (hbus->sysdata.domain);
drivers/pci/controller/pci-tegra.c +1 -0
@@ -2506,6 +2506,7 @@ static const struct of_device_id tegra_pcie_of_match[] = { { .compatible = "nvidia,tegra20-pcie", .data = &tegra20_pcie }, { }, }; +MODULE_DEVICE_TABLE (of, tegra_pcie_of_match);static void *tegra_pcie_ports_seq_start (struct seq_file *s,loff_t *pos) {
drivers/pci/controller/pcie-iproc-msi.c +18 -11
@@ -171,7 +171,7 @@ static struct irq_chip iproc_msi_irq_chip = {static struct msi_domain_info iproc_msi_domain_info = { .flags =MSI_FLAG_USE_DEF_DOM_OPS |MSI_FLAG_USE_DEF_CHIP_OPS | -MSI_FLAG_MULTI_PCI_MSI |MSI_FLAG_PCI_MSIX , +MSI_FLAG_PCI_MSIX , .chip = &iproc_msi_irq_chip, };
@@ -250,20 +250,23 @@ static int iproc_msi_irq_domain_alloc(struct irq_domain *domain,struct iproc_msi *msi = domain->host_data;int hwirq, i; +if (msi->nr_cpus >1 && nr_irqs >1 ) +return -EINVAL ; +mutex_lock (&msi->bitmap_lock); -/* Allocate 'nr_cpus' number of MSI vectors each time */ - hwirq =bitmap_find_next_zero_area (msi->bitmap, msi->nr_msi_vecs,0 , - msi->nr_cpus,0 ); -if (hwirq < msi->nr_msi_vecs) { -bitmap_set (msi->bitmap, hwirq, msi->nr_cpus); - }else { -mutex_unlock (&msi->bitmap_lock); -return -ENOSPC ; - } +/* +* Allocate 'nr_irqs' multiplied by 'nr_cpus' number of MSI vectors +* each time +*/ + hwirq =bitmap_find_free_region (msi->bitmap, msi->nr_msi_vecs, +order_base_2 (msi->nr_cpus * nr_irqs));mutex_unlock (&msi->bitmap_lock); +if (hwirq <0 ) +return -ENOSPC ; +for (i =0 ; i < nr_irqs; i++) { irq_domain_set_info(domain, virq + i, hwirq + i, &iproc_msi_bottom_irq_chip,
@@ -284,7 +287,8 @@ static void iproc_msi_irq_domain_free(struct irq_domain *domain,mutex_lock (&msi->bitmap_lock); hwirq =hwirq_to_canonical_hwirq (msi, data->hwirq); -bitmap_clear (msi->bitmap, hwirq, msi->nr_cpus); +bitmap_release_region (msi->bitmap, hwirq, +order_base_2 (msi->nr_cpus * nr_irqs));mutex_unlock (&msi->bitmap_lock);
@@ -539,6 +543,9 @@ int iproc_msi_init(struct iproc_pcie *pcie, struct device_node *node)mutex_init (&msi->bitmap_lock); msi->nr_cpus =num_possible_cpus (); +if (msi->nr_cpus ==1 ) + iproc_msi_domain_info.flags |=MSI_FLAG_MULTI_PCI_MSI ; + msi->nr_irqs =of_irq_count (node);if (!msi->nr_irqs) {dev_err (pcie->dev,"found no MSI GIC interrupt\n" );
drivers/pci/controller/pcie-rockchip-host.c +6 -6
@@ -593,10 +593,6 @@ static int rockchip_pcie_parse_host_dt(struct rockchip_pcie *rockchip)if (err)return err; - err =rockchip_pcie_setup_irq (rockchip); -if (err) -return err; - rockchip->vpcie12v =devm_regulator_get_optional (dev,"vpcie12v" );if (IS_ERR (rockchip->vpcie12v)) {if (PTR_ERR (rockchip->vpcie12v) != -ENODEV )
@@ -974,8 +970,6 @@ static int rockchip_pcie_probe(struct platform_device *pdev)if (err) goto err_vpcie; -rockchip_pcie_enable_interrupts (rockchip); - err =rockchip_pcie_init_irq_domain (rockchip);if (err <0 ) goto err_deinit_port;
@@ -993,6 +987,12 @@ static int rockchip_pcie_probe(struct platform_device *pdev) bridge->sysdata = rockchip; bridge->ops = &rockchip_pcie_ops; + err =rockchip_pcie_setup_irq (rockchip); +if (err) + goto err_remove_irq_domain; + +rockchip_pcie_enable_interrupts (rockchip); + err =pci_host_probe (bridge);if (err <0 ) goto err_remove_irq_domain;
drivers/pci/hotplug/pciehp_hpc.c +36 -0
@@ -563,6 +563,32 @@ void pciehp_power_off_slot(struct controller *ctrl) PCI_EXP_SLTCTL_PWR_OFF); } +static void pciehp_ignore_dpc_link_change (struct controller *ctrl, +struct pci_dev *pdev,int irq) +{ +/* +* Ignore link changes which occurred while waiting for DPC recovery. +* Could be several if DPC triggered multiple times consecutively. +*/ +synchronize_hardirq (irq); +atomic_and (~PCI_EXP_SLTSTA_DLLSC , &ctrl->pending_events); +if (pciehp_poll_mode) +pcie_capability_write_word (pdev,PCI_EXP_SLTSTA , +PCI_EXP_SLTSTA_DLLSC ); +ctrl_info (ctrl,"Slot(%s): Link Down/Up ignored (recovered by DPC)\n" , +slot_name (ctrl)); + +/* +* If the link is unexpectedly down after successful recovery, +* the corresponding link change may have been ignored above. +* Synthesize it to ensure that it is acted on. +*/ +down_read (&ctrl->reset_lock); +if (!pciehp_check_link_active (ctrl)) +pciehp_request (ctrl,PCI_EXP_SLTSTA_DLLSC );
Lines of this file are not shown. View the raw message.
drivers/pci/pcie/dpc.c +69 -5
74 lines not on this page · raw message
drivers/phy/intel/phy-intel-keembay-emmc.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/power/supply/max17042_battery.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/power/supply/sc27xx_fuel_gauge.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/remoteproc/ti_k3_r5_remoteproc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/device_handler/scsi_dh_alua.c +6 -5
Lines of this file are not shown. View the raw message.
drivers/scsi/libiscsi.c +57 -65
122 lines not on this page · raw message
drivers/scsi/megaraid/megaraid_sas_base.c +88 -8
96 lines not on this page · raw message
drivers/scsi/megaraid/megaraid_sas_fp.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/megaraid/megaraid_sas_fusion.c +8 -2
Lines of this file are not shown. View the raw message.
drivers/scsi/storvsc_drv.c +33 -28
61 lines not on this page · raw message
drivers/usb/common/usb-conn-gpio.c +26 -18
44 lines not on this page · raw message
fs/nfs/delegation.c +56 -15
71 lines not on this page · raw message
fs/nfs/nfs4client.c +42 -40
82 lines not on this page · raw message
fs/nfs/pnfs_nfs.c +26 -26
52 lines not on this page · raw message
sound/soc/intel/boards/kbl_da7219_max98357a.c +2 -2
Lines of this file are not shown. View the raw message.
sound/soc/intel/boards/sof_da7219_max98373.c +1 -0
Lines of this file are not shown. View the raw message.
sound/soc/intel/boards/sof_sdw_common.h +1 -0
Lines of this file are not shown. View the raw message.
sound/soc/intel/common/soc-acpi-intel-kbl-match.c +1 -1
Lines of this file are not shown. View the raw message.
sound/usb/usx2y/usX2Yhwdep.c +28 -28
56 lines not on this page · raw message
sound/usb/usx2y/usbus428ctldefs.h +51 -51
102 lines not on this page · raw message
sound/usb/usx2y/usbusx2y.c +109 -109
218 lines not on this page · raw message
sound/usb/usx2y/usbusx2y.h +29 -29
58 lines not on this page · raw message
sound/usb/usx2y/usbusx2yaudio.c +224 -224
448 lines not on this page · raw message
sound/usb/usx2y/usx2yhwdeppcm.c +205 -205
410 lines not on this page · raw message
tools/testing/selftests/powerpc/pmu/ebb/no_handler_test.c +0 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/timers/rtcpie.c +9 -1
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.