Linux 5.10.36
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.36 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
------------
Makefile | 10 arch/arm/boot/compressed/Makefile | 4 arch/arm/boot/dts/at91-sam9x60ek.dts | 3 arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | 3 arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts | 3 arch/arm/boot/dts/at91-sama5d2_icp.dts | 3 arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts | 3 arch/arm/boot/dts/at91-sama5d2_xplained.dts | 3 arch/arm/boot/dts/at91-sama5d3_xplained.dts | 3 arch/arm/boot/dts/at91sam9260ek.dts | 3 arch/arm/boot/dts/at91sam9g20ek_common.dtsi | 3 arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts | 4 arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts | 4 arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts | 4 arch/arm/boot/dts/bcm4708-netgear-r6250.dts | 4 arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts | 4 arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts | 4 arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts | 4 arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts | 4 arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts | 4 arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts | 4 arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts | 4 arch/arm/boot/dts/bcm4709-linksys-ea9200.dts | 4 arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 4 arch/arm/boot/dts/bcm4709-netgear-r8000.dts | 4 arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 4 arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 4 arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts | 4 arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts | 4 arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 4 arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 4 arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 4 arch/arm/boot/dts/bcm47094-netgear-r8500.dts | 4 arch/arm/boot/dts/bcm47094-phicomm-k3.dts | 4 arch/arm/boot/dts/ste-href-tvk1281618-r3.dtsi | 73 ++-- arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 2 arch/arm/crypto/curve25519-core.S | 2 arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts | 4 arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 3 arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 arch/arm64/kernel/vdso/vdso.lds.S | 8 arch/powerpc/include/asm/reg.h | 1 arch/powerpc/include/uapi/asm/errno.h | 1 arch/powerpc/kernel/eeh.c | 11 arch/powerpc/kernel/setup_64.c | 19 - arch/powerpc/kexec/file_load_64.c | 92 +++++ arch/powerpc/lib/Makefile | 3 arch/s390/crypto/arch_random.c | 4 arch/s390/kernel/dis.c | 2 arch/x86/Kconfig | 2 arch/x86/Makefile | 1 arch/x86/boot/compressed/Makefile | 1 arch/x86/boot/compressed/mem_encrypt.S | 6 arch/x86/kernel/cpu/common.c | 2 arch/x86/kernel/sev-es-shared.c | 6 arch/x86/mm/mem_encrypt_identity.c | 35 +- crypto/api.c | 2 crypto/rng.c | 10 drivers/acpi/arm64/gtdt.c | 10 drivers/acpi/custom_method.c | 4 drivers/ata/ahci.c | 5 drivers/ata/ahci.h | 1 drivers/ata/libahci.c | 5 drivers/block/rnbd/rnbd-clt-sysfs.c | 10 drivers/bus/mhi/core/init.c | 16 drivers/bus/mhi/core/main.c | 110 +++++- drivers/bus/mhi/core/pm.c | 5 drivers/bus/ti-sysc.c | 49 ++ drivers/char/random.c | 4 drivers/char/tpm/eventlog/acpi.c | 33 + drivers/char/tpm/eventlog/common.c | 3 drivers/char/tpm/eventlog/efi.c | 29 + drivers/clk/socfpga/clk-gate-a10.c | 1 drivers/cpuidle/cpuidle-tegra.c | 12 drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 2 drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c | 2 drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c | 2 drivers/crypto/hisilicon/sec2/sec_crypto.c | 2 drivers/crypto/omap-aes.c | 6 drivers/crypto/qat/qat_common/qat_algs.c | 11 drivers/crypto/sa2ul.c | 2 drivers/crypto/stm32/stm32-cryp.c | 4 drivers/crypto/stm32/stm32-hash.c | 8 drivers/extcon/extcon-arizona.c | 57 +-- drivers/firmware/efi/libstub/Makefile | 3 drivers/fpga/dfl-pci.c | 18 - drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 8 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 9 drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c | 7 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 17 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 17 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 14 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 15 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 115 ++++-- drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c | 4 drivers/gpu/drm/amd/display/dc/core/dc.c | 3 drivers/gpu/drm/amd/display/dc/dce/dce_aux.h | 1 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 2 drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c | 1 drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c | 1 drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c | 28 + drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20v2.c | 28 + drivers/gpu/drm/amd/display/dc/dml/dcn21/display_rq_dlg_calc_21.c | 28 + drivers/gpu/drm/amd/display/dc/dml/dcn30/display_rq_dlg_calc_30.c | 28 + drivers/gpu/drm/amd/display/dc/dml/dml1_display_rq_dlg_calc.c | 28 + drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c | 2 drivers/gpu/drm/arm/display/include/malidp_utils.h | 3 drivers/gpu/drm/arm/display/komeda/komeda_pipeline.c | 16 drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c | 19 - drivers/gpu/drm/ast/ast_drv.c | 2 drivers/gpu/drm/ast/ast_mode.c | 2 drivers/gpu/drm/drm_panel_orientation_quirks.c | 14 drivers/gpu/drm/i915/intel_pm.c | 2 drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c | 18 - drivers/gpu/drm/msm/dp/dp_hpd.c | 4 drivers/gpu/drm/qxl/qxl_display.c | 4 drivers/gpu/drm/qxl/qxl_drv.c | 2 drivers/gpu/drm/radeon/radeon_ttm.c | 5 drivers/gpu/drm/vkms/vkms_crtc.c | 3 drivers/hwtracing/intel_th/gth.c | 4 drivers/hwtracing/intel_th/pci.c | 10 drivers/input/touchscreen/ili210x.c | 2 drivers/irqchip/irq-gic-v3.c | 8 drivers/md/dm-integrity.c | 1 drivers/md/dm-raid.c | 34 + drivers/md/dm-rq.c | 2 drivers/md/persistent-data/dm-btree-internal.h | 4 drivers/md/persistent-data/dm-space-map-common.c | 2 drivers/md/persistent-data/dm-space-map-common.h | 8 drivers/md/raid1.c | 2 drivers/media/dvb-core/dvbdev.c | 1 drivers/media/i2c/adv7511-v4l2.c | 2 drivers/media/i2c/adv7604.c | 2 drivers/media/i2c/adv7842.c | 2 drivers/media/i2c/tc358743.c | 2 drivers/media/i2c/tda1997x.c | 2 drivers/media/pci/saa7164/saa7164-encoder.c | 20 - drivers/media/pci/sta2x11/Kconfig | 1 drivers/media/platform/qcom/venus/hfi_parser.c | 6 drivers/media/platform/sti/bdisp/bdisp-debug.c | 2 drivers/media/platform/sunxi/sun8i-di/sun8i-di.c | 2 drivers/media/rc/ite-cir.c | 8 drivers/media/test-drivers/vivid/vivid-core.c | 6 drivers/media/usb/dvb-usb/dvb-usb-init.c | 90 +++-- drivers/media/usb/dvb-usb/dvb-usb.h | 2 drivers/media/usb/em28xx/em28xx-dvb.c | 1 drivers/media/usb/gspca/gspca.c | 2 drivers/media/usb/gspca/gspca.h | 1 drivers/media/usb/gspca/sq905.c | 2 drivers/media/usb/gspca/stv06xx/stv06xx.c | 9 drivers/media/v4l2-core/v4l2-ctrls.c | 137 +++---- drivers/mfd/arizona-irq.c | 2 drivers/mfd/da9063-i2c.c | 10 drivers/mmc/core/block.c | 16 drivers/mmc/core/core.c | 76 ---- drivers/mmc/core/core.h | 17 drivers/mmc/core/host.c | 40 ++ drivers/mmc/core/mmc.c | 7 drivers/mmc/core/mmc_ops.c | 4 drivers/mmc/core/sd.c | 6 drivers/mmc/core/sdio.c | 28 + drivers/mmc/host/sdhci-brcmstb.c | 1 drivers/mmc/host/sdhci-esdhc-imx.c | 2 drivers/mmc/host/sdhci-pci-core.c | 29 + drivers/mmc/host/sdhci-pci.h | 2 drivers/mmc/host/sdhci-tegra.c | 32 + drivers/mmc/host/sdhci.c | 60 +-- drivers/mmc/host/uniphier-sd.c | 5 drivers/mtd/maps/physmap-bt1-rom.c | 2 drivers/mtd/nand/raw/atmel/nand-controller.c | 6 drivers/mtd/nand/spi/core.c | 2 drivers/mtd/spi-nor/core.c | 33 + drivers/mtd/spi-nor/macronix.c | 3 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c | 30 - drivers/net/ethernet/sfc/farch.c | 16 drivers/net/wimax/i2400m/op-rfkill.c | 2 drivers/net/wireless/rsi/rsi_91x_sdio.c | 2 drivers/nvme/target/discovery.c | 6 drivers/pci/pci.c | 16 drivers/perf/arm_pmu_platform.c | 9 drivers/phy/ti/phy-twl4030-usb.c | 2 drivers/platform/x86/intel_pmc_core.c | 19 - drivers/platform/x86/intel_speed_select_if/isst_if_mbox_pci.c | 33 + drivers/power/supply/bq27xxx_battery.c | 51 +- drivers/power/supply/cpcap-battery.c | 2 drivers/power/supply/cpcap-charger.c | 3 drivers/power/supply/generic-adc-battery.c | 2 drivers/power/supply/lp8788-charger.c | 2 drivers/power/supply/pm2301_charger.c | 2 drivers/power/supply/s3c_adc_battery.c | 2 drivers/power/supply/tps65090-charger.c | 2 drivers/power/supply/tps65217_charger.c | 2 drivers/s390/crypto/zcrypt_card.c | 1 drivers/s390/crypto/zcrypt_queue.c | 1 drivers/scsi/device_handler/scsi_dh_alua.c | 5 drivers/scsi/libfc/fc_lport.c | 2 drivers/scsi/lpfc/lpfc_attr.c | 75 ++-- drivers/scsi/lpfc/lpfc_crtn.h | 3 drivers/scsi/lpfc/lpfc_hw4.h | 174 ---------- drivers/scsi/lpfc/lpfc_init.c | 112 ------ drivers/scsi/lpfc/lpfc_mbox.c | 36 -- drivers/scsi/lpfc/lpfc_nportdisc.c | 11 drivers/scsi/lpfc/lpfc_nvmet.c | 1 drivers/scsi/lpfc/lpfc_sli.c | 43 +- drivers/scsi/mpt3sas/mpt3sas_base.c | 4 drivers/scsi/qla2xxx/qla_attr.c | 8 drivers/scsi/qla2xxx/qla_bsg.c | 3 drivers/scsi/qla2xxx/qla_os.c | 7 drivers/scsi/smartpqi/smartpqi_init.c | 161 +++++++++ drivers/soc/tegra/pmc.c | 70 +++- drivers/soundwire/cadence_master.c | 10 drivers/spi/spi-ath79.c | 3 drivers/spi/spi-dln2.c | 2 drivers/spi/spi-omap-100k.c | 6 drivers/spi/spi-qup.c | 2 drivers/spi/spi-stm32-qspi.c | 18 - drivers/spi/spi-ti-qspi.c | 20 - drivers/spi/spi.c | 16 drivers/staging/media/atomisp/pci/atomisp_fops.c | 3 drivers/staging/media/imx/imx-media-capture.c | 2 drivers/staging/media/ipu3/ipu3-v4l2.c | 36 +- drivers/target/target_core_pscsi.c | 3 drivers/tee/optee/core.c | 10 drivers/thermal/cpufreq_cooling.c | 2 drivers/thermal/gov_fair_share.c | 4 drivers/tty/n_gsm.c | 14 drivers/tty/vt/vt.c | 1 drivers/usb/core/hub.c | 2 drivers/usb/dwc2/core_intr.c | 8 drivers/usb/dwc3/core.c | 29 + drivers/usb/dwc3/core.h | 9 drivers/usb/dwc3/gadget.c | 41 +- drivers/usb/gadget/config.c | 4 drivers/usb/gadget/function/f_fs.c | 3 drivers/usb/gadget/function/f_uac1.c | 43 ++ drivers/usb/gadget/function/f_uac2.c | 39 ++ drivers/usb/gadget/function/f_uvc.c | 8 drivers/usb/gadget/legacy/webcam.c | 1 drivers/usb/gadget/udc/dummy_hcd.c | 23 - drivers/usb/gadget/udc/tegra-xudc.c | 2 drivers/usb/host/xhci-mem.c | 12 drivers/usb/host/xhci-mtk.c | 3 drivers/usb/host/xhci-mtk.h | 1 drivers/usb/host/xhci.c | 14 drivers/usb/musb/musb_core.c | 2 drivers/vhost/vdpa.c | 1 drivers/video/backlight/qcom-wled.c | 29 + drivers/video/fbdev/core/fbcmap.c | 8 drivers/virt/nitro_enclaves/ne_misc_dev.c | 43 -- fs/btrfs/compression.c | 11 fs/btrfs/ctree.c | 20 + fs/btrfs/ioctl.c | 18 - fs/btrfs/relocation.c | 46 +- fs/btrfs/transaction.c | 12 fs/cifs/connect.c | 1 fs/cifs/sess.c | 6 fs/cifs/smb2ops.c | 18 - fs/cifs/smb2pdu.c | 5 fs/ecryptfs/main.c | 6 fs/erofs/erofs_fs.h | 3 fs/erofs/inode.c | 7 fs/eventpoll.c | 6 fs/exfat/balloc.c | 11 fs/ext4/fast_commit.c | 4 fs/ext4/file.c | 25 + fs/ext4/ialloc.c | 51 +- fs/ext4/ioctl.c | 6 fs/ext4/mmp.c | 2 fs/ext4/super.c | 9 fs/f2fs/node.c | 3 fs/f2fs/verity.c | 75 +++- fs/fuse/file.c | 41 +- fs/fuse/fuse_i.h | 1 fs/fuse/virtio_fs.c | 1 fs/jbd2/transaction.c | 15 fs/jffs2/compr_rtime.c | 3 fs/jffs2/file.c | 1 fs/jffs2/scan.c | 2 fs/nfs/fs_context.c | 12 fs/nfs/pnfs.c | 7 fs/stat.c | 8 fs/ubifs/replay.c | 3 include/crypto/acompress.h | 2 include/crypto/aead.h | 2 include/crypto/akcipher.h | 2 include/crypto/chacha.h | 9 include/crypto/hash.h | 4 include/crypto/kpp.h | 2 include/crypto/rng.h | 2 include/crypto/skcipher.h | 2 include/linux/mfd/da9063/registers.h | 3 include/linux/mfd/intel-m10-bmc.h | 2 include/linux/mmc/host.h | 3 include/linux/perf_event.h | 1 include/linux/power/bq27xxx_battery.h | 1 include/media/v4l2-ctrls.h | 12 include/scsi/libfcoe.h | 2 include/uapi/linux/usb/video.h | 3 kernel/.gitignore | 1 kernel/Makefile | 9 kernel/events/core.c | 142 ++++---- kernel/futex.c | 7 kernel/irq/matrix.c | 4 kernel/kcsan/core.c | 2 kernel/kcsan/debugfs.c | 4 kernel/kcsan/kcsan.h | 5 kernel/rcu/tree.c | 2 kernel/sched/fair.c | 31 + kernel/sched/features.h | 3 kernel/sched/psi.c | 5 kernel/time/posix-timers.c | 4 kernel/trace/ftrace.c | 5 kernel/trace/trace.c | 41 -- kernel/trace/trace_clock.c | 44 +- lib/dynamic_debug.c | 2 lib/vsprintf.c | 2 net/bluetooth/ecdh_helper.h | 2 net/openvswitch/actions.c | 8 security/commoncap.c | 2 sound/isa/sb/emu8000.c | 4 sound/isa/sb/sb16_csp.c | 8 sound/pci/hda/patch_conexant.c | 14 sound/pci/hda/patch_realtek.c | 52 ++ sound/usb/clock.c | 18 - sound/usb/mixer_maps.c | 12 tools/power/x86/intel-speed-select/isst-display.c | 12 tools/power/x86/turbostat/turbostat.c | 19 - tools/testing/selftests/arm64/mte/Makefile | 2 tools/testing/selftests/arm64/mte/mte_common_util.c | 13 tools/testing/selftests/resctrl/Makefile | 2 tools/testing/selftests/resctrl/cache.c | 8 tools/testing/selftests/resctrl/cat_test.c | 12 tools/testing/selftests/resctrl/cqm_test.c | 14 tools/testing/selftests/resctrl/fill_buf.c | 4 tools/testing/selftests/resctrl/mba_test.c | 2 tools/testing/selftests/resctrl/mbm_test.c | 2 tools/testing/selftests/resctrl/resctrl.h | 21 - tools/testing/selftests/resctrl/resctrl_tests.c | 14 tools/testing/selftests/resctrl/resctrl_val.c | 85 +++- tools/testing/selftests/resctrl/resctrlfs.c | 79 +++- 344 files changed, 3030 insertions(+), 1639 deletions(-)
Abhinav Kumar (1):
drm/msm/dp: Fix incorrect NULL check kbot warnings in DP driver
Adrian Hunter (2):
mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based controllers
mmc: sdhci-pci: Add PCI IDs for Intel LKF
Al Cooper (1):
mmc: sdhci-brcmstb: Remove CQE quirk
Alexander Lobakin (1):
mtd: spinand: core: add missing MODULE_DEVICE_TABLE()
Alexander Shishkin (2):
intel_th: pci: Add Rocket Lake CPU support
intel_th: pci: Add Alder Lake-M support
Andre Przywara (2):
kselftest/arm64: mte: Fix compilation with native compiler kselftest/arm64: mte: Fix MTE feature detection
Aniruddha Tvs Rao (1):
mmc: sdhci-tegra: Add required callbacks to set/clear CQE_EN bit
Anirudh Rayabharam (1):
usb: gadget: dummy_hcd: fix gpf in gadget_setup
Anson Jacob (3):
drm/amdkfd: Fix UBSAN shift-out-of-bounds warning drm/amd/display: Fix UBSAN warning for not a valid value for type '_Bool' drm/amd/display: Fix UBSAN: shift-out-of-bounds warning
Ard Biesheuvel (2):
ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld
crypto: api - check for ERR pointers in crypto_destroy_tfm()
Aric Cyr (2):
drm/amd/display: Don't optimize bandwidth before disabling planes drm/amd/display: DCHUB underflow counter increasing in some scenarios
Arnd Bergmann (2):
amdgpu: avoid incorrect %hu format string
security: commoncap: fix -Wstringop-overread warning
Artur Petrosyan (1):
usb: dwc2: Fix session request interrupt handler
Arun Easi (1):
scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
Aurelien Aptel (1):
smb2: fix use-after-free in smb2_ioctl_query_info()
Avri Altman (2):
mmc: block: Update ext_csd.cache_ctrl if it was written
mmc: block: Issue a cache flush only when it's enabled
Bart Van Assche (2):
scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
scsi: libfc: Fix a format specifier
Bas Nieuwenhuizen (1):
tools/power/turbostat: Fix turbostat for AMD Zen CPUs
Benjamin Block (1):
dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails
Bhaumik Bhatt (3):
bus: mhi: core: Clear configuration from channel context during reset
bus: mhi: core: Destroy SBL devices when moving to mission mode
bus: mhi: core: Clear context for stopped channels from remove()
Bill Wendling (1):
arm64/vdso: Discard .note.gnu.property sections in vDSO
Bixuan Cui (2):
usb: musb: fix PM reference leak in musb_irq_work()
usb: core: hub: Fix PM reference leak in usb_port_resume()
Calvin Walton (1):
tools/power turbostat: Fix offset overflow issue in index converting
Carl Philipp Klemm (1):
power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce
Carsten Haitzler (1):
drm/komeda: Fix bit check to import to value of proper type
Chaitanya Kulkarni (1):
scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
Chao Yu (1):
f2fs: fix to avoid out-of-bounds memory access
Charan Teja Reddy (1):
sched,psi: Handle potential task count underflow bugs more gracefully
Chen Jun (1):
posix-timers: Preserve return value in clock_adjtime32()
Christophe JAILLET (2):
mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe()
mmc: uniphier-sd: Fix a resource leak in the remove function
Christophe Kerello (1):
spi: stm32-qspi: fix pm_runtime usage_count counter
Christophe Leroy (1):
powerpc/32: Fix boot failure with CONFIG_STACKPROTECTOR
Chunfeng Yun (2):
arm64: dts: mt8173: fix property typo of 'phys' in dsi node
usb: xhci-mtk: support quirk to disable usb2 lpm
Colin Ian King (1):
clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return
Daniel Gomez (2):
drm/amdgpu/ttm: Fix memory leak userptr pages drm/radeon/ttm: Fix memory leak userptr pages
Daniel Niv (1):
media: media/saa7164: fix saa7164_encoder_register() memory leak bugs
David Bauer (3):
spi: ath79: always call chipselect function
spi: ath79: remove spi-master setup and cleanup assignment
spi: sync up initial chipselect state
David E. Box (1):
platform/x86: intel_pmc_core: Don't use global pmcdev in quirks
Davide Caratti (1):
openvswitch: fix stack OOB read while fragmenting IPv4 packets
Davidlohr Bueso (1):
fs/epoll: restore waking from ep_done_scan()
Dean Anderson (1):
usb: gadget/function/f_fs string table fix for multiple languages
Dinghao Liu (3):
media: platform: sti: Fix runtime PM imbalance in regs_show
media: sun8i-di: Fix runtime PM imbalance in deinterlace_start_streaming
mfd: arizona: Fix rumtime PM imbalance on error
Dmitry Osipenko (3):
cpuidle: tegra: Fix C7 idling state on Tegra114
ARM: tegra: acer-a500: Rename avdd to vdda of touchscreen node soc/tegra: pmc: Fix completion of power-gate toggling
Dmitry Vyukov (1):
drm/vkms: fix misuse of WARN_ON
Dmytro Laktyushkin (1):
drm/amd/display: fix dml prefetch validation
Don Brace (1):
scsi: smartpqi: Use host-wide tag space
DooHyun Hwang (1):
mmc: core: Do a power cycle when the CMD11 fails
Eckhart Mohr (1):
ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx
Edward Cree (2):
sfc: farch: fix TX queue lookup in TX flush done handling
sfc: farch: fix TX queue lookup in TX event handling
Emily Deng (1):
drm/amdgpu: Fix some unload driver issues
Eric Biggers (3):
random: initialize ChaCha20 constants with correct endianness
f2fs: fix error handling in f2fs_end_enable_verity()
crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
Eryk Brol (1):
drm/amd/display: Check for DSC support instead of ASIC revision
Eugene Korenevsky (1):
cifs: fix out-of-bound memory access when calling smb3_notify() at mount point
Ewan D. Milne (1):
scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()
Fangzhi Zuo (1):
drm/amd/display: Fix debugfs link_settings entry
Fenghua Yu (8):
selftests/resctrl: Enable gcc checks to detect buffer overflows selftests/resctrl: Fix compilation issues for global variables selftests/resctrl: Fix compilation issues for other global variables selftests/resctrl: Clean up resctrl features check selftests/resctrl: Fix missing options "-n" and "-p" selftests/resctrl: Use resctrl/info for feature detection selftests/resctrl: Fix incorrect parsing of iMC counters selftests/resctrl: Fix checking for < 0 for unsigned values
Fengnan Chang (1):
ext4: fix error code in ext4_commit_super
Filipe Manana (3):
btrfs: fix metadata extent leak after failure to create subvolume
btrfs: fix race between transaction aborts and fsyncs leading to use-after-free
btrfs: fix race when picking most recent mod log operation for an old root
Gao Xiang (1):
erofs: add unsupported inode i_format check
Gerd Hoffmann (1):
drm/qxl: release shadow on shutdown
Gioh Kim (1):
block/rnbd-clt: Fix missing a memory free when unloading the module
Greg Kroah-Hartman (1):
Linux 5.10.36
Guangqing Zhu (1):
power: supply: cpcap-battery: fix invalid usage of list cursor
Guchun Chen (1):
drm/amdgpu: fix NULL pointer dereference
Guochun Mao (1):
ubifs: Only check replay with inode type to judge if inode linked
Gustavo A. R. Silva (1):
mtd: physmap: physmap-bt1-rom: Fix unintentional stack access
Hans Verkuil (4):
media: gspca/sq905.c: fix uninitialized variable
media: vivid: update EDID
media: gscpa/stv06xx: fix memory leak
media: v4l2-ctrls: fix reference to freed memory
Hans de Goede (2):
extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged
extcon: arizona: Fix various races on driver unbind
Hansem Ro (1):
Input: ili210x - add missing negation for touch indication on ili210x
Harald Freudenberger (2):
s390/zcrypt: fix zcard and zqueue hot-unplug memleak s390/archrandom: add parameter check for s390_arch_random_generate
He Ying (1):
irqchip/gic-v3: Do not enable irqs when handling spurious interrups
Heinz Mauelshagen (1):
dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload sequences
Hemant Kumar (1):
usb: gadget: Fix double free of device descriptor pointers
Hillf Danton (1):
tty: n_gsm: check error while registering tty devices
Hou Pu (1):
nvmet: return proper error code from discovery ctrl
Hubert Streidl (1):
mfd: da9063: Support SMBus and I2C mode
Hui Tang (1):
crypto: qat - fix unmap invalid dma address
Hyeongseok Kim (1):
exfat: fix erroneous discard when clear cluster bit
Ido Schimmel (1):
mlxsw: spectrum_mr: Update egress RIF list before route's action
James Smart (5):
scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe
scsi: lpfc: Fix pt2pt connection does not recover after LOGO
scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response
scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode
scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic
Jan Kara (3):
ext4: annotate data race in start_this_handle()
ext4: annotate data race in jbd2_journal_dirty_metadata()
ext4: Fix occasional generic/418 failure
Jared Baldridge (1):
drm: Added orientation quirk for OneGX1 Pro
Jason Wang (1):
vhost-vdpa: fix vm_flags for virtqueue doorbell mapping
Jeffrey Hugo (2):
bus: mhi: core: Fix check for syserr at power_up
bus: mhi: core: Sanity check values from remote device before use
Jeffrey Mitchell (1):
ecryptfs: fix kernel panic with null dev_name
Jerome Forissier (1):
tee: optee: do not check memref size on return from Secure World
Joe Thornber (2):
dm persistent data: packed struct should have an aligned() attribute too dm space map common: fix division bug in sm_ll_find_free_block()
Joel Stanley (1):
jffs2: Hook up splice_write callback
Joerg Roedel (1):
x86/sev: Do not require Hypervisor CPUID bit for SEV guests
John Millikin (1):
x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)
Jonas Witschel (1):
ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 445 G7
Jonathan Kim (1):
drm/amdgpu: mask the xgmi number of hops reported from psp to kfd
Josef Bacik (3):
btrfs: do proper error handling in create_reloc_root
btrfs: do proper error handling in btrfs_update_reloc_root
btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
Julian Braha (1):
media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB
Kai Stuhlemmer (ebee Engineering) (1):
mtd: rawnand: atmel: Update ecc_stats.corrected counter
Kailang Yang (1):
ALSA: hda/realtek - Headset Mic issue on HP platform
Kenneth Feng (1):
drm/amd/pm: fix workload mismatch on vega10
Kevin Barnett (1):
scsi: smartpqi: Add new PCI IDs
Kiran Gunda (1):
backlight: qcom-wled: Fix FSC update issue for WLED5
Laurent Pinchart (1):
media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt()
Lee Jones (1):
drm/amd/display/dc/dce/dce_aux: Remove duplicate line causing 'field overwritten' issue
Lingutla Chandrasekhar (1):
sched/fair: Ignore percpu threads for imbalance pulls
Linus Torvalds (1):
Fix misc new gcc warnings
Linus Walleij (1):
ARM: dts: ux500: Fix up TVK R3 sensors
Longfang Liu (1):
crypto: hisilicon/sec - fixes a printing error
Ludovic Desroches (1):
ARM: dts: at91: change the key code of the gpio key
Luis Henriques (1):
virtiofs: fix memory leak in virtio_fs_probe()
Lukasz Luba (1):
thermal/core/fair share: Lock the thermal zone while looping over instances
Luke D Jones (1):
ALSA: hda/realtek: GA503 use same quirks as GA401
Lv Yunlong (2):
ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
ALSA: sb: Fix two use after free in snd_sb_qsound_build
Maciej W. Rozycki (1):
x86/build: Disable HIGHMEM64G selection for M486SX
Mahesh Salgaonkar (1):
powerpc/eeh: Fix EEH handling for hugepages in ioremap space.
Marc Zyngier (1):
ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure
Marco Elver (1):
kcsan, debugfs: Move debugfs file creation out of early init
Marek Behún (1):
arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node
Marek Vasut (1):
rsi: Use resume_noirq for SDIO
Marijn Suijten (2):
drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal drm/msm/mdp5: Do not multiply vclk line count by 100
Mark Langsdorf (2):
ACPI: custom_method: fix potential use-after-free issue
ACPI: custom_method: fix a possible memory leak
Martin Leung (1):
drm/amd/display: changing sr exit latency
Masahiro Yamada (1):
kbuild: update config_data.gz only when the content of .config is changed
Mathias Krause (1):
nitro_enclaves: Fix stale file descriptors on failed usercopy
Mathias Nyman (3):
xhci: check port array allocation was successful before dereferencing it
xhci: check control context is valid before dereferencing it.
xhci: fix potential array out of bounds with several interrupters
Matthias Schiffer (1):
power: supply: bq27xxx: fix power_avg for newer ICs
Mauro Carvalho Chehab (1):
atomisp: don't let it go past pipes array
Muhammad Usama Anjum (1):
media: em28xx: fix memory leak
Murthy Bhat (1):
scsi: smartpqi: Correct request leakage during reset operations
Nathan Chancellor (4):
x86/boot: Add $(CLANG_FLAGS) to compressed KBUILD_CFLAGS
efi/libstub: Add $(CLANG_FLAGS) to x86 flags
Makefile: Move -Wno-unused-but-set-variable out of GCC only block
crypto: arm/curve25519 - Move '.fpu' after '.arch'Nicholas Piggin (1):
powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors
Obeida Shamoun (1):
backlight: qcom-wled: Use sink_addr for sync toggle
Paul Aurich (1):
cifs: Return correct error code from smb2_get_enc_key
Paul Clements (1):
md/raid1: properly indicate failure when ending a failed write request
Pavel Machek (1):
intel_th: Consistency and off-by-one fix
Pavel Skripkin (2):
media: dvb-usb: fix memory leak in dvb_usb_adapter_init
tty: fix memory leak in vc_deallocate
Pawel Laszczak (2):
usb: gadget: uvc: add bInterval checking for HS mode
usb: webcam: Invalid size of Processing Unit Descriptor
Peilin Ye (1):
media: dvbdev: Fix memory leak in dvb_media_device_free()
Peng Fan (1):
mmc: sdhci-esdhc-imx: validate pinctrl before use it
Peter Zijlstra (2):
perf: Rework perf_event_exit_event()
sched,fair: Alternative sched_slice()
Phil Calvin (1):
ALSA: hda/realtek: fix mic boost on Intel NUC 8
Phillip Potter (1):
fbdev: zero-fill colormap in fbcmap.c
Pierre-Louis Bossart (1):
soundwire: cadence: only prepare attached devices on clock stop
Pradeep P V K (1):
mmc: sdhci: Check for reset prior to DMA address unmap
Qu Huang (1):
drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug
Qu Wenruo (1):
btrfs: handle remount to no compress during compression
Quinn Tran (1):
scsi: qla2xxx: Fix use after free in bsg
Rafael J. Wysocki (1):
PCI: PM: Do not read power state in pci_enable_device_flags()
Rafał Miłecki (1):
ARM: dts: BCM5301X: fix "reg" formatting in /memory node
Randy Dunlap (1):
NFS: fs_context: validate UDP retrans to prevent shift out-of-bounds
Rasmus Villemoes (1):
lib/vsprintf.c: remove leftover 'f' and 'F' cases from bstr_printf()
Ricardo Ribalda (3):
media: staging/intel-ipu3: Fix memory leak in imu_fmt
media: staging/intel-ipu3: Fix set_fmt error handling
media: staging/intel-ipu3: Fix race condition during set_fmt
Robin Murphy (2):
perf/arm_pmu_platform: Use dev_err_probe() for IRQ errors perf/arm_pmu_platform: Fix error handling
Ruslan Bilovol (2):
usb: gadget: f_uac2: validate input parameters
usb: gadget: f_uac1: validate input parameters
Russ Weight (1):
fpga: dfl: pci: add DID for D5005 PAC cards
Sami Loone (1):
ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops
Sean Christopherson (1):
x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
Sean Young (1):
media: ite-cir: check for receive overflow
Sebastian Krzyszkowiak (1):
arm64: dts: imx8mq-librem5-r3: Mark buck3 as always on
Seunghui Lee (1):
mmc: core: Set read only for SD cards with permanent write protect bit
Shixin Liu (6):
crypto: sun8i-ss - Fix PM reference leak when pm_runtime_get_sync() fails
crypto: sun8i-ce - Fix PM reference leak in sun8i_ce_probe()
crypto: stm32/hash - Fix PM reference leak on stm32-hash.c
crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c
crypto: sa2ul - Fix PM reference leak in sa_ul_probe()
crypto: omap-aes - Fix PM reference leak on omap-aes.c
Shuo Chen (1):
dyndbg: fix parsing file query without a line-range suffix
Shyam Prasad N (1):
cifs: detect dead connections only when echoes are enabled.
Sourabh Jain (1):
powerpc/kexec_file: Use current CPU info while setting up FDT
Sreekanth Reddy (1):
scsi: mpt3sas: Block PCI config access from userspace during reset
Srinivas Pandruvada (2):
tools/power/x86/intel-speed-select: Increase string size platform/x86: ISST: Account for increased timeout in some cases
Stanimir Varbanov (1):
media: venus: hfi_parser: Don't initialize parser on v1
Stefan Berger (3):
tpm: acpi: Check eventlog signature before using it
tpm: efi: Use local variable for calculating final log size
tpm: vtpm_proxy: Avoid reading host log when using a virtual device
Steve French (2):
smb3: when mounting with multichannel include it in requested capabilities
smb3: do not attempt multichannel to server which does not support it
Steven Rostedt (VMware) (3):
ftrace: Handle commands when closing set_ftrace_filter file
tracing: Map all PIDs to command lines
tracing: Restructure trace_clock_global() to never block
Takashi Iwai (4):
ALSA: hda/conexant: Re-order CX5066 quirk table entries
ALSA: usb-audio: Explicitly set up the clock selector
media: dvb-usb: Fix use-after-free access
media: dvb-usb: Fix memory leak at error in dvb_usb_device_init()
Theodore Ts'o (2):
fs: fix reporting supported extra file attributes for statx()
ext4: allow the dax flag to be set and cleared on inline directories
Thinh Nguyen (4):
usb: xhci: Fix port minor revision
usb: dwc3: gadget: Check for disabled LPM quirk
usb: dwc3: gadget: Remove FS bInterval_m1 limitation
usb: dwc3: gadget: Fix START_TRANSFER link state check
Thomas Gleixner (2):
Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
futex: Do not apply time namespace adjustment on FUTEX_LOCK_PI
Thomas Zimmermann (1):
drm/ast: Fix invalid usage of AST_MAX_HWC_WIDTH in cursor atomic_check
Tian Tao (1):
dm integrity: fix missing goto in bitmap_flush_interval error handling
Timo Gurr (1):
ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8
Tong Zhang (2):
drm/qxl: do not run release if qxl failed to init drm/ast: fix memory leak when unload the driver
Tony Ambardar (1):
powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h
Tony Lindgren (1):
bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first
Trond Myklebust (2):
NFS: Don't discard pNFS layout segments that are marked for return
NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
Tudor Ambarus (2):
Revert "mtd: spi-nor: macronix: Add support for mx25l51245g"
spi: spi-ti-qspi: Free DMA resources
Uladzislau Rezki (Sony) (1):
kvfree_rcu: Use same set of GFP flags as does single-argument
Ulf Hansson (1):
mmc: core: Fix hanging on I/O during system suspend for removable cards
Vasily Gorbik (1):
s390/disassembler: increase ebpf disasm buffer size
Vincent Donnefort (1):
sched/pelt: Fix task util_est update filtering
Vitaly Kuznetsov (1):
genirq/matrix: Prevent allocation counter corruption
Vivek Goyal (1):
fuse: fix write deadlock
Wang Li (1):
spi: qup: fix PM reference leak in spi_qup_remove()
Wei Yongjun (2):
spi: dln2: Fix reference leak to master
spi: omap-100k: Fix reference leak to master
Werner Sembach (1):
drm/amd/display: Try YCbCr420 color when YCbCr444 fails
Wesley Cheng (1):
usb: dwc3: gadget: Ignore EP queue requests during bus reset
Xiang Chen (1):
mtd: spi-nor: core: Fix an issue of releasing resources during read/write
Xiaogang Chen (1):
drm/amdgpu/display: buffer INTERRUPT_LOW_IRQ_CONTEXT interrupt work
Xingui Yang (1):
ata: ahci: Disable SXS for Hisilicon Kunpeng920
Xu Yihang (1):
ext4: fix error return code in ext4_fc_perform_commit()
Xu Yilun (1):
mfd: intel-m10-bmc: Fix the register access range
Yang Yang (1):
jffs2: check the validity of dstlen in jffs2_zlib_compress()
Yang Yingliang (9):
usb: gadget: tegra-xudc: Fix possible use-after-free in tegra_xudc_remove()
phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove()
power: supply: generic-adc-battery: fix possible use-after-free in gab_remove()
power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove()
media: tc358743: fix possible use-after-free in tc358743_remove()
media: adv7604: fix possible use-after-free in adv76xx_remove()
media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove()
media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove()
media: i2c: adv7842: fix possible use-after-free in adv7842_remove()
Ye Bin (1):
ext4: fix ext4_error_err save negative errno into superblock
Yu Chen (1):
usb: dwc3: core: Do core softreset when switch mode
Zhang Yi (2):
ext4: fix check to prevent false positive report of incorrect used inodes
ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()
brian-sy yang (1):
thermal/drivers/cpufreq_cooling: Fix slab OOB issue
dongjian (1):
power: supply: Use IRQF_ONESHOT
karthik alapati (1):
staging: wimax/i2400m: fix byte-order issue
lizhe (1):
jffs2: Fix kasan slab-out-of-bounds problem
shaoyunl (1):
drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f
Greg Kroah-Hartman
maintainerMakefile +5 -5
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 35 +SUBLEVEL = 36 EXTRAVERSION = NAME = Dare mighty things
@@ -775,16 +775,16 @@ KBUILD_CFLAGS += -Wno-gnu KBUILD_CFLAGS += -mno-global-merge else -# These warnings generated too much noise in a regular build. -# Use make W=1 to enable them (see scripts/Makefile.extrawarn) -KBUILD_CFLAGS += -Wno-unused-but-set-variable - # Warn about unmarked fall-throughs in switch statement. # Disabled for clang while comment to attribute conversion happens and # https://github.com/ClangBuiltLinux/linux/issues/636 is discussed. KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,) endif +# These warnings generated too much noise in a regular build. +# Use make W=1 to enable them (see scripts/Makefile.extrawarn) +KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) + KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable) ifdef CONFIG_FRAME_POINTER KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
arch/arm/boot/compressed/Makefile +2 -2
@@ -114,8 +114,8 @@ asflags-y := -DZIMAGE # Supply kernel BSS size to the decompressor via a linker symbol. KBSS_SZ = $(shell echo $$(($$($(NM) $(obj)/../../../../vmlinux | \ - sed -n -e 's/^\([^ ]*\) [AB] __bss_start$$/-0x\1/p' \ - -e 's/^\([^ ]*\) [AB] __bss_stop$$/+0x\1/p') )) ) + sed -n -e 's/^\([^ ]*\) [ABD] __bss_start$$/-0x\1/p' \ + -e 's/^\([^ ]*\) [ABD] __bss_stop$$/+0x\1/p') )) ) LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ) # Supply ZRELADDR to the decompressor via a linker symbol. ifneq ($(CONFIG_AUTO_ZRELADDR),y)
arch/arm/boot/dts/at91-sam9x60ek.dts +2 -1
@@ -8,6 +8,7 @@ */ /dts-v1/; #include "sam9x60.dtsi" +#include <dt-bindings/input/input.h> / { model = "Microchip SAM9X60-EK";
@@ -84,7 +85,7 @@ gpio_keys { sw1 { label = "SW1"; gpios = <&pioD 18 GPIO_ACTIVE_LOW>; - linux,code=<0x104>; + linux,code=<KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +2 -1
@@ -11,6 +11,7 @@ #include "at91-sama5d27_som1.dtsi" #include <dt-bindings/mfd/atmel-flexcom.h> #include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> / { model = "Atmel SAMA5D27 SOM1 EK";
@@ -467,7 +468,7 @@ gpio_keys { pb4 { label = "USER"; gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = <KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts +2 -1
@@ -8,6 +8,7 @@ */ /dts-v1/; #include "at91-sama5d27_wlsom1.dtsi" +#include <dt-bindings/input/input.h> / { model = "Microchip SAMA5D27 WLSOM1 EK";
@@ -35,7 +36,7 @@ gpio_keys { sw4 { label = "USER BUTTON"; gpios = <&pioA PIN_PB2 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = <KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/at91-sama5d2_icp.dts +2 -1
@@ -12,6 +12,7 @@ #include "sama5d2.dtsi" #include "sama5d2-pinfunc.h" #include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include <dt-bindings/mfd/atmel-flexcom.h> / {
@@ -51,7 +52,7 @@ gpio_keys { sw4 { label = "USER_PB1"; gpios = <&pioA PIN_PD0 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = <KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts +2 -1
@@ -11,6 +11,7 @@ #include "sama5d2-pinfunc.h" #include <dt-bindings/mfd/atmel-flexcom.h> #include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include <dt-bindings/pinctrl/at91.h> / {
@@ -403,7 +404,7 @@ gpio_keys { bp1 { label = "PB_USER"; gpios = <&pioA PIN_PA10 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = <KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/at91-sama5d2_xplained.dts +2 -1
@@ -10,6 +10,7 @@ #include "sama5d2-pinfunc.h" #include <dt-bindings/mfd/atmel-flexcom.h> #include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> #include <dt-bindings/regulator/active-semi,8945a-regulator.h> / {
@@ -713,7 +714,7 @@ gpio_keys { bp1 { label = "PB_USER"; gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = <KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/at91-sama5d3_xplained.dts +2 -1
@@ -7,6 +7,7 @@ */ /dts-v1/; #include "sama5d36.dtsi" +#include <dt-bindings/input/input.h> / { model = "SAMA5D3 Xplained";
@@ -354,7 +355,7 @@ gpio_keys { bp3 { label = "PB_USER"; gpios = <&pioE 29 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = <KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/at91sam9260ek.dts +2 -1
@@ -7,6 +7,7 @@ */ /dts-v1/; #include "at91sam9260.dtsi" +#include <dt-bindings/input/input.h> / { model = "Atmel at91sam9260ek";
@@ -156,7 +157,7 @@ btn3 { btn4 { label = "Button 4"; gpios = <&pioA 31 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = <KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/at91sam9g20ek_common.dtsi +2 -1
@@ -5,6 +5,7 @@ * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> */ #include "at91sam9g20.dtsi" +#include <dt-bindings/input/input.h> / {
@@ -234,7 +235,7 @@ btn3 { btn4 { label = "Button 4"; gpios = <&pioA 31 GPIO_ACTIVE_LOW>; - linux,code = <0x104>; + linux,code = <KEY_PROG1>; wakeup-source; }; };
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; spi {
arch/arm/boot/dts/bcm4708-netgear-r6250.dts +2 -2
@@ -22,8 +22,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; spi {
arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; spi {
arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds {
arch/arm/boot/dts/bcm4709-linksys-ea9200.dts +2 -2
@@ -18,8 +18,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; gpio-keys {
arch/arm/boot/dts/bcm4709-netgear-r7000.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm4709-netgear-r8000.dts +2 -2
@@ -32,8 +32,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts +2 -2
@@ -21,8 +21,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; nand: nand@18028000 {
arch/arm/boot/dts/bcm47094-linksys-panamera.dts +2 -2
@@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; gpio-keys {
arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts +2 -2
@@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds {
arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts +2 -2
@@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds {
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts +2 -2
@@ -18,8 +18,8 @@ chosen { memory { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds {
arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts +2 -2
@@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x08000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x08000000>; }; leds {
arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts +2 -2
@@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds {
arch/arm/boot/dts/bcm47094-netgear-r8500.dts +2 -2
@@ -18,8 +18,8 @@ chosen { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; leds {
arch/arm/boot/dts/bcm47094-phicomm-k3.dts +2 -2
@@ -15,8 +15,8 @@ / { memory@0 { device_type = "memory"; - reg = <0x00000000 0x08000000 - 0x88000000 0x18000000>; + reg = <0x00000000 0x08000000>, + <0x88000000 0x18000000>; }; gpio-keys {
arch/arm/boot/dts/ste-href-tvk1281618-r3.dtsi +50 -23
92 lines not on this page · raw message
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts +1 -1
@@ -448,7 +448,7 @@ touchscreen@4c { reset-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_HIGH>; - avdd-supply = <&vdd_3v3_sys>; + vdda-supply = <&vdd_3v3_sys>; vdd-supply = <&vdd_3v3_sys>; };
arch/arm/crypto/curve25519-core.S +1 -1
@@ -10,8 +10,8 @@ #include <linux/linkage.h> .text -.fpu neon .arch armv7-a +.fpu neon .align 4 ENTRY(curve25519_neon)
arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts +4 -0
@@ -22,6 +22,10 @@ &bq25895 { ti,termination-current = <144000>; /* uA */ }; +&buck3_reg { + regulator-always-on; +}; + &proximity { proximity-near-level = <25>; };
arch/arm64/boot/dts/marvell/armada-37xx.dtsi +2 -1
@@ -156,7 +156,8 @@ uart1: serial@12200 { }; nb_periph_clk: nb-periph-clk@13000 { - compatible = "marvell,armada-3700-periph-clock-nb"; + compatible = "marvell,armada-3700-periph-clock-nb", + "syscon"; reg = <0x13000 0x100>; clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>, <&tbg 3>, <&xtalclk>;
arch/arm64/boot/dts/mediatek/mt8173.dtsi +1 -1
@@ -1169,7 +1169,7 @@ dsi1: dsi@1401c000 { <&mmsys CLK_MM_DSI1_DIGITAL>, <&mipi_tx1>; clock-names = "engine", "digital", "hs"; - phy = <&mipi_tx1>; + phys = <&mipi_tx1>; phy-names = "dphy"; status = "disabled"; };
arch/arm64/kernel/vdso/vdso.lds.S +7 -1
@@ -31,6 +31,13 @@ SECTIONS .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } + /* + * Discard .note.gnu.property sections which are unused and have + * different alignment requirement from vDSO note sections. + */ + /DISCARD/ : { + *(.note.GNU-stack .note.gnu.property) + } .note : { *(.note.*) } :text :note . = ALIGN(16);
@@ -51,7 +58,6 @@ SECTIONS PROVIDE(end = .); /DISCARD/ : { - *(.note.GNU-stack) *(.data .data.* .gnu.linkonce.d.* .sdata*) *(.bss .sbss .dynbss .dynsbss) }
arch/powerpc/include/asm/reg.h +1 -0
@@ -444,6 +444,7 @@#define LPCR_VRMA_LP1 ASM_CONST(0x0000800000000000)#define LPCR_RMLS 0x1C000000/* Implementation dependent RMO limit sel */ #define LPCR_RMLS_SH 26 +#define LPCR_HAIL ASM_CONST(0x0000000004000000)/* HV AIL (ISAv3.1) */ #define LPCR_ILE ASM_CONST(0x0000000002000000)/* !HV irqs set MSR:LE */ #define LPCR_AIL ASM_CONST(0x0000000001800000)/* Alternate interrupt location */ #define LPCR_AIL_0 ASM_CONST(0x0000000000000000)/* MMU off exception offset 0x0 */
arch/powerpc/include/uapi/asm/errno.h +1 -0
@@ -2,6 +2,7 @@#ifndef _ASM_POWERPC_ERRNO_H#define _ASM_POWERPC_ERRNO_H +#undef EDEADLOCK#include <asm-generic/errno.h> #undef EDEADLOCK
arch/powerpc/kernel/eeh.c +4 -7
@@ -362,14 +362,11 @@ static inline unsigned long eeh_token_to_phys(unsigned long token) pa =pte_pfn (*ptep);/* On radix we can do hugepage mappings for io, so handle that */ -if (hugepage_shift) { - pa <<= hugepage_shift; - pa |= token & ((1ul << hugepage_shift) -1 ); - }else { - pa <<=PAGE_SHIFT ; - pa |= token & (PAGE_SIZE -1 ); - } +if (!hugepage_shift) + hugepage_shift =PAGE_SHIFT ; + pa <<=PAGE_SHIFT ; + pa |= token & ((1ul << hugepage_shift) -1 );return pa; }
arch/powerpc/kernel/setup_64.c +16 -3
@@ -231,10 +231,23 @@ static void cpu_ready_for_interrupts(void)* If we are not in hypervisor mode the job is done once for * the whole partition in configure_exceptions(). */ -if (cpu_has_feature (CPU_FTR_HVMODE ) && -cpu_has_feature (CPU_FTR_ARCH_207S )) { +if (cpu_has_feature (CPU_FTR_HVMODE )) {unsigned long lpcr =mfspr (SPRN_LPCR ); -mtspr (SPRN_LPCR , lpcr |LPCR_AIL_3 ); +unsigned long new_lpcr = lpcr; + +if (cpu_has_feature (CPU_FTR_ARCH_31 )) { +/* P10 DD1 does not have HAIL */ +if (pvr_version_is (PVR_POWER10 ) && + (mfspr (SPRN_PVR ) &0xf00 ) ==0x100 ) + new_lpcr |=LPCR_AIL_3 ; +else + new_lpcr |=LPCR_HAIL ; + }else if (cpu_has_feature (CPU_FTR_ARCH_207S )) { + new_lpcr |=LPCR_AIL_3 ; + } + +if (new_lpcr != lpcr) +mtspr (SPRN_LPCR , new_lpcr); }/*
arch/powerpc/kexec/file_load_64.c +92 -0
104 lines not on this page · raw message
arch/powerpc/lib/Makefile +3 -0
@@ -5,6 +5,9 @@ ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC) +CFLAGS_code-patching.o += -fno-stack-protector +CFLAGS_feature-fixups.o += -fno-stack-protector + CFLAGS_REMOVE_code-patching.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_feature-fixups.o = $(CC_FLAGS_FTRACE)
arch/s390/crypto/arch_random.c +4 -0
@@ -53,6 +53,10 @@ static DECLARE_DELAYED_WORK(arch_rng_work, arch_rng_refill_buffer);bool s390_arch_random_generate (u8 *buf,unsigned int nbytes) { +/* max hunk is ARCH_RNG_BUF_SIZE */ +if (nbytes >ARCH_RNG_BUF_SIZE ) +return false; +/* lock rng buffer */ if (!spin_trylock (&arch_rng_lock))return false;
arch/s390/kernel/dis.c +1 -1
@@ -563,7 +563,7 @@ void show_code(struct pt_regs *regs)void print_fn_code (unsigned char *code,unsigned long len) { -char buffer[64 ], *ptr; +char buffer[128 ], *ptr;int opsize, i;while (len) {
arch/x86/Kconfig +1 -1
@@ -1414,7 +1414,7 @@ config HIGHMEM4G config HIGHMEM64G bool "64GB" - depends on !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !WINCHIP3D && !MK6 + depends on !M486SX && !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !WINCHIP3D && !MK6 select X86_PAE help Select this if you have a 32-bit processor and more than 4
arch/x86/Makefile +1 -0
@@ -40,6 +40,7 @@ REALMODE_CFLAGS += -ffreestanding REALMODE_CFLAGS += -fno-stack-protector REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -Wno-address-of-packed-member) REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), $(cc_stack_align4)) +REALMODE_CFLAGS += $(CLANG_FLAGS) export REALMODE_CFLAGS # BITS is used as extension for files which are available in a 32 bit
arch/x86/boot/compressed/Makefile +1 -0
@@ -46,6 +46,7 @@ KBUILD_CFLAGS += -D__DISABLE_EXPORTS # Disable relocation relaxation in case the link is not PIE. KBUILD_CFLAGS += $(call as-option,-Wa$(comma)-mrelax-relocations=no) KBUILD_CFLAGS += -include $(srctree)/include/linux/hidden.h +KBUILD_CFLAGS += $(CLANG_FLAGS) # sev-es.c indirectly inludes inat-table.h which is generated during # compilation and stored in $(objtree). Add the directory to the includes so
arch/x86/boot/compressed/mem_encrypt.S +0 -6
@@ -23,12 +23,6 @@ SYM_FUNC_START(get_sev_encryption_bit) push %ecx push %edx - /* Check if running under a hypervisor */ - movl $1, %eax - cpuid - bt $31, %ecx /* Check the hypervisor bit */ - jnc .Lno_sev - movl $0x80000000, %eax /* CPUID to check the highest leaf */ cpuid cmpl $0x8000001f, %eax /* See if 0x8000001f is available */
arch/x86/kernel/cpu/common.c +1 -1
@@ -1847,7 +1847,7 @@ static inline void setup_getcpu(int cpu)unsigned long cpudata =vdso_encode_cpunode (cpu,early_cpu_to_node (cpu));struct desc_struct d = { }; -if (boot_cpu_has (X86_FEATURE_RDTSCP )) +if (boot_cpu_has (X86_FEATURE_RDTSCP ) ||boot_cpu_has (X86_FEATURE_RDPID ))write_rdtscp_aux (cpudata);/* Store CPU and node number in limit. */
arch/x86/kernel/sev-es-shared.c +1 -5
@@ -186,7 +186,6 @@ void __init do_vc_no_ghcb(struct pt_regs *regs, unsigned long exit_code)* make it accessible to the hypervisor. * * In particular, check for: -* - Hypervisor CPUID bit * - Availability of CPUID leaf 0x8000001f * - SEV CPUID bit. *
@@ -194,10 +193,7 @@ void __init do_vc_no_ghcb(struct pt_regs *regs, unsigned long exit_code)* can't be checked here. */ -if ((fn ==1 && !(regs->cx &BIT (31 )))) -/* Hypervisor bit */ - goto fail; -else if (fn ==0x80000000 && (regs->ax <0x8000001f )) +if (fn ==0x80000000 && (regs->ax <0x8000001f ))/* SEV leaf check */ goto fail;else if ((fn ==0x8000001f && !(regs->ax &BIT (1 ))))
arch/x86/mm/mem_encrypt_identity.c +19 -16
@@ -503,14 +503,10 @@ void __init sme_enable(struct boot_params *bp)#define AMD_SME_BIT BIT(0)#define AMD_SEV_BIT BIT(1) -/* -* Set the feature mask (SME or SEV) based on whether we are -* running under a hypervisor. -*/ - eax =1 ; - ecx =0 ; -native_cpuid (&eax, &ebx, &ecx, &edx); - feature_mask = (ecx &BIT (31 )) ?AMD_SEV_BIT :AMD_SME_BIT ; + +/* Check the SEV MSR whether SEV or SME is enabled */ + sev_status =__rdmsr (MSR_AMD64_SEV ); + feature_mask = (sev_status &MSR_AMD64_SEV_ENABLED ) ?AMD_SEV_BIT :AMD_SME_BIT ;/* * Check for the SME/SEV feature:
@@ -530,19 +526,26 @@ void __init sme_enable(struct boot_params *bp)/* Check if memory encryption is enabled */ if (feature_mask ==AMD_SME_BIT ) { +/* +* No SME if Hypervisor bit is set. This check is here to +* prevent a guest from trying to enable SME. For running as a +* KVM guest the MSR_K8_SYSCFG will be sufficient, but there +* might be other hypervisors which emulate that MSR as non-zero +* or even pass it through to the guest. +* A malicious hypervisor can still trick a guest into this +* path, but there is no way to protect against that. +*/ + eax =1 ; + ecx =0 ; +native_cpuid (&eax, &ebx, &ecx, &edx); +if (ecx &BIT (31 )) +return ; +/* For SME, check the SYSCFG MSR */ msr =__rdmsr (MSR_K8_SYSCFG );if (!(msr &MSR_K8_SYSCFG_MEM_ENCRYPT ))return ; }else { -/* For SEV, check the SEV MSR */ - msr =__rdmsr (MSR_AMD64_SEV ); -if (!(msr &MSR_AMD64_SEV_ENABLED )) -return ; - -/* Save SEV_STATUS to avoid reading MSR again */ - sev_status = msr; -/* SEV state cannot be controlled by a command line option */ sme_me_mask = me_mask; sev_enabled = true;
crypto/api.c +1 -1
@@ -562,7 +562,7 @@ void crypto_destroy_tfm(void *mem, struct crypto_tfm *tfm) {struct crypto_alg *alg; -if (unlikely (!mem)) +if (IS_ERR_OR_NULL (mem))return ; alg = tfm->__crt_alg;
crypto/rng.c +3 -7
@@ -34,22 +34,18 @@ int crypto_rng_reset(struct crypto_rng *tfm, const u8 *seed, unsigned int slen)u8 *buf =NULL ;int err; -crypto_stats_get (alg);if (!seed && slen) { buf =kmalloc (slen,GFP_KERNEL ); -if (!buf) { -crypto_alg_put (alg); +if (!buf)return -ENOMEM ; - } err =get_random_bytes_wait (buf, slen); -if (err) { -crypto_alg_put (alg); +if (err) goto out; - } seed = buf; } +crypto_stats_get (alg); err =crypto_rng_alg (tfm)->seed (tfm, seed, slen);crypto_stats_rng_seed (alg, err); out:
drivers/acpi/arm64/gtdt.c +6 -4
@@ -329,7 +329,7 @@ static int __init gtdt_import_sbsa_gwdt(struct acpi_gtdt_watchdog *wd, int index) {struct platform_device *pdev; -int irq =map_gt_gsi (wd->timer_interrupt, wd->timer_flags); +int irq;/* * According to SBSA specification the size of refresh and control
@@ -338,7 +338,7 @@ static int __init gtdt_import_sbsa_gwdt(struct acpi_gtdt_watchdog *wd,struct resource res[] = {DEFINE_RES_MEM (wd->control_frame_address,SZ_4K ),DEFINE_RES_MEM (wd->refresh_frame_address,SZ_4K ), -DEFINE_RES_IRQ (irq), + {}, };int nr_res =ARRAY_SIZE (res);
@@ -348,10 +348,11 @@ static int __init gtdt_import_sbsa_gwdt(struct acpi_gtdt_watchdog *wd,if (!(wd->refresh_frame_address && wd->control_frame_address)) {pr_err (FW_BUG "failed to get the Watchdog base address.\n" ); -acpi_unregister_gsi (wd->timer_interrupt);return -EINVAL ; } + irq =map_gt_gsi (wd->timer_interrupt, wd->timer_flags); + res[2 ] = (struct resource )DEFINE_RES_IRQ (irq);if (irq <=0 ) {pr_warn ("failed to map the Watchdog interrupt.\n" ); nr_res--;
@@ -364,7 +365,8 @@ static int __init gtdt_import_sbsa_gwdt(struct acpi_gtdt_watchdog *wd,*/ pdev =platform_device_register_simple ("sbsa-gwdt" , index, res, nr_res);if (IS_ERR (pdev)) { -acpi_unregister_gsi (wd->timer_interrupt); +if (irq >0 ) +acpi_unregister_gsi (wd->timer_interrupt);return PTR_ERR (pdev); }
drivers/acpi/custom_method.c +3 -1
@@ -42,6 +42,8 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf, sizeof(struct acpi_table_header)))return -EFAULT ; uncopied_bytes = max_size = table.length; +/* make sure the buf is not allocated */ +kfree (buf); buf =kzalloc (max_size,GFP_KERNEL );if (!buf)return -ENOMEM ;
@@ -55,6 +57,7 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf, (*ppos + count < count) || (count > uncopied_bytes)) {kfree (buf); + buf =NULL ;return -EINVAL ; }
@@ -76,7 +79,6 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,add_taint (TAINT_OVERRIDDEN_ACPI_TABLE ,LOCKDEP_NOW_UNRELIABLE ); } -kfree (buf);return count; }
drivers/ata/ahci.c +5 -0
@@ -1772,6 +1772,11 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) hpriv->flags |=AHCI_HFLAG_NO_DEVSLP ;#ifdef CONFIG_ARM64 +if (pdev->vendor ==PCI_VENDOR_ID_HUAWEI && + pdev->device ==0xa235 && + pdev->revision <0x30 ) + hpriv->flags |=AHCI_HFLAG_NO_SXS ; +if (pdev->vendor ==0x177d && pdev->device ==0xa01c ) hpriv->irq_handler = ahci_thunderx_irq_handler;#endif
drivers/ata/ahci.h +1 -0
@@ -242,6 +242,7 @@ enum {suspend/resume */ AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = (1 <<27 ),/* ignore -EOPNOTSUPP from phy_power_on() */ + AHCI_HFLAG_NO_SXS = (1 << 28), /* SXS not supported *//* ap->flags bits */
drivers/ata/libahci.c +5 -0
@@ -493,6 +493,11 @@ void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv) cap |=HOST_CAP_ALPM ; } +if ((cap &HOST_CAP_SXS ) && (hpriv->flags &AHCI_HFLAG_NO_SXS )) { +dev_info (dev,"controller does not support SXS, disabling CAP_SXS\n" ); + cap &= ~HOST_CAP_SXS ; + } +if (hpriv->force_port_map && port_map != hpriv->force_port_map) {dev_info (dev,"forcing port_map 0x%x -> 0x%x\n" , port_map, hpriv->force_port_map);
drivers/block/rnbd/rnbd-clt-sysfs.c +7 -3
@@ -433,10 +433,14 @@ void rnbd_clt_remove_dev_symlink(struct rnbd_clt_dev *dev)* i.e. rnbd_clt_unmap_dev_store() leading to a sysfs warning because * of sysfs link already was removed already. */ -if (dev->blk_symlink_name &&try_module_get (THIS_MODULE )) { -sysfs_remove_link (rnbd_devs_kobj, dev->blk_symlink_name); +if (dev->blk_symlink_name) { +if (try_module_get (THIS_MODULE )) { +sysfs_remove_link (rnbd_devs_kobj, dev->blk_symlink_name); +module_put (THIS_MODULE ); + } +/* It should be freed always. */ kfree (dev->blk_symlink_name); -module_put (THIS_MODULE ); + dev->blk_symlink_name =NULL ; } }
drivers/bus/mhi/core/init.c +15 -1
@@ -544,6 +544,7 @@ void mhi_deinit_chan_ctxt(struct mhi_controller *mhi_cntrl,struct mhi_ring *buf_ring;struct mhi_ring *tre_ring;struct mhi_chan_ctxt *chan_ctxt; +u32 tmp; buf_ring = &mhi_chan->buf_ring; tre_ring = &mhi_chan->tre_ring;
@@ -554,7 +555,19 @@ void mhi_deinit_chan_ctxt(struct mhi_controller *mhi_cntrl,vfree (buf_ring->base); buf_ring->base = tre_ring->base =NULL ; + tre_ring->ctxt_wp =NULL ; chan_ctxt->rbase =0 ; + chan_ctxt->rlen =0 ; + chan_ctxt->rp =0 ; + chan_ctxt->wp =0 ; + + tmp = chan_ctxt->chcfg; + tmp &= ~CHAN_CTX_CHSTATE_MASK ; + tmp |= (MHI_CH_STATE_DISABLED <<CHAN_CTX_CHSTATE_SHIFT ); + chan_ctxt->chcfg = tmp; + +/* Update to all cores */ +smp_wmb (); } int mhi_init_chan_ctxt(struct mhi_controller *mhi_cntrl,
@@ -1267,7 +1280,8 @@ static int mhi_driver_remove(struct device *dev)mutex_lock (&mhi_chan->mutex); -if (ch_state[dir] ==MHI_CH_STATE_ENABLED && +if ((ch_state[dir] ==MHI_CH_STATE_ENABLED || + ch_state[dir] ==MHI_CH_STATE_STOP ) && !mhi_chan->offload_ch)mhi_deinit_chan_ctxt (mhi_cntrl, mhi_chan);
drivers/bus/mhi/core/main.c +99 -11
209 lines not on this page · raw message
drivers/bus/mhi/core/pm.c +4 -1
@@ -376,6 +376,7 @@ static int mhi_pm_mission_mode_transition(struct mhi_controller *mhi_cntrl) {struct mhi_event *mhi_event;struct device *dev = &mhi_cntrl->mhi_dev->dev; +enum mhi_ee_type current_ee = mhi_cntrl->ee;int i, ret;dev_dbg (dev,"Processing Mission Mode transition\n" );
@@ -390,6 +391,8 @@ static int mhi_pm_mission_mode_transition(struct mhi_controller *mhi_cntrl)wake_up_all (&mhi_cntrl->state_event); +device_for_each_child (&mhi_cntrl->mhi_dev->dev, ¤t_ee, + mhi_destroy_device); mhi_cntrl->status_cb (mhi_cntrl,MHI_CB_EE_MISSION_MODE );/* Force MHI to be in M0 state before continuing */
@@ -992,7 +995,7 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl) &val) || !val, msecs_to_jiffies(mhi_cntrl->timeout_ms)); -if (ret) { +if (!ret) { ret = -EIO ;dev_info (dev,"Failed to reset MHI due to syserr state\n" ); goto error_bhi_offset;
drivers/bus/ti-sysc.c +49 -0
61 lines not on this page · raw message
drivers/char/random.c +2 -2
@@ -819,7 +819,7 @@ static bool __init crng_init_try_arch_early(struct crng_state *crng)static void __maybe_unused crng_initialize_secondary (struct crng_state *crng) { -memcpy (&crng->state[0 ],"expand 32-byte k" ,16 ); +chacha_init_consts (crng->state);_get_random_bytes (&crng->state[4 ],sizeof (__u32) *12 );crng_init_try_arch (crng); crng->init_time = jiffies -CRNG_RESEED_INTERVAL -1 ;
@@ -827,7 +827,7 @@ static void __maybe_unused crng_initialize_secondary(struct crng_state *crng)static void __init crng_initialize_primary (struct crng_state *crng) { -memcpy (&crng->state[0 ],"expand 32-byte k" ,16 ); +chacha_init_consts (crng->state);_extract_entropy (&input_pool, &crng->state[4 ],sizeof (__u32) *12 ,0 );if (crng_init_try_arch_early (crng) && trust_cpu) {invalidate_batched_entropy ();
drivers/char/tpm/eventlog/acpi.c +32 -1
@@ -41,6 +41,27 @@ struct acpi_tcpa { }; }; +/* Check that the given log is indeed a TPM2 log. */ +static bool tpm_is_tpm2_log (void *bios_event_log,u64 len) +{ +struct tcg_efi_specid_event_head *efispecid; +struct tcg_pcr_event *event_header; +int n; + +if (len <sizeof (*event_header)) +return false; + len -=sizeof (*event_header); + event_header = bios_event_log; + +if (len <sizeof (*efispecid)) +return false; + efispecid = (struct tcg_efi_specid_event_head *)event_header->event; + + n =memcmp (efispecid->signature,TCG_SPECID_SIG , +sizeof (TCG_SPECID_SIG )); +return n ==0 ; +} +/* read binary bios log */ int tpm_read_log_acpi (struct tpm_chip *chip) {
@@ -52,6 +73,7 @@ int tpm_read_log_acpi(struct tpm_chip *chip)struct acpi_table_tpm2 *tbl;struct acpi_tpm2_phy *tpm2_phy;int format; +int ret; log = &chip->log;
@@ -112,6 +134,7 @@ int tpm_read_log_acpi(struct tpm_chip *chip) log->bios_event_log_end = log->bios_event_log + len; + ret = -EIO ; virt =acpi_os_map_iomem (start, len);if (!virt) goto err;
@@ -119,11 +142,19 @@ int tpm_read_log_acpi(struct tpm_chip *chip)memcpy_fromio (log->bios_event_log, virt, len);acpi_os_unmap_iomem (virt, len); + +if (chip->flags &TPM_CHIP_FLAG_TPM2 && + !tpm_is_tpm2_log (log->bios_event_log, len)) { +/* try EFI log next */ + ret = -ENODEV ; + goto err; + } +return format; err:kfree (log->bios_event_log); log->bios_event_log =NULL ; -return -EIO ; +return ret; }
drivers/char/tpm/eventlog/common.c +3 -0
@@ -107,6 +107,9 @@ void tpm_bios_log_setup(struct tpm_chip *chip)int log_version;int rc =0 ; +if (chip->flags &TPM_CHIP_FLAG_VIRTUAL ) +return ; + rc =tpm_read_log (chip);if (rc <0 )return ;
drivers/char/tpm/eventlog/efi.c +21 -8
@@ -17,6 +17,7 @@ int tpm_read_log_efi(struct tpm_chip *chip) {struct efi_tcg2_final_events_table *final_tbl =NULL ; +int final_events_log_size = efi_tpm_final_log_size;struct linux_efi_tpm_eventlog *log_tbl;struct tpm_bios_log *log;u32 log_size;
@@ -66,12 +67,12 @@ int tpm_read_log_efi(struct tpm_chip *chip) ret = tpm_log_version;if (efi.tpm_final_log ==EFI_INVALID_TABLE_ADDR || - efi_tpm_final_log_size ==0 || + final_events_log_size ==0 || tpm_log_version !=EFI_TCG2_EVENT_LOG_FORMAT_TCG_2 ) goto out; final_tbl =memremap (efi.tpm_final_log, -sizeof (*final_tbl) + efi_tpm_final_log_size, +sizeof (*final_tbl) + final_events_log_size,MEMREMAP_WB );if (!final_tbl) {pr_err ("Could not map UEFI TPM final log\n" );
@@ -80,10 +81,18 @@ int tpm_read_log_efi(struct tpm_chip *chip) goto out; } - efi_tpm_final_log_size -= log_tbl->final_events_preboot_size; +/* +* The 'final events log' size excludes the 'final events preboot log' +* at its beginning. +*/ + final_events_log_size -= log_tbl->final_events_preboot_size; +/* +* Allocate memory for the 'combined log' where we will append the +* 'final events log' to. +*/ tmp =krealloc (log->bios_event_log, - log_size + efi_tpm_final_log_size, + log_size + final_events_log_size,GFP_KERNEL );if (!tmp) {kfree (log->bios_event_log);
@@ -94,15 +103,19 @@ int tpm_read_log_efi(struct tpm_chip *chip) log->bios_event_log = tmp;/* -* Copy any of the final events log that didn't also end up in the -* main log. Events can be logged in both if events are generated +* Append any of the 'final events log' that didn't also end up in the +* 'main log'. Events can be logged in both if events are generated * between GetEventLog() and ExitBootServices(). */ memcpy ((void *)log->bios_event_log + log_size, final_tbl->events + log_tbl->final_events_preboot_size, - efi_tpm_final_log_size); + final_events_log_size); +/* +* The size of the 'combined log' is the size of the 'main log' plus +* the size of the 'final events log'. +*/ log->bios_event_log_end = log->bios_event_log + - log_size + efi_tpm_final_log_size; + log_size + final_events_log_size; out:memunmap (final_tbl);
drivers/clk/socfpga/clk-gate-a10.c +1 -0
@@ -146,6 +146,7 @@ static void __init __socfpga_gate_init(struct device_node *node,if (IS_ERR (socfpga_clk->sys_mgr_base_addr)) {pr_err ("%s: failed to find altr,sys-mgr regmap!\n" , __func__); +kfree (socfpga_clk);return ; } }
drivers/cpuidle/cpuidle-tegra.c +6 -6
@@ -135,13 +135,13 @@ static int tegra_cpuidle_c7_enter(void) {int err; -if (tegra_cpuidle_using_firmware ()) { - err =call_firmware_op (prepare_idle,TF_PM_MODE_LP2_NOFLUSH_L2 ); -if (err) -return err; + err =call_firmware_op (prepare_idle,TF_PM_MODE_LP2_NOFLUSH_L2 ); +if (err && err != -ENOSYS ) +return err; -return call_firmware_op (do_idle,0 ); - } + err =call_firmware_op (do_idle,0 ); +if (err != -ENOSYS ) +return err;return cpu_suspend (0 , tegra30_pm_secondary_cpu_suspend); }
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c +1 -1
@@ -932,7 +932,7 @@ static int sun8i_ce_probe(struct platform_device *pdev)if (err) goto error_alg; - err =pm_runtime_get_sync (ce->dev); + err =pm_runtime_resume_and_get (ce->dev);if (err <0 ) goto error_alg;
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c +1 -1
@@ -351,7 +351,7 @@ int sun8i_ss_cipher_init(struct crypto_tfm *tfm) op->enginectx.op.prepare_request =NULL ; op->enginectx.op.unprepare_request =NULL ; - err =pm_runtime_get_sync (op->ss->dev); + err =pm_runtime_resume_and_get (op->ss->dev);if (err <0 ) {dev_err (op->ss->dev,"pm error %d\n" , err); goto error_pm;
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c +1 -1
@@ -753,7 +753,7 @@ static int sun8i_ss_probe(struct platform_device *pdev)if (err) goto error_alg; - err =pm_runtime_get_sync (ss->dev); + err =pm_runtime_resume_and_get (ss->dev);if (err <0 ) goto error_alg;
drivers/crypto/hisilicon/sec2/sec_crypto.c +1 -1
@@ -544,7 +544,7 @@ static int sec_skcipher_init(struct crypto_skcipher *tfm)crypto_skcipher_set_reqsize (tfm,sizeof (struct sec_req )); ctx->c_ctx.ivsize =crypto_skcipher_ivsize (tfm);if (ctx->c_ctx.ivsize >SEC_IV_SIZE ) { -dev_err (SEC_CTX_DEV (ctx),"get error skcipher iv size!\n" ); +pr_err ("get error skcipher iv size!\n" );return -EINVAL ; }
drivers/crypto/omap-aes.c +3 -3
@@ -103,7 +103,7 @@ static int omap_aes_hw_init(struct omap_aes_dev *dd) dd->err =0 ; } - err =pm_runtime_get_sync (dd->dev); + err =pm_runtime_resume_and_get (dd->dev);if (err <0 ) {dev_err (dd->dev,"failed to get sync: %d\n" , err);return err;
@@ -1133,7 +1133,7 @@ static int omap_aes_probe(struct platform_device *pdev)pm_runtime_set_autosuspend_delay (dev,DEFAULT_AUTOSUSPEND_DELAY );pm_runtime_enable (dev); - err =pm_runtime_get_sync (dev); + err =pm_runtime_resume_and_get (dev);if (err <0 ) {dev_err (dev,"%s: failed to get_sync(%d)\n" , __func__, err);
@@ -1302,7 +1302,7 @@ static int omap_aes_suspend(struct device *dev)static int omap_aes_resume (struct device *dev) { -pm_runtime_get_sync (dev); +pm_runtime_resume_and_get (dev);return 0 ; }#endif
drivers/crypto/qat/qat_common/qat_algs.c +9 -2
@@ -670,7 +670,7 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst,struct qat_alg_buf_list *bufl;struct qat_alg_buf_list *buflout =NULL ;dma_addr_t blp; -dma_addr_t bloutp =0 ; +dma_addr_t bloutp;struct scatterlist *sg;size_t sz_out, sz =struct_size (bufl, bufers, n +1 );
@@ -682,6 +682,9 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst,if (unlikely (!bufl))return -ENOMEM ; +for_each_sg (sgl, sg, n, i) + bufl->bufers[i].addr =DMA_MAPPING_ERROR ; + blp =dma_map_single (dev, bufl, sz,DMA_TO_DEVICE );if (unlikely (dma_mapping_error (dev, blp))) goto err_in;
@@ -715,10 +718,14 @@ static int qat_alg_sgl_to_bufl(struct qat_crypto_instance *inst, dev_to_node(&GET_DEV(inst->accel_dev)));if (unlikely (!buflout)) goto err_in; + + bufers = buflout->bufers; +for_each_sg (sglout, sg, n, i) + bufers[i].addr =DMA_MAPPING_ERROR ; + bloutp =dma_map_single (dev, buflout, sz_out,DMA_TO_DEVICE );if (unlikely (dma_mapping_error (dev, bloutp))) goto err_out; - bufers = buflout->bufers;for_each_sg (sglout, sg, n, i) {int y = sg_nctr;
drivers/crypto/sa2ul.c +1 -1
@@ -2345,7 +2345,7 @@ static int sa_ul_probe(struct platform_device *pdev)dev_set_drvdata (sa_k3_dev, dev_data);pm_runtime_enable (dev); - ret =pm_runtime_get_sync (dev); + ret =pm_runtime_resume_and_get (dev);if (ret <0 ) {dev_err (&pdev->dev,"%s: failed to get sync: %d\n" , __func__, ret);
drivers/crypto/stm32/stm32-cryp.c +2 -2
@@ -542,7 +542,7 @@ static int stm32_cryp_hw_init(struct stm32_cryp *cryp)int ret;u32 cfg, hw_mode; -pm_runtime_get_sync (cryp->dev); +pm_runtime_resume_and_get (cryp->dev);/* Disable interrupt */ stm32_cryp_write (cryp,CRYP_IMSCR ,0 );
@@ -2043,7 +2043,7 @@ static int stm32_cryp_remove(struct platform_device *pdev)if (!cryp)return -ENODEV ; - ret =pm_runtime_get_sync (cryp->dev); + ret =pm_runtime_resume_and_get (cryp->dev);if (ret <0 )return ret;
drivers/crypto/stm32/stm32-hash.c +4 -4
@@ -812,7 +812,7 @@ static void stm32_hash_finish_req(struct ahash_request *req, int err)static int stm32_hash_hw_init (struct stm32_hash_dev *hdev,struct stm32_hash_request_ctx *rctx) { -pm_runtime_get_sync (hdev->dev); +pm_runtime_resume_and_get (hdev->dev);if (!(HASH_FLAGS_INIT & hdev->flags)) {stm32_hash_write (hdev,HASH_CR ,HASH_CR_INIT );
@@ -961,7 +961,7 @@ static int stm32_hash_export(struct ahash_request *req, void *out)u32 *preg;unsigned int i; -pm_runtime_get_sync (hdev->dev); +pm_runtime_resume_and_get (hdev->dev);while ((stm32_hash_read (hdev,HASH_SR ) &HASH_SR_BUSY ))cpu_relax ();
@@ -999,7 +999,7 @@ static int stm32_hash_import(struct ahash_request *req, const void *in) preg = rctx->hw_context; -pm_runtime_get_sync (hdev->dev); +pm_runtime_resume_and_get (hdev->dev);stm32_hash_write (hdev,HASH_IMR , *preg++);stm32_hash_write (hdev,HASH_STR , *preg++);
@@ -1565,7 +1565,7 @@ static int stm32_hash_remove(struct platform_device *pdev)if (!hdev)return -ENODEV ; - ret =pm_runtime_get_sync (hdev->dev); + ret =pm_runtime_resume_and_get (hdev->dev);if (ret <0 )return ret;
drivers/extcon/extcon-arizona.c +30 -27
98 lines not on this page · raw message
drivers/firmware/efi/libstub/Makefile +2 -1
@@ -13,7 +13,8 @@ cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ \ -Wno-pointer-sign \ $(call cc-disable-warning, address-of-packed-member) \ $(call cc-disable-warning, gnu) \ - -fno-asynchronous-unwind-tables + -fno-asynchronous-unwind-tables \ + $(CLANG_FLAGS) # arm64 uses the full KBUILD_CFLAGS so it's necessary to explicitly # disable the stackleak plugin
drivers/fpga/dfl-pci.c +11 -7
@@ -61,14 +61,16 @@ static void cci_pci_free_irq(struct pci_dev *pcidev) }/* PCI Device ID */ -#define PCIE_DEVICE_ID_PF_INT_5_X 0xBCBD -#define PCIE_DEVICE_ID_PF_INT_6_X 0xBCC0 -#define PCIE_DEVICE_ID_PF_DSC_1_X 0x09C4 -#define PCIE_DEVICE_ID_INTEL_PAC_N3000 0x0B30 +#define PCIE_DEVICE_ID_PF_INT_5_X 0xBCBD +#define PCIE_DEVICE_ID_PF_INT_6_X 0xBCC0 +#define PCIE_DEVICE_ID_PF_DSC_1_X 0x09C4 +#define PCIE_DEVICE_ID_INTEL_PAC_N3000 0x0B30 +#define PCIE_DEVICE_ID_INTEL_PAC_D5005 0x0B2B/* VF Device */ -#define PCIE_DEVICE_ID_VF_INT_5_X 0xBCBF -#define PCIE_DEVICE_ID_VF_INT_6_X 0xBCC1 -#define PCIE_DEVICE_ID_VF_DSC_1_X 0x09C5 +#define PCIE_DEVICE_ID_VF_INT_5_X 0xBCBF +#define PCIE_DEVICE_ID_VF_INT_6_X 0xBCC1 +#define PCIE_DEVICE_ID_VF_DSC_1_X 0x09C5 +#define PCIE_DEVICE_ID_INTEL_PAC_D5005_VF 0x0B2Cstatic struct pci_device_id cci_pcie_id_tbl[] = { {PCI_DEVICE (PCI_VENDOR_ID_INTEL ,PCIE_DEVICE_ID_PF_INT_5_X ),},
@@ -78,6 +80,8 @@ static struct pci_device_id cci_pcie_id_tbl[] = { {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_PF_DSC_1_X),}, {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_VF_DSC_1_X),}, {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_PAC_N3000),}, + {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_PAC_D5005),}, + {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_PAC_D5005_VF),}, {0,} };MODULE_DEVICE_TABLE (pci, cci_pcie_id_tbl);
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -0
@@ -3551,6 +3551,7 @@ void amdgpu_device_fini(struct amdgpu_device *adev) {dev_info (adev->dev,"amdgpu: finishing device.\n" );flush_delayed_work (&adev->delayed_init_work); +ttm_bo_lock_delayed_workqueue (&adev->mman.bdev); adev->shutdown = true;kfree (adev->pci_state);
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +3 -2
@@ -532,6 +532,8 @@ void amdgpu_fence_driver_fini(struct amdgpu_device *adev)if (!ring || !ring->fence_drv.initialized)continue ; +if (!ring->no_scheduler) +drm_sched_fini (&ring->sched); r =amdgpu_fence_wait_empty (ring);if (r) {/* no need to trigger GPU reset as we are unloading */
@@ -540,8 +542,7 @@ void amdgpu_fence_driver_fini(struct amdgpu_device *adev)if (ring->fence_drv.irq_src)amdgpu_irq_put (adev, ring->fence_drv.irq_src, ring->fence_drv.irq_type); -if (!ring->no_scheduler) -drm_sched_fini (&ring->sched); +del_timer_sync (&ring->fence_drv.fallback_timer);for (j =0 ; j <= ring->fence_drv.num_fences_mask; ++j)dma_fence_put (ring->fence_drv.fences[j]);
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c +1 -1
@@ -499,7 +499,7 @@ void amdgpu_irq_gpu_reset_resume_helper(struct amdgpu_device *adev)for (j =0 ; j <AMDGPU_MAX_IRQ_SRC_ID ; ++j) {struct amdgpu_irq_src *src = adev->irq.client[i].sources[j]; -if (!src) +if (!src || !src->funcs || !src->funcs->set)continue ;for (k =0 ; k < src->num_types; k++)amdgpu_irq_update (adev, src, k);
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +4 -4
@@ -1034,7 +1034,7 @@ static void amdgpu_ttm_tt_unpin_userptr(struct ttm_bo_device *bdev, DMA_BIDIRECTIONAL :DMA_TO_DEVICE ;/* double check that we don't free the table twice */ -if (!ttm->sg->sgl) +if (!ttm->sg || !ttm->sg->sgl)return ;/* unmap the pages mapped to the device */
@@ -1254,13 +1254,13 @@ static void amdgpu_ttm_backend_unbind(struct ttm_bo_device *bdev,struct amdgpu_ttm_tt *gtt = (void *)ttm;int r; -if (!gtt->bound) -return ; -/* if the pages have userptr pinning then clear that first */ if (gtt->userptr)amdgpu_ttm_tt_unpin_userptr (bdev, ttm); +if (!gtt->bound) +return ; +if (gtt->offset ==AMDGPU_BO_INVALID_OFFSET )return ;
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +1 -1
@@ -259,7 +259,7 @@ int amdgpu_uvd_sw_init(struct amdgpu_device *adev)if ((adev->asic_type ==CHIP_POLARIS10 || adev->asic_type ==CHIP_POLARIS11 ) && (adev->uvd.fw_version <FW_1_66_16 )) -DRM_ERROR ("POLARIS10/11 UVD firmware version %hu.%hu is too old.\n" , +DRM_ERROR ("POLARIS10/11 UVD firmware version %u.%u is too old.\n" , version_major, version_minor); }else {unsigned int enc_major, enc_minor, dec_minor;
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c +8 -1
@@ -465,15 +465,22 @@ int amdgpu_xgmi_update_topology(struct amdgpu_hive_info *hive, struct amdgpu_dev } +/* +* NOTE psp_xgmi_node_info.num_hops layout is as follows: +* num_hops[7:6] = link type (0 = xGMI2, 1 = xGMI3, 2/3 = reserved) +* num_hops[5:3] = reserved +* num_hops[2:0] = number of hops +*/ int amdgpu_xgmi_get_hops_count (struct amdgpu_device *adev,struct amdgpu_device *peer_adev) {struct psp_xgmi_topology_info *top = &adev->psp.xgmi_context.top_info; +uint8_t num_hops_mask =0x7 ;int i;for (i =0 ; i < top->num_nodes; ++i)if (top->nodes[i].node_id == peer_adev->gmc.xgmi.node_id) -return top->nodes[i].num_hops; +return top->nodes[i].num_hops & num_hops_mask;return -EINVAL ; }
drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c +6 -1
@@ -33,6 +33,11 @@ static int kfd_debugfs_open(struct inode *inode, struct file *file)return single_open (file, show,NULL ); } +static int kfd_debugfs_hang_hws_read (struct seq_file *m,void *data) +{ +seq_printf (m,"echo gpu_id > hang_hws\n" ); +return 0 ; +}static ssize_t kfd_debugfs_hang_hws_write (struct file *file,const char __user *user_buf,size_t size,loff_t *ppos)
@@ -94,7 +99,7 @@ void kfd_debugfs_init(void)debugfs_create_file ("rls" ,S_IFREG |0444 , debugfs_root, kfd_debugfs_rls_by_device, &kfd_debugfs_fops);debugfs_create_file ("hang_hws" ,S_IFREG |0200 , debugfs_root, -NULL , &kfd_debugfs_hang_hws_fops); + kfd_debugfs_hang_hws_read, &kfd_debugfs_hang_hws_fops); }void kfd_debugfs_fini (void )
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +15 -2
@@ -1128,6 +1128,9 @@ static int set_sched_resources(struct device_queue_manager *dqm)static int initialize_cpsch (struct device_queue_manager *dqm) { +uint64_t num_sdma_queues; +uint64_t num_xgmi_sdma_queues; +pr_debug ("num of pipes: %d\n" ,get_pipes_per_mec (dqm));mutex_init (&dqm->lock_hidden);
@@ -1136,8 +1139,18 @@ static int initialize_cpsch(struct device_queue_manager *dqm) dqm->active_cp_queue_count =0 ; dqm->gws_queue_count =0 ; dqm->active_runlist = false; - dqm->sdma_bitmap = ~0ULL >> (64 -get_num_sdma_queues (dqm)); - dqm->xgmi_sdma_bitmap = ~0ULL >> (64 -get_num_xgmi_sdma_queues (dqm)); + + num_sdma_queues =get_num_sdma_queues (dqm); +if (num_sdma_queues >=BITS_PER_TYPE (dqm->sdma_bitmap)) + dqm->sdma_bitmap =ULLONG_MAX ; +else + dqm->sdma_bitmap = (BIT_ULL (num_sdma_queues) -1 ); + + num_xgmi_sdma_queues =get_num_xgmi_sdma_queues (dqm); +if (num_xgmi_sdma_queues >=BITS_PER_TYPE (dqm->xgmi_sdma_bitmap)) + dqm->xgmi_sdma_bitmap =ULLONG_MAX ; +else + dqm->xgmi_sdma_bitmap = (BIT_ULL (num_xgmi_sdma_queues) -1 );INIT_WORK (&dqm->hw_exception_work, kfd_process_hw_exception);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +11 -6
@@ -5328,6 +5328,15 @@ create_validate_stream_for_sink(struct amdgpu_dm_connector *aconnector, }while (stream ==NULL && requested_bpc >=6 ); +if (dc_result ==DC_FAIL_ENC_VALIDATE && !aconnector->force_yuv420_output) { +DRM_DEBUG_KMS ("Retry forcing YCbCr420 encoding\n" ); + + aconnector->force_yuv420_output = true; + stream =create_validate_stream_for_sink (aconnector, drm_mode, + dm_state, old_stream); + aconnector->force_yuv420_output = false; + } +return stream; }
@@ -6800,10 +6809,6 @@ static int get_cursor_position(struct drm_plane *plane, struct drm_crtc *crtc,int x, y;int xorigin =0 , yorigin =0 ; - position->enable = false; - position->x =0 ; - position->y =0 ; -if (!crtc || !plane->state->fb)return 0 ;
@@ -6850,7 +6855,7 @@ static void handle_cursor_update(struct drm_plane *plane,struct dm_crtc_state *crtc_state = crtc ?to_dm_crtc_state (crtc->state) :NULL ;struct amdgpu_crtc *amdgpu_crtc =to_amdgpu_crtc (crtc);uint64_t address = afb ? afb->address :0 ; -struct dc_cursor_position position; +struct dc_cursor_position position = {0 };struct dc_cursor_attributes attributes;int ret;
@@ -8659,7 +8664,7 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, }#if defined(CONFIG_DRM_AMD_DC_DCN ) -if (adev->asic_type >=CHIP_NAVI10 ) { +if (dc_resource_is_dsc_encoding_supported (dc)) {for_each_oldnew_crtc_in_state (state, crtc, old_crtc_state, new_crtc_state, i) {if (drm_atomic_crtc_needs_modeset (new_crtc_state)) { ret =add_affected_mst_dsc_crtcs (state, crtc);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +1 -13
@@ -68,18 +68,6 @@ struct common_irq_params {enum dc_irq_source irq_src; }; -/** -* struct irq_list_head - Linked-list for low context IRQ handlers. -* -* @head: The list_head within &struct handler_data -* @work: A work_struct containing the deferred handler work -*/ -struct irq_list_head { -struct list_head head; -/* In case this interrupt needs post-processing, 'work' will be queued*/ -struct work_struct work; -}; -/** * struct dm_compressor_info - Buffer info used by frame buffer compression * @cpu_addr: MMIO cpu addr
@@ -270,7 +258,7 @@ struct amdgpu_display_manager {* Note that handlers are called in the same order as they were * registered (FIFO). */ -struct irq_list_head irq_handler_list_low_tab[DAL_IRQ_SOURCES_NUMBER ]; +struct list_head irq_handler_list_low_tab[DAL_IRQ_SOURCES_NUMBER ];/** * @irq_handler_list_high_tab:
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +8 -7
@@ -150,7 +150,7 @@ static int parse_write_buffer_into_params(char *wr_buf, uint32_t wr_buf_size,* * --- to get dp configuration * -* cat link_settings +* cat /sys/kernel/debug/dri/0/DP-x/link_settings * * It will list current, verified, reported, preferred dp configuration. * current -- for current video mode
@@ -163,7 +163,7 @@ static int parse_write_buffer_into_params(char *wr_buf, uint32_t wr_buf_size,* echo <lane_count> <link_rate> > link_settings * * for example, to force to 2 lane, 2.7GHz, -* echo 4 0xa > link_settings +* echo 4 0xa > /sys/kernel/debug/dri/0/DP-x/link_settings * * spread_spectrum could not be changed dynamically. *
@@ -171,7 +171,7 @@ static int parse_write_buffer_into_params(char *wr_buf, uint32_t wr_buf_size,* done. please check link settings after force operation to see if HW get * programming. * -* cat link_settings +* cat /sys/kernel/debug/dri/0/DP-x/link_settings * * check current and preferred settings. *
@@ -255,7 +255,7 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf,int max_param_num =2 ;uint8_t param_nums =0 ;long param[2 ]; -bool valid_input = false; +bool valid_input = true;if (size ==0 )return -EINVAL ;
@@ -282,9 +282,9 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf,case LANE_COUNT_ONE :case LANE_COUNT_TWO :case LANE_COUNT_FOUR : - valid_input = true;break ;default : + valid_input = false;break ; }
@@ -294,9 +294,9 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf,case LINK_RATE_RBR2 :case LINK_RATE_HIGH2 :case LINK_RATE_HIGH3 : - valid_input = true;break ;default : + valid_input = false;break ; }
@@ -310,10 +310,11 @@ static ssize_t dp_link_settings_write(struct file *f, const char __user *buf,* spread spectrum will not be changed */ prefer_link_settings.link_spread = link->cur_link_settings.link_spread; + prefer_link_settings.use_link_rate_set = false; prefer_link_settings.lane_count = param[0 ]; prefer_link_settings.link_rate = param[1 ]; -dc_link_set_preferred_link_settings (dc, &prefer_link_settings, link); +dc_link_set_preferred_training_settings (dc, &prefer_link_settings,NULL , link, true);kfree (wr_buf);return size;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c +79 -36
206 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c +3 -1
@@ -240,6 +240,7 @@ static void dcn3_update_clocks(struct clk_mgr *clk_mgr_base,bool force_reset = false;bool update_uclk = false;bool p_state_change_support; +int total_plane_count;if (dc->work_arounds.skip_clock_update || !clk_mgr->smu_present)return ;
@@ -280,7 +281,8 @@ static void dcn3_update_clocks(struct clk_mgr *clk_mgr_base, clk_mgr_base->clks.socclk_khz = new_clocks->socclk_khz; clk_mgr_base->clks.prev_p_state_change_support = clk_mgr_base->clks.p_state_change_support; - p_state_change_support = new_clocks->p_state_change_support || (display_count ==0 ); + total_plane_count =clk_mgr_helper_get_active_plane_cnt (dc, context); + p_state_change_support = new_clocks->p_state_change_support || (total_plane_count ==0 );if (should_update_pstate_support (safe_to_lower, p_state_change_support, clk_mgr_base->clks.p_state_change_support)) { clk_mgr_base->clks.p_state_change_support = p_state_change_support;
drivers/gpu/drm/amd/display/dc/core/dc.c +2 -1
@@ -2345,7 +2345,8 @@ static void commit_planes_do_stream_update(struct dc *dc,if (pipe_ctx->stream_res.audio && !dc->debug.az_endpoint_mute_only) pipe_ctx->stream_res.audio->funcs->az_disable (pipe_ctx->stream_res.audio); - dc->hwss.optimize_bandwidth (dc, dc->current_state); + dc->optimized_required = true; + }else {if (dc->optimize_seamless_boot_streams ==0 ) dc->hwss.prepare_bandwidth (dc, dc->current_state);
drivers/gpu/drm/amd/display/dc/dce/dce_aux.h +0 -1
@@ -99,7 +99,6 @@ struct dce110_aux_registers {AUX_SF (AUX_SW_CONTROL ,AUX_SW_GO , mask_sh),\AUX_SF (AUX_SW_DATA ,AUX_SW_AUTOINCREMENT_DISABLE , mask_sh),\AUX_SF (AUX_SW_DATA ,AUX_SW_DATA_RW , mask_sh),\ -AUX_SF (AUX_SW_DATA ,AUX_SW_AUTOINCREMENT_DISABLE , mask_sh),\AUX_SF (AUX_SW_DATA ,AUX_SW_INDEX , mask_sh),\AUX_SF (AUX_SW_DATA ,AUX_SW_DATA , mask_sh),\ AUX_SF(AUX_SW_STATUS, AUX_SW_REPLY_BYTE_COUNT, mask_sh),\
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c +1 -1
@@ -180,7 +180,7 @@ struct _vcs_dpi_soc_bounding_box_st dcn3_0_soc = { }, .min_dcfclk = 500.0, /* TODO: set this to actual min DCFCLK */ .num_states = 1, - .sr_exit_time_us = 12, + .sr_exit_time_us = 15.5, .sr_enter_plus_exit_time_us = 20, .urgent_latency_us = 4.0, .urgent_latency_pixel_data_only_us = 4.0,
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20.c +1 -0
@@ -3437,6 +3437,7 @@ void dml20_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode_l mode_lib->vba.DCCEnabledInAnyPlane = true; } } + mode_lib->vba.UrgentLatency = mode_lib->vba.UrgentLatencyPixelDataOnly;for (i =0 ; i <= mode_lib->vba.soc.num_states; i++) { locals->FabricAndDRAMBandwidthPerState[i] =dml_min ( mode_lib->vba.DRAMSpeedPerState[i] * mode_lib->vba.NumberOfChannels
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_mode_vba_20v2.c +1 -0
@@ -3510,6 +3510,7 @@ void dml20v2_ModeSupportAndSystemConfigurationFull(struct display_mode_lib *mode mode_lib->vba.DCCEnabledInAnyPlane = true; } } + mode_lib->vba.UrgentLatency = mode_lib->vba.UrgentLatencyPixelDataOnly;for (i =0 ; i <= mode_lib->vba.soc.num_states; i++) { locals->FabricAndDRAMBandwidthPerState[i] =dml_min ( mode_lib->vba.DRAMSpeedPerState[i] * mode_lib->vba.NumberOfChannels
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20.c +23 -5
@@ -293,13 +293,31 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib,if (surf_linear) { log2_swath_height_l =0 ; log2_swath_height_c =0 ; - }else if (!surf_vert) { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_height) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_height) - req128_c; }else { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_width) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_width) - req128_c; +unsigned int swath_height_l; +unsigned int swath_height_c; + +if (!surf_vert) { + swath_height_l = rq_param->misc.rq_l.blk256_height; + swath_height_c = rq_param->misc.rq_c.blk256_height; + }else { + swath_height_l = rq_param->misc.rq_l.blk256_width; + swath_height_c = rq_param->misc.rq_c.blk256_width; + } + +if (swath_height_l >0 ) + log2_swath_height_l =dml_log2 (swath_height_l); + +if (req128_l && log2_swath_height_l >0 ) + log2_swath_height_l -=1 ; + +if (swath_height_c >0 ) + log2_swath_height_c =dml_log2 (swath_height_c); + +if (req128_c && log2_swath_height_c >0 ) + log2_swath_height_c -=1 ; } + rq_param->dlg.rq_l.swath_height =1 << log2_swath_height_l; rq_param->dlg.rq_c.swath_height =1 << log2_swath_height_c;
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20v2.c +23 -5
@@ -293,13 +293,31 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib,if (surf_linear) { log2_swath_height_l =0 ; log2_swath_height_c =0 ; - }else if (!surf_vert) { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_height) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_height) - req128_c; }else { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_width) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_width) - req128_c; +unsigned int swath_height_l; +unsigned int swath_height_c; + +if (!surf_vert) { + swath_height_l = rq_param->misc.rq_l.blk256_height; + swath_height_c = rq_param->misc.rq_c.blk256_height; + }else { + swath_height_l = rq_param->misc.rq_l.blk256_width; + swath_height_c = rq_param->misc.rq_c.blk256_width; + } + +if (swath_height_l >0 ) + log2_swath_height_l =dml_log2 (swath_height_l); + +if (req128_l && log2_swath_height_l >0 ) + log2_swath_height_l -=1 ; + +if (swath_height_c >0 ) + log2_swath_height_c =dml_log2 (swath_height_c); + +if (req128_c && log2_swath_height_c >0 ) + log2_swath_height_c -=1 ; } + rq_param->dlg.rq_l.swath_height =1 << log2_swath_height_l; rq_param->dlg.rq_c.swath_height =1 << log2_swath_height_c;
drivers/gpu/drm/amd/display/dc/dml/dcn21/display_rq_dlg_calc_21.c +23 -5
@@ -277,13 +277,31 @@ static void handle_det_buf_split(if (surf_linear) { log2_swath_height_l =0 ; log2_swath_height_c =0 ; - }else if (!surf_vert) { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_height) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_height) - req128_c; }else { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_width) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_width) - req128_c; +unsigned int swath_height_l; +unsigned int swath_height_c; + +if (!surf_vert) { + swath_height_l = rq_param->misc.rq_l.blk256_height; + swath_height_c = rq_param->misc.rq_c.blk256_height; + }else { + swath_height_l = rq_param->misc.rq_l.blk256_width; + swath_height_c = rq_param->misc.rq_c.blk256_width; + } + +if (swath_height_l >0 ) + log2_swath_height_l =dml_log2 (swath_height_l); + +if (req128_l && log2_swath_height_l >0 ) + log2_swath_height_l -=1 ; + +if (swath_height_c >0 ) + log2_swath_height_c =dml_log2 (swath_height_c); + +if (req128_c && log2_swath_height_c >0 ) + log2_swath_height_c -=1 ; } + rq_param->dlg.rq_l.swath_height =1 << log2_swath_height_l; rq_param->dlg.rq_c.swath_height =1 << log2_swath_height_c;
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_rq_dlg_calc_30.c +23 -5
@@ -237,13 +237,31 @@ static void handle_det_buf_split(struct display_mode_lib *mode_lib,if (surf_linear) { log2_swath_height_l =0 ; log2_swath_height_c =0 ; - }else if (!surf_vert) { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_height) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_height) - req128_c; }else { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_width) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_width) - req128_c; +unsigned int swath_height_l; +unsigned int swath_height_c; + +if (!surf_vert) { + swath_height_l = rq_param->misc.rq_l.blk256_height; + swath_height_c = rq_param->misc.rq_c.blk256_height; + }else { + swath_height_l = rq_param->misc.rq_l.blk256_width; + swath_height_c = rq_param->misc.rq_c.blk256_width; + } + +if (swath_height_l >0 ) + log2_swath_height_l =dml_log2 (swath_height_l); + +if (req128_l && log2_swath_height_l >0 ) + log2_swath_height_l -=1 ; + +if (swath_height_c >0 ) + log2_swath_height_c =dml_log2 (swath_height_c); + +if (req128_c && log2_swath_height_c >0 ) + log2_swath_height_c -=1 ; } + rq_param->dlg.rq_l.swath_height =1 << log2_swath_height_l; rq_param->dlg.rq_c.swath_height =1 << log2_swath_height_c;
drivers/gpu/drm/amd/display/dc/dml/dml1_display_rq_dlg_calc.c +23 -5
@@ -344,13 +344,31 @@ static void handle_det_buf_split(if (surf_linear) { log2_swath_height_l =0 ; log2_swath_height_c =0 ; - }else if (!surf_vert) { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_height) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_height) - req128_c; }else { - log2_swath_height_l =dml_log2 (rq_param->misc.rq_l.blk256_width) - req128_l; - log2_swath_height_c =dml_log2 (rq_param->misc.rq_c.blk256_width) - req128_c; +unsigned int swath_height_l; +unsigned int swath_height_c; + +if (!surf_vert) { + swath_height_l = rq_param->misc.rq_l.blk256_height; + swath_height_c = rq_param->misc.rq_c.blk256_height; + }else { + swath_height_l = rq_param->misc.rq_l.blk256_width; + swath_height_c = rq_param->misc.rq_c.blk256_width; + } + +if (swath_height_l >0 ) + log2_swath_height_l =dml_log2 (swath_height_l); + +if (req128_l && log2_swath_height_l >0 ) + log2_swath_height_l -=1 ; + +if (swath_height_c >0 ) + log2_swath_height_c =dml_log2 (swath_height_c); + +if (req128_c && log2_swath_height_c >0 ) + log2_swath_height_c -=1 ; } + rq_param->dlg.rq_l.swath_height =1 << log2_swath_height_l; rq_param->dlg.rq_c.swath_height =1 << log2_swath_height_c;
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_hwmgr.c +1 -1
@@ -5159,7 +5159,7 @@ static int vega10_set_power_profile_mode(struct pp_hwmgr *hwmgr, long *input, ui out:smum_send_msg_to_smc_with_parameter (hwmgr, PPSMC_MSG_SetWorkloadMask, -1 << power_profile_mode, + (!power_profile_mode) ?0 :1 << (power_profile_mode -1 ),NULL ); hwmgr->power_profile_mode = power_profile_mode;
drivers/gpu/drm/arm/display/include/malidp_utils.h +0 -3
@@ -13,9 +13,6 @@#define has_bit (nr, mask) (BIT(nr) & (mask))#define has_bits (bits, mask) (((bits) & (mask)) == (bits)) -#define dp_for_each_set_bit (bit, mask) \ - for_each_set_bit((bit), ((unsigned long *)&(mask)), sizeof(mask) * 8) -#define dp_wait_cond (__cond, __tries, __min_range, __max_range) \ ({ \ int num_tries = __tries; \
drivers/gpu/drm/arm/display/komeda/komeda_pipeline.c +11 -5
@@ -46,8 +46,9 @@ void komeda_pipeline_destroy(struct komeda_dev *mdev, {struct komeda_component *c;int i; +unsigned long avail_comps = pipe->avail_comps; -dp_for_each_set_bit (i, pipe->avail_comps) { +for_each_set_bit (i, &avail_comps,32 ) { c =komeda_pipeline_get_component (pipe, i);komeda_component_destroy (mdev, c); }
@@ -246,6 +247,7 @@ static void komeda_pipeline_dump(struct komeda_pipeline *pipe) {struct komeda_component *c;int id; +unsigned long avail_comps = pipe->avail_comps; DRM_INFO("Pipeline-%d: n_layers: %d, n_scalers: %d, output: %s.\n", pipe->id, pipe->n_layers, pipe->n_scalers,
@@ -257,7 +259,7 @@ static void komeda_pipeline_dump(struct komeda_pipeline *pipe) pipe->of_output_links[1 ] ? pipe->of_output_links[1]->full_name : "none"); -dp_for_each_set_bit (id, pipe->avail_comps) { +for_each_set_bit (id, &avail_comps,32 ) { c =komeda_pipeline_get_component (pipe, id);komeda_component_dump (c);
@@ -269,8 +271,9 @@ static void komeda_component_verify_inputs(struct komeda_component *c)struct komeda_pipeline *pipe = c->pipeline;struct komeda_component *input;int id; +unsigned long supported_inputs = c->supported_inputs; -dp_for_each_set_bit (id, c->supported_inputs) { +for_each_set_bit (id, &supported_inputs,32 ) { input =komeda_pipeline_get_component (pipe, id);if (!input) { c->supported_inputs &= ~(BIT (id));
@@ -301,8 +304,9 @@ static void komeda_pipeline_assemble(struct komeda_pipeline *pipe)struct komeda_component *c;struct komeda_layer *layer;int i, id; +unsigned long avail_comps = pipe->avail_comps; -dp_for_each_set_bit (id, pipe->avail_comps) { +for_each_set_bit (id, &avail_comps,32 ) { c =komeda_pipeline_get_component (pipe, id);komeda_component_verify_inputs (c); }
@@ -354,13 +358,15 @@ void komeda_pipeline_dump_register(struct komeda_pipeline *pipe, {struct komeda_component *c;u32 id; +unsigned long avail_comps;seq_printf (sf,"\n======== Pipeline-%d ==========\n" , pipe->id);if (pipe->funcs && pipe->funcs->dump_register) pipe->funcs->dump_register (pipe, sf); -dp_for_each_set_bit (id, pipe->avail_comps) { + avail_comps = pipe->avail_comps; +for_each_set_bit (id, &avail_comps,32 ) { c =komeda_pipeline_get_component (pipe, id);seq_printf (sf,"\n------%s------\n" , c->name);
drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c +11 -8
@@ -1231,14 +1231,15 @@ komeda_pipeline_unbound_components(struct komeda_pipeline *pipe,struct komeda_pipeline_state *old =priv_to_pipe_st (pipe->obj.state);struct komeda_component_state *c_st;struct komeda_component *c; -u32 disabling_comps, id; +u32 id; +unsigned long disabling_comps;WARN_ON (!old); disabling_comps = (~new->active_comps) & old->active_comps;/* unbound all disabling component */ -dp_for_each_set_bit (id, disabling_comps) { +for_each_set_bit (id, &disabling_comps,32 ) { c =komeda_pipeline_get_component (pipe, id); c_st =komeda_component_get_state_and_set_user (c, drm_st,NULL , new->crtc);
@@ -1286,7 +1287,8 @@ bool komeda_pipeline_disable(struct komeda_pipeline *pipe,struct komeda_pipeline_state *old;struct komeda_component *c;struct komeda_component_state *c_st; -u32 id, disabling_comps =0 ; +u32 id; +unsigned long disabling_comps; old =komeda_pipeline_get_old_state (pipe, old_state);
@@ -1296,10 +1298,10 @@ bool komeda_pipeline_disable(struct komeda_pipeline *pipe, disabling_comps = old->active_comps & pipe->standalone_disabled_comps; -DRM_DEBUG_ATOMIC ("PIPE%d: active_comps: 0x%x, disabling_comps: 0x%x.\n" , +DRM_DEBUG_ATOMIC ("PIPE%d: active_comps: 0x%x, disabling_comps: 0x%lx.\n" , pipe->id, old->active_comps, disabling_comps); -dp_for_each_set_bit (id, disabling_comps) { +for_each_set_bit (id, &disabling_comps,32 ) { c =komeda_pipeline_get_component (pipe, id); c_st =priv_to_comp_st (c->obj.state);
@@ -1330,16 +1332,17 @@ void komeda_pipeline_update(struct komeda_pipeline *pipe,struct komeda_pipeline_state *new =priv_to_pipe_st (pipe->obj.state);struct komeda_pipeline_state *old;struct komeda_component *c; -u32 id, changed_comps =0 ; +u32 id; +unsigned long changed_comps; old =komeda_pipeline_get_old_state (pipe, old_state); changed_comps = new->active_comps | old->active_comps; -DRM_DEBUG_ATOMIC ("PIPE%d: active_comps: 0x%x, changed: 0x%x.\n" , +DRM_DEBUG_ATOMIC ("PIPE%d: active_comps: 0x%x, changed: 0x%lx.\n" , pipe->id, new->active_comps, changed_comps); -dp_for_each_set_bit (id, changed_comps) { +for_each_set_bit (id, &changed_comps,32 ) { c =komeda_pipeline_get_component (pipe, id);if (new->active_comps &BIT (c->id))
drivers/gpu/drm/ast/ast_drv.c +2 -0
@@ -30,6 +30,7 @@#include <linux/module.h> #include <linux/pci.h> +#include <drm/drm_atomic_helper.h> #include <drm/drm_crtc_helper.h> #include <drm/drm_drv.h> #include <drm/drm_fb_helper.h>
@@ -138,6 +139,7 @@ static void ast_pci_remove(struct pci_dev *pdev)struct drm_device *dev =pci_get_drvdata (pdev);drm_dev_unregister (dev); +drm_atomic_helper_shutdown (dev); }static int ast_drm_freeze (struct drm_device *dev)
drivers/gpu/drm/ast/ast_mode.c +1 -1
@@ -688,7 +688,7 @@ ast_cursor_plane_helper_atomic_update(struct drm_plane *plane,unsigned int offset_x, offset_y; offset_x =AST_MAX_HWC_WIDTH - fb->width; - offset_y =AST_MAX_HWC_WIDTH - fb->height; + offset_y =AST_MAX_HWC_HEIGHT - fb->height;if (state->fb != old_state->fb) {/* A new cursor image was installed. */
drivers/gpu/drm/drm_panel_orientation_quirks.c +14 -0
@@ -84,6 +84,13 @@ static const struct drm_dmi_panel_orientation_data itworks_tw891 = { .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, }; +static const struct drm_dmi_panel_orientation_data onegx1_pro = { + .width =1200 , + .height =1920 , + .bios_dates = (const char *const []){"12/17/2020" ,NULL }, + .orientation =DRM_MODE_PANEL_ORIENTATION_RIGHT_UP , +}; +static const struct drm_dmi_panel_orientation_data lcd720x1280_rightside_up = { .width =720 , .height =1280 ,
@@ -211,6 +218,13 @@ static const struct dmi_system_id orientation_data[] = { DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad D330-10IGM"), }, .driver_data = (void *)&lcd1200x1920_rightside_up, + }, { /* OneGX1 Pro */ + .matches = { +DMI_EXACT_MATCH (DMI_SYS_VENDOR ,"SYSTEM_MANUFACTURER" ), +DMI_EXACT_MATCH (DMI_PRODUCT_NAME ,"SYSTEM_PRODUCT_NAME" ), + DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Default string"), + }, + .driver_data = (void *)&onegx1_pro, }, { /* VIOS LTH17 */ .matches = { DMI_EXACT_MATCH(DMI_SYS_VENDOR, "VIOS"),
drivers/gpu/drm/i915/intel_pm.c +1 -1
@@ -2992,7 +2992,7 @@ int ilk_wm_max_level(const struct drm_i915_private *dev_priv)static void intel_print_wm_latency (struct drm_i915_private *dev_priv,const char *name, -const u16 wm[8 ]) +const u16 wm[]) {int level, max_level =ilk_wm_max_level (dev_priv);
drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c +13 -5
@@ -20,7 +20,7 @@ static int pingpong_tearcheck_setup(struct drm_encoder *encoder, {struct mdp5_kms *mdp5_kms =get_kms (encoder);struct device *dev = encoder->dev->dev; -u32 total_lines_x100, vclks_line, cfg; +u32 total_lines, vclks_line, cfg;long vsync_clk_speed;struct mdp5_hw_mixer *mixer =mdp5_crtc_get_mixer (encoder->crtc);int pp_id = mixer->pp;
@@ -30,8 +30,8 @@ static int pingpong_tearcheck_setup(struct drm_encoder *encoder,return -EINVAL ; } - total_lines_x100 = mode->vtotal *drm_mode_vrefresh (mode); -if (!total_lines_x100) { + total_lines = mode->vtotal *drm_mode_vrefresh (mode); +if (!total_lines) {DRM_DEV_ERROR (dev,"%s: vtotal(%d) or vrefresh(%d) is 0\n" , __func__, mode->vtotal,drm_mode_vrefresh (mode));return -EINVAL ;
@@ -43,15 +43,23 @@ static int pingpong_tearcheck_setup(struct drm_encoder *encoder, vsync_clk_speed);return -EINVAL ; } - vclks_line = vsync_clk_speed *100 / total_lines_x100; + vclks_line = vsync_clk_speed / total_lines; cfg =MDP5_PP_SYNC_CONFIG_VSYNC_COUNTER_EN |MDP5_PP_SYNC_CONFIG_VSYNC_IN_EN ; cfg |=MDP5_PP_SYNC_CONFIG_VSYNC_COUNT (vclks_line); +/* +* Tearcheck emits a blanking signal every vclks_line * vtotal * 2 ticks on +* the vsync_clk equating to roughly half the desired panel refresh rate. +* This is only necessary as stability fallback if interrupts from the +* panel arrive too late or not at all, but is currently used by default +* because these panel interrupts are not wired up yet. +*/ mdp5_write (mdp5_kms,REG_MDP5_PP_SYNC_CONFIG_VSYNC (pp_id), cfg);mdp5_write (mdp5_kms, -REG_MDP5_PP_SYNC_CONFIG_HEIGHT (pp_id),0xfff0 ); +REG_MDP5_PP_SYNC_CONFIG_HEIGHT (pp_id), (2 * mode->vtotal)); +mdp5_write (mdp5_kms,REG_MDP5_PP_VSYNC_INIT_VAL (pp_id), mode->vdisplay);mdp5_write (mdp5_kms,REG_MDP5_PP_RD_PTR_IRQ (pp_id), mode->vdisplay +1 );
drivers/gpu/drm/msm/dp/dp_hpd.c +2 -2
@@ -34,8 +34,8 @@ int dp_hpd_connect(struct dp_usbpd *dp_usbpd, bool hpd) dp_usbpd->hpd_high = hpd; -if (!hpd_priv->dp_cb && !hpd_priv->dp_cb->configure - && !hpd_priv->dp_cb->disconnect) { +if (!hpd_priv->dp_cb || !hpd_priv->dp_cb->configure + || !hpd_priv->dp_cb->disconnect) {pr_err ("hpd dp_cb not initialized\n" );return -EINVAL ; }
drivers/gpu/drm/qxl/qxl_display.c +4 -0
@@ -1224,6 +1224,10 @@ int qxl_modeset_init(struct qxl_device *qdev)void qxl_modeset_fini (struct qxl_device *qdev) { +if (qdev->dumb_shadow_bo) { +drm_gem_object_put (&qdev->dumb_shadow_bo->tbo.base); + qdev->dumb_shadow_bo =NULL ; + }qxl_destroy_monitors_object (qdev);drm_mode_config_cleanup (&qdev->ddev); }
drivers/gpu/drm/qxl/qxl_drv.c +2 -0
@@ -144,6 +144,8 @@ static void qxl_drm_release(struct drm_device *dev)* reodering qxl_modeset_fini() + qxl_device_fini() calls is * non-trivial though. */ +if (!dev->registered) +return ;qxl_modeset_fini (qdev);qxl_device_fini (qdev); }
drivers/gpu/drm/radeon/radeon_ttm.c +3 -2
@@ -566,13 +566,14 @@ static void radeon_ttm_backend_unbind(struct ttm_bo_device *bdev, struct ttm_ttstruct radeon_ttm_tt *gtt = (void *)ttm;struct radeon_device *rdev =radeon_get_rdev (bdev); +if (gtt->userptr) +radeon_ttm_tt_unpin_userptr (bdev, ttm); +if (!gtt->bound)return ;radeon_gart_unbind (rdev, gtt->offset, ttm->num_pages); -if (gtt->userptr) -radeon_ttm_tt_unpin_userptr (bdev, ttm); gtt->bound = false; }
drivers/gpu/drm/vkms/vkms_crtc.c +2 -1
@@ -18,7 +18,8 @@ static enum hrtimer_restart vkms_vblank_simulate(struct hrtimer *timer) ret_overrun =hrtimer_forward_now (&output->vblank_hrtimer, output->period_ns); -WARN_ON (ret_overrun !=1 ); +if (ret_overrun !=1 ) +pr_warn ("%s: vblank timer overrun\n" , __func__);spin_lock (&output->lock); ret =drm_crtc_handle_vblank (crtc);
drivers/hwtracing/intel_th/gth.c +2 -2
@@ -543,7 +543,7 @@ static void intel_th_gth_disable(struct intel_th_device *thdev, output->active = false;for_each_set_bit (master, gth->output[output->port].master, -TH_CONFIGURABLE_MASTERS ) { +TH_CONFIGURABLE_MASTERS +1 ) {gth_master_set (gth, master,-1 ); }spin_unlock (>h->gth_lock);
@@ -697,7 +697,7 @@ static void intel_th_gth_unassign(struct intel_th_device *thdev, othdev->output.port =-1 ; othdev->output.active = false; gth->output[port].output =NULL ; -for (master =0 ; master <=TH_CONFIGURABLE_MASTERS ; master++) +for (master =0 ; master <TH_CONFIGURABLE_MASTERS +1 ; master++)if (gth->master[master] == port) gth->master[master] =-1 ;spin_unlock (>h->gth_lock);
drivers/hwtracing/intel_th/pci.c +10 -0
@@ -273,11 +273,21 @@ static const struct pci_device_id intel_th_pci_id_table[] = { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x51a6), .driver_data = (kernel_ulong_t)&intel_th_2x, }, + { +/* Alder Lake-M */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x54a6), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, {/* Alder Lake CPU */ PCI_DEVICE (PCI_VENDOR_ID_INTEL ,0x466f ), .driver_data = (kernel_ulong_t)&intel_th_2x, }, + { +/* Rocket Lake CPU */ +PCI_DEVICE (PCI_VENDOR_ID_INTEL ,0x4c19 ), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, { 0 }, };
drivers/input/touchscreen/ili210x.c +1 -1
@@ -87,7 +87,7 @@ static bool ili210x_touchdata_to_coords(const u8 *touchdata, unsigned int *x, unsigned int *y, unsigned int *z) { - if (touchdata[0] & BIT(finger)) + if (!(touchdata[0] & BIT(finger))) return false; *x =get_unaligned_be16 (touchdata +1 + (finger *4 ) +0 );
drivers/irqchip/irq-gic-v3.c +4 -4
@@ -648,6 +648,10 @@ static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs irqnr =gic_read_iar (); +/* Check for special IDs first */ +if ((irqnr >=1020 && irqnr <=1023 )) +return ; +if (gic_supports_nmi () &&unlikely (gic_read_rpr () ==GICD_INT_NMI_PRI )) {gic_handle_nmi (irqnr, regs);
@@ -659,10 +663,6 @@ static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regsgic_arch_enable_irqs (); } -/* Check for special IDs first */ -if ((irqnr >=1020 && irqnr <=1023 )) -return ; -if (static_branch_likely (&supports_deactivate_key))gic_write_eoir (irqnr);else
drivers/md/dm-integrity.c +1 -0
@@ -3929,6 +3929,7 @@ static int dm_integrity_ctr(struct dm_target *ti, unsigned argc, char **argv)if (val >= (uint64_t )UINT_MAX *1000 /HZ ) { r = -EINVAL ; ti->error ="Invalid bitmap_flush_interval argument" ; + goto bad; } ic->bitmap_flush_interval =msecs_to_jiffies (val); }else if (!strncmp (opt_string,"internal_hash:" ,strlen ("internal_hash:" ))) {
drivers/md/dm-raid.c +28 -6
@@ -1869,6 +1869,14 @@ static bool rs_takeover_requested(struct raid_set *rs)return rs->md.new_level != rs->md.level; } +/* True if layout is set to reshape. */ +static bool rs_is_layout_change (struct raid_set *rs,bool use_mddev) +{ +return (use_mddev ? rs->md.delta_disks : rs->delta_disks) || + rs->md.new_layout != rs->md.layout || + rs->md.new_chunk_sectors != rs->md.chunk_sectors; +} +/* True if @rs is requested to reshape by ctr */ static bool rs_reshape_requested (struct raid_set *rs) {
@@ -1881,9 +1889,7 @@ static bool rs_reshape_requested(struct raid_set *rs)if (rs_is_raid0 (rs))return false; - change = mddev->new_layout != mddev->layout || - mddev->new_chunk_sectors != mddev->chunk_sectors || - rs->delta_disks; + change =rs_is_layout_change (rs, false);/* Historical case to support raid1 reshape without delta disks */ if (rs_is_raid1 (rs)) {
@@ -2818,7 +2824,7 @@ static sector_t _get_reshape_sectors(struct raid_set *rs) }/* -* +* Reshape: * - change raid layout * - change chunk size * - add disks
@@ -2927,6 +2933,20 @@ static int rs_setup_reshape(struct raid_set *rs)return r; } +/* +* If the md resync thread has updated superblock with max reshape position +* at the end of a reshape but not (yet) reset the layout configuration +* changes -> reset the latter. +*/ +static void rs_reset_inconclusive_reshape (struct raid_set *rs) +{ +if (!rs_is_reshaping (rs) &&rs_is_layout_change (rs, true)) { +rs_set_cur (rs); + rs->md.delta_disks =0 ; + rs->md.reshape_backwards =0 ; + } +} +/* * Enable/disable discard support on RAID set depending on * RAID level and discard properties of underlying RAID members.
@@ -3213,11 +3233,14 @@ static int raid_ctr(struct dm_target *ti, unsigned int argc, char **argv)if (r) goto bad; +/* Catch any inconclusive reshape superblock content. */ +rs_reset_inconclusive_reshape (rs); +/* Start raid set read-only and assumed clean to change in raid_resume() */ rs->md.ro =1 ; rs->md.in_sync =1 ; -/* Keep array frozen */ +/* Keep array frozen until resume. */ set_bit (MD_RECOVERY_FROZEN , &rs->md.recovery);/* Has to be held on running the array */
@@ -3231,7 +3254,6 @@ static int raid_ctr(struct dm_target *ti, unsigned int argc, char **argv) } r =md_start (&rs->md); -if (r) { ti->error ="Failed to start raid array" ;mddev_unlock (&rs->md);
drivers/md/dm-rq.c +2 -0
@@ -569,6 +569,7 @@ int dm_mq_init_request_queue(struct mapped_device *md, struct dm_table *t)blk_mq_free_tag_set (md->tag_set); out_kfree_tag_set:kfree (md->tag_set); + md->tag_set =NULL ;return err; }
@@ -578,6 +579,7 @@ void dm_mq_cleanup_mapped_device(struct mapped_device *md)if (md->tag_set) {blk_mq_free_tag_set (md->tag_set);kfree (md->tag_set); + md->tag_set =NULL ; } }
drivers/md/persistent-data/dm-btree-internal.h +2 -2
@@ -34,12 +34,12 @@ struct node_header {__le32 max_entries;__le32 value_size;__le32 padding; -} __packed; +} __attribute__((packed, aligned(8)));struct btree_node {struct node_header header;__le64 keys[]; -} __packed; +} __attribute__((packed,aligned (8 )));/*
drivers/md/persistent-data/dm-space-map-common.c +2 -0
@@ -339,6 +339,8 @@ int sm_ll_find_free_block(struct ll_disk *ll, dm_block_t begin,*/ begin =do_div (index_begin, ll->entries_per_block); end =do_div (end, ll->entries_per_block); +if (end ==0 ) + end = ll->entries_per_block;for (i = index_begin; i < index_end; i++, begin =0 ) {struct dm_block *blk;
drivers/md/persistent-data/dm-space-map-common.h +4 -4
@@ -33,7 +33,7 @@ struct disk_index_entry {__le64 blocknr;__le32 nr_free;__le32 none_free_before; -} __packed; +} __attribute__ ((packed, aligned(8)));#define MAX_METADATA_BITMAPS 255
@@ -43,7 +43,7 @@ struct disk_metadata_index {__le64 blocknr;struct disk_index_entry index[MAX_METADATA_BITMAPS ]; -} __packed; +} __attribute__ ((packed, aligned(8)));struct ll_disk ;
@@ -86,7 +86,7 @@ struct disk_sm_root {__le64 nr_allocated;__le64 bitmap_root;__le64 ref_count_root; -} __packed; +} __attribute__ ((packed, aligned(8)));#define ENTRIES_PER_BYTE 4
@@ -94,7 +94,7 @@ struct disk_bitmap_header {__le32 csum;__le32 not_used;__le64 blocknr; -} __packed; +} __attribute__ ((packed, aligned(8)));enum allocation_event {SM_NONE ,
drivers/md/raid1.c +2 -0
@@ -478,6 +478,8 @@ static void raid1_end_write_request(struct bio *bio)if (!test_bit (Faulty, &rdev->flags))set_bit (R1BIO_WriteError, &r1_bio->state);else { +/* Fail the request */ +set_bit (R1BIO_Degraded, &r1_bio->state);/* Finished with this branch */ r1_bio->bios[mirror] =NULL ; to_put = bio;
drivers/media/pci/saa7164/saa7164-encoder.c +11 -9
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/hfi_parser.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/sti/bdisp/bdisp-debug.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/sunxi/sun8i-di/sun8i-di.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-core.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/media/usb/dvb-usb/dvb-usb-init.c +60 -30
90 lines not on this page · raw message
drivers/media/usb/gspca/stv06xx/stv06xx.c +9 -0
Lines of this file are not shown. View the raw message.
drivers/media/v4l2-core/v4l2-ctrls.c +63 -74
137 lines not on this page · raw message
drivers/mmc/core/core.c +1 -75
76 lines not on this page · raw message
drivers/mmc/host/sdhci.c +31 -29
60 lines not on this page · raw message
drivers/mtd/nand/raw/atmel/nand-controller.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c +15 -15
Lines of this file are not shown. View the raw message.
drivers/net/wireless/rsi/rsi_91x_sdio.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel_speed_select_if/isst_if_mbox_pci.c +23 -10
Lines of this file are not shown. View the raw message.
drivers/power/supply/bq27xxx_battery.c +27 -24
51 lines not on this page · raw message
drivers/power/supply/generic-adc-battery.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/power/supply/tps65090-charger.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/power/supply/tps65217_charger.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/device_handler/scsi_dh_alua.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/scsi/lpfc/lpfc_attr.c +45 -30
75 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_hw4.h +1 -173
174 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_init.c +5 -107
112 lines not on this page · raw message
drivers/scsi/lpfc/lpfc_sli.c +22 -21
43 lines not on this page · raw message
drivers/scsi/smartpqi/smartpqi_init.c +161 -0
161 lines not on this page · raw message
drivers/soc/tegra/pmc.c +65 -5
70 lines not on this page · raw message
drivers/staging/media/atomisp/pci/atomisp_fops.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/staging/media/imx/imx-media-capture.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/media/ipu3/ipu3-v4l2.c +21 -15
Lines of this file are not shown. View the raw message.
drivers/usb/dwc3/gadget.c +30 -11
41 lines not on this page · raw message
drivers/usb/gadget/function/f_uac1.c +43 -0
43 lines not on this page · raw message
drivers/virt/nitro_enclaves/ne_misc_dev.c +17 -26
43 lines not on this page · raw message
fs/btrfs/relocation.c +33 -13
46 lines not on this page · raw message
fs/ext4/ialloc.c +34 -17
51 lines not on this page · raw message
fs/f2fs/verity.c +54 -21
75 lines not on this page · raw message
fs/fuse/file.c +29 -12
41 lines not on this page · raw message
kernel/events/core.c +79 -63
142 lines not on this page · raw message
kernel/trace/trace.c +15 -26
41 lines not on this page · raw message
kernel/trace/trace_clock.c +30 -14
44 lines not on this page · raw message
sound/pci/hda/patch_realtek.c +47 -5
52 lines not on this page · raw message
tools/power/x86/intel-speed-select/isst-display.c +10 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/arm64/mte/Makefile +0 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/arm64/mte/mte_common_util.c +2 -11
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/Makefile +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/cache.c +4 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/cat_test.c +6 -6
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/cqm_test.c +7 -7
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/fill_buf.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/mba_test.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/mbm_test.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/resctrl.h +15 -6
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/resctrl_tests.c +7 -7
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/resctrl_val.c +54 -31
85 lines not on this page · raw message
tools/testing/selftests/resctrl/resctrlfs.c +55 -24
79 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.