Linux 5.4.48
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.48 kernel.
All users of the 5.4 kernel series must upgrade.
The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt | 6 Documentation/virt/kvm/api.txt | 2 Makefile | 15 arch/alpha/include/asm/io.h | 74 ++- arch/alpha/kernel/io.c | 60 ++ arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts | 2 arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi | 2 arch/arm/boot/dts/s5pv210-aries.dtsi | 1 arch/arm/mach-tegra/tegra.c | 4 arch/arm/mm/proc-macros.S | 3 arch/arm64/include/asm/cacheflush.h | 6 arch/arm64/include/asm/pgtable.h | 1 arch/arm64/kernel/head.S | 12 arch/arm64/kernel/insn.c | 14 arch/arm64/kernel/vmlinux.lds.S | 1 arch/m68k/include/asm/mac_via.h | 1 arch/m68k/mac/config.c | 21 arch/m68k/mac/via.c | 6 arch/mips/Makefile | 13 arch/mips/boot/compressed/Makefile | 2 arch/mips/configs/loongson3_defconfig | 2 arch/mips/include/asm/cpu-features.h | 6 arch/mips/include/asm/mipsregs.h | 2 arch/mips/kernel/genex.S | 6 arch/mips/kernel/mips-cm.c | 6 arch/mips/kernel/setup.c | 10 arch/mips/kernel/time.c | 70 +++ arch/mips/kernel/vmlinux.lds.S | 2 arch/mips/tools/elf-entry.c | 9 arch/powerpc/Kconfig | 2 arch/powerpc/include/asm/book3s/32/kup.h | 3 arch/powerpc/include/asm/fadump-internal.h | 4 arch/powerpc/include/asm/kasan.h | 6 arch/powerpc/kernel/dt_cpu_ftrs.c | 8 arch/powerpc/kernel/fadump.c | 155 ++++-- arch/powerpc/kernel/prom.c | 19 arch/powerpc/mm/init_32.c | 2 arch/powerpc/mm/kasan/kasan_init_32.c | 4 arch/powerpc/mm/pgtable_32.c | 4 arch/powerpc/platforms/cell/spufs/file.c | 113 +++- arch/powerpc/platforms/powernv/smp.c | 1 arch/sparc/kernel/ptrace_32.c | 228 ++++------ arch/sparc/kernel/ptrace_64.c | 17 arch/x86/boot/compressed/head_32.S | 5 arch/x86/boot/compressed/head_64.S | 1 arch/x86/include/asm/smap.h | 11 arch/x86/kernel/amd_nb.c | 8 arch/x86/kernel/irq_64.c | 2 arch/x86/mm/init.c | 2 block/blk-iocost.c | 28 + block/blk-mq.c | 26 - drivers/acpi/acpica/dsfield.c | 17 drivers/acpi/arm64/iort.c | 5 drivers/acpi/evged.c | 2 drivers/bluetooth/btbcm.c | 2 drivers/bluetooth/btmtkuart.c | 14 drivers/bluetooth/hci_bcm.c | 5 drivers/clk/mediatek/clk-mux.c | 2 drivers/clocksource/dw_apb_timer.c | 5 drivers/clocksource/dw_apb_timer_of.c | 6 drivers/cpuidle/sysfs.c | 6 drivers/crypto/ccp/Kconfig | 3 drivers/crypto/chelsio/chcr_algo.c | 2 drivers/crypto/stm32/stm32-crc32.c | 144 +++--- drivers/edac/amd64_edac.c | 13 drivers/edac/amd64_edac.h | 3 drivers/firmware/efi/libstub/Makefile | 1 drivers/gnss/sirf.c | 8 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 43 + drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 14 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 11 drivers/gpu/drm/bridge/adv7511/adv7511_audio.c | 12 drivers/gpu/drm/mcde/mcde_dsi.c | 7 drivers/gpu/drm/mediatek/mtk_dpi.c | 31 + drivers/gpu/drm/rcar-du/rcar_du_plane.c | 16 drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 14 drivers/hv/connection.c | 20 drivers/hv/hv.c | 7 drivers/hv/hyperv_vmbus.h | 11 drivers/hv/vmbus_drv.c | 20 drivers/hwmon/k10temp.c | 1 drivers/macintosh/windfarm_pm112.c | 21 drivers/md/bcache/super.c | 7 drivers/md/dm-crypt.c | 2 drivers/md/md.c | 3 drivers/md/raid5.c | 15 drivers/media/cec/cec-adap.c | 8 drivers/media/dvb-core/dvbdev.c | 5 drivers/media/i2c/ov5640.c | 4 drivers/media/platform/rcar-fcp.c | 5 drivers/media/platform/vicodec/vicodec-core.c | 15 drivers/media/tuners/si2157.c | 15 drivers/media/usb/dvb-usb/dibusb-mb.c | 2 drivers/media/usb/go7007/snd-go7007.c | 35 - drivers/mmc/host/meson-mx-sdio.c | 3 drivers/mmc/host/sdhci-esdhc-imx.c | 2 drivers/mmc/host/sdhci-msm.c | 4 drivers/mmc/host/via-sdmmc.c | 7 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 11 drivers/mtd/nand/raw/diskonchip.c | 7 drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c | 2 drivers/mtd/nand/raw/mtk_nand.c | 2 drivers/mtd/nand/raw/nand_base.c | 10 drivers/mtd/nand/raw/nand_onfi.c | 2 drivers/mtd/nand/raw/orion_nand.c | 2 drivers/mtd/nand/raw/oxnas_nand.c | 8 drivers/mtd/nand/raw/pasemi_nand.c | 4 drivers/mtd/nand/raw/plat_nand.c | 2 drivers/mtd/nand/raw/sharpsl.c | 2 drivers/mtd/nand/raw/socrates_nand.c | 2 drivers/mtd/nand/raw/sunxi_nand.c | 2 drivers/mtd/nand/raw/tmio_nand.c | 2 drivers/mtd/nand/raw/xway_nand.c | 2 drivers/net/ethernet/allwinner/sun4i-emac.c | 4 drivers/net/ethernet/amazon/ena/ena_com.c | 6 drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 6 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c | 39 - drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 4 drivers/net/ethernet/intel/e1000/e1000_main.c | 4 drivers/net/ethernet/intel/e1000e/e1000.h | 1 drivers/net/ethernet/intel/e1000e/netdev.c | 16 drivers/net/ethernet/intel/ice/ice_common.c | 8 drivers/net/ethernet/intel/ice/ice_controlq.c | 49 +- drivers/net/ethernet/intel/ice/ice_main.c | 3 drivers/net/ethernet/intel/igb/igb_ethtool.c | 3 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 2 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 15 drivers/net/ethernet/nxp/lpc_eth.c | 3 drivers/net/ethernet/qlogic/qede/qede.h | 2 drivers/net/ethernet/qlogic/qede/qede_main.c | 11 drivers/net/ethernet/ti/davinci_mdio.c | 2 drivers/net/macvlan.c | 4 drivers/net/veth.c | 8 drivers/net/vmxnet3/vmxnet3_ethtool.c | 2 drivers/net/wireless/ath/ath10k/htt.h | 7 drivers/net/wireless/ath/ath10k/htt_tx.c | 8 drivers/net/wireless/ath/ath10k/mac.c | 5 drivers/net/wireless/ath/ath10k/pci.c | 1 drivers/net/wireless/ath/ath10k/txrx.c | 2 drivers/net/wireless/ath/ath10k/wmi-ops.h | 10 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 15 drivers/net/wireless/ath/carl9170/fw.c | 4 drivers/net/wireless/ath/carl9170/main.c | 21 drivers/net/wireless/ath/wcn36xx/main.c | 6 drivers/net/wireless/broadcom/b43/main.c | 2 drivers/net/wireless/broadcom/b43legacy/main.c | 1 drivers/net/wireless/broadcom/b43legacy/xmit.c | 1 drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c | 3 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 11 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 5 drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 15 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 18 drivers/net/wireless/intel/iwlwifi/mvm/sta.h | 6 drivers/net/wireless/marvell/libertas_tf/if_usb.c | 6 drivers/net/wireless/marvell/mwifiex/cfg80211.c | 14 drivers/net/wireless/mediatek/mt76/agg-rx.c | 8 drivers/net/wireless/mediatek/mt76/mt76.h | 6 drivers/net/wireless/realtek/rtlwifi/usb.c | 8 drivers/net/wireless/realtek/rtw88/pci.c | 1 drivers/nvme/host/core.c | 16 drivers/nvme/host/pci.c | 57 +- drivers/nvme/host/tcp.c | 4 drivers/pci/controller/vmd.c | 2 drivers/pci/probe.c | 24 - drivers/pci/quirks.c | 48 +- drivers/perf/arm_smmuv3_pmu.c | 5 drivers/perf/hisilicon/hisi_uncore_hha_pmu.c | 2 drivers/pinctrl/samsung/pinctrl-exynos.c | 82 ++- drivers/platform/x86/asus-wmi.c | 2 drivers/platform/x86/dell-laptop.c | 11 drivers/platform/x86/hp-wmi.c | 10 drivers/platform/x86/intel-hid.c | 7 drivers/platform/x86/intel-vbtn.c | 75 ++- drivers/power/reset/vexpress-poweroff.c | 1 drivers/power/supply/power_supply_hwmon.c | 4 drivers/regulator/qcom-rpmh-regulator.c | 8 drivers/soc/tegra/Kconfig | 1 drivers/spi/spi-dw-mid.c | 16 drivers/spi/spi-dw.c | 8 drivers/spi/spi-mem.c | 10 drivers/spi/spi-pxa2xx.c | 1 drivers/spi/spi.c | 1 drivers/staging/android/ion/ion_heap.c | 4 drivers/staging/greybus/sdio.c | 10 drivers/staging/media/imx/imx7-mipi-csis.c | 82 +-- drivers/staging/media/ipu3/ipu3-mmu.c | 10 drivers/staging/media/ipu3/ipu3-v4l2.c | 10 drivers/staging/media/ipu3/ipu3.c | 5 drivers/staging/media/ipu3/ipu3.h | 4 drivers/staging/media/sunxi/cedrus/cedrus_dec.c | 2 drivers/staging/media/sunxi/cedrus/cedrus_video.c | 3 drivers/tty/serial/8250/8250_core.c | 14 drivers/tty/serial/8250/8250_pci.c | 6 drivers/tty/serial/kgdboc.c | 126 ++++- drivers/w1/masters/omap_hdq.c | 10 fs/btrfs/block-group.c | 2 fs/btrfs/block-rsv.c | 3 fs/btrfs/ctree.h | 1 fs/btrfs/file-item.c | 6 fs/btrfs/inode.c | 81 +++ fs/btrfs/qgroup.c | 14 fs/btrfs/send.c | 67 ++ fs/btrfs/space-info.c | 43 + fs/btrfs/space-info.h | 1 fs/btrfs/transaction.c | 60 +- fs/btrfs/transaction.h | 3 fs/btrfs/volumes.c | 14 fs/ext4/ext4_extents.h | 9 fs/ext4/fsync.c | 28 - fs/ext4/xattr.c | 7 fs/f2fs/f2fs.h | 1 fs/f2fs/super.c | 25 - fs/xfs/xfs_bmap_util.c | 2 fs/xfs/xfs_buf.c | 8 fs/xfs/xfs_dquot.c | 9 include/linux/kgdb.h | 2 include/linux/mmzone.h | 2 include/linux/pci_ids.h | 11 include/linux/sched/mm.h | 2 include/linux/skmsg.h | 8 include/linux/string.h | 60 ++ include/linux/sunrpc/gss_api.h | 1 include/linux/sunrpc/svcauth_gss.h | 3 include/net/tls.h | 9 include/uapi/linux/kvm.h | 2 kernel/audit.c | 52 +- kernel/audit.h | 2 kernel/auditfilter.c | 16 kernel/bpf/syscall.c | 3 kernel/cpu.c | 18 kernel/cpu_pm.c | 4 kernel/debug/debug_core.c | 5 kernel/exit.c | 25 - kernel/sched/core.c | 13 kernel/sched/fair.c | 4 kernel/sched/rt.c | 12 kernel/sched/sched.h | 2 lib/mpi/longlong.h | 2 lib/test_kasan.c | 29 - mm/huge_memory.c | 31 + mm/page_alloc.c | 27 - net/batman-adv/bat_v_elp.c | 15 net/bluetooth/hci_event.c | 1 net/core/skmsg.c | 98 +++- net/netfilter/nft_nat.c | 4 net/sunrpc/auth_gss/gss_mech_switch.c | 12 net/sunrpc/auth_gss/svcauth_gss.c | 18 net/tls/tls_sw.c | 20 security/integrity/evm/evm_crypto.c | 2 security/integrity/ima/ima.h | 10 security/integrity/ima/ima_crypto.c | 53 +- security/integrity/ima/ima_init.c | 24 - security/integrity/ima/ima_main.c | 3 security/integrity/ima/ima_policy.c | 12 security/integrity/ima/ima_template_lib.c | 18 security/lockdown/lockdown.c | 2 security/selinux/ss/policydb.c | 1 tools/cgroup/iocost_monitor.py | 42 - tools/lib/api/fs/fs.c | 17 tools/lib/api/fs/fs.h | 12 tools/lib/bpf/hashmap.c | 7 tools/lib/bpf/libbpf.c | 5 tools/objtool/check.c | 6 tools/perf/builtin-probe.c | 3 tools/perf/util/dso.c | 16 tools/perf/util/dso.h | 1 tools/perf/util/probe-event.c | 46 +- tools/perf/util/probe-finder.c | 1 tools/perf/util/symbol.c | 4 tools/testing/selftests/bpf/config | 1 tools/testing/selftests/bpf/prog_tests/flow_dissector.c | 1 tools/testing/selftests/bpf/test_progs.c | 1 275 files changed, 2677 insertions(+), 1240 deletions(-)
Adrian Hunter (2):
perf symbols: Fix debuginfo search for Ubuntu perf symbols: Fix kernel maps for kcore and eBPF
Al Viro (2):
sparc32: fix register window handling in genregs32_[gs]et()
sparc64: fix misuses of access_process_vm() in genregs32_[sg]et()
Alan Maguire (1):
selftests/bpf: CONFIG_IPV6_SEG6_BPF required for test_seg6_loop.o
Alexander Monakov (3):
x86/amd_nb: Add AMD family 17h model 60h PCI IDs
hwmon: (k10temp) Add AMD family 17h model 60h PCI match EDAC/amd64: Add AMD family 17h model 60h PCI IDs
Alexander Sverdlin (1):
macvlan: Skip loopback packets in RX handler
Anand Jain (2):
btrfs: free alien device after device add
btrfs: include non-missing as a qualifier for the latest_bdev
Anders Roxell (1):
power: vexpress: add suppress_bind_attrs to true
Andrea Arcangeli (1):
mm: thp: make the THP mapcount atomic against __split_huge_pmd_locked()
Andrea Parri (Microsoft) (1):
Drivers: hv: vmbus: Always handle the VMBus messages on CPU0
Andrii Nakryiko (2):
libbpf: Fix memory leak and possible double-free in hashmap__clear selftests/bpf: Fix memory leak in extract_build_id()
Andy Shevchenko (3):
spi: dw: Zero DMA Tx and Rx configurations on stack
spi: Respect DataBitLength field of SpiSerialBusV2() ACPI resource platform/x86: hp-wmi: Convert simple_strtoul() to kstrtou32()
Anton Protopopov (1):
bpf: Fix map permissions check
Ard Biesheuvel (2):
ACPI: GED: use correct trigger type field in _Exx / _Lxx handling efi/libstub/x86: Work around LLVM ELF quirk build regression
Arnd Bergmann (1):
crypto: ccp -- don't "select" CONFIG_DMADEVICES
Arthur Kiyanovski (1):
net: ena: fix error returning in ena_com_get_hash_function()
Arvind Sankar (2):
x86/boot: Correct relocation destination on old linkers x86/mm: Stop printing BRK addresses
Ashok Raj (2):
PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints
PCI: Program MPS for RCiEP devices
Bhupesh Sharma (1):
net: qed*: Reduce RX and TX default ring count when running inside kdump kernel
Bingbu Cao (2):
media: staging: imgu: do not hold spinlock during freeing mmu page table
media: staging/intel-ipu3: Implement lock for stream on/off operations
Bjorn Andersson (1):
regulator: qcom-rpmh: Fix typos in pm8150 and pm8150l
Bogdan Togorean (1):
drm: bridge: adv7511: Extend list of audio sample rates
Boris Brezillon (1):
mtd: rawnand: Fix nand_gpio_waitrdy()
Brad Love (2):
media: si2157: Better check for running tuner in init
media: dvbdev: Fix tuner->demod media controller link
Brian Foster (2):
xfs: reset buffer write failure state on successful completion
xfs: fix duplicate verification from xfs_qm_dqflush()
Chris Chiu (1):
platform/x86: asus_wmi: Reserve more space for struct bias_args
Christian König (1):
drm/amdgpu: fix and cleanup amdgpu_gem_object_close v4
Christian Lamparter (1):
carl9170: remove P2P_GO support
Christoph Hellwig (3):
x86: fix vmap arguments in map_irq_stack
staging: android: ion: use vmap instead of vm_map_ram
nvme: refine the Qemu Identify CNS quirk
Christophe JAILLET (1):
wcn36xx: Fix error handling path in 'wcn36xx_probe()'
Christophe Leroy (5):
powerpc/mm: Fix conditions to perform MMU specific management by blocks on PPC32. powerpc/32s: Fix another build failure with CONFIG_PPC_KUAP_DEBUG powerpc/kasan: Fix issues by lowering KASAN_SHADOW_END powerpc/kasan: Fix shadow pages allocation failure
powerpc/32: Disable KASAN with pages bigger than 16k
Chuhong Yuan (2):
Bluetooth: btmtkuart: Improve exception handling in btmtuart_probe()
media: go7007: fix a miss of snd_card_free
Colin Ian King (2):
media: dvb: return -EREMOTEIO on i2c transfer failure.
libertas_tf: avoid a null dereference in pointer priv
Coly Li (2):
raid5: remove gfp flags from scribble_alloc()
bcache: fix refcount underflow in bcache_device_free()
Corentin Labbe (1):
soc/tegra: pmc: Select GENERIC_PINCONF
Dan Carpenter (3):
media: vicodec: Fix error codes in probe function
media: cec: silence shift wrapping warning in __cec_s_log_addrs()
rtlwifi: Fix a double free in _rtl_usb_tx_urb_setup()
Daniel Axtens (2):
kasan: stop tests being eliminated as dead code with FORTIFY_SOURCE string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
Daniel Jordan (1):
mm/pagealloc.c: call touch_nmi_watchdog() on max order boundaries in deferred init
Daniel Thompson (2):
arm64: cacheflush: Fix KGDB trap detection
kgdb: Fix spurious true from in_dbg_master()
Darrick J. Wong (1):
xfs: clean up the error handling in xfs_swap_extents
Dejin Zheng (1):
rtw88: fix an issue about leak system resources
Devulapally Shiva Krishna (1):
Crypto/chcr: fix for ccm(aes) failed test
Dmitry Osipenko (1):
ARM: tegra: Correct PL310 Auxiliary Control Register initialization
Doug Berger (2):
net: bcmgenet: set Rx mode before starting netif
net: bcmgenet: Fix WoL with password after deep sleep
Douglas Anderson (4):
kgdb: Disable WARN_CONSOLE_UNLOCKED for all kgdb
kgdb: Prevent infinite recursive entries to the debugger
kgdboc: Use a platform device to handle tty drivers showing up late kernel/cpu_pm: Fix uninitted local in cpu_pm
Eelco Chaudron (1):
libbpf: Fix perf_buffer__free() API for sparse allocs
Erez Shitrit (1):
net/mlx5e: IPoIB, Drop multicast packets that this interface sent
Eric Biggers (2):
ext4: fix race between ext4_sync_parent() and rename() dm crypt: avoid truncating the logical block size
Erik Kaneda (1):
ACPICA: Dispatcher: add status checks
Evan Green (1):
spi: pxa2xx: Apply CS clk quirk to BXT
Felix Kuehling (1):
drm/amdgpu: Sync with VM root BO when switching VM to CPU update mode
Filipe Manana (4):
btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums
btrfs: fix wrong file range cleanup after an error filling dealloc range
btrfs: fix space_info bytes_may_use underflow after nocow buffered write
btrfs: fix space_info bytes_may_use underflow during space cache writeout
Finn Thain (1):
m68k: mac: Don't call via_flush_cache() on Mac IIfx
Gavin Shan (1):
arm64/kernel: Fix range on invalidating dcache for boot page tables
Geert Uytterhoeven (1):
spi: spi-mem: Fix Dual/Quad modes on Octal-capable devices
Greg Kroah-Hartman (1):
Linux 5.4.48
Guoqing Jiang (1):
md: don't flush workqueue unconditionally in md_open
H. Nikolaus Schaller (1):
w1: omap-hdq: cleanup to add missing newline for some dev_dbg
Haibo Chen (1):
mmc: sdhci-esdhc-imx: fix the mask for tuning start point
Hans de Goede (6):
Bluetooth: btbcm: Add 2 missing models to subver tables
platform/x86: intel-vbtn: Use acpi_evaluate_integer()
platform/x86: intel-vbtn: Split keymap into buttons and switches parts
platform/x86: intel-vbtn: Do not advertise switches to userspace if they are not there platform/x86: intel-vbtn: Also handle tablet-mode switch on "Detachable" and "Portable" chassis-types platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 / "Laptop" chasis-type
Hari Bathini (3):
powerpc/fadump: use static allocation for reserved memory ranges powerpc/fadump: consider reserved ranges while reserving memory powerpc/fadump: Account for memory_limit while reserving memory
Harshad Shirwadkar (1):
ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max
Hsin-Yu Chao (1):
Bluetooth: Add SCO fallback for invalid LMP parameters error
Huaixin Chang (2):
sched/fair: Refill bandwidth before scaling
sched: Defend cfs and rt bandwidth quota against overflow
Jacob Keller (1):
ice: fix potential double free in probe unrolling
Jaegeuk Kim (1):
f2fs: fix checkpoint=disable:%u%%
Jaehoon Chung (1):
brcmfmac: fix wrong location to get firmware feature
Jakub Sitnicki (1):
selftests/bpf, flow_dissector: Close TAP device FD after the test
Jann Horn (1):
exit: Move preemption fixup up, move blocking operations down
Jean-Philippe Brucker (1):
pmu/smmuv3: Clear IRQ affinity hint on device removal
Jeffle Xu (1):
ext4: fix error pointer dereference
Jeremy Cline (1):
lockdown: Allow unprivileged users to see lockdown status
Jeremy Kerr (1):
powerpc/spufs: fix copy_to_user while atomic
Jesper Dangaard Brouer (3):
ixgbe: Fix XDP redirect on archs with PAGE_SIZE above 4K
dpaa2-eth: fix return codes used in ndo_setup_tc
veth: Adjust hard_start offset on redirect XDP frames
Jia-Ju Bai (1):
net: vmxnet3: fix possible buffer overflow caused by bad DMA value in vmxnet3_get_rss()
Jiaxun Yang (2):
MIPS: Truncate link address into 32bit for 32bit kernel
PCI: Don't disable decoding when mmio_always_on is set
Jitao Shi (2):
dt-bindings: display: mediatek: control dpi pins mode to avoid leakage drm/mediatek: set dpi pin mode to gpio low to avoid leakage current
John Fastabend (2):
bpf: Refactor sockmap redirect code so its easy to reuse
bpf: Fix running sk_skb program types with ktls
Jon Derrick (1):
PCI: vmd: Add device id for VMD device 8086:9A0B
Jon Doron (1):
x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit
Jonathan Bakker (3):
pinctrl: samsung: Correct setting of eint wakeup mask on s5pv210
pinctrl: samsung: Save/restore eint_mask over suspend for EINT_TYPE GPIOs
ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on Aries
Josef Bacik (3):
btrfs: account for trans_block_rsv in may_commit_transaction
btrfs: improve global reserve stealing logic
btrfs: force chunk allocation if our global rsv is larger than metadata
Julien Thierry (1):
objtool: Ignore empty alternatives
Kai-Heng Feng (4):
PCI: Avoid Pericom USB controller OHCI/EHCI PME# defect
serial: 8250_pci: Move Pericom IDs to pci_ids.h
e1000e: Disable TSO for buffer overrun workaround
igb: Report speed and duplex as unknown when device is runtime suspended
Kaige Li (1):
MIPS: tools: Fix resource leak in elf-entry.c
Kees Cook (1):
e1000: Distribute switch variables for initialization
Kevin Buettner (1):
PCI: Avoid FLR for AMD Starship USB 3.0
Kieran Bingham (1):
media: platform: fcp: Set appropriate DMA parameters
Koba Ko (1):
platform/x86: dell-laptop: don't register micmute LED if there is no token
Krzysztof Struczynski (3):
ima: Fix ima digest hash table key calculation
ima: Remove redundant policy rule set in add_rules()
ima: Set again build_ima_appraise variable
Larry Finger (3):
b43legacy: Fix case where channel status is corrupted
b43: Fix connection problem with WPA3
b43_legacy: Fix connection problem with WPA3
Laurent Pinchart (1):
media: imx: imx7-mipi-csis: Cleanup and fix subdev pad format handling
Linus Walleij (1):
ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
Ludovic Desroches (1):
ARM: dts: at91: sama5d2_ptc_ek: fix vbus pin
Lukas Wunner (1):
serial: 8250: Avoid error message on reprobe
Luke Nelson (1):
arm64: insn: Fix two bugs in encoding 32-bit logical immediates
Maharaja Kennadyrajan (1):
ath10k: Fix the race condition in firmware dump work queue
Marcos Paulo de Souza (1):
btrfs: send: emit file capabilities after chown
Marcos Scriven (1):
PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0
Marek Szyprowski (1):
ARM: dts: exynos: Fix GPIO polarity for thr GalaxyS3 CM36651 sensor's bus
Mark Starovoytov (1):
net: atlantic: make hw_get_regs optional
Martin Blumenstingl (1):
mmc: meson-mx-sdio: trigger a soft reset after a timeout or CRC error
Masahiro Yamada (1):
kbuild: force to build vmlinux if CONFIG_MODVERSION=y
Masami Hiramatsu (3):
perf probe: Do not show the skipped events
perf probe: Fix to check blacklist address correctly perf probe: Check address correctness by map instead of _etext
Michael Ellerman (3):
drivers/macintosh: Fix memleak in windfarm_pm112 driver powerpc/64s: Don't let DT CPU features set FSCR_DSCR powerpc/64s: Save FSCR to init_task.thread.fscr after feature init
Michał Mirosław (2):
Bluetooth: hci_bcm: fix freeing not-requested IRQ
power: supply: core: fix HWMON temperature labels
Mikulas Patocka (1):
alpha: fix memory barriers so that they conform to the specification
Ming Lei (1):
block: alloc map and request for new hardware queue
Miquel Raynal (13):
mtd: rawnand: onfi: Fix redundancy detection check
mtd: rawnand: diskonchip: Fix the probe error path
mtd: rawnand: sharpsl: Fix the probe error path
mtd: rawnand: ingenic: Fix the probe error path
mtd: rawnand: xway: Fix the probe error path
mtd: rawnand: orion: Fix the probe error path
mtd: rawnand: socrates: Fix the probe error path
mtd: rawnand: oxnas: Fix the probe error path
mtd: rawnand: sunxi: Fix the probe error path
mtd: rawnand: plat_nand: Fix the probe error path
mtd: rawnand: pasemi: Fix the probe error path
mtd: rawnand: mtk: Fix the probe error path
mtd: rawnand: tmio: Fix the probe error path
Mordechay Goodstein (1):
iwlwifi: avoid debug max amsdu config overwriting itself
Nathan Chancellor (1):
lib/mpi: Fix 64-bit MIPS build with Clang
NeilBrown (2):
sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate registrations.
sunrpc: clean up properly in gss_mech_unregister()
Nickolai Kozachenko (1):
platform/x86: intel-hid: Add a quirk to support HP Spectre X2 (2015)
Nicolas Toromanoff (3):
crypto: stm32/crc32 - fix ext4 chksum BUG_ON()
crypto: stm32/crc32 - fix run-time self test issue.
crypto: stm32/crc32 - fix multi-instance
Omar Sandoval (1):
btrfs: fix error handling when submitting direct I/O bio
Pablo Neira Ayuso (1):
netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported
Pali Rohár (1):
mwifiex: Fix memory corruption in dump_station
Paul Moore (2):
audit: fix a net reference leak in audit_send_reply()
audit: fix a net reference leak in audit_list_rules_send()
Pavel Tatashin (2):
mm: initialize deferred pages with interrupts enabled
mm: call cond_resched() from deferred_init_memmap()
Peter Zijlstra (2):
x86,smap: Fix smap_{save,restore}() alternatives sched/core: Fix illegal RCU from offline CPUs
Punit Agrawal (1):
e1000e: Relax condition to trigger reset for ME workaround
Qiushi Wu (2):
cpuidle: Fix three reference count leaks
power: supply: core: fix memory leak in HWMON error path
Qu Wenruo (1):
btrfs: qgroup: mark qgroup inconsistent if we're inherting snapshot to a new qgroup
Rakesh Pillai (1):
ath10k: Remove msdu from idr when management pkt send fails
Roberto Sassu (6):
ima: Switch to ima_hash_algo for boot aggregate
ima: Evaluate error in init_ima()
ima: Directly assign the ima_default_policy pointer to ima_rules
ima: Call ima_calc_boot_aggregate() in ima_eventdigest_init()
ima: Remove __init annotation from ima_pcrread()
evm: Fix possible memory leak in evm_calc_hmac_or_hash()
Ryder Lee (1):
mt76: avoid rx reorder buffer overflow
Sagi Grimberg (1):
nvme-tcp: use bh_lock in data_ready
Samuel Holland (1):
media: cedrus: Program output format during each run
Serge Semin (9):
mips: Fix cpu_has_mips64r1/2 activation for MIPS32 CPUs
spi: dw: Enable interrupts in accordance with DMA xfer mode
clocksource: dw_apb_timer: Make CPU-affiliation being optional
clocksource: dw_apb_timer_of: Fix missing clockevent timers
spi: dw: Fix Rx-only DMA transfers
mips: cm: Fix an invalid error code of INTVN_*_ERR
mips: MAAR: Use more precise address mask
mips: Add udelay lpj numbers adjustment
spi: dw: Return any value retrieved from the dma_transfer callback
Shaokun Zhang (1):
drivers/perf: hisi: Fix typo in events attribute array
Sharon (1):
iwlwifi: mvm: fix aux station leak
Stephane Eranian (1):
tools api fs: Make xxx__mountpoint() more scalable
Surabhi Boob (2):
ice: Fix memory leak
ice: Fix for memory leaks and modify ICE_FREE_CQ_BUFS
Sven Eckelmann (1):
batman-adv: Revert "disable ethtool link speed detection when auto negotiation off"
Tejun Heo (2):
iocost_monitor: drop string wrap around numbers when outputting json
iocost: don't let vrate run wild while there's no saturation signal
Tiezhu Yang (3):
MIPS: Loongson: Build ATI Radeon GPU driver as module
MIPS: Make sparse_init() using top-down allocation
PCI: Add Loongson vendor ID
Tomasz Figa (1):
media: staging: ipu3: Fix stale list entries on parameter queue failure
Tomi Valkeinen (1):
media: ov5640: fix use of destroyed mutex
Tomohito Esaki (1):
drm: rcar-du: Set primary plane zpos immutably at initializing
Tuan Phan (1):
ACPI/IORT: Fix PMCG node single ID mapping handling
Ulf Hansson (2):
staging: greybus: sdio: Respect the cmd->busy_timeout from the mmc core
mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc coreVeerabhadrarao Badiganti (1):
mmc: sdhci-msm: Set SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 quirk
Venkateswara Naralasetty (1):
ath10k: fix kernel null pointer dereference
Wei Yongjun (5):
net: lpc-enet: fix error return code in lpc_mii_init()
selinux: fix error return code in policydb_read()
drivers: net: davinci_mdio: fix potential NULL dereference in davinci_mdio_probe() drm/mcde: dsi: Fix return value check in mcde_dsi_bind()
gnss: sirf: fix error return code in sirf_probe()
Weiping Zhang (2):
block: reset mapping if failed to update hardware queue count
nvme-pci: align io queue count with allocted nvme_queue in nvme_probe
Weiyi Lu (1):
clk: mediatek: assign the initial value to clk_init_data of mtk_mux
Wen Gong (2):
ath10k: remove the max_sched_scan_reqs value
ath10k: add flush tx packets for SDIO chip
Xie XiuQi (1):
ixgbe: fix signed-integer-overflow warning
Yazen Ghannam (1):
x86/amd_nb: Add Family 19h PCI IDs
YuanJunQing (1):
MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
Yunjian Wang (1):
net: allwinner: Fix use correct return type for ndo_start_xmit()
chen gong (1):
drm/amd/powerpay: Disable gfxoff when setting manual mode on picasso and raven
limingyu (1):
drm/amdgpu: Init data to avoid oops while reading pp_num_states.
Álvaro Fernández Rojas (1):
mtd: rawnand: brcmnand: fix hamming oob layout
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt +6 -0
@@ -16,6 +16,9 @@ Required properties: Documentation/devicetree/bindings/graph.txt. This port should be connected to the input port of an attached HDMI or LVDS encoder chip. +Optional properties: +- pinctrl-names: Contain "default" and "sleep". + Example: dpi0: dpi@1401d000 {
@@ -26,6 +29,9 @@ dpi0: dpi@1401d000 { <&mmsys CLK_MM_DPI_ENGINE>, <&apmixedsys CLK_APMIXED_TVDPLL>; clock-names = "pixel", "engine", "pll"; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&dpi_pin_func>; + pinctrl-1 = <&dpi_pin_idle>; port { dpi0_out: endpoint {
Documentation/virt/kvm/api.txt +2 -0
@@ -4444,9 +4444,11 @@ EOI was received. #define KVM_EXIT_HYPERV_SYNIC 1 #define KVM_EXIT_HYPERV_HCALL 2 __u32 type; + __u32 pad1; union { struct { __u32 msr; + __u32 pad2; __u64 control; __u64 evt_page; __u64 msg_page;
Makefile +9 -6
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 47 +SUBLEVEL = 48 EXTRAVERSION = NAME = Kleptomaniac Octopus
@@ -587,12 +587,8 @@ KBUILD_MODULES := KBUILD_BUILTIN := 1 # If we have only "make modules", don't compile built-in objects. -# When we're building modules with modversions, we need to consider -# the built-in objects during the descend as well, in order to -# make sure the checksums are up to date before we record them. - ifeq ($(MAKECMDGOALS),modules) - KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1) + KBUILD_BUILTIN := endif # If we have "make <whatever> modules", compile modules
@@ -1282,6 +1278,13 @@ ifdef CONFIG_MODULES all: modules +# When we're building modules with modversions, we need to consider +# the built-in objects during the descend as well, in order to +# make sure the checksums are up to date before we record them. +ifdef CONFIG_MODVERSIONS + KBUILD_BUILTIN := 1 +endif + # Build modules # # A module can be listed more than once in obj-m resulting in
arch/alpha/include/asm/io.h +59 -15
122 lines not on this page · raw message
arch/alpha/kernel/io.c +53 -7
108 lines not on this page · raw message
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts +1 -1
@@ -40,7 +40,7 @@ ahb { usb0: gadget@300000 { - atmel,vbus-gpio = <&pioA PIN_PA27 GPIO_ACTIVE_HIGH>; + atmel,vbus-gpio = <&pioA PIN_PB11 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usba_vbus>; status = "okay";
arch/arm/boot/dts/exynos4412-galaxy-s3.dtsi +1 -1
@@ -68,7 +68,7 @@ i2c_cm36651: i2c-gpio-2 { compatible = "i2c-gpio"; - gpios = <&gpf0 0 GPIO_ACTIVE_LOW>, <&gpf0 1 GPIO_ACTIVE_LOW>; + gpios = <&gpf0 0 GPIO_ACTIVE_HIGH>, <&gpf0 1 GPIO_ACTIVE_HIGH>; i2c-gpio,delay-us = <2>; #address-cells = <1>; #size-cells = <0>;
arch/arm/boot/dts/s5pv210-aries.dtsi +1 -0
@@ -454,6 +454,7 @@ pinctrl-names = "default"; cap-sd-highspeed; cap-mmc-highspeed; + keep-power-in-suspend; mmc-pwrseq = <&wifi_pwrseq>; non-removable;
arch/arm/mach-tegra/tegra.c +2 -2
@@ -106,8 +106,8 @@ static const char * const tegra_dt_board_compat[] = { };DT_MACHINE_START (TEGRA_DT ,"NVIDIA Tegra SoC (Flattened Device Tree)" ) - .l2c_aux_val = 0x3c400001, - .l2c_aux_mask = 0xc20fc3fe, + .l2c_aux_val = 0x3c400000, + .l2c_aux_mask = 0xc20fc3ff, .smp = smp_ops(tegra_smp_ops), .map_io = tegra_map_common_io, .init_early = tegra_init_early,
arch/arm/mm/proc-macros.S +2 -1
@@ -5,6 +5,7 @@ * VMA_VM_FLAGS * VM_EXEC */ +#include <linux/const.h> #include <asm/asm-offsets.h> #include <asm/thread_info.h>
@@ -30,7 +31,7 @@ * act_mm - get current->active_mm */ .macro act_mm, rd - bic \rd, sp, #8128 + bic \rd, sp, #(THREAD_SIZE - 1) & ~63 bic \rd, \rd, #63 ldr \rd, [\rd, #TI_TASK] .if (TSK_ACTIVE_MM > IMM12_MASK)
arch/arm64/include/asm/cacheflush.h +3 -3
@@ -79,7 +79,7 @@ static inline void flush_icache_range(unsigned long start, unsigned long end)* IPI all online CPUs so that they undergo a context synchronization * event and are forced to refetch the new instructions. */ -#ifdef CONFIG_KGDB +/* * KGDB performs cache maintenance with interrupts disabled, so we * will deadlock trying to IPI the secondary CPUs. In theory, we can
@@ -89,9 +89,9 @@ static inline void flush_icache_range(unsigned long start, unsigned long end)* the patching operation, so we don't need extra IPIs here anyway. * In which case, add a KGDB-specific bodge and return early. */ -if (kgdb_connected &&irqs_disabled ()) +if (in_dbg_master ())return ; -#endif +kick_all_cpus_sync (); }
arch/arm64/include/asm/pgtable.h +1 -0
@@ -456,6 +456,7 @@ extern pgd_t init_pg_dir[PTRS_PER_PGD];extern pgd_t init_pg_end[];extern pgd_t swapper_pg_dir[PTRS_PER_PGD ];extern pgd_t idmap_pg_dir[PTRS_PER_PGD ]; +extern pgd_t idmap_pg_end[];extern pgd_t tramp_pg_dir[PTRS_PER_PGD ];extern void set_swapper_pgd (pgd_t *pgdp,pgd_t pgd);
arch/arm64/kernel/head.S +9 -3
@@ -393,13 +393,19 @@ __create_page_tables: /* * Since the page tables have been populated with non-cacheable - * accesses (MMU disabled), invalidate the idmap and swapper page - * tables again to remove any speculatively loaded cache lines. + * accesses (MMU disabled), invalidate those tables again to + * remove any speculatively loaded cache lines. */ + dmb sy + adrp x0, idmap_pg_dir + adrp x1, idmap_pg_end + sub x1, x1, x0 + bl __inval_dcache_area + + adrp x0, init_pg_dir adrp x1, init_pg_end sub x1, x1, x0 - dmb sy bl __inval_dcache_area ret x28
arch/arm64/kernel/insn.c +7 -7
@@ -1508,16 +1508,10 @@ static u32 aarch64_encode_immediate(u64 imm, u32 insn) {unsigned int immr, imms, n, ones, ror, esz, tmp; -u64 mask = ~0UL ; - -/* Can't encode full zeroes or full ones */ -if (!imm || !~imm) -return AARCH64_BREAK_FAULT ; +u64 mask;switch (variant) {case AARCH64_INSN_VARIANT_32BIT : -if (upper_32_bits (imm)) -return AARCH64_BREAK_FAULT ; esz =32 ;break ;case AARCH64_INSN_VARIANT_64BIT :
@@ -1529,6 +1523,12 @@ static u32 aarch64_encode_immediate(u64 imm,return AARCH64_BREAK_FAULT ; } + mask =GENMASK (esz -1 ,0 ); + +/* Can't encode full zeroes, full ones, or value wider than the mask */ +if (!imm || imm == mask || imm & ~mask) +return AARCH64_BREAK_FAULT ; +/* * Inverse of Replicate(). Try to spot a repeating pattern * with a pow2 stride.
arch/arm64/kernel/vmlinux.lds.S +1 -0
@@ -142,6 +142,7 @@ SECTIONS . = ALIGN(PAGE_SIZE); idmap_pg_dir = .; . += IDMAP_DIR_SIZE; + idmap_pg_end = .; #ifdef CONFIG_UNMAP_KERNEL_AT_EL0 tramp_pg_dir = .;
arch/m68k/include/asm/mac_via.h +1 -0
@@ -257,6 +257,7 @@ extern int rbv_present,via_alt_mapping;struct irq_desc ; +extern void via_l2_flush (int writeback);extern void via_register_interrupts (void );extern void via_irq_enable (int );extern void via_irq_disable (int );
arch/m68k/mac/config.c +2 -19
@@ -59,7 +59,6 @@ extern void iop_preinit(void);extern void iop_init (void );extern void via_init (void );extern void via_init_clock (irq_handler_t func); -extern void via_flush_cache (void );extern void oss_init (void );extern void psc_init (void );extern void baboon_init (void );
@@ -130,21 +129,6 @@ int __init mac_parse_bootinfo(const struct bi_record *record)return unknown; } -/* -* Flip into 24bit mode for an instant - flushes the L2 cache card. We -* have to disable interrupts for this. Our IRQ handlers will crap -* themselves if they take an IRQ in 24bit mode! -*/ - -static void mac_cache_card_flush (int writeback) -{ -unsigned long flags; - -local_irq_save (flags); -via_flush_cache (); -local_irq_restore (flags); -} -void __init config_mac (void ) {if (!MACH_IS_MAC )
@@ -175,9 +159,8 @@ void __init config_mac(void)* not. */ -if (macintosh_config->ident ==MAC_MODEL_IICI - || macintosh_config->ident ==MAC_MODEL_IIFX ) - mach_l2_flush = mac_cache_card_flush; +if (macintosh_config->ident ==MAC_MODEL_IICI ) + mach_l2_flush = via_l2_flush; }
arch/m68k/mac/via.c +5 -1
@@ -294,10 +294,14 @@ void via_debug_dump(void)* the system into 24-bit mode for an instant. */ -void via_flush_cache (void ) +void via_l2_flush (int writeback) { +unsigned long flags; + +local_irq_save (flags); via2[gBufB] &= ~VIA2B_vMode32; via2[gBufB] |= VIA2B_vMode32; +local_irq_restore (flags); }/*
arch/mips/Makefile +12 -1
@@ -285,12 +285,23 @@ ifdef CONFIG_64BIT endif endif +# When linking a 32-bit executable the LLVM linker cannot cope with a +# 32-bit load address that has been sign-extended to 64 bits. Simply +# remove the upper 32 bits then, as it is safe to do so with other +# linkers. +ifdef CONFIG_64BIT + load-ld = $(load-y) +else + load-ld = $(subst 0xffffffff,0x,$(load-y)) +endif + KBUILD_AFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y) -KBUILD_CPPFLAGS += -DVMLINUX_LOAD_ADDRESS=$(load-y) +KBUILD_CPPFLAGS += -DVMLINUX_LOAD_ADDRESS=$(load-y) -DLINKER_LOAD_ADDRESS=$(load-ld) KBUILD_CPPFLAGS += -DDATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0) bootvars-y = VMLINUX_LOAD_ADDRESS=$(load-y) \ + LINKER_LOAD_ADDRESS=$(load-ld) \ VMLINUX_ENTRY_ADDRESS=$(entry-y) \ PLATFORM="$(platform-y)" \ ITS_INPUTS="$(its-y)"
arch/mips/boot/compressed/Makefile +1 -1
@@ -90,7 +90,7 @@ ifneq ($(zload-y),) VMLINUZ_LOAD_ADDRESS := $(zload-y) else VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \ - $(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS)) + $(obj)/vmlinux.bin $(LINKER_LOAD_ADDRESS)) endif UIMAGE_LOADADDR = $(VMLINUZ_LOAD_ADDRESS)
arch/mips/configs/loongson3_defconfig +1 -1
@@ -231,7 +231,7 @@ CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_USB_SUPPORT=y CONFIG_USB_VIDEO_CLASS=m CONFIG_DRM=y -CONFIG_DRM_RADEON=y +CONFIG_DRM_RADEON=m CONFIG_FB_RADEON=y CONFIG_LCD_CLASS_DEVICE=y CONFIG_LCD_PLATFORM=m
arch/mips/include/asm/cpu-features.h +4 -2
@@ -288,10 +288,12 @@# define cpu_has_mips32r6 __isa_ge_or_flag(6, MIPS_CPU_ISA_M32R6)#endif #ifndef cpu_has_mips64r1 -# define cpu_has_mips64r1 __isa_range_or_flag(1, 6, MIPS_CPU_ISA_M64R1) +# define cpu_has_mips64r1 (cpu_has_64bits && \ + __isa_range_or_flag(1, 6, MIPS_CPU_ISA_M64R1))#endif #ifndef cpu_has_mips64r2 -# define cpu_has_mips64r2 __isa_range_or_flag(2, 6, MIPS_CPU_ISA_M64R2) +# define cpu_has_mips64r2 (cpu_has_64bits && \ + __isa_range_or_flag(2, 6, MIPS_CPU_ISA_M64R2))#endif #ifndef cpu_has_mips64r6# define cpu_has_mips64r6 __isa_ge_and_flag(6, MIPS_CPU_ISA_M64R6)
arch/mips/include/asm/mipsregs.h +1 -1
@@ -750,7 +750,7 @@/* MAAR bit definitions */ #define MIPS_MAAR_VH (_U64CAST_(1) << 63) -#define MIPS_MAAR_ADDR ((BIT_ULL(BITS_PER_LONG - 12) - 1) << 12) +#define MIPS_MAAR_ADDR GENMASK_ULL(55, 12)#define MIPS_MAAR_ADDR_SHIFT 12#define MIPS_MAAR_S (_ULCAST_(1) << 1)#define MIPS_MAAR_VL (_ULCAST_(1) << 0)
arch/mips/kernel/genex.S +3 -3
@@ -474,20 +474,20 @@ NESTED(nmi_handler, PT_SIZE, sp) .endm .macro __build_clear_fpe + CLI + TRACE_IRQS_OFF .set push /* gas fails to assemble cfc1 for some archs (octeon).*/ \ .set mips1 SET_HARDFLOAT cfc1 a1, fcr31 .set pop - CLI - TRACE_IRQS_OFF .endm .macro __build_clear_msa_fpe - _cfcmsa a1, MSA_CSR CLI TRACE_IRQS_OFF + _cfcmsa a1, MSA_CSR .endm .macro __build_clear_ade
arch/mips/kernel/mips-cm.c +3 -3
@@ -119,9 +119,9 @@ static char *cm2_causes[32] = {"COH_RD_ERR" ,"MMIO_WR_ERR" ,"MMIO_RD_ERR" ,"0x07" ,"0x08" ,"0x09" ,"0x0a" ,"0x0b" ,"0x0c" ,"0x0d" ,"0x0e" ,"0x0f" , -"0x10" ,"0x11" ,"0x12" ,"0x13" , -"0x14" ,"0x15" ,"0x16" ,"INTVN_WR_ERR" , -"INTVN_RD_ERR" ,"0x19" ,"0x1a" ,"0x1b" , +"0x10" ,"INTVN_WR_ERR" ,"INTVN_RD_ERR" ,"0x13" , +"0x14" ,"0x15" ,"0x16" ,"0x17" , +"0x18" ,"0x19" ,"0x1a" ,"0x1b" ,"0x1c" ,"0x1d" ,"0x1e" ,"0x1f" };
arch/mips/kernel/setup.c +10 -0
@@ -653,7 +653,17 @@ static void __init arch_mem_init(char **cmdline_p) crashk_res.end - crashk_res.start + 1);#endif device_tree_init (); + +/* +* In order to reduce the possibility of kernel panic when failed to +* get IO TLB memory under CONFIG_SWIOTLB, it is better to allocate +* low memory as small as possible before plat_swiotlb_setup(), so +* make sparse_init() using top-down allocation. +*/ +memblock_set_bottom_up (false);sparse_init (); +memblock_set_bottom_up (true); +plat_swiotlb_setup ();dma_contiguous_reserve (PFN_PHYS (max_low_pfn));
arch/mips/kernel/time.c +70 -0
82 lines not on this page · raw message
arch/mips/kernel/vmlinux.lds.S +1 -1
@@ -50,7 +50,7 @@ SECTIONS /* . = 0xa800000000300000; */ . = 0xffffffff80300000; #endif - . = VMLINUX_LOAD_ADDRESS; + . = LINKER_LOAD_ADDRESS; /* read-only */ _text = .; /* Text and read-only data */ .text : {
arch/mips/tools/elf-entry.c +8 -1
@@ -51,11 +51,14 @@ int main(int argc, const char *argv[]) nread =fread (&hdr,1 ,sizeof (hdr), file);if (nread !=sizeof (hdr)) {perror ("Unable to read input file" ); +fclose (file);return EXIT_FAILURE ; } -if (memcmp (hdr.ehdr32.e_ident,ELFMAG ,SELFMAG )) +if (memcmp (hdr.ehdr32.e_ident,ELFMAG ,SELFMAG )) { +fclose (file);die ("Input is not an ELF\n" ); + }switch (hdr.ehdr32.e_ident[EI_CLASS ]) {case ELFCLASS32 :
@@ -67,6 +70,7 @@ int main(int argc, const char *argv[]) entry =be32toh (hdr.ehdr32.e_entry);break ;default : +fclose (file);die ("Invalid ELF encoding\n" ); }
@@ -83,14 +87,17 @@ int main(int argc, const char *argv[]) entry =be64toh (hdr.ehdr64.e_entry);break ;default : +fclose (file);die ("Invalid ELF encoding\n" ); }break ;default : +fclose (file);die ("Invalid ELF class\n" ); }printf ("0x%016" PRIx64"\n" , entry); +fclose (file);return EXIT_SUCCESS ; }
arch/powerpc/Kconfig +1 -1
@@ -171,7 +171,7 @@ config PPC select HAVE_ARCH_AUDITSYSCALL select HAVE_ARCH_HUGE_VMAP if PPC_BOOK3S_64 && PPC_RADIX_MMU select HAVE_ARCH_JUMP_LABEL - select HAVE_ARCH_KASAN if PPC32 + select HAVE_ARCH_KASAN if PPC32 && PPC_PAGE_SHIFT <= 14 select HAVE_ARCH_KGDB select HAVE_ARCH_MMAP_RND_BITS select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
arch/powerpc/include/asm/book3s/32/kup.h +2 -1
@@ -2,6 +2,7 @@#ifndef _ASM_POWERPC_BOOK3S_32_KUP_H#define _ASM_POWERPC_BOOK3S_32_KUP_H +#include <asm/bug.h> #include <asm/book3s/32/mmu-hash.h> #ifdef __ASSEMBLY__
@@ -75,7 +76,7 @@ .macro kuap_check current, gpr#ifdef CONFIG_PPC_KUAP_DEBUG - lwz \gpr, KUAP(thread) + lwz \gpr, THREAD + KUAP(\current) 999: twnei \gpr, 0 EMIT_BUG_ENTRY 999b, __FILE__, __LINE__, (BUGFLAG_WARNING | BUGFLAG_ONCE) #endif
arch/powerpc/include/asm/fadump-internal.h +3 -1
@@ -64,12 +64,14 @@ struct fadump_memory_range { };/* fadump memory ranges info */ +#define RNG_NAME_SZ 16struct fadump_mrange_info { -char name[16 ]; +char name[RNG_NAME_SZ ];struct fadump_memory_range *mem_ranges;u32 mem_ranges_sz;u32 mem_range_cnt;u32 max_mem_ranges; +bool is_static; };/* Platform specific callback functions */
arch/powerpc/include/asm/kasan.h +1 -5
@@ -23,17 +23,13 @@#define KASAN_SHADOW_OFFSET ASM_CONST(CONFIG_KASAN_SHADOW_OFFSET) -#define KASAN_SHADOW_END 0UL - -#define KASAN_SHADOW_SIZE (KASAN_SHADOW_END - KASAN_SHADOW_START) +#define KASAN_SHADOW_END (-(-KASAN_SHADOW_START >> KASAN_SHADOW_SCALE_SHIFT))#ifdef CONFIG_KASAN void kasan_early_init (void ); -void kasan_mmu_init (void );void kasan_init (void );#else static inline void kasan_init (void ) { } -static inline void kasan_mmu_init (void ) { }#endif #endif /* __ASSEMBLY */
arch/powerpc/kernel/dt_cpu_ftrs.c +8 -0
@@ -346,6 +346,14 @@ static int __init feat_enable_dscr(struct dt_cpu_feature *f) {u64 lpcr; +/* +* Linux relies on FSCR[DSCR] being clear, so that we can take the +* facility unavailable interrupt and track the task's usage of DSCR. +* See facility_unavailable_exception(). +* Clear the bit here so that feat_enable() doesn't set it. +*/ + f->fscr_bit_nr =-1 ; +feat_enable (f); lpcr =mfspr (SPRN_LPCR );
arch/powerpc/kernel/fadump.c +113 -42
234 lines not on this page · raw message
arch/powerpc/kernel/prom.c +19 -0
@@ -685,6 +685,23 @@ static void __init tm_init(void)static void tm_init (void ) { }#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */ +#ifdef CONFIG_PPC64 +static void __init save_fscr_to_task (void ) +{ +/* +* Ensure the init_task (pid 0, aka swapper) uses the value of FSCR we +* have configured via the device tree features or via __init_FSCR(). +* That value will then be propagated to pid 1 (init) and all future +* processes. +*/ +if (early_cpu_has_feature (CPU_FTR_ARCH_207S )) + init_task.thread.fscr =mfspr (SPRN_FSCR ); +} +#else +static inline void save_fscr_to_task (void ) {}; +#endif + +void __init early_init_devtree (void *params) {phys_addr_t limit;
@@ -773,6 +790,8 @@ void __init early_init_devtree(void *params)BUG (); } +save_fscr_to_task (); +#if defined(CONFIG_SMP ) && defined(CONFIG_PPC64 )/* We'll later wait for secondaries to check in; there are * NCPUS-1 non-boot CPUs :-)
arch/powerpc/mm/init_32.c +0 -2
@@ -175,8 +175,6 @@ void __init MMU_init(void)btext_unmap ();#endif -kasan_mmu_init (); -setup_kup ();/* Shortly after that, the entire linear mapping will be available */
arch/powerpc/mm/kasan/kasan_init_32.c +3 -1
@@ -129,7 +129,7 @@ static void __init kasan_remap_early_shadow_ro(void)flush_tlb_kernel_range (KASAN_SHADOW_START ,KASAN_SHADOW_END ); } -void __init kasan_mmu_init (void ) +static void __init kasan_mmu_init (void ) {int ret;struct memblock_region *reg;
@@ -156,6 +156,8 @@ void __init kasan_mmu_init(void)void __init kasan_init (void ) { +kasan_mmu_init (); +kasan_remap_early_shadow_ro ();clear_page (kasan_early_shadow_page);
arch/powerpc/mm/pgtable_32.c +2 -2
@@ -207,7 +207,7 @@ void mark_initmem_nx(void)unsigned long numpages =PFN_UP ((unsigned long )_einittext) -PFN_DOWN ((unsigned long )_sinittext); -if (v_block_mapped ((unsigned long )_stext +1 )) +if (v_block_mapped ((unsigned long )_sinittext))mmu_mark_initmem_nx ();else change_page_attr (page, numpages,PAGE_KERNEL );
@@ -219,7 +219,7 @@ void mark_rodata_ro(void)struct page *page;unsigned long numpages; -if (v_block_mapped ((unsigned long )_sinittext)) { +if (v_block_mapped ((unsigned long )_stext +1 )) {mmu_mark_rodata_ro ();ptdump_check_wx ();return ;
arch/powerpc/platforms/cell/spufs/file.c +75 -38
234 lines not on this page · raw message
arch/powerpc/platforms/powernv/smp.c +0 -1
@@ -167,7 +167,6 @@ static void pnv_smp_cpu_kill_self(void)/* Standard hot unplug procedure */ idle_task_exit (); - current->active_mm =NULL ;/* for sanity */ cpu =smp_processor_id ();DBG ("CPU%d offline\n" , cpu);generic_set_cpu_dead (cpu);
arch/sparc/kernel/ptrace_32.c +98 -130
262 lines not on this page · raw message
arch/sparc/kernel/ptrace_64.c +3 -14
@@ -572,19 +572,13 @@ static int genregs32_get(struct task_struct *target,for (; count >0 && pos <32 ; count--) {if (access_process_vm (target, (unsigned long ) - ®_window[pos], + ®_window[pos++], ®,sizeof (reg),FOLL_FORCE ) !=sizeof (reg))return -EFAULT ; -if (access_process_vm (target, - (unsigned long ) u, - ®,sizeof (reg), -FOLL_FORCE |FOLL_WRITE ) - !=sizeof (reg)) +if (put_user (reg, u++))return -EFAULT ; - pos++; - u++; } } }
@@ -684,12 +678,7 @@ static int genregs32_set(struct task_struct *target, } }else {for (; count >0 && pos <32 ; count--) { -if (access_process_vm (target, - (unsigned long ) - u, - ®,sizeof (reg), -FOLL_FORCE ) - !=sizeof (reg)) +if (get_user (reg, u++))return -EFAULT ; if (access_process_vm(target, (unsigned long)
arch/x86/boot/compressed/head_32.S +3 -2
@@ -49,16 +49,17 @@ * Position Independent Executable (PIE) so that linker won't optimize * R_386_GOT32X relocation to its fixed symbol address. Older * linkers generate R_386_32 relocations against locally defined symbols, - * _bss, _ebss, _got and _egot, in PIE. It isn't wrong, just less + * _bss, _ebss, _got, _egot and _end, in PIE. It isn't wrong, just less * optimal than R_386_RELATIVE. But the x86 kernel fails to properly handle * R_386_32 relocations when relocating the kernel. To generate - * R_386_RELATIVE relocations, we mark _bss, _ebss, _got and _egot as + * R_386_RELATIVE relocations, we mark _bss, _ebss, _got, _egot and _end as * hidden: */ .hidden _bss .hidden _ebss .hidden _got .hidden _egot + .hidden _end __HEAD ENTRY(startup_32)
arch/x86/boot/compressed/head_64.S +1 -0
@@ -42,6 +42,7 @@ .hidden _ebss .hidden _got .hidden _egot + .hidden _end __HEAD .code32
arch/x86/include/asm/smap.h +8 -3
@@ -57,8 +57,10 @@ static __always_inline unsigned long smap_save(void) {unsigned long flags; - asm volatile (ALTERNATIVE("", "pushf; pop %0; " __ASM_CLAC, - X86_FEATURE_SMAP) + asmvolatile ("# smap_save\n\t" + ALTERNATIVE("jmp 1f", "", X86_FEATURE_SMAP) + "pushf; pop %0; " __ASM_CLAC "\n\t" + "1:" : "=rm" (flags) : : "memory", "cc"); return flags;
@@ -66,7 +68,10 @@ static __always_inline unsigned long smap_save(void) static __always_inline void smap_restore(unsigned long flags) { - asm volatile (ALTERNATIVE("", "push %0; popf", X86_FEATURE_SMAP) + asmvolatile ("# smap_restore\n\t" + ALTERNATIVE("jmp 1f", "", X86_FEATURE_SMAP) + "push %0; popf\n\t" + "1:" : : "g" (flags) : "memory", "cc"); }
arch/x86/kernel/amd_nb.c +8 -0
@@ -18,10 +18,13 @@#define PCI_DEVICE_ID_AMD_17H_ROOT 0x1450#define PCI_DEVICE_ID_AMD_17H_M10H_ROOT 0x15d0#define PCI_DEVICE_ID_AMD_17H_M30H_ROOT 0x1480 +#define PCI_DEVICE_ID_AMD_17H_M60H_ROOT 0x1630#define PCI_DEVICE_ID_AMD_17H_DF_F4 0x1464#define PCI_DEVICE_ID_AMD_17H_M10H_DF_F4 0x15ec#define PCI_DEVICE_ID_AMD_17H_M30H_DF_F4 0x1494 +#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F4 0x144c#define PCI_DEVICE_ID_AMD_17H_M70H_DF_F4 0x1444 +#define PCI_DEVICE_ID_AMD_19H_DF_F4 0x1654/* Protect the PCI config register pairs used for SMN and DF indirect access. */ static DEFINE_MUTEX (smn_mutex);
@@ -32,6 +35,7 @@ static const struct pci_device_id amd_root_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_ROOT) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_ROOT) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_ROOT) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_ROOT) }, {} };
@@ -50,8 +54,10 @@ const struct pci_device_id amd_nb_misc_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_DF_F3) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F3) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F3) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F3) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CNB17H_F3) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F3) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_DF_F3) }, {} };EXPORT_SYMBOL_GPL (amd_nb_misc_ids);
@@ -65,7 +71,9 @@ static const struct pci_device_id amd_nb_link_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F4) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F4) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_DF_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CNB17H_F4) }, {} };
arch/x86/kernel/irq_64.c +1 -1
@@ -43,7 +43,7 @@ static int map_irq_stack(unsigned int cpu) pages[i] =pfn_to_page (pa >>PAGE_SHIFT ); } - va =vmap (pages,IRQ_STACK_SIZE /PAGE_SIZE ,GFP_KERNEL ,PAGE_KERNEL ); + va =vmap (pages,IRQ_STACK_SIZE /PAGE_SIZE ,VM_MAP ,PAGE_KERNEL );if (!va)return -ENOMEM ;
arch/x86/mm/init.c +0 -2
@@ -121,8 +121,6 @@ __ref void *alloc_low_pages(unsigned int num) }else { pfn = pgt_buf_end; pgt_buf_end += num; -printk (KERN_DEBUG "BRK [%#010lx, %#010lx] PGTABLE\n" , - pfn <<PAGE_SHIFT , (pgt_buf_end <<PAGE_SHIFT ) -1 ); }for (i =0 ; i < num; i++) {
block/blk-iocost.c +24 -4
@@ -1546,19 +1546,39 @@ static void ioc_timer_fn(struct timer_list *timer)if (rq_wait_pct >RQ_WAIT_BUSY_PCT || missed_ppm[READ ] > ppm_rthr || missed_ppm[WRITE ] > ppm_wthr) { +/* clearly missing QoS targets, slow down vrate */ ioc->busy_level =max (ioc->busy_level,0 ); ioc->busy_level++; }else if (rq_wait_pct <=RQ_WAIT_BUSY_PCT *UNBUSY_THR_PCT /100 && missed_ppm[READ ] <= ppm_rthr *UNBUSY_THR_PCT /100 && missed_ppm[WRITE ] <= ppm_wthr *UNBUSY_THR_PCT /100 ) { -/* take action iff there is contention */ -if (nr_shortages && !nr_lagging) { +/* QoS targets are being met with >25% margin */ +if (nr_shortages) { +/* +* We're throttling while the device has spare +* capacity. If vrate was being slowed down, stop. +*/ ioc->busy_level =min (ioc->busy_level,0 ); -/* redistribute surpluses first */ -if (!nr_surpluses) + +/* +* If there are IOs spanning multiple periods, wait +* them out before pushing the device harder. If +* there are surpluses, let redistribution work it +* out first. +*/ +if (!nr_lagging && !nr_surpluses) ioc->busy_level--; + }else { +/* +* Nobody is being throttled and the users aren't +* issuing enough IOs to saturate the device. We +* simply don't know how close the device is to +* saturation. Coast. +*/ + ioc->busy_level =0 ; } }else { +/* inside the hysterisis margin, we're good */ ioc->busy_level =0 ; }
block/blk-mq.c +13 -13
@@ -2493,18 +2493,6 @@ static void blk_mq_map_swqueue(struct request_queue *q)* If the cpu isn't present, the cpu is mapped to first hctx. */ for_each_possible_cpu (i) { - hctx_idx = set->map[HCTX_TYPE_DEFAULT ].mq_map[i]; -/* unmapped hw queue can be remapped after CPU topo changed */ -if (!set->tags[hctx_idx] && - !__blk_mq_alloc_rq_map (set, hctx_idx)) { -/* -* If tags initialization fail for some hctx, -* that hctx won't be brought online. In this -* case, remap the current ctx to hctx[0] which -* is guaranteed to always have tags allocated -*/ - set->map[HCTX_TYPE_DEFAULT ].mq_map[i] =0 ; - } ctx =per_cpu_ptr (q->queue_ctx, i);for (j =0 ; j < set->nr_maps; j++) {
@@ -2513,6 +2501,18 @@ static void blk_mq_map_swqueue(struct request_queue *q) HCTX_TYPE_DEFAULT, i);continue ; } + hctx_idx = set->map[j].mq_map[i]; +/* unmapped hw queue can be remapped after CPU topo changed */ +if (!set->tags[hctx_idx] && + !__blk_mq_alloc_rq_map (set, hctx_idx)) { +/* +* If tags initialization fail for some hctx, +* that hctx won't be brought online. In this +* case, remap the current ctx to hctx[0] which +* is guaranteed to always have tags allocated +*/ + set->map[j].mq_map[i] =0 ; + } hctx =blk_mq_map_queue_type (q, j, i); ctx->hctxs[j] = hctx;
@@ -3304,8 +3304,8 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set, prev_nr_hw_queues = set->nr_hw_queues; set->nr_hw_queues = nr_hw_queues; -blk_mq_update_queue_map (set); fallback: +blk_mq_update_queue_map (set);list_for_each_entry (q, &set->tag_list, tag_set_list) {blk_mq_realloc_hw_ctxs (set, q);if (q->nr_hw_queues != set->nr_hw_queues) {
drivers/acpi/acpica/dsfield.c +12 -5
@@ -518,13 +518,20 @@ acpi_ds_create_field(union acpi_parse_object *op, info.region_node = region_node; status =acpi_ds_get_field_names (&info, walk_state, arg->common.next); +if (ACPI_FAILURE (status)) { +return_ACPI_STATUS (status); + } +if (info.region_node->object->region.space_id == -ACPI_ADR_SPACE_PLATFORM_COMM - && !(region_node->object->field.internal_pcc_buffer = -ACPI_ALLOCATE_ZEROED (info.region_node->object->region. - length))) { -return_ACPI_STATUS (AE_NO_MEMORY ); +ACPI_ADR_SPACE_PLATFORM_COMM ) { + region_node->object->field.internal_pcc_buffer = +ACPI_ALLOCATE_ZEROED (info.region_node->object->region. + length); +if (!region_node->object->field.internal_pcc_buffer) { +return_ACPI_STATUS (AE_NO_MEMORY ); + } } +return_ACPI_STATUS (status); }
drivers/acpi/arm64/iort.c +5 -0
@@ -361,6 +361,7 @@ static struct acpi_iort_node *iort_node_get_id(struct acpi_iort_node *node,static int iort_get_id_mapping_index (struct acpi_iort_node *node) {struct acpi_iort_smmu_v3 *smmu; +struct acpi_iort_pmcg *pmcg;switch (node->type) {case ACPI_IORT_NODE_SMMU_V3 :
@@ -388,6 +389,10 @@ static int iort_get_id_mapping_index(struct acpi_iort_node *node)return smmu->id_mapping_index;case ACPI_IORT_NODE_PMCG : + pmcg = (struct acpi_iort_pmcg *)node->node_data; +if (pmcg->overflow_gsiv || node->mapping_count ==0 ) +return -EINVAL ; +return 0 ;default :return -EINVAL ;
drivers/acpi/evged.c +1 -1
@@ -94,7 +94,7 @@ static acpi_status acpi_ged_request_interrupt(struct acpi_resource *ares, trigger = p->triggering; }else { gsi = pext->interrupts[0 ]; - trigger = p->triggering; + trigger = pext->triggering; } irq = r.start;
drivers/bluetooth/btbcm.c +2 -0
@@ -329,6 +329,7 @@ static const struct bcm_subver_table bcm_uart_subver_table[] = { { 0x410e, "BCM43341B0" }, /* 002.001.014 */ { 0x4204, "BCM2076B1" }, /* 002.002.004 */ { 0x4406, "BCM4324B3" }, /* 002.004.006 */ + { 0x4606, "BCM4324B5" }, /* 002.006.006 */ { 0x6109, "BCM4335C0" }, /* 003.001.009 */ { 0x610c, "BCM4354" }, /* 003.001.012 */ { 0x2122, "BCM4343A0" }, /* 001.001.034 */
@@ -343,6 +344,7 @@ static const struct bcm_subver_table bcm_uart_subver_table[] = { };static const struct bcm_subver_table bcm_usb_subver_table[] = { + {0x2105 ,"BCM20703A1" },/* 001.001.005 */ {0x210b ,"BCM43142A0" },/* 001.001.011 */ {0x2112 ,"BCM4314A0" },/* 001.001.018 */ {0x2118 ,"BCM20702A0" },/* 001.001.024 */
drivers/bluetooth/btmtkuart.c +8 -6
@@ -1015,7 +1015,7 @@ static int btmtkuart_probe(struct serdev_device *serdev)if (btmtkuart_is_standalone (bdev)) { err =clk_prepare_enable (bdev->osc);if (err <0 ) -return err; + goto err_hci_free_dev;if (bdev->boot) {gpiod_set_value_cansleep (bdev->boot,1 );
@@ -1028,10 +1028,8 @@ static int btmtkuart_probe(struct serdev_device *serdev)/* Power on */ err =regulator_enable (bdev->vcc); -if (err <0 ) { -clk_disable_unprepare (bdev->osc); -return err; - } +if (err <0 ) + goto err_clk_disable_unprepare;/* Reset if the reset-gpios is available otherwise the board * -level design should be guaranteed.
@@ -1063,7 +1061,6 @@ static int btmtkuart_probe(struct serdev_device *serdev) err =hci_register_dev (hdev);if (err <0 ) {dev_err (&serdev->dev,"Can't register HCI device\n" ); -hci_free_dev (hdev); goto err_regulator_disable; }
@@ -1072,6 +1069,11 @@ static int btmtkuart_probe(struct serdev_device *serdev) err_regulator_disable:if (btmtkuart_is_standalone (bdev))regulator_disable (bdev->vcc); +err_clk_disable_unprepare: +if (btmtkuart_is_standalone (bdev)) +clk_disable_unprepare (bdev->osc); +err_hci_free_dev: +hci_free_dev (hdev);return err; }
drivers/bluetooth/hci_bcm.c +4 -1
@@ -107,6 +107,7 @@ struct bcm_device {u32 oper_speed;int irq;bool irq_active_low; +bool irq_acquired;#ifdef CONFIG_PM struct hci_uart *hu;
@@ -319,6 +320,8 @@ static int bcm_request_irq(struct bcm_data *bcm) goto unlock; } + bdev->irq_acquired = true; +device_init_wakeup (bdev->dev, true); pm_runtime_set_autosuspend_delay(bdev->dev,
@@ -487,7 +490,7 @@ static int bcm_close(struct hci_uart *hu) }if (bdev) { -if (IS_ENABLED (CONFIG_PM ) && bdev->irq >0 ) { +if (IS_ENABLED (CONFIG_PM ) && bdev->irq_acquired) {devm_free_irq (bdev->dev, bdev->irq, bdev);device_init_wakeup (bdev->dev, false);pm_runtime_disable (bdev->dev);
drivers/clk/mediatek/clk-mux.c +1 -1
@@ -160,7 +160,7 @@ struct clk *mtk_clk_register_mux(const struct mtk_mux *mux, spinlock_t *lock) {struct mtk_clk_mux *clk_mux; -struct clk_init_data init; +struct clk_init_data init = {};struct clk *clk; clk_mux =kzalloc (sizeof (*clk_mux),GFP_KERNEL );
drivers/clocksource/dw_apb_timer.c +3 -2
@@ -222,7 +222,8 @@ static int apbt_next_event(unsigned long delta,/** * dw_apb_clockevent_init() - use an APB timer as a clock_event_device * -* @cpu: The CPU the events will be targeted at. +* @cpu: The CPU the events will be targeted at or -1 if CPU affiliation +* isn't required. * @name: The name used for the timer and the IRQ for it. * @rating: The rating to give the timer. * @base: I/O base for the timer registers.
@@ -257,7 +258,7 @@ dw_apb_clockevent_init(int cpu, const char *name, unsigned rating, dw_ced->ced.max_delta_ticks =0x7fffffff ; dw_ced->ced.min_delta_ns =clockevent_delta2ns (5000 , &dw_ced->ced); dw_ced->ced.min_delta_ticks =5000 ; - dw_ced->ced.cpumask =cpumask_of (cpu); + dw_ced->ced.cpumask = cpu <0 ? cpu_possible_mask :cpumask_of (cpu); dw_ced->ced.features =CLOCK_EVT_FEAT_PERIODIC |CLOCK_EVT_FEAT_ONESHOT |CLOCK_EVT_FEAT_DYNIRQ ; dw_ced->ced.set_state_shutdown = apbt_shutdown;
drivers/clocksource/dw_apb_timer_of.c +2 -4
@@ -147,10 +147,6 @@ static int num_called;static int __init dw_apb_timer_init (struct device_node *timer) {switch (num_called) { -case 0 : -pr_debug ("%s: found clockevent timer\n" , __func__); -add_clockevent (timer); -break ;case 1 :pr_debug ("%s: found clocksource timer\n" , __func__);add_clocksource (timer);
@@ -161,6 +157,8 @@ static int __init dw_apb_timer_init(struct device_node *timer)#endif break ;default : +pr_debug ("%s: found clockevent timer\n" , __func__); +add_clockevent (timer);break ; }
drivers/cpuidle/sysfs.c +3 -3
@@ -480,7 +480,7 @@ static int cpuidle_add_state_sysfs(struct cpuidle_device *device) ret =kobject_init_and_add (&kobj->kobj, &ktype_state_cpuidle, &kdev->kobj,"state%d" , i);if (ret) { -kfree (kobj); +kobject_put (&kobj->kobj); goto error_state; }cpuidle_add_s2idle_attr_group (kobj);
@@ -611,7 +611,7 @@ static int cpuidle_add_driver_sysfs(struct cpuidle_device *dev) ret =kobject_init_and_add (&kdrv->kobj, &ktype_driver_cpuidle, &kdev->kobj,"driver" );if (ret) { -kfree (kdrv); +kobject_put (&kdrv->kobj);return ret; }
@@ -705,7 +705,7 @@ int cpuidle_add_sysfs(struct cpuidle_device *dev) error =kobject_init_and_add (&kdev->kobj, &ktype_cpuidle, &cpu_dev->kobj,"cpuidle" );if (error) { -kfree (kdev); +kobject_put (&kdev->kobj);return error; }
drivers/crypto/ccp/Kconfig +1 -2
@@ -10,10 +10,9 @@ config CRYPTO_DEV_CCP_DD config CRYPTO_DEV_SP_CCP bool "Cryptographic Coprocessor device" default y - depends on CRYPTO_DEV_CCP_DD + depends on CRYPTO_DEV_CCP_DD && DMADEVICES select HW_RANDOM select DMA_ENGINE - select DMADEVICES select CRYPTO_SHA1 select CRYPTO_SHA256 help
drivers/crypto/chelsio/chcr_algo.c +1 -1
@@ -2818,7 +2818,7 @@ static void fill_sec_cpl_for_aead(struct cpl_tx_sec_pdu *sec_cpl,unsigned int mac_mode =CHCR_SCMD_AUTH_MODE_CBCMAC ;unsigned int c_id =a_ctx (tfm)->tx_chan_id;unsigned int ccm_xtra; -unsigned char tag_offset =0 , auth_offset =0 ; +unsigned int tag_offset =0 , auth_offset =0 ;unsigned int assoclen;if (get_aead_subtype (tfm) ==CRYPTO_ALG_SUB_TYPE_AEAD_RFC4309 )
drivers/crypto/stm32/stm32-crc32.c +83 -61
230 lines not on this page · raw message
drivers/edac/amd64_edac.c +13 -0
@@ -2317,6 +2317,15 @@ static struct amd64_family_type family_types[] = { .dbam_to_cs = f17_addr_mask_to_cs_size, } }, + [F17_M60H_CPUS] = { + .ctl_name = "F17h_M60h", + .f0_id = PCI_DEVICE_ID_AMD_17H_M60H_DF_F0, + .f6_id = PCI_DEVICE_ID_AMD_17H_M60H_DF_F6, + .ops = { + .early_channel_count = f17_early_channel_count, + .dbam_to_cs = f17_addr_mask_to_cs_size, + } + }, [F17_M70H_CPUS] = { .ctl_name = "F17h_M70h", .f0_id = PCI_DEVICE_ID_AMD_17H_M70H_DF_F0,
@@ -3366,6 +3375,10 @@ static struct amd64_family_type *per_family_init(struct amd64_pvt *pvt) fam_type = &family_types[F17_M30H_CPUS ]; pvt->ops = &family_types[F17_M30H_CPUS ].ops;break ; + }else if (pvt->model >=0x60 && pvt->model <=0x6f ) { + fam_type = &family_types[F17_M60H_CPUS ]; + pvt->ops = &family_types[F17_M60H_CPUS ].ops; +break ; }else if (pvt->model >=0x70 && pvt->model <=0x7f ) { fam_type = &family_types[F17_M70H_CPUS ]; pvt->ops = &family_types[F17_M70H_CPUS ].ops;
drivers/edac/amd64_edac.h +3 -0
@@ -120,6 +120,8 @@#define PCI_DEVICE_ID_AMD_17H_M10H_DF_F6 0x15ee#define PCI_DEVICE_ID_AMD_17H_M30H_DF_F0 0x1490#define PCI_DEVICE_ID_AMD_17H_M30H_DF_F6 0x1496 +#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F0 0x1448 +#define PCI_DEVICE_ID_AMD_17H_M60H_DF_F6 0x144e#define PCI_DEVICE_ID_AMD_17H_M70H_DF_F0 0x1440#define PCI_DEVICE_ID_AMD_17H_M70H_DF_F6 0x1446
@@ -291,6 +293,7 @@ enum amd_families {F17_CPUS ,F17_M10H_CPUS ,F17_M30H_CPUS , +F17_M60H_CPUS ,F17_M70H_CPUS , NUM_FAMILIES, };
drivers/firmware/efi/libstub/Makefile +1 -0
@@ -28,6 +28,7 @@ KBUILD_CFLAGS := $(cflags-y) -DDISABLE_BRANCH_PROFILING \ -D__NO_FORTIFY \ $(call cc-option,-ffreestanding) \ $(call cc-option,-fno-stack-protector) \ + $(call cc-option,-fno-addrsig) \ -D__DISABLE_EXPORTS GCOV_PROFILE := n
drivers/gnss/sirf.c +6 -2
@@ -439,14 +439,18 @@ static int sirf_probe(struct serdev_device *serdev) data->on_off =devm_gpiod_get_optional (dev,"sirf,onoff" ,GPIOD_OUT_LOW ); -if (IS_ERR (data->on_off)) +if (IS_ERR (data->on_off)) { + ret =PTR_ERR (data->on_off); goto err_put_device; + }if (data->on_off) { data->wakeup =devm_gpiod_get_optional (dev,"sirf,wakeup" ,GPIOD_IN ); -if (IS_ERR (data->wakeup)) +if (IS_ERR (data->wakeup)) { + ret =PTR_ERR (data->wakeup); goto err_put_device; + } ret =regulator_enable (data->vcc);if (ret)
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +25 -18
69 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +13 -1
@@ -370,6 +370,15 @@ static ssize_t amdgpu_set_dpm_forced_performance_level(struct device *dev,if (current_level == level)return count; +if (adev->asic_type ==CHIP_RAVEN ) { +if (adev->rev_id <8 ) { +if (current_level !=AMD_DPM_FORCED_LEVEL_MANUAL && level ==AMD_DPM_FORCED_LEVEL_MANUAL ) +amdgpu_gfx_off_ctrl (adev, false); +else if (current_level ==AMD_DPM_FORCED_LEVEL_MANUAL && level !=AMD_DPM_FORCED_LEVEL_MANUAL ) +amdgpu_gfx_off_ctrl (adev, true); + } + } +/* profile_exit setting is valid only when current mode is in profile mode */ if (!(current_level & (AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD | AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK |
@@ -416,8 +425,11 @@ static ssize_t amdgpu_get_pp_num_states(struct device *dev, ret =smu_get_power_num_states (&adev->smu, &data);if (ret)return ret; - }else if (adev->powerplay.pp_funcs->get_pp_num_states) + }else if (adev->powerplay.pp_funcs->get_pp_num_states) {amdgpu_dpm_get_pp_num_states (adev, &data); + }else { +memset (&data,0 ,sizeof (data)); + } buf_len =snprintf (buf,PAGE_SIZE ,"states: %d\n" , data.nums);for (i =0 ; i < data.nums; i++)
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +9 -2
@@ -2867,10 +2867,17 @@ int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm, unsWARN_ONCE ((vm->use_cpu_for_update && !amdgpu_gmc_vram_full_visible (&adev->gmc)),"CPU update of VM recommended only for large BAR system\n" ); -if (vm->use_cpu_for_update) +if (vm->use_cpu_for_update) { +/* Sync with last SDMA update/clear before switching to CPU */ + r =amdgpu_bo_sync_wait (vm->root.base.bo, +AMDGPU_FENCE_OWNER_UNDEFINED , true); +if (r) + goto free_idr; + vm->update_funcs = &amdgpu_vm_cpu_funcs; -else + }else { vm->update_funcs = &amdgpu_vm_sdma_funcs; + }dma_fence_put (vm->last_update); vm->last_update =NULL ;
drivers/gpu/drm/bridge/adv7511/adv7511_audio.c +7 -5
@@ -19,13 +19,15 @@ static void adv7511_calc_cts_n(unsigned int f_tmds, unsigned int fs, {switch (fs) {case 32000 : - *n =4096 ; +case 48000 : +case 96000 : +case 192000 : + *n = fs *128 /1000 ;break ;case 44100 : - *n =6272 ; -break ; -case 48000 : - *n =6144 ; +case 88200 : +case 176400 : + *n = fs *128 /900 ;break ; }
drivers/gpu/drm/mcde/mcde_dsi.c +3 -4
@@ -940,10 +940,9 @@ static int mcde_dsi_bind(struct device *dev, struct device *master, panel =NULL ; bridge =of_drm_find_bridge (child); -if (IS_ERR (bridge)) { -dev_err (dev,"failed to find bridge (%ld)\n" , -PTR_ERR (bridge)); -return PTR_ERR (bridge); +if (!bridge) { +dev_err (dev,"failed to find bridge\n" ); +return -EINVAL ; } } }
drivers/gpu/drm/mediatek/mtk_dpi.c +31 -0
@@ -10,7 +10,9 @@#include <linux/kernel.h> #include <linux/of.h> #include <linux/of_device.h> +#include <linux/of_gpio.h> #include <linux/of_graph.h> +#include <linux/pinctrl/consumer.h> #include <linux/platform_device.h> #include <linux/types.h>
@@ -73,6 +75,9 @@ struct mtk_dpi {enum mtk_dpi_out_yc_map yc_map;enum mtk_dpi_out_bit_num bit_num;enum mtk_dpi_out_channel_swap channel_swap; +struct pinctrl *pinctrl; +struct pinctrl_state *pins_gpio; +struct pinctrl_state *pins_dpi;int refcount; };
@@ -378,6 +383,9 @@ static void mtk_dpi_power_off(struct mtk_dpi *dpi)if (--dpi->refcount !=0 )return ; +if (dpi->pinctrl && dpi->pins_gpio) +pinctrl_select_state (dpi->pinctrl, dpi->pins_gpio); +mtk_dpi_disable (dpi);clk_disable_unprepare (dpi->pixel_clk);clk_disable_unprepare (dpi->engine_clk);
@@ -402,6 +410,9 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi) goto err_pixel; } +if (dpi->pinctrl && dpi->pins_dpi) +pinctrl_select_state (dpi->pinctrl, dpi->pins_dpi); +mtk_dpi_enable (dpi);return 0 ;
@@ -689,6 +700,26 @@ static int mtk_dpi_probe(struct platform_device *pdev) dpi->dev = dev; dpi->conf = (struct mtk_dpi_conf *)of_device_get_match_data (dev); + dpi->pinctrl =devm_pinctrl_get (&pdev->dev); +if (IS_ERR (dpi->pinctrl)) { + dpi->pinctrl =NULL ; +dev_dbg (&pdev->dev,"Cannot find pinctrl!\n" ); + } +if (dpi->pinctrl) { + dpi->pins_gpio =pinctrl_lookup_state (dpi->pinctrl,"sleep" ); +if (IS_ERR (dpi->pins_gpio)) { + dpi->pins_gpio =NULL ; +dev_dbg (&pdev->dev,"Cannot find pinctrl idle!\n" ); + } +if (dpi->pins_gpio) +pinctrl_select_state (dpi->pinctrl, dpi->pins_gpio); + + dpi->pins_dpi =pinctrl_lookup_state (dpi->pinctrl,"default" ); +if (IS_ERR (dpi->pins_dpi)) { + dpi->pins_dpi =NULL ; +dev_dbg (&pdev->dev,"Cannot find pinctrl active!\n" ); + } + } mem =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); dpi->regs =devm_ioremap_resource (dev, mem);if (IS_ERR (dpi->regs)) {
drivers/gpu/drm/rcar-du/rcar_du_plane.c +9 -7
@@ -785,13 +785,15 @@ int rcar_du_planes_init(struct rcar_du_group *rgrp)drm_plane_create_alpha_property (&plane->plane); -if (type ==DRM_PLANE_TYPE_PRIMARY ) -continue ; - -drm_object_attach_property (&plane->plane.base, - rcdu->props.colorkey, -RCAR_DU_COLORKEY_NONE ); -drm_plane_create_zpos_property (&plane->plane,1 ,1 ,7 ); +if (type ==DRM_PLANE_TYPE_PRIMARY ) { +drm_plane_create_zpos_immutable_property (&plane->plane, +0 ); + }else { +drm_object_attach_property (&plane->plane.base, + rcdu->props.colorkey, +RCAR_DU_COLORKEY_NONE ); +drm_plane_create_zpos_property (&plane->plane,1 ,1 ,7 ); + } }return 0 ;
drivers/gpu/drm/rcar-du/rcar_du_vsp.c +8 -6
@@ -392,12 +392,14 @@ int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np,drm_plane_helper_add (&plane->plane, &rcar_du_vsp_plane_helper_funcs); -if (type ==DRM_PLANE_TYPE_PRIMARY ) -continue ; - -drm_plane_create_alpha_property (&plane->plane); -drm_plane_create_zpos_property (&plane->plane,1 ,1 , - vsp->num_planes -1 ); +if (type ==DRM_PLANE_TYPE_PRIMARY ) { +drm_plane_create_zpos_immutable_property (&plane->plane, +0 ); + }else { +drm_plane_create_alpha_property (&plane->plane); +drm_plane_create_zpos_property (&plane->plane,1 ,1 , + vsp->num_planes -1 ); + } }return 0 ;
drivers/hv/connection.c +1 -19
@@ -67,7 +67,6 @@ static __u32 vmbus_get_next_version(__u32 current_version)int vmbus_negotiate_version (struct vmbus_channel_msginfo *msginfo,u32 version) {int ret =0 ; -unsigned int cur_cpu;struct vmbus_channel_initiate_contact *msg;unsigned long flags;
@@ -100,24 +99,7 @@ int vmbus_negotiate_version(struct vmbus_channel_msginfo *msginfo, u32 version) msg->monitor_page1 =virt_to_phys (vmbus_connection.monitor_pages[0 ]); msg->monitor_page2 =virt_to_phys (vmbus_connection.monitor_pages[1 ]); -/* -* We want all channel messages to be delivered on CPU 0. -* This has been the behavior pre-win8. This is not -* perf issue and having all channel messages delivered on CPU 0 -* would be ok. -* For post win8 hosts, we support receiving channel messagges on -* all the CPUs. This is needed for kexec to work correctly where -* the CPU attempting to connect may not be CPU 0. -*/ -if (version >=VERSION_WIN8_1 ) { - cur_cpu =get_cpu (); - msg->target_vcpu =hv_cpu_number_to_vp_number (cur_cpu); - vmbus_connection.connect_cpu = cur_cpu; -put_cpu (); - }else { - msg->target_vcpu =0 ; - vmbus_connection.connect_cpu =0 ; - } + msg->target_vcpu =hv_cpu_number_to_vp_number (VMBUS_CONNECT_CPU );/* * Add to list before we send the request since we may
drivers/hv/hv.c +7 -0
@@ -249,6 +249,13 @@ int hv_synic_cleanup(unsigned int cpu)bool channel_found = false;unsigned long flags; +/* +* Hyper-V does not provide a way to change the connect CPU once +* it is set; we must prevent the connect CPU from going offline. +*/ +if (cpu ==VMBUS_CONNECT_CPU ) +return -EBUSY ; +/* * Search for channels which are bound to the CPU we're about to * cleanup. In case we find one and vmbus is still connected we need to
drivers/hv/hyperv_vmbus.h +6 -5
@@ -212,12 +212,13 @@ enum vmbus_connect_state {#define MAX_SIZE_CHANNEL_MESSAGE HV_MESSAGE_PAYLOAD_BYTE_COUNT -struct vmbus_connection { -/* -* CPU on which the initial host contact was made. -*/ -int connect_cpu; +/* +* The CPU that Hyper-V will interrupt for VMBUS messages, such as +* CHANNELMSG_OFFERCHANNEL and CHANNELMSG_RESCIND_CHANNELOFFER. +*/ +#define VMBUS_CONNECT_CPU 0 +struct vmbus_connection {u32 msg_conn_id;atomic_t offer_in_progress;
drivers/hv/vmbus_drv.c +17 -3
@@ -1092,14 +1092,28 @@ void vmbus_on_msg_dpc(unsigned long data)/* * If we are handling the rescind message; * schedule the work on the global work queue. +* +* The OFFER message and the RESCIND message should +* not be handled by the same serialized work queue, +* because the OFFER handler may call vmbus_open(), +* which tries to open the channel by sending an +* OPEN_CHANNEL message to the host and waits for +* the host's response; however, if the host has +* rescinded the channel before it receives the +* OPEN_CHANNEL message, the host just silently +* ignores the OPEN_CHANNEL message; as a result, +* the guest's OFFER handler hangs for ever, if we +* handle the RESCIND message in the same serialized +* work queue: the RESCIND handler can not start to +* run before the OFFER handler finishes. */ -schedule_work_on (vmbus_connection.connect_cpu, +schedule_work_on (VMBUS_CONNECT_CPU , &ctx->work);break ;case CHANNELMSG_OFFERCHANNEL :atomic_inc (&vmbus_connection.offer_in_progress); -queue_work_on (vmbus_connection.connect_cpu, +queue_work_on (VMBUS_CONNECT_CPU , vmbus_connection.work_queue, &ctx->work);break ;
@@ -1146,7 +1160,7 @@ static void vmbus_force_channel_rescinded(struct vmbus_channel *channel)INIT_WORK (&ctx->work, vmbus_onmessage_work); -queue_work_on (vmbus_connection.connect_cpu, +queue_work_on (VMBUS_CONNECT_CPU , vmbus_connection.work_queue, &ctx->work); }
drivers/hwmon/k10temp.c +1 -0
@@ -349,6 +349,7 @@ static const struct pci_device_id k10temp_id_table[] = { { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_DF_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M10H_DF_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M30H_DF_F3) }, + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M60H_DF_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_17H_M70H_DF_F3) }, { PCI_VDEVICE(HYGON, PCI_DEVICE_ID_AMD_17H_DF_F3) }, {}
drivers/macintosh/windfarm_pm112.c +13 -8
@@ -132,14 +132,6 @@ static int create_cpu_loop(int cpu)s32 tmax;int fmin; -/* Get PID params from the appropriate SAT */ - hdr =smu_sat_get_sdb_partition (chip,0xC8 + core,NULL ); -if (hdr ==NULL ) { -printk (KERN_WARNING "windfarm: can't get CPU PID fan config\n" ); -return -EINVAL ; - } - piddata = (struct smu_sdbp_cpupiddata *)&hdr[1 ]; -/* Get FVT params to get Tmax; if not found, assume default */ hdr =smu_sat_get_sdb_partition (chip,0xC4 + core,NULL );if (hdr) {
@@ -152,6 +144,16 @@ static int create_cpu_loop(int cpu)if (tmax < cpu_all_tmax) cpu_all_tmax = tmax; +kfree (hdr); + +/* Get PID params from the appropriate SAT */ + hdr =smu_sat_get_sdb_partition (chip,0xC8 + core,NULL ); +if (hdr ==NULL ) { +printk (KERN_WARNING "windfarm: can't get CPU PID fan config\n" ); +return -EINVAL ; + } + piddata = (struct smu_sdbp_cpupiddata *)&hdr[1 ]; +/* * Darwin has a minimum fan speed of 1000 rpm for the 4-way and * 515 for the 2-way. That appears to be overkill, so for now,
@@ -174,6 +176,9 @@ static int create_cpu_loop(int cpu) pid.min = fmin;wf_cpu_pid_init (&cpu_pid[cpu], &pid); + +kfree (hdr); +return 0 ; }
drivers/md/bcache/super.c +5 -2
@@ -789,7 +789,9 @@ static void bcache_device_free(struct bcache_device *d)bcache_device_detach (d);if (disk) { -if (disk->flags &GENHD_FL_UP ) +bool disk_added = (disk->flags &GENHD_FL_UP ) !=0 ; + +if (disk_added)del_gendisk (disk);if (disk->queue)
@@ -797,7 +799,8 @@ static void bcache_device_free(struct bcache_device *d)ida_simple_remove (&bcache_device_idx,first_minor_to_idx (disk->first_minor)); -put_disk (disk); +if (disk_added) +put_disk (disk); }bioset_exit (&d->bio_split);
drivers/md/dm-crypt.c +1 -1
@@ -2957,7 +2957,7 @@ static void crypt_io_hints(struct dm_target *ti, struct queue_limits *limits) limits->max_segment_size =PAGE_SIZE ; limits->logical_block_size = - max_t(unsigned short, limits->logical_block_size, cc->sector_size); +max_t (unsigned, limits->logical_block_size, cc->sector_size); limits->physical_block_size =max_t (unsigned, limits->physical_block_size, cc->sector_size); limits->io_min =max_t (unsigned, limits->io_min, cc->sector_size);
drivers/md/md.c +2 -1
@@ -7607,7 +7607,8 @@ static int md_open(struct block_device *bdev, fmode_t mode)*/ mddev_put (mddev);/* Wait until bdev->bd_disk is definitely gone */ -flush_workqueue (md_misc_wq); +if (work_pending (&mddev->del_work)) +flush_workqueue (md_misc_wq);/* Then retry the open from the top */ return -ERESTARTSYS ; }
drivers/md/raid5.c +9 -6
@@ -2228,14 +2228,19 @@ static int grow_stripes(struct r5conf *conf, int num)* of the P and Q blocks. */ static int scribble_alloc (struct raid5_percpu *percpu, -int num,int cnt,gfp_t flags) +int num,int cnt) {size_t obj_size =sizeof (struct page *) * (num+2 ) +sizeof (addr_conv_t) * (num+2 );void *scribble; - scribble =kvmalloc_array (cnt, obj_size, flags); +/* +* If here is in raid array suspend context, it is in memalloc noio +* context as well, there is no potential recursive memory reclaim +* I/Os with the GFP_KERNEL flag. +*/ + scribble =kvmalloc_array (cnt, obj_size,GFP_KERNEL );if (!scribble)return -ENOMEM ;
@@ -2267,8 +2272,7 @@ static int resize_chunks(struct r5conf *conf, int new_disks, int new_sectors) percpu =per_cpu_ptr (conf->percpu, cpu); err =scribble_alloc (percpu, new_disks, - new_sectors /STRIPE_SECTORS , -GFP_NOIO ); + new_sectors /STRIPE_SECTORS );if (err)break ; }
@@ -6765,8 +6769,7 @@ static int alloc_scratch_buffer(struct r5conf *conf, struct raid5_percpu *percpu conf->previous_raid_disks), max(conf->chunk_sectors, conf->prev_chunk_sectors) - / STRIPE_SECTORS, - GFP_KERNEL)) { + / STRIPE_SECTORS)) {free_scratch_buffer (conf, percpu);return -ENOMEM ; }
drivers/media/cec/cec-adap.c +4 -4
@@ -1732,6 +1732,10 @@ int __cec_s_log_addrs(struct cec_adapter *adap,unsigned j; log_addrs->log_addr[i] =CEC_LOG_ADDR_INVALID ; +if (log_addrs->log_addr_type[i] >CEC_LOG_ADDR_TYPE_UNREGISTERED ) { +dprintk (1 ,"unknown logical address type\n" ); +return -EINVAL ; + }if (type_mask & (1 << log_addrs->log_addr_type[i])) {dprintk (1 ,"duplicate logical address type\n" );return -EINVAL ;
@@ -1752,10 +1756,6 @@ int __cec_s_log_addrs(struct cec_adapter *adap,dprintk (1 ,"invalid primary device type\n" );return -EINVAL ; } -if (log_addrs->log_addr_type[i] >CEC_LOG_ADDR_TYPE_UNREGISTERED ) { -dprintk (1 ,"unknown logical address type\n" ); -return -EINVAL ; - }for (j =0 ; j < feature_sz; j++) {if ((features[j] &0x80 ) ==0 ) {if (op_is_dev_features)
drivers/media/dvb-core/dvbdev.c +3 -2
@@ -707,9 +707,10 @@ int dvb_create_media_graph(struct dvb_adapter *adap, }if (ntuner && ndemod) { - pad_source =media_get_pad_index (tuner, true, +/* NOTE: first found tuner source pad presumed correct */ + pad_source =media_get_pad_index (tuner, false,PAD_SIGNAL_ANALOG ); -if (pad_source) +if (pad_source <0 )return -EINVAL ; ret = media_create_pad_links(mdev, MEDIA_ENT_F_TUNER,
drivers/media/i2c/ov5640.c +2 -2
@@ -3068,8 +3068,8 @@ static int ov5640_probe(struct i2c_client *client) free_ctrls:v4l2_ctrl_handler_free (&sensor->ctrls.handler); entity_cleanup: -mutex_destroy (&sensor->lock);media_entity_cleanup (&sensor->sd.entity); +mutex_destroy (&sensor->lock);return ret; }
@@ -3079,9 +3079,9 @@ static int ov5640_remove(struct i2c_client *client)struct ov5640_dev *sensor =to_ov5640_dev (sd);v4l2_async_unregister_subdev (&sensor->sd); -mutex_destroy (&sensor->lock);media_entity_cleanup (&sensor->sd.entity);v4l2_ctrl_handler_free (&sensor->ctrls.handler); +mutex_destroy (&sensor->lock);return 0 ; }
drivers/media/platform/rcar-fcp.c +5 -0
@@ -8,6 +8,7 @@*/ #include <linux/device.h> +#include <linux/dma-mapping.h> #include <linux/list.h> #include <linux/module.h> #include <linux/mod_devicetable.h>
@@ -21,6 +22,7 @@struct rcar_fcp_device {struct list_head list;struct device *dev; +struct device_dma_parameters dma_parms; };static LIST_HEAD (fcp_devices);
@@ -136,6 +138,9 @@ static int rcar_fcp_probe(struct platform_device *pdev) fcp->dev = &pdev->dev; + fcp->dev->dma_parms = &fcp->dma_parms; +dma_set_max_seg_size (fcp->dev,DMA_BIT_MASK (32 )); +pm_runtime_enable (&pdev->dev);mutex_lock (&fcp_lock);
drivers/media/platform/vicodec/vicodec-core.c +9 -6
@@ -2172,16 +2172,19 @@ static int vicodec_probe(struct platform_device *pdev)platform_set_drvdata (pdev, dev); -if (register_instance (dev, &dev->stateful_enc, -"stateful-encoder" , true)) + ret =register_instance (dev, &dev->stateful_enc,"stateful-encoder" , + true); +if (ret) goto unreg_dev; -if (register_instance (dev, &dev->stateful_dec, -"stateful-decoder" , false)) + ret =register_instance (dev, &dev->stateful_dec,"stateful-decoder" , + false); +if (ret) goto unreg_sf_enc; -if (register_instance (dev, &dev->stateless_dec, -"stateless-decoder" , false)) + ret =register_instance (dev, &dev->stateless_dec,"stateless-decoder" , + false); +if (ret) goto unreg_sf_dec;#ifdef CONFIG_MEDIA_CONTROLLER
drivers/media/tuners/si2157.c +7 -8
@@ -75,24 +75,23 @@ static int si2157_init(struct dvb_frontend *fe)struct si2157_cmd cmd;const struct firmware *fw;const char *fw_name; -unsigned int uitmp, chip_id; +unsigned int chip_id, xtal_trim;dev_dbg (&client->dev,"\n" ); -/* Returned IF frequency is garbage when firmware is not running */ -memcpy (cmd.args,"\x15\x00\x06\x07" ,4 ); +/* Try to get Xtal trim property, to verify tuner still running */ +memcpy (cmd.args,"\x15\x00\x04\x02" ,4 ); cmd.wlen =4 ; cmd.rlen =4 ; ret =si2157_cmd_execute (client, &cmd); -if (ret) - goto err; - uitmp = cmd.args[2 ] <<0 | cmd.args[3 ] <<8 ; -dev_dbg (&client->dev,"if_frequency kHz=%u\n" , uitmp); + xtal_trim = cmd.args[2 ] | (cmd.args[3 ] <<8 ); -if (uitmp == dev->if_frequency /1000 ) +if (ret ==0 && xtal_trim <16 ) goto warm; + dev->if_frequency =0 ;/* we no longer know current tuner state */ +/* power up */ if (dev->chiptype ==SI2157_CHIPTYPE_SI2146 ) {memcpy (cmd.args,"\xc0\x05\x01\x00\x00\x0b\x00\x00\x01" ,9 );
drivers/media/usb/dvb-usb/dibusb-mb.c +1 -1
@@ -81,7 +81,7 @@ static int dibusb_tuner_probe_and_attach(struct dvb_usb_adapter *adap)if (i2c_transfer (&adap->dev->i2c_adap, msg,2 ) !=2 ) {err ("tuner i2c write failed." ); - ret = -EREMOTEIO ; +return -EREMOTEIO ; }if (adap->fe_adap[0 ].fe->ops.i2c_gate_ctrl)
drivers/media/usb/go7007/snd-go7007.c +17 -18
@@ -236,22 +236,18 @@ int go7007_snd_init(struct go7007 *go) gosnd->capturing =0 ; ret =snd_card_new (go->dev, index[dev], id[dev],THIS_MODULE ,0 , &gosnd->card); -if (ret <0 ) { -kfree (gosnd); -return ret; - } +if (ret <0 ) + goto free_snd; + ret =snd_device_new (gosnd->card,SNDRV_DEV_LOWLEVEL , go, &go7007_snd_device_ops); -if (ret <0 ) { -kfree (gosnd); -return ret; - } +if (ret <0 ) + goto free_card; + ret =snd_pcm_new (gosnd->card,"go7007" ,0 ,0 ,1 , &gosnd->pcm); -if (ret <0 ) { -snd_card_free (gosnd->card); -kfree (gosnd); -return ret; - } +if (ret <0 ) + goto free_card; +strscpy (gosnd->card->driver,"go7007" ,sizeof (gosnd->card->driver));strscpy (gosnd->card->shortname, go->name,sizeof (gosnd->card->shortname)); strscpy(gosnd->card->longname, gosnd->card->shortname,
@@ -262,11 +258,8 @@ int go7007_snd_init(struct go7007 *go) &go7007_snd_capture_ops); ret =snd_card_register (gosnd->card); -if (ret <0 ) { -snd_card_free (gosnd->card); -kfree (gosnd); -return ret; - } +if (ret <0 ) + goto free_card; gosnd->substream =NULL ; go->snd_context = gosnd;
@@ -274,6 +267,12 @@ int go7007_snd_init(struct go7007 *go) ++dev;return 0 ;
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/brcmnand/brcmnand.c +7 -4
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/ingenic/ingenic_nand_drv.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/allwinner/sun4i-emac.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amazon/ena/ena_com.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_nic.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c +18 -21
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000/e1000_main.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000e/e1000.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000e/netdev.c +9 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_common.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_controlq.c +28 -21
49 lines not on this page · raw message
drivers/net/ethernet/intel/ice/ice_main.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igb/igb_ethtool.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +12 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qede/qede.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qede/qede_main.c +9 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/htt_tx.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/wmi-ops.h +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/wmi-tlv.c +15 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/carl9170/main.c +4 -17
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/main.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43/main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43legacy/main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43legacy/xmit.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c +7 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c +8 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +13 -5
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/sta.h +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas_tf/if_usb.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/cfg80211.c +6 -8
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/agg-rx.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76.h +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/usb.c +2 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/pci.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/nvme/host/pci.c +33 -24
57 lines not on this page · raw message
drivers/pci/quirks.c +44 -4
48 lines not on this page · raw message
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/samsung/pinctrl-exynos.c +58 -24
82 lines not on this page · raw message
drivers/platform/x86/intel-vbtn.c +55 -20
75 lines not on this page · raw message
drivers/power/reset/vexpress-poweroff.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/power/supply/power_supply_hwmon.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/regulator/qcom-rpmh-regulator.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/staging/media/imx/imx7-mipi-csis.c +37 -45
82 lines not on this page · raw message
drivers/staging/media/ipu3/ipu3-v4l2.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/staging/media/sunxi/cedrus/cedrus_dec.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/staging/media/sunxi/cedrus/cedrus_video.c +0 -3
Lines of this file are not shown. View the raw message.
drivers/tty/serial/kgdboc.c +101 -25
126 lines not on this page · raw message
fs/btrfs/inode.c +71 -10
81 lines not on this page · raw message
fs/btrfs/send.c +67 -0
67 lines not on this page · raw message
fs/btrfs/space-info.c +42 -1
43 lines not on this page · raw message
fs/btrfs/transaction.c +23 -37
60 lines not on this page · raw message
include/linux/string.h +48 -12
60 lines not on this page · raw message
kernel/audit.c +30 -22
52 lines not on this page · raw message
net/core/skmsg.c +74 -24
98 lines not on this page · raw message
security/integrity/ima/ima_crypto.c +44 -9
53 lines not on this page · raw message
security/integrity/ima/ima_template_lib.c +18 -0
Lines of this file are not shown. View the raw message.
tools/cgroup/iocost_monitor.py +21 -21
42 lines not on this page · raw message
tools/perf/util/probe-event.c +28 -18
46 lines not on this page · raw message
tools/testing/selftests/bpf/prog_tests/flow_dissector.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_progs.c +1 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.