Linux 5.4.285
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.4.285 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
------------
.gitignore | 1 Documentation/IPMI.txt | 2 Documentation/admin-guide/kernel-parameters.txt | 10 Documentation/arm64/silicon-errata.rst | 4 Documentation/devicetree/bindings/gpu/samsung-rotator.txt | 28 Documentation/devicetree/bindings/gpu/samsung-rotator.yaml | 48 Makefile | 2 arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts | 2 arch/arm/boot/dts/imx7d-zii-rmu2.dts | 2 arch/arm/mach-realview/platsmp-dt.c | 1 arch/arm64/Kconfig | 2 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 23 arch/arm64/include/asm/cputype.h | 4 arch/arm64/include/asm/uprobes.h | 12 arch/arm64/kernel/cpu_errata.c | 2 arch/arm64/kernel/probes/decode-insn.c | 16 arch/arm64/kernel/probes/simulate-insn.c | 18 arch/arm64/kernel/probes/uprobes.c | 4 arch/microblaze/mm/init.c | 5 arch/parisc/kernel/entry.S | 6 arch/parisc/kernel/syscall.S | 14 arch/riscv/Kconfig | 5 arch/riscv/kernel/asm-offsets.c | 2 arch/riscv/kernel/perf_callchain.c | 2 arch/s390/include/asm/facility.h | 6 arch/s390/kernel/perf_cpum_sf.c | 12 arch/s390/kvm/diag.c | 2 arch/s390/kvm/gaccess.c | 162 arch/s390/kvm/gaccess.h | 14 arch/s390/mm/cmm.c | 18 arch/x86/include/asm/cpufeatures.h | 3 arch/x86/include/asm/syscall.h | 7 arch/x86/kernel/apic/apic.c | 14 arch/x86/kernel/cpu/mshyperv.c | 1 arch/x86/kernel/cpu/resctrl/core.c | 4 arch/x86/xen/setup.c | 2 block/bfq-iosched.c | 13 block/blk-rq-qos.c | 2 crypto/aead.c | 3 crypto/cipher.c | 3 drivers/acpi/acpica/dbconvert.c | 2 drivers/acpi/acpica/exprep.c | 3 drivers/acpi/acpica/psargs.c | 47 drivers/acpi/battery.c | 28 drivers/acpi/button.c | 11 drivers/acpi/device_sysfs.c | 5 drivers/acpi/ec.c | 55 drivers/acpi/pmic/tps68470_pmic.c | 6 drivers/acpi/resource.c | 27 drivers/ata/sata_sil.c | 12 drivers/base/bus.c | 6 drivers/base/core.c | 13 drivers/base/firmware_loader/main.c | 30 drivers/base/module.c | 4 drivers/block/aoe/aoecmd.c | 13 drivers/block/drbd/drbd_main.c | 6 drivers/block/drbd/drbd_state.c | 2 drivers/bluetooth/btmrvl_sdio.c | 16 drivers/bluetooth/btusb.c | 10 drivers/char/hw_random/mtk-rng.c | 2 drivers/char/tpm/tpm-dev-common.c | 2 drivers/char/tpm/tpm2-space.c | 3 drivers/char/virtio_console.c | 18 drivers/clk/bcm/clk-bcm53573-ilp.c | 2 drivers/clk/qcom/clk-rpmh.c | 33 drivers/clk/rockchip/clk-rk3228.c | 2 drivers/clk/rockchip/clk.c | 3 drivers/clk/ti/clk-dra7-atl.c | 1 drivers/clocksource/timer-qcom.c | 7 drivers/firmware/arm_sdei.c | 2 drivers/firmware/tegra/bpmp.c | 6 drivers/gpio/gpio-aspeed.c | 4 drivers/gpio/gpio-davinci.c | 8 drivers/gpio/gpiolib.c | 3 drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 15 drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 26 drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 2 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c | 2 drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20v2.c | 2 drivers/gpu/drm/amd/display/dc/dml/dcn21/display_rq_dlg_calc_21.c | 2 drivers/gpu/drm/amd/display/modules/freesync/freesync.c | 2 drivers/gpu/drm/amd/include/atombios.h | 2 drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 10 drivers/gpu/drm/drm_atomic_uapi.c | 2 drivers/gpu/drm/drm_crtc.c | 1 drivers/gpu/drm/drm_mipi_dsi.c | 2 drivers/gpu/drm/drm_print.c | 13 drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 8 drivers/gpu/drm/msm/adreno/a5xx_gpu.h | 1 drivers/gpu/drm/msm/adreno/a5xx_preempt.c | 26 drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c | 2 drivers/gpu/drm/msm/dsi/dsi_host.c | 2 drivers/gpu/drm/nouveau/nouveau_dmem.c | 2 drivers/gpu/drm/omapdrm/omap_drv.c | 5 drivers/gpu/drm/radeon/atombios.h | 2 drivers/gpu/drm/radeon/evergreen_cs.c | 62 drivers/gpu/drm/radeon/r100.c | 70 drivers/gpu/drm/radeon/radeon_atombios.c | 26 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 2 drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 drivers/gpu/drm/stm/drv.c | 4 drivers/gpu/drm/vboxvideo/hgsmi_base.c | 10 drivers/gpu/drm/vboxvideo/vboxvideo.h | 4 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 1 drivers/hid/hid-ids.h | 2 drivers/hid/hid-plantronics.c | 23 drivers/hid/intel-ish-hid/ishtp-fw-loader.c | 2 drivers/hwmon/max16065.c | 5 drivers/hwmon/ntc_thermistor.c | 1 drivers/hwtracing/coresight/coresight-tmc-etr.c | 2 drivers/i2c/busses/i2c-aspeed.c | 16 drivers/i2c/busses/i2c-i801.c | 9 drivers/i2c/busses/i2c-isch.c | 3 drivers/i2c/busses/i2c-qcom-geni.c | 59 drivers/i2c/busses/i2c-stm32f7.c | 6 drivers/i2c/busses/i2c-xiic.c | 19 drivers/iio/adc/Kconfig | 4 drivers/iio/adc/ad7606.c | 8 drivers/iio/adc/ad7606_spi.c | 5 drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 2 drivers/iio/dac/Kconfig | 2 drivers/iio/light/opt3001.c | 4 drivers/iio/magnetometer/ak8975.c | 32 drivers/iio/proximity/Kconfig | 2 drivers/infiniband/core/iwcm.c | 2 drivers/infiniband/hw/bnxt_re/qplib_fp.h | 2 drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 2 drivers/infiniband/hw/cxgb4/cm.c | 14 drivers/infiniband/hw/hns/hns_roce_hem.c | 10 drivers/infiniband/sw/rxe/rxe_comp.c | 6 drivers/input/keyboard/adp5589-keys.c | 13 drivers/input/rmi4/rmi_driver.c | 6 drivers/mailbox/bcm2835-mailbox.c | 3 drivers/mailbox/rockchip-mailbox.c | 2 drivers/media/common/videobuf2/videobuf2-core.c | 8 drivers/media/dvb-frontends/rtl2830.c | 2 drivers/media/dvb-frontends/rtl2832.c | 2 drivers/media/platform/qcom/venus/core.c | 1 drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c | 5 drivers/misc/sgi-gru/grukservices.c | 2 drivers/misc/sgi-gru/grumain.c | 4 drivers/misc/sgi-gru/grutlbpurge.c | 2 drivers/misc/ti-st/st_core.c | 4 drivers/mtd/devices/powernv_flash.c | 3 drivers/mtd/devices/slram.c | 2 drivers/net/Kconfig | 64 drivers/net/caif/Kconfig | 36 drivers/net/ethernet/aeroflex/greth.c | 3 drivers/net/ethernet/amd/mvme147.c | 7 drivers/net/ethernet/broadcom/bcmsysport.c | 1 drivers/net/ethernet/cortina/gemini.c | 15 drivers/net/ethernet/emulex/benet/be_main.c | 10 drivers/net/ethernet/faraday/ftgmac100.c | 26 drivers/net/ethernet/faraday/ftgmac100.h | 2 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 9 drivers/net/ethernet/freescale/fs_enet/Kconfig | 8 drivers/net/ethernet/hisilicon/hip04_eth.c | 1 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 1 drivers/net/ethernet/hisilicon/hns_mdio.c | 1 drivers/net/ethernet/i825xx/sun3_82586.c | 1 drivers/net/ethernet/ibm/emac/mal.c | 2 drivers/net/ethernet/intel/ice/ice_sched.c | 6 drivers/net/ethernet/intel/ice/ice_switch.c | 4 drivers/net/ethernet/intel/igb/igb_main.c | 4 drivers/net/ethernet/jme.c | 10 drivers/net/ethernet/lantiq_etop.c | 4 drivers/net/ethernet/marvell/mvpp2/mvpp2.h | 2 drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 4 drivers/net/ethernet/mellanox/mlx5/core/lib/pci_vsc.c | 10 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 5 drivers/net/ethernet/realtek/r8169_main.c | 35 drivers/net/ethernet/seeq/ether3.c | 2 drivers/net/gtp.c | 27 drivers/net/hyperv/netvsc_drv.c | 30 drivers/net/ieee802154/Kconfig | 13 drivers/net/ieee802154/mcr20a.c | 5 drivers/net/macsec.c | 18 drivers/net/phy/vitesse.c | 14 drivers/net/ppp/ppp_async.c | 2 drivers/net/slip/slhc.c | 57 drivers/net/usb/cdc_ncm.c | 8 drivers/net/usb/ipheth.c | 5 drivers/net/usb/usbnet.c | 3 drivers/net/wireless/ath/Kconfig | 12 drivers/net/wireless/ath/ar5523/Kconfig | 14 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 7 drivers/net/wireless/ath/ath10k/wmi.c | 2 drivers/net/wireless/ath/ath9k/Kconfig | 58 drivers/net/wireless/ath/ath9k/debug.c | 6 drivers/net/wireless/ath/ath9k/hif_usb.c | 6 drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 2 drivers/net/wireless/atmel/Kconfig | 42 drivers/net/wireless/intel/iwlegacy/common.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 22 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 9 drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 8 drivers/net/wireless/marvell/mwifiex/fw.h | 2 drivers/net/wireless/marvell/mwifiex/scan.c | 3 drivers/net/wireless/ralink/rt2x00/Kconfig | 44 drivers/net/wireless/realtek/rtw88/Kconfig | 1 drivers/net/wireless/realtek/rtw88/rtw8822c.c | 10 drivers/net/wireless/ti/wl12xx/Kconfig | 8 drivers/ntb/hw/intel/ntb_hw_gen1.c | 2 drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 1 drivers/nvdimm/nd_virtio.c | 9 drivers/of/irq.c | 38 drivers/parport/procfs.c | 22 drivers/pci/controller/dwc/pci-keystone.c | 2 drivers/pci/controller/pcie-xilinx-nwl.c | 24 drivers/pci/quirks.c | 8 drivers/pinctrl/mvebu/pinctrl-dove.c | 42 drivers/pinctrl/pinctrl-at91.c | 5 drivers/pinctrl/pinctrl-single.c | 3 drivers/power/reset/brcmstb-reboot.c | 3 drivers/power/supply/axp20x_battery.c | 31 drivers/power/supply/max17042_battery.c | 5 drivers/pps/clients/pps_parport.c | 14 drivers/reset/reset-berlin.c | 3 drivers/rtc/rtc-at91sam9.c | 1 drivers/s390/char/sclp_vt220.c | 4 drivers/scsi/aacraid/aacraid.h | 2 drivers/soc/versatile/soc-integrator.c | 1 drivers/soc/versatile/soc-realview.c | 20 drivers/soundwire/stream.c | 8 drivers/spi/spi-bcm63xx.c | 2 drivers/spi/spi-nxp-fspi.c | 5 drivers/spi/spi-ppc4xx.c | 7 drivers/spi/spi-s3c64xx.c | 4 drivers/staging/iio/frequency/ad9832.c | 7 drivers/staging/wilc1000/wilc_hif.c | 4 drivers/target/target_core_user.c | 2 drivers/tty/serial/rp2.c | 2 drivers/tty/vt/vt.c | 2 drivers/usb/chipidea/udc.c | 8 drivers/usb/class/cdc-acm.c | 2 drivers/usb/class/usbtmc.c | 2 drivers/usb/dwc2/platform.c | 26 drivers/usb/dwc3/core.c | 22 drivers/usb/dwc3/core.h | 4 drivers/usb/dwc3/gadget.c | 11 drivers/usb/host/xhci-pci.c | 5 drivers/usb/host/xhci-ring.c | 16 drivers/usb/host/xhci.h | 2 drivers/usb/misc/appledisplay.c | 15 drivers/usb/misc/cypress_cy7c63.c | 4 drivers/usb/misc/yurex.c | 5 drivers/usb/phy/phy.c | 2 drivers/usb/serial/option.c | 8 drivers/usb/serial/pl2303.c | 1 drivers/usb/serial/pl2303.h | 4 drivers/usb/storage/unusual_devs.h | 11 drivers/usb/typec/class.c | 3 drivers/video/fbdev/hpfb.c | 1 drivers/video/fbdev/pxafb.c | 1 drivers/video/fbdev/sis/sis_main.c | 2 drivers/watchdog/imx_sc_wdt.c | 24 drivers/xen/swiotlb-xen.c | 6 fs/btrfs/disk-io.c | 11 fs/btrfs/relocation.c | 2 fs/ceph/addr.c | 1 fs/cifs/smb2pdu.c | 9 fs/erofs/decompressor.c | 24 fs/exec.c | 3 fs/ext4/extents.c | 5 fs/ext4/ialloc.c | 2 fs/ext4/inline.c | 35 fs/ext4/inode.c | 11 fs/ext4/mballoc.c | 10 fs/ext4/migrate.c | 2 fs/ext4/namei.c | 14 fs/ext4/xattr.c | 4 fs/f2fs/acl.c | 23 fs/f2fs/dir.c | 3 fs/f2fs/f2fs.h | 4 fs/f2fs/file.c | 24 fs/f2fs/super.c | 4 fs/f2fs/xattr.c | 27 fs/fat/namei_vfat.c | 2 fs/fcntl.c | 14 fs/inode.c | 4 fs/jbd2/checkpoint.c | 14 fs/jbd2/commit.c | 36 fs/jbd2/journal.c | 2 fs/jfs/jfs_discard.c | 11 fs/jfs/jfs_dmap.c | 11 fs/jfs/jfs_imap.c | 2 fs/jfs/xattr.c | 2 fs/namespace.c | 23 fs/nfs/callback_xdr.c | 2 fs/nfs/nfs4state.c | 1 fs/nfsd/nfs4idmap.c | 13 fs/nfsd/nfs4recover.c | 8 fs/nfsd/nfs4state.c | 15 fs/nilfs2/btree.c | 12 fs/nilfs2/dir.c | 50 fs/nilfs2/namei.c | 42 fs/nilfs2/nilfs.h | 2 fs/nilfs2/page.c | 7 fs/ocfs2/aops.c | 5 fs/ocfs2/buffer_head_io.c | 4 fs/ocfs2/file.c | 8 fs/ocfs2/journal.c | 7 fs/ocfs2/localalloc.c | 19 fs/ocfs2/quota_local.c | 8 fs/ocfs2/refcounttree.c | 26 fs/ocfs2/xattr.c | 38 fs/proc/base.c | 61 fs/super.c | 3 fs/udf/inode.c | 9 fs/unicode/mkutf8data.c | 70 fs/unicode/utf8data.h_shipped | 6703 ++++------ include/drm/drm_print.h | 54 include/linux/fs.h | 2 include/linux/jbd2.h | 4 include/linux/pci_ids.h | 2 include/linux/skbuff.h | 5 include/net/genetlink.h | 3 include/net/mac80211.h | 24 include/net/sch_generic.h | 1 include/net/sock.h | 8 include/net/tcp.h | 21 include/trace/events/f2fs.h | 3 include/trace/events/sched.h | 84 include/uapi/linux/cec.h | 6 include/uapi/linux/netfilter/nf_tables.h | 2 kernel/bpf/arraymap.c | 3 kernel/bpf/devmap.c | 9 kernel/bpf/hashtab.c | 3 kernel/bpf/helpers.c | 4 kernel/bpf/lpm_trie.c | 2 kernel/cgroup/cgroup.c | 4 kernel/events/core.c | 6 kernel/events/uprobes.c | 2 kernel/kthread.c | 19 kernel/locking/lockdep.c | 215 kernel/resource.c | 58 kernel/signal.c | 11 kernel/time/posix-clock.c | 3 kernel/trace/trace.c | 18 kernel/trace/trace_kprobe.c | 76 kernel/trace/trace_output.c | 6 kernel/trace/trace_probe.c | 2 kernel/trace/trace_probe.h | 1 lib/debugobjects.c | 5 lib/xz/xz_crc32.c | 2 lib/xz/xz_private.h | 4 mm/shmem.c | 2 mm/slab_common.c | 7 mm/swapfile.c | 2 mm/util.c | 2 net/bluetooth/af_bluetooth.c | 1 net/bluetooth/bnep/core.c | 3 net/bluetooth/rfcomm/sock.c | 2 net/bridge/br_netfilter_hooks.c | 5 net/can/bcm.c | 4 net/can/j1939/transport.c | 8 net/core/dev.c | 29 net/core/sock_destructor.h | 12 net/core/sock_map.c | 1 net/dccp/proto.c | 2 net/ipv4/af_inet.c | 2 net/ipv4/devinet.c | 41 net/ipv4/fib_frontend.c | 2 net/ipv4/inet_connection_sock.c | 2 net/ipv4/inet_fragment.c | 70 net/ipv4/ip_fragment.c | 2 net/ipv4/ip_gre.c | 6 net/ipv4/netfilter/nf_dup_ipv4.c | 7 net/ipv4/tcp.c | 4 net/ipv4/tcp_diag.c | 4 net/ipv4/tcp_input.c | 31 net/ipv4/tcp_ipv4.c | 5 net/ipv6/netfilter/nf_conntrack_reasm.c | 2 net/ipv6/netfilter/nf_dup_ipv6.c | 7 net/ipv6/netfilter/nf_reject_ipv6.c | 14 net/ipv6/tcp_ipv6.c | 2 net/l2tp/l2tp_netlink.c | 4 net/mac80211/cfg.c | 6 net/mac80211/ieee80211_i.h | 3 net/mac80211/iface.c | 32 net/mac80211/key.c | 44 net/mac80211/mlme.c | 14 net/mac80211/tx.c | 78 net/mac80211/util.c | 45 net/netfilter/nf_conntrack_netlink.c | 7 net/netfilter/nf_tables_api.c | 8 net/netfilter/nft_payload.c | 3 net/netlink/af_netlink.c | 3 net/netlink/genetlink.c | 28 net/qrtr/qrtr.c | 2 net/sched/em_meta.c | 4 net/sched/sch_api.c | 9 net/sched/sch_taprio.c | 7 net/sctp/diag.c | 4 net/sctp/socket.c | 24 net/tipc/bcast.c | 2 net/tipc/bearer.c | 8 net/wireless/nl80211.c | 11 net/wireless/scan.c | 6 net/wireless/sme.c | 3 net/xfrm/xfrm_user.c | 6 scripts/kconfig/merge_config.sh | 2 security/Kconfig | 32 security/selinux/selinuxfs.c | 31 security/smack/smackfs.c | 2 security/tomoyo/domain.c | 9 sound/core/init.c | 14 sound/firewire/amdtp-stream.c | 3 sound/pci/asihpi/hpimsgx.c | 2 sound/pci/hda/hda_generic.c | 4 sound/pci/hda/patch_conexant.c | 24 sound/pci/hda/patch_realtek.c | 125 sound/pci/rme9652/hdsp.c | 6 sound/pci/rme9652/hdspm.c | 6 sound/soc/au1x/db1200.c | 1 sound/soc/codecs/cs42l51.c | 7 sound/soc/codecs/tda7419.c | 1 sound/soc/meson/Kconfig | 4 sound/soc/meson/Makefile | 2 sound/soc/meson/axg-card.c | 406 sound/soc/meson/meson-card-utils.c | 385 sound/soc/meson/meson-card.h | 55 tools/iio/iio_generic_buffer.c | 4 tools/perf/builtin-sched.c | 8 tools/perf/util/time-utils.c | 4 tools/testing/ktest/ktest.pl | 2 tools/testing/selftests/bpf/map_tests/sk_storage_map.c | 2 tools/testing/selftests/bpf/prog_tests/flow_dissector.c | 1 tools/testing/selftests/bpf/prog_tests/tcp_rtt.c | 1 tools/testing/selftests/bpf/test_lru_map.c | 3 tools/testing/selftests/breakpoints/breakpoint_test_arm64.c | 2 tools/testing/selftests/breakpoints/step_after_suspend_test.c | 5 tools/testing/selftests/vDSO/parse_vdso.c | 3 tools/usb/usbip/src/usbip_detach.c | 1 virt/kvm/kvm_main.c | 5 437 files changed, 7154 insertions(+), 5445 deletions(-)
Aaron Thompson (1):
Bluetooth: Remove debugfs directory on module init failure
Abhishek Pandit-Subedi (1):
Bluetooth: btmrvl_sdio: Refactor irq wakeup
Adrian Ratiu (1):
proc: add config & param to block forcing mem writes
Aleksander Jan Bajkowski (1):
net: ethernet: lantiq_etop: fix memory disclosure
Aleksandr Mishin (3):
ACPI: PMIC: Remove unneeded check in tps68470_pmic_opregion_probe() drm/msm: Fix incorrect file name output in adreno_request_fw()
ice: Adjust over allocation of memory in ice_sched_add_root_node() and ice_sched_add_node()
Aleksandrs Vinarskis (1):
ACPICA: iasl: handle empty connection_node
Alex Bee (1):
drm/rockchip: vop: Allow 4096px width scaling
Alex Deucher (2):
drm/amdgpu: properly handle vbios fake edid sizing drm/radeon: properly handle vbios fake edid sizing
Alex Hung (2):
drm/amd/display: Check stream before comparing them drm/amd/display: Initialize get_bytes_per_element's default to 1
Alex Williamson (1):
PCI: Mark Creative Labs EMU20k2 INTx masking as broken
Anastasia Kovaleva (1):
net: Fix an unsafe loop on the list
Anders Roxell (1):
scripts: kconfig: merge_config: config files: add a trailing newline
Andrew Davis (1):
power: reset: brcmstb: Do not go into infinite loop if reset fails
Andrew Jones (1):
of/irq: Support #msi-cells=<0> in of_msi_get_domain
Andrey Shumilin (2):
fbdev: sisfb: Fix strbuf array overflow
ALSA: firewire-lib: Avoid division by zero in apply_constraint_to_size()
Andrii Nakryiko (1):
tracing/kprobes: Fix symbol counting logic by looking at modules as well
Andy Roulin (1):
netfilter: br_netfilter: fix panic with metadata_dst skb
Andy Shevchenko (3):
fs/namespace: fnic: Switch to use %ptTd
spi: ppc4xx: Avoid returning 0 when failed to parse and map IRQ
i2c: isch: Add missed 'else'
Ankit Agrawal (1):
clocksource/drivers/qcom: Add missing iounmap() on errors in msm_dt_timer_init()
Anshuman Khandual (1):
arm64: Add Cortex-715 CPU part definition
Anthony Iliopoulos (1):
mount: warn only once about timestamp range expiration
Anton Danilov (1):
ipv4: ip_gre: Fix drops of small packets in ipgre_xmit
Anumula Murali Mohan Reddy (1):
RDMA/cxgb4: Fix RDMA_CM_EVENT_UNREACHABLE error for iWARP
Armin Wolf (4):
ACPICA: Fix memory leak if acpi_ps_get_next_namepath() fails
ACPICA: Fix memory leak if acpi_ps_get_next_field() fails
ACPI: battery: Simplify battery hook locking
ACPI: battery: Fix possible crash when unregistering a battery hook
Arnd Bergmann (1):
nfsd: use ktime_get_seconds() for timestamps
Arseniy Krasnov (1):
ASoC: meson: axg-card: fix 'use-after-free'
Artem Sadovnikov (1):
ext4: fix i_data_sem unlock order in ext4_ind_migrate()
Artur Weber (1):
power: supply: max17042_battery: Fix SOC threshold calc w/ no current sense
Baokun Li (4):
ext4: propagate errors from ext4_find_extent() in ext4_insert_range()
ext4: aovid use-after-free in ext4_ext_insert_extent()
ext4: fix double brelse() the buffer of the extents path
jbd2: stop waiting for space when jbd2_cleanup_journal_tail() returns error
Barnabás Czémán (1):
iio: magnetometer: ak8975: Fix reading for ak099xx sensors
Ben Dooks (1):
spi: s3c64xx: fix timeout counters in flush_fifo
Benjamin B. Frost (1):
USB: serial: option: add support for Quectel EG916Q-GL
Benoît Monin (1):
net: skip offload for NETIF_F_IPV6_CSUM if ipv6 header contains extension
Billy Tsai (2):
gpio: aspeed: Add the flush write to ensure the write complete.
gpio: aspeed: Use devm_clk api to manage clock source
Bitterblue Smith (1):
wifi: rtw88: 8822c: Fix reported RX band width
Bob Pearson (1):
RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt
Breno Leitao (1):
KVM: Fix a data race on last_boosted_vcpu in kvm_vcpu_on_spin()
Byeonguk Jeong (1):
bpf: Fix out-of-bounds write in trie_get_next_key()
Chao Yu (4):
f2fs: enhance to update i_mode and acl atomically in f2fs_setattr()
f2fs: fix to update i_ctime in __f2fs_setxattr()
f2fs: remove unneeded check condition in __f2fs_setxattr()
f2fs: reduce expensive checkpoint trigger frequency
Charles Han (1):
mtd: powernv: Add check devm_kasprintf() returned value
Chen Yu (1):
kthread: fix task state in kthread worker if being frozen
Chris Morgan (1):
power: supply: axp20x_battery: Remove design from min and max voltage
Christian Heusel (1):
ACPI: resource: Add LG 16T90SP to irq1_level_low_skip_override[]
Christoph Hellwig (1):
fs: explicitly unregister per-superblock BDIs
Christophe JAILLET (6):
fbdev: hpfb: Fix an error handling path in hpfb_dio_probe() drm/stm: Fix an error handling path in stm_drm_platform_probe()
pps: remove usage of the deprecated ida_simple_xx() API
iio: hid-sensors: Fix an error handling path in _hid_sensor_set_report_latency()
ASoC: cs42l51: Fix some error handling paths in cs42l51_probe()
gtp: simplify error handling code in 'gtp_encap_enable()'
Christophe Leroy (1):
selftests: vDSO: fix vDSO symbols lookup for powerpc64
Chun-Yi Lee (1):
aoe: fix the potential use-after-free problem in more places
Chunyan Zhang (1):
riscv: Remove unused GENERATING_ASM_OFFSETS
Colin Ian King (1):
r8169: Fix spelling mistake: "tx_underun" -> "tx_underrun"
Damien Le Moal (1):
ata: sata_sil: Rename sil_blacklist to sil_quirks
Dan Carpenter (2):
PCI: keystone: Fix if-statement expression in ks_pcie_quirk()
SUNRPC: Fix integer overflow in decode_rc_list()
Daniel Borkmann (1):
bpf: Fix bpf_strtol and bpf_strtoul helpers for 32bit
Daniel Gabay (2):
wifi: iwlwifi: mvm: fix iwl_mvm_max_scan_ie_fw_cmd_room()
wifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd()
Daniel Jordan (1):
ktest.pl: Avoid false positives with grub2 skip regex
Daniel Palmer (1):
net: amd: mvme147: Fix probe banner message
Daniele Palmas (1):
USB: serial: option: add Telit FN920C04 MBIM compositions
Danilo Krummrich (1):
mm: krealloc: consider spare memory for __GFP_ZERO
Dave Ertman (1):
ice: fix VLAN replay after reset
Dave Kleikamp (1):
jfs: Fix sanity check in dbMount
David Gow (1):
mm: only enforce minimum stack gap size if it's sensible
David Lechner (1):
clk: ti: dra7-atl: Fix leak of of_nodes
Dimitri Sivanich (1):
misc: sgi-gru: Don't disable preemption in GRU driver
Dmitry Antipov (5):
wifi: cfg80211: fix UBSAN noise in cfg80211_wext_siwscan()
wifi: cfg80211: fix two more possible UBSAN-detected off-by-one errors
wifi: mac80211: use two-phase skb reclamation in ieee80211_do_stop()
net: sched: consistently use rcu_replace_pointer() in taprio_change()
net: sched: fix use-after-free in taprio_change()
Dmitry Kandybka (1):
wifi: ath9k: fix possible integer overflow in ath9k_get_et_stats()
Edward Adam Davis (5):
USB: usbtmc: prevent kernel-usb-infoleak
jfs: Fix uaf in dbFreeBits
jfs: check if leafidx greater than num leaves per dmap tree
ext4: no need to continue when the number of entries is 1
ocfs2: pass u64 to ocfs2_truncate_inline maybe overflow
Emanuele Ghidoli (1):
gpio: davinci: fix lazy disable
Emil Gedenryd (1):
iio: light: opt3001: add missing full-scale range value
Emmanuel Grumbach (2):
wifi: iwlwifi: mvm: don't wait for tx queues if firmware is dead
wifi: iwlwifi: mvm: disconnect station vifs if recovery failed
Eric Dumazet (11):
sock_map: Add a cond_resched() in sock_hash_free()
netfilter: nf_reject_ipv6: fix nf_reject_ip6_tcphdr_put()
netfilter: nf_tables: prevent nf_skb_duplicated corruption
net: avoid potential underflow in qdisc_pkt_len_init() with UFO
net: add more sanity checks to qdisc_pkt_len_init() net/sched: accept TCA_STAB only for root qdisc
net: annotate lockless accesses to sk->sk_ack_backlog
net: annotate lockless accesses to sk->sk_max_ack_backlog
ppp: fix ppp_async_encode() illegal access
slip: make slhc_remember() more robust against malicious packets
genetlink: hold RCU in genlmsg_mcast()
Faisal Hassan (1):
xhci: Fix Link TRB DMA in command ring stopped completion event
Felix Fietkau (2):
wifi: mac80211: skip non-uploaded keys in ieee80211_iter_keys
wifi: mac80211: do not pass a stopped vif to the driver in .get_txpower
Ferry Meng (2):
ocfs2: add bounds checking to ocfs2_xattr_find_entry()
ocfs2: strict bound check before memcmp in ocfs2_xattr_find_entry()
Filipe Manana (1):
btrfs: wait for fixup workers before stopping cleaner kthread during umount
Florian Fainelli (1):
tty: rp2: Fix reset with non forgiving PCIe host bridges
Florian Klink (1):
ARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin
Florian Westphal (1):
inet: inet_defrag: prevent sk release while still in use
Foster Snowhill (1):
usbnet: ipheth: fix carrier detection in modes 1 and 4
Francis Laniel (1):
tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols
Gabriel Krisman Bertazi (1):
unicode: Don't special case ignorable code points
Gao Xiang (1):
erofs: fix lz4 inplace decompression
Gautham Ananthakrishna (1):
ocfs2: reserve space for inline xattr before attaching reflink tree
Geert Uytterhoeven (2):
drm/radeon/r100: Handle unknown family in r100_cp_init_microcode() of/irq: Refer to actual buffer size in of_irq_parse_one()
Gerald Schaefer (1):
s390/mm: Add cond_resched() to cmm_alloc/free_pages()
Gianfranco Trad (1):
udf: fix uninit-value use in udf_get_fileshortad
Greg Kroah-Hartman (2):
Revert "driver core: Fix uevent_show() vs driver detach race" Linux 5.4.285
Guenter Roeck (1):
hwmon: (max16065) Fix overflows seen when writing limits
Guillaume Stols (2):
iio: adc: ad7606: fix oversampling gpio array
iio: adc: ad7606: fix standby gpio state to match the documentation
Guoqing Jiang (2):
nfsd: call cache_put if xdr_reserve_space returns NULL
hwrng: mtk - Use devm_pm_runtime_enable
Gustavo A. R. Silva (1):
wifi: mwifiex: Fix memcpy() field-spanning write warning in mwifiex_cmd_802_11_scan_ext()
Hagar Hemdan (1):
gpio: prevent potential speculation leaks in gpio_device_get_desc()
Hailey Mothershead (1):
crypto: aead,cipher - zeroize key buffer after use
Haiyang Zhang (1):
hv_netvsc: Fix VF namespace also in synthetic NIC NETDEV_REGISTER event
Han Xu (1):
spi: nxp-fspi: fix the KASAN report out-of-bounds bug
Hans Verkuil (1):
media: uapi/linux/cec.h: cec_msg_set_reply_to: zero flags
Hans de Goede (4):
ACPI: resource: Add Asus Vivobook X1704VAP to irq1_level_low_skip_override[]
ACPI: resource: Add Asus ExpertBook B2502CVA to irq1_level_low_skip_override[]
i2c: i801: Use a different adapter-name for IDF adapters drm/vboxvideo: Replace fake VLA at end of vbva_mouse_pointer_shape with real VLA
Harshit Mogalapalli (1):
usb: yurex: Fix inconsistent locking bug in yurex_read()
Heiko Carstens (1):
s390/facility: Disable compile time optimization for decompressor code
Heiner Kallweit (2):
r8169: add tally counter fields added with RTL8125
r8169: avoid unsolicited interrupts
Helge Deller (3):
parisc: Fix itlb miss handler for 64-bit programs
parisc: Fix 64-bit userspace syscall path
parisc: Fix stack start for ADDR_NO_RANDOMIZE personality
Heming Zhao (1):
ocfs2: fix the la space leak when unmounting an ocfs2 volume
Hermann Lauer (1):
power: supply: axp20x_battery: allow disabling battery charging
Hongbo Li (1):
ASoC: allow module autoloading for table db1200_pids
Huang Ying (1):
resource: fix region_intersects() vs add_memory_driver_managed()
Ian Rogers (1):
perf time-utils: Fix 32-bit nsec parsing
Icenowy Zheng (1):
usb: storage: ignore bogus device raised by JieLi BR21 USB sound chip
Ido Schimmel (1):
ipv4: Mask upper DSCP bits and ECN bits in NETLINK_FIB_LOOKUP family
Jacky Chou (2):
net: ftgmac100: Enable TX interrupt to avoid TX timeout
net: ftgmac100: Ensure tx descriptor updates are visible
Jacob Keller (1):
ice: fix accounting for filters shared by multiple VSIs
Janis Schoetterl-Glausch (3):
KVM: s390: gaccess: Refactor gpa and length calculation
KVM: s390: gaccess: Refactor access address range check
KVM: s390: gaccess: Cleanup access to guest pages
Jann Horn (2):
firmware_loader: Block path traversal
f2fs: Require FMODE_WRITE for atomic write ioctls
Jaroslav Kysela (1):
ALSA: core: add isascii() check to card ID generator
Jason Xing (1):
tcp: avoid reusing FIN_WAIT2 when trying to find port in connect() process
Jason-JH.Lin (1):
Revert "drm/mipi-dsi: Set the fwnode for mipi_dsi_device"
Javier Carrasco (5):
iio: dac: ltc1660: add missing select REGMAP_SPI in Kconfig
iio: dac: stm32-dac-core: add missing select REGMAP_MMIO in Kconfig
iio: adc: ti-ads8688: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig
iio: proximity: mb1232: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig
iio: adc: ti-ads124s08: add missing select IIO_(TRIGGERED_)BUFFER in Kconfig
Jeongjun Park (3):
jfs: fix out-of-bounds in dbNextAG() and diAlloc()
mm: shmem: fix data-race in shmem_getattr()
vt: prevent kernel-infoleak in con_font_get()
Jerome Brunet (1):
ASoC: meson: axg: extract sound card utils
Jiawei Ye (2):
wifi: wilc1000: fix potential RCU dereference issue in wilc_parse_join_bss_param
smackfs: Use rcu_assign_pointer() to ensure safe assignment in smk_set_cipso
Jim Mattson (1):
x86/cpufeatures: Define X86_FEATURE_AMD_IBPB_RET
Jinjie Ruan (10):
riscv: Fix fp alignment bug in perf_callchain_user()
ntb: intel: Fix the NULL vs IS_ERR() bug for debugfs_create_dir()
ieee802154: Fix build error
net: ieee802154: mcr20a: Use IRQF_NO_AUTOEN flag in request_irq()
Bluetooth: btmrvl: Use IRQF_NO_AUTOEN flag in request_irq()
nfp: Use IRQF_NO_AUTOEN flag in request_irq()
spi: bcm63xx: Fix module autoloading
i2c: qcom-geni: Use IRQF_NO_AUTOEN flag in request_irq()
posix-clock: Fix missing timespec64 check in pc_clock_settime()
posix-clock: posix-clock: Fix unbalanced locking in pc_clock_settime()
Jisheng Zhang (1):
riscv: define ILLEGAL_POINTER_VALUE for 64bit
Johannes Berg (3):
wifi: mac80211: fix potential key use-after-free
mac80211: do drv_reconfig_complete() before restarting all
mac80211: always have ieee80211_sta_restart()
Jonas Blixt (1):
watchdog: imx_sc_wdt: Don't disable WDT in suspend
Jonas Karlman (2):
drm/rockchip: dw_hdmi: Fix reading EDID when using a forced mode
clk: rockchip: Set parent rate for DCLK_VOP clock on RK3228
Jonathan Marek (1):
drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation
Jonathan McDowell (1):
tpm: Clean up TPM space after command failure
Jose Alberto Reguero (1):
usb: xhci: Fix problem with xhci resume from suspend
Joseph Qi (2):
ocfs2: fix uninit-value in ocfs2_get_block()
ocfs2: cancel dqi_sync_work before freeing oinfo
Josh Hunt (1):
tcp: check skb is non-NULL in tcp_rto_delta_us()
José Relvas (1):
ALSA: hda/realtek: Add subwoofer quirk for Acer Predator G9-593
Juergen Gross (2):
xen: use correct end address of kernel for conflict checking xen/swiotlb: add alignment check for dma buffers
Julian Sun (2):
vfs: fix race between evice_inodes() and find_inode()&iput()
ocfs2: fix null-ptr-deref when journal load failed.
Junhao Xie (1):
USB: serial: pl2303: add device id for Macrosilicon MS3020
Junlin Li (2):
drivers: media: dvb-frontends/rtl2832: fix an out-of-bounds write error
drivers: media: dvb-frontends/rtl2830: fix an out-of-bounds write error
Junxian Huang (1):
RDMA/hns: Optimize hem allocation performance
Kailang Yang (3):
ALSA: hda/realtek - Fixed ALC256 headphone no sound
ALSA: hda/realtek - FIxed ALC285 headphone no sound
ALSA: hda/realtek: Update default depop procedure
Kaixin Wang (3):
net: seeq: Fix use after free vulnerability in ether3 Driver Due to Race Condition
fbdev: pxafb: Fix possible use after free in pxafb_task()
ntb: ntb_hw_switchtec: Fix use after free vulnerability in switchtec_ntb_remove due to race condition
Kalesh AP (1):
RDMA/bnxt_re: Return more meaningful error
Kees Cook (2):
x86/syscall: Avoid memcpy() for ia32 syscall_get_arguments()
scsi: aacraid: Rearrange order of struct aac_srb_unit
Kemeng Shi (1):
ext4: avoid negative min_clusters in find_group_orlov()
Krzysztof Kozlowski (14):
soundwire: stream: Revert "soundwire: stream: fix programming slave ports for non-continous port maps"
ARM: dts: imx7d-zii-rmu2: fix Ethernet PHY pinctrl property
ARM: versatile: fix OF node leak in CPUs prepare
reset: berlin: fix OF node leak in probe() error path
soc: versatile: integrator: fix OF node leak in probe() error path
soc: versatile: realview: fix memory leak during device remove
soc: versatile: realview: fix soc_dev leak during device remove
drivers: net: Fix Kconfig indentation, continued
net: hisilicon: hip04: fix OF node leak in probe()
net: hisilicon: hns_dsaf_mac: fix OF node leak in hns_mac_get_info()
net: hisilicon: hns_mdio: fix OF node leak in probe()
firmware: tegra: bpmp: Drop unused mbox_client_to_bpmp()
rtc: at91sam9: fix OF node leak in probe() error path
clk: bcm: bcm53573: fix OF node leak in init
Kuniyuki Iwashima (2):
can: bcm: Clear bo->bcm_proc_read after remove_proc_entry().
ipv4: Check !in_dev earlier for ioctl(SIOCSIFADDR).
Lasse Collin (1):
xz: cleanup CRC32 edits from 2018
Laurent Pinchart (2):
Remove *.orig pattern from .gitignore
media: sun4i_csi: Implement link validate for sun4i_csi subdev
Lee Jones (1):
usb: yurex: Replace snprintf() with the safer scnprintf() variant
Leo Yan (1):
tracing: Consider the NULL character when validating the event length
Li Lingfeng (2):
nfsd: return -EINVAL when namelen is 0
nfs: fix memory leak in error path of nfs4_do_reclaim
Liao Chen (3):
ASoC: tda7419: fix module autoloading
spi: bcm63xx: Enable module autoloading
mailbox: rockchip: fix a typo in module autoloading
Linus Walleij (1):
net: ethernet: cortina: Drop TSO support
Liu Shixin (1):
mm/swapfile: skip HugeTLB pages for unuse_vma
Lizhi Xu (2):
ocfs2: remove unreasonable unlock in ocfs2_read_blocks
ocfs2: fix possible null-ptr-deref in ocfs2_set_buffer_uptodate
Luis Henriques (SUSE) (2):
ext4: fix incorrect tid assumption in __jbd2_log_wait_for_space()
ext4: fix incorrect tid assumption in ext4_wait_for_tail_page_commit()
Luiz Augusto von Dentz (3):
Bluetooth: btusb: Fix not handling ZPL/short-transfer
Bluetooth: RFCOMM: FIX possible deadlock in rfcomm_sk_state_change
Bluetooth: btusb: Fix regression with fake CSR controllers 0a12:0001
Luo Gengkun (1):
perf/core: Fix small negative period being ignored
Ma Ke (3):
spi: ppc4xx: handle irq_of_parse_and_map() errors
pps: add an error check in parport_attach
drm: omapdrm: Add missing check for alloc_ordered_workqueue
Maciej Falkowski (1):
dt-bindings: gpu: Convert Samsung Image Rotator to dt-schema
Manikanta Pubbisetty (1):
wifi: ath10k: Fix memory leak in management tx
Marek Vasut (1):
i2c: stm32f7: Do not prepare/unprepare clock during runtime suspend/resume
Mario Limonciello (1):
drm/amd: Guard against bad data for ATIF ACPI method
Mark Rutland (5):
arm64: cputype: Add Neoverse-N3 definitions
arm64: errata: Expand speculative SSBS workaround once more
arm64: probes: Remove broken LDR (literal) uprobe support
arm64: probes: Fix simulate_ldr*_literal()
arm64: probes: Fix uprobes for big-endian kernels
Masami Hiramatsu (1):
selftests: breakpoints: Fix a typo of function name
Mathias Krause (1):
Input: synaptics-rmi4 - fix UAF of IRQ domain on driver removal
Mathias Nyman (1):
xhci: Fix incorrect stream context type macro
Mathy Vanhoef (2):
mac80211: parse radiotap header when selecting Tx queue
mac80211: Fix NULL ptr deref for injected rate info
Matthew Brost (1):
drm/printer: Allow NULL data in devcoredump printer
Mauricio Faria de Oliveira (1):
jbd2: introduce/export functions jbd2_journal_submit|finish_inode_data_buffers()
Michael Kelley (1):
x86/hyperv: Set X86_FEATURE_TSC_KNOWN_FREQ when Hyper-V provides frequency
Michael Mueller (1):
KVM: s390: Change virtual to physical address access in diag 0x258 handler
Michael S. Tsirkin (1):
virtio_console: fix misc probe bugs
Mickaël Salaün (1):
fs: Fix file_set_fowner LSM hook inconsistencies
Mike Rapoport (1):
microblaze: don't treat zero reserved memory regions as error
Mike Tipton (1):
clk: qcom: clk-rpmh: Fix overflow in BCM vote
Mikhail Lobanov (2):
RDMA/cxgb4: Added NULL check for lookup_atid
drbd: Add NULL check for net_conf to prevent dereference in state validation
Minjie Du (1):
wifi: ath9k: fix parameter check in ath9k_init_debug()
Mirsad Todorovac (1):
mtd: slram: insert break after errors in parsing the map
Mohamed Khalfella (2):
net/mlx5: Added cond_resched() to crdump collection
igb: Do not bring the device up after non-fatal error
Moon Yeounsu (1):
net: ethernet: use ip_hdrlen() instead of bit shift
Nathan Chancellor (1):
x86/resctrl: Annotate get_mem_config() functions as __init
Neal Cardwell (2):
tcp: fix to allow timestamp undo if no retransmits were sent
tcp: fix tcp_enter_recovery() to zero retrans_stamp when it's safe
NeilBrown (1):
nfsd: fix delegation_blocked() to block correctly for at least 30 seconds
Nico Boehr (1):
KVM: s390: gaccess: Check if guest address is in memslot
Nikita Zhandarovich (3):
drm/radeon/evergreen_cs: fix int overflow errors in cs track offsets
f2fs: prevent possible int overflow in dir_block_index()
f2fs: avoid potential int overflow in sanity_check_area_boundary()
Nikolay Kuratov (1):
drm/vmwgfx: Handle surface check failure correctly
Nuno Sa (1):
Input: adp5589-keys - fix adp5589_gpio_get_value()
OGAWA Hirofumi (1):
fat: fix uninitialized variable
Oder Chiou (1):
ALSA: hda/realtek: Fix the push button function for the ALC257
Olaf Hering (1):
mount: handle OOM on mnt_warn_timestamp_expiry
Oleg Nesterov (1):
uprobes: fix kernel info leak via "[uprobes]" vma
Oliver Neukum (7):
USB: appledisplay: close race between probe and completion handler
USB: misc: cypress_cy7c63: check for short transfer
USB: class: CDC-ACM: fix race between get_serial and set_serial
USB: misc: yurex: fix race between read and write
CDC-NCM: avoid overflow in sanity checking
Revert "usb: yurex: Replace snprintf() with the safer scnprintf() variant"
net: usb: usbnet: fix name regression
Omar Sandoval (1):
blk-rq-qos: fix crash on rq_qos_wait vs. rq_qos_wake_function race
Pablo Neira Ayuso (5):
netfilter: nf_tables: elements with timeout below CONFIG_HZ never expire
netfilter: nf_tables: reject element expiration with no timeout
netfilter: nf_tables: reject expiration higher than timeout
gtp: allow -1 to be specified as file description from userspace
netfilter: nft_payload: sanitize offset and length before calling skb_checksum()
Paul Moore (1):
selinux: improve error checking in sel_write_load()
Paulo Alcantara (1):
smb: client: fix OOBs when building SMB2_IOCTL request
Paulo Miguel Almeida (2):
drm/amdgpu: Replace one-element array with flexible-array member drm/radeon: Replace one-element array with flexible-array member
Pawel Dembicki (1):
net: phy: vitesse: repair vsc73xx autonegotiation
Pedro Tammela (1):
net/sched: stop qdisc_tree_reduce_backlog on TC_H_ROOT
Pei Xiao (1):
ACPICA: check null return of ACPI_ALLOCATE_ZEROED() in acpi_db_convert_to_package()
Peter Zijlstra (2):
locking/lockdep: Fix bad recursion pattern
locking/lockdep: Rework lockdep_lock
Phil Sutter (1):
netfilter: uapi: NFTA_FLOWTABLE_HOOK is NLA_NESTED
Philip Chen (1):
virtio_pmem: Check device status before requesting flush
Qiu-ji Chen (1):
drbd: Fix atomicity violation in drbd_uuid_set_bm()
Qu Wenruo (1):
btrfs: fix a NULL pointer dereference when failed to start a new trasacntion
Quentin Schulz (1):
arm64: dts: rockchip: override BIOS_DISABLE signal via GPIO hog on RK3399 Puma
Qun-Wei Lin (1):
mm: krealloc: Fix MTE false alarm in __do_krealloc
Rafael J. Wysocki (1):
ACPI: EC: Do not release locks during operation region accesses
Remington Brasga (1):
jfs: UBSAN: shift-out-of-bounds in dbFindBits
Rob Clark (2):
kthread: add kthread_work tracepoints drm/crtc: fix uninitialized variable use even harder
Robert Hancock (1):
i2c: xiic: Wait for TX empty to avoid missed TX NAKs
Robin Chen (1):
drm/amd/display: Round calculated vtotal
Rosen Penev (1):
net: ibm: emac: mal: fix wrong goto
Ryusuke Konishi (7):
nilfs2: fix potential null-ptr-deref in nilfs_btree_insert()
nilfs2: determine empty node blocks as corrupted
nilfs2: fix potential oob read in nilfs_btree_check_delete()
nilfs2: propagate directory read errors from nilfs_find_entry()
nilfs2: fix kernel bug due to missing clearing of buffer delay flag
nilfs2: fix potential deadlock with newly created symlinks
nilfs2: fix kernel bug due to missing clearing of checked flag
Sabrina Dubroca (2):
macsec: don't increment counters for an unrelated SA
xfrm: validate new SA's prefixlen using SA family when sel.family is unset
Saravanan Vajravel (1):
RDMA/bnxt_re: Fix incorrect AVID type in WQE structure
Sean Anderson (3):
net: dpaa: Pad packets to ETH_ZLEN
PCI: xilinx-nwl: Fix register misspelling
PCI: xilinx-nwl: Fix off-by-one in INTx IRQ handler
Sebastian Reichel (1):
clk: rockchip: fix error for unknown clocks
Selvarasu Ganesan (1):
usb: dwc3: core: Stop processing of pending events if controller is halted
Shahar Shitrit (1):
net/mlx5e: Add missing link modes to ptys2ethtool_map
Shawn Shao (1):
usb: dwc2: Adjust the timing of USB Driver Interrupt Registration in the Crashkernel Scenario
Sherry Yang (1):
drm/msm: fix %s null argument error
Shubham Panwar (1):
ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue
Simon Horman (3):
netfilter: ctnetlink: compile ctnetlink_label_size with CONFIG_NF_CONNTRACK_EVENTS
tipc: guard against string buffer overrun
net: mvpp2: Increase size of queue_name buffer
Srinivasan Shanmugam (1):
drm/amd/display: Fix index out of bounds in degamma hardware format translation
Stefan Wahren (1):
mailbox: bcm2835: Fix timeout during suspend mode
Stephen Boyd (3):
i2c: qcom-geni: Let firmware specify irq trigger flags
i2c: qcom-geni: Grow a dev pointer to simplify code
clk: qcom: rpmh: Simplify clk_rpmh_bcm_send_cmd()
Steven Rostedt (Google) (2):
tracing: Remove precision vsnprintf() check from print event
tracing: Have saved_cmdlines arrays all in one allocation
Su Hui (1):
net: tipc: avoid possible garbage value
Subramanian Ananthanarayanan (1):
PCI: Add ACS quirk for Qualcomm SA8775P
SurajSonawane2415 (1):
hid: intel-ish-hid: Fix uninitialized variable 'rv' in ish_fw_xfer_direct_dma
Suzuki K Poulose (1):
coresight: tmc: sg: Do not leak sg_table
Takashi Iwai (5):
ALSA: hda/generic: Unconditionally prefer preferred_dacs pairs
ALSA: hda/conexant: Fix conflicting quirk for System76 Pangolin
ALSA: asihpi: Fix potential OOB array access
ALSA: hdsp: Break infinite MIDI input flush loop
parport: Proper fix for array out-of-bounds access
Tao Chen (1):
bpf: Check percpu map value size first
Tetsuo Handa (1):
tomoyo: fallback to realpath if symlink's pathname does not exist
Thadeu Lima de Souza Cascardo (4):
ext4: return error on ext4_find_inline_entry
ext4: avoid OOB when system.data xattr changes underneath the filesystem
ext4: ext4_search_dir should return a proper error
usb: typec: altmode should keep reference to parent
Thomas Blocher (1):
pinctrl: at91: make it work with current gpiolib
Thomas Gleixner (2):
PCI: xilinx-nwl: Use irq_data_get_irq_chip_data()
signal: Replace BUG_ON()s
Thomas Richter (1):
s390/cpum_sf: Remove WARN_ON_ONCE statements
Thomas Weißschuh (2):
ACPI: sysfs: validate return type of _STR method s390/sclp_vt220: Convert newlines to CRLF instead of LFCR
Thomas Zimmermann (1):
drm: Consistently use struct drm_mode_rect for FB_DAMAGE_CLIPS
Toke Høiland-Jørgensen (3):
bpf: Fix DEVMAP_HASH overflow check on 32-bit arches
wifi: ath9k: Remove error checks when creating debugfs entries
wifi: ath9k_htc: Use __skb_set_length() for resetting urb before resubmit
Tommy Huang (1):
i2c: aspeed: Update the stop sw state when the bus recovery occurs
Tony Ambardar (4):
selftests/bpf: Fix compile error from rlim_t in sk_storage_map.c selftests/bpf: Fix compiling flow_dissector.c with musl-libc selftests/bpf: Fix compiling tcp_rtt.c with musl-libc selftests/bpf: Fix error compiling test_lru_map.c
Ville Syrjälä (1):
wifi: iwlegacy: Clear stale interrupts before resuming device
Vladimir Lypak (3):
drm/msm/a5xx: disable preemption in submits by default drm/msm/a5xx: properly clear preemption records on resume drm/msm/a5xx: fix races in preemption evaluation stage
Wade Wang (1):
HID: plantronics: Workaround for an unexcepted opposite volume key
Waiman Long (1):
locking/lockdep: Avoid potential access of invalid memory in lock_class
Wang Hai (4):
net: ethernet: aeroflex: fix potential memory leak in greth_start_xmit_gbit()
net: systemport: fix potential memory leak in bcm_sysport_xmit() net/sun3_82586: fix potential memory leak in sun3_82586_send_packet()
be2net: fix potential memory leak in be_xmit()
Wang Jianzheng (1):
pinctrl: mvebu: Fix devinit_dove_pinctrl_probe function
WangYuli (1):
PCI: Add function 0 DMA alias quirk for Glenfly Arise chip
Werner Sembach (1):
ACPI: resource: Add another DMI match for the TongFang GMxXGxx
Wojciech Gładysz (1):
ext4: nested locking for xattr inode
Wolfram Sang (1):
ipmi: docs: don't advertise deprecated sysfs entries
Xin Long (4):
sctp: set sk_state back to CLOSED if autobind fails in sctp_listen_start
sctp: ensure sk_state is set to CLOSED if hashing fails in sctp_listen_start
ipv4: give an IPv4 dev to blackhole_netdev
net: support ip generic csum processing in skb_csum_hwoffload_help
Xiongfeng Wang (1):
firmware: arm_sdei: Fix the input parameter of cpuhp_remove_state()
Xiu Jianfeng (1):
cgroup: Fix potential overflow issue when checking max_depth
Xiubo Li (1):
ceph: remove the incorrect Fw reference check when dirtying pages
Xu Yang (1):
usb: chipidea: udc: enable suspend interrupt after usb reset
Yang Jihong (2):
perf sched timehist: Fix missing free of session in perf_sched__timehist() perf sched timehist: Fixed timestamp error when unable to confirm event sched_in time
Yang Yingliang (1):
pinctrl: single: fix missing error code in pcs_probe()
Ye Bin (1):
Bluetooth: bnep: fix wild-memory-access in proto_unregister
Yifei Liu (1):
selftests: breakpoints: use remaining time to check if suspend succeed
Yonatan Maman (1):
nouveau/dmem: Fix vulnerability in migrate_to_ram upon copy error
Yonggil Song (1):
f2fs: fix typo
Youghandhar Chintala (1):
mac80211: Add support to trigger sta disconnect on hardware restart
Youssef Samir (1):
net: qrtr: Update packets cloning when broadcasting
Yu Kuai (3):
block, bfq: fix possible UAF for bfqq->bic with merge chain block, bfq: choose the last bfqq from merge chain in bfq_setup_cooperator() block, bfq: don't break merge chain in bfq_split_bfqq()
Yuesong Li (1):
drivers:drm:exynos_drm_gsc:Fix wrong assignment in gsc_bind()
Yunke Cao (1):
media: videobuf2-core: clear memory related fields in __vb2_plane_dmabuf_put()
Yuntao Liu (1):
hwmon: (ntc_thermistor) fix module autoloading
Zhang Changzhong (1):
can: j1939: use correct function name in comment
Zhang Rui (1):
x86/apic: Always explicitly disarm TSC-deadline timer
Zhao Mengmeng (1):
jfs: Fix uninit-value access of new_ea in ea_buffer
Zhen Lei (1):
debugobjects: Fix conditions in fill_pool()
Zheng Wang (1):
media: venus: fix use after free bug in venus_remove due to race condition
Zhiguo Niu (1):
lockdep: fix deadlock issue between lockdep and rcu
Zhu Jun (1):
tools/iio: Add memory allocation failure check for trigger_name
Zhu Yanjun (1):
RDMA/iwcm: Fix WARNING:at_kernel/workqueue.c:#check_flush_dependency
Zicheng Qu (1):
staging: iio: frequency: ad9832: fix division by zero in ad9832_calc_freqreg()
Zijun Hu (2):
driver core: bus: Return -EIO instead of 0 when show/store invalid bus attribute
usb: phy: Fix API devm_usb_put_phy() can not release the phy
Zong-Zhe Yang (1):
wifi: rtw88: select WANT_DEV_COREDUMP
Zongmin Zhou (1):
usbip: tools: Fix detach_port() invalid port error path
hongchi.peng (1):
drm: komeda: Fix an issue related to normalized zpos
junhua huang (2):
arm64:uprobe fix the uprobe SWBP_INSN in big-endian arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning
[email protected] (1):
Minor fixes to the CAIF Transport drivers Kconfig file
yangerkun (1):
ext4: clear EXT4_GROUP_INFO_WAS_TRIMMED_BIT even mount with discard
zhanchengbin (1):
ext4: fix inode tree inconsistency caused by ENOMEM
zhong jiang (1):
drivers/misc: ti-st: Remove unneeded variable in st_tty_open
Greg Kroah-Hartman
maintainer.gitignore +0 -1
@@ -120,7 +120,6 @@ GTAGS # id-utils files ID -*.orig *~ \#*#
Documentation/IPMI.txt +1 -1
@@ -518,7 +518,7 @@ at module load time (for a module) with:: [dbg_probe=1] The addresses are normal I2C addresses. The adapter is the string -name of the adapter, as shown in /sys/class/i2c-adapter/i2c-<n>/name. +name of the adapter, as shown in /sys/bus/i2c/devices/i2c-<n>/name. It is *NOT* i2c-<n> itself. Also, the comparison is done ignoring spaces, so if the name is "This is an I2C chip" you can say adapter_name=ThisisanI2cchip. This is because it's hard to pass in
Documentation/admin-guide/kernel-parameters.txt +10 -0
@@ -3812,6 +3812,16 @@ printk.time= Show timing data prefixed to each printk message line Format: <bool> (1/Y/y=enable, 0/N/n=disable) + proc_mem.force_override= [KNL] + Format: {always | ptrace | never} + Traditionally /proc/pid/mem allows memory permissions to be + overridden without restrictions. This option may be set to + restrict that. Can be one of: + - 'always': traditional behavior always allows mem overrides. + - 'ptrace': only allow mem overrides for active ptracers. + - 'never': never allow mem overrides. + If not specified, default is the CONFIG_PROC_MEM_* choice. + processor.max_cstate= [HW,ACPI] Limit processor to maximum C-state max_cstate=9 overrides any DMI blacklist limit.
Documentation/arm64/silicon-errata.rst +4 -0
@@ -98,6 +98,8 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A710 | #3324338 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A715 | #3456084 | ARM64_ERRATUM_3194386 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A720 | #3456091 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A725 | #3456106 | ARM64_ERRATUM_3194386 |
@@ -124,6 +126,8 @@ stable kernels. +----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-N2 | #3324339 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Neoverse-N3 | #3456111 | ARM64_ERRATUM_3194386 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-V1 | #3324341 | ARM64_ERRATUM_3194386 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Neoverse-V2 | #3324336 | ARM64_ERRATUM_3194386 |
Documentation/devicetree/bindings/gpu/samsung-rotator.txt deleted +0 -28
@@ -1,28 +0,0 @@ -* Samsung Image Rotator - -Required properties: - - compatible : value should be one of the following: - * "samsung,s5pv210-rotator" for Rotator IP in S5PV210 - * "samsung,exynos4210-rotator" for Rotator IP in Exynos4210 - * "samsung,exynos4212-rotator" for Rotator IP in Exynos4212/4412 - * "samsung,exynos5250-rotator" for Rotator IP in Exynos5250 - - - reg : Physical base address of the IP registers and length of memory - mapped region. - - - interrupts : Interrupt specifier for rotator interrupt, according to format - specific to interrupt parent. - - - clocks : Clock specifier for rotator clock, according to generic clock - bindings. (See Documentation/devicetree/bindings/clock/exynos*.txt) - - - clock-names : Names of clocks. For exynos rotator, it should be "rotator". - -Example: - rotator@12810000 { - compatible = "samsung,exynos4210-rotator"; - reg = <0x12810000 0x1000>; - interrupts = <0 83 0>; - clocks = <&clock 278>; - clock-names = "rotator"; - };
Documentation/devicetree/bindings/gpu/samsung-rotator.yaml new file +48 -0
48 lines not on this page · raw message
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 4 -SUBLEVEL = 284 +SUBLEVEL = 285 EXTRAVERSION = NAME = Kleptomaniac Octopus
arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +1 -1
@@ -77,7 +77,7 @@ }; &hdmi { - hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; + hpd-gpios = <&expgpio 0 GPIO_ACTIVE_LOW>; power-domains = <&power RPI_POWER_DOMAIN_HDMI>; status = "okay"; };
arch/arm/boot/dts/imx7d-zii-rmu2.dts +1 -1
@@ -350,7 +350,7 @@ &iomuxc_lpsr { pinctrl_enet1_phy_interrupt: enet1phyinterruptgrp { - fsl,phy = < + fsl,pins = < MX7D_PAD_LPSR_GPIO1_IO02__GPIO1_IO2 0x08 >; };
arch/arm/mach-realview/platsmp-dt.c +1 -0
@@ -66,6 +66,7 @@ static void __init realview_smp_prepare_cpus(unsigned int max_cpus)return ; } map =syscon_node_to_regmap (np); +of_node_put (np);if (IS_ERR (map)) {pr_err ("PLATSMP: No syscon regmap\n" );return ;
arch/arm64/Kconfig +2 -0
@@ -602,6 +602,7 @@ config ARM64_ERRATUM_3194386 * ARM Cortex-A78C erratum 3324346 * ARM Cortex-A78C erratum 3324347 * ARM Cortex-A710 erratam 3324338 + * ARM Cortex-A715 errartum 3456084 * ARM Cortex-A720 erratum 3456091 * ARM Cortex-A725 erratum 3456106 * ARM Cortex-X1 erratum 3324344
@@ -612,6 +613,7 @@ config ARM64_ERRATUM_3194386 * ARM Cortex-X925 erratum 3324334 * ARM Neoverse-N1 erratum 3324349 * ARM Neoverse N2 erratum 3324339 + * ARM Neoverse-N3 erratum 3456111 * ARM Neoverse-V1 erratum 3324341 * ARM Neoverse V2 erratum 3324336 * ARM Neoverse-V3 erratum 3312417
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +22 -1
@@ -148,6 +148,22 @@ drive-impedance-ohm = <33>; }; +&gpio3 { + /* + * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module + * eMMC and SPI flash powered-down initially (in fact it keeps the + * reset signal asserted). BIOS_DISABLE_OVERRIDE pin allows to override + * that signal so that eMMC and SPI can be used regardless of the state + * of the signal. + */ + bios-disable-override-hog { + gpios = <RK_PD5 GPIO_ACTIVE_LOW>; + gpio-hog; + line-name = "bios_disable_override"; + output-high; + }; +}; + &gmac { assigned-clocks = <&cru SCLK_RMII_SRC>; assigned-clock-parents = <&clkin_gmac>;
@@ -432,9 +448,14 @@ &pinctrl { pinctrl-names = "default"; - pinctrl-0 = <&q7_thermal_pin>; + pinctrl-0 = <&q7_thermal_pin &bios_disable_override_hog_pin>; gpios { + bios_disable_override_hog_pin: bios-disable-override-hog-pin { + rockchip,pins = + <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>; + }; + q7_thermal_pin: q7-thermal-pin { rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
arch/arm64/include/asm/cputype.h +4 -0
@@ -77,6 +77,7 @@#define ARM_CPU_PART_CORTEX_A78 0xD41#define ARM_CPU_PART_CORTEX_X1 0xD44#define ARM_CPU_PART_CORTEX_A710 0xD47 +#define ARM_CPU_PART_CORTEX_A715 0xD4D#define ARM_CPU_PART_CORTEX_X2 0xD48#define ARM_CPU_PART_NEOVERSE_N2 0xD49#define ARM_CPU_PART_CORTEX_A78C 0xD4B
@@ -88,6 +89,7 @@#define ARM_CPU_PART_NEOVERSE_V3 0xD84#define ARM_CPU_PART_CORTEX_X925 0xD85#define ARM_CPU_PART_CORTEX_A725 0xD87 +#define ARM_CPU_PART_NEOVERSE_N3 0xD8E#define APM_CPU_PART_POTENZA 0x000
@@ -126,6 +128,7 @@#define MIDR_CORTEX_A78 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78)#define MIDR_CORTEX_X1 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X1)#define MIDR_CORTEX_A710 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A710) +#define MIDR_CORTEX_A715 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A715)#define MIDR_CORTEX_X2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X2)#define MIDR_NEOVERSE_N2 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N2)#define MIDR_CORTEX_A78C MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A78C)
@@ -137,6 +140,7 @@#define MIDR_NEOVERSE_V3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_V3)#define MIDR_CORTEX_X925 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_X925)#define MIDR_CORTEX_A725 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A725) +#define MIDR_NEOVERSE_N3 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_NEOVERSE_N3)#define MIDR_THUNDERX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX)#define MIDR_THUNDERX_81XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_81XX)#define MIDR_THUNDERX_83XX MIDR_CPU_MODEL(ARM_CPU_IMP_CAVIUM, CAVIUM_CPU_PART_THUNDERX_83XX)
arch/arm64/include/asm/uprobes.h +5 -7
@@ -10,21 +10,19 @@#include <asm/insn.h> #include <asm/probes.h> -#define MAX_UINSN_BYTES AARCH64_INSN_SIZE - -#define UPROBE_SWBP_INSN BRK64_OPCODE_UPROBES +#define UPROBE_SWBP_INSN cpu_to_le32(BRK64_OPCODE_UPROBES)#define UPROBE_SWBP_INSN_SIZE AARCH64_INSN_SIZE -#define UPROBE_XOL_SLOT_BYTES MAX_UINSN_BYTES +#define UPROBE_XOL_SLOT_BYTES AARCH64_INSN_SIZE -typedef u32 uprobe_opcode_t ; +typedef __le32 uprobe_opcode_t ;struct arch_uprobe_task { };struct arch_uprobe {union { -u8 insn[MAX_UINSN_BYTES ]; -u8 ixol[MAX_UINSN_BYTES ]; +__le32 insn; +__le32 ixol; };struct arch_probe_insn api;bool simulate;
arch/arm64/kernel/cpu_errata.c +2 -0
@@ -848,6 +848,7 @@ static const struct midr_range erratum_spec_ssbs_list[] = {MIDR_ALL_VERSIONS (MIDR_CORTEX_A78 ),MIDR_ALL_VERSIONS (MIDR_CORTEX_A78C ),MIDR_ALL_VERSIONS (MIDR_CORTEX_A710 ), +MIDR_ALL_VERSIONS (MIDR_CORTEX_A715 ),MIDR_ALL_VERSIONS (MIDR_CORTEX_A720 ),MIDR_ALL_VERSIONS (MIDR_CORTEX_A725 ), MIDR_ALL_VERSIONS(MIDR_CORTEX_X1),
@@ -858,6 +859,7 @@ static const struct midr_range erratum_spec_ssbs_list[] = {MIDR_ALL_VERSIONS (MIDR_CORTEX_X925 ),MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N1 ),MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N2 ), +MIDR_ALL_VERSIONS (MIDR_NEOVERSE_N3 ),MIDR_ALL_VERSIONS (MIDR_NEOVERSE_V1 ),MIDR_ALL_VERSIONS (MIDR_NEOVERSE_V2 ), MIDR_ALL_VERSIONS(MIDR_NEOVERSE_V3),
arch/arm64/kernel/probes/decode-insn.c +11 -5
@@ -96,10 +96,6 @@ arm_probe_decode_insn(probe_opcode_t insn, struct arch_probe_insn *api) aarch64_insn_is_blr(insn) || aarch64_insn_is_ret(insn)) { api->handler = simulate_br_blr_ret; - } else if (aarch64_insn_is_ldr_lit(insn)) { - api->handler = simulate_ldr_literal; - } else if (aarch64_insn_is_ldrsw_lit(insn)) { - api->handler = simulate_ldrsw_literal; } else {/* * Instruction cannot be stepped out-of-line and we don't
@@ -137,6 +133,17 @@ arm_kprobe_decode_insn(kprobe_opcode_t *addr, struct arch_specific_insn *asi)probe_opcode_t insn =le32_to_cpu (*addr);probe_opcode_t *scan_end =NULL ;unsigned long size =0 , offset =0 ; +struct arch_probe_insn *api = &asi->api; + +if (aarch64_insn_is_ldr_lit (insn)) { + api->handler = simulate_ldr_literal; + decoded =INSN_GOOD_NO_SLOT ; + }else if (aarch64_insn_is_ldrsw_lit (insn)) { + api->handler = simulate_ldrsw_literal; + decoded =INSN_GOOD_NO_SLOT ; + }else { + decoded =arm_probe_decode_insn (insn, &asi->api); + }/* * If there's a symbol defined in front of and near enough to
@@ -154,7 +161,6 @@ arm_kprobe_decode_insn(kprobe_opcode_t *addr, struct arch_specific_insn *asi)else scan_end = addr -MAX_ATOMIC_CONTEXT_SIZE ; } - decoded =arm_probe_decode_insn (insn, &asi->api);if (decoded !=INSN_REJECTED && scan_end)if (is_probed_address_atomic (addr -1 , scan_end))
arch/arm64/kernel/probes/simulate-insn.c +7 -11
@@ -170,17 +170,15 @@ simulate_tbz_tbnz(u32 opcode, long addr, struct pt_regs *regs)void __kprobes simulate_ldr_literal (u32 opcode,long addr,struct pt_regs *regs) { -u64 *load_addr; +unsigned long load_addr;int xn = opcode &0x1f ; -int disp; - disp =ldr_displacement (opcode); - load_addr = (u64 *) (addr + disp); + load_addr = addr +ldr_displacement (opcode);if (opcode & (1 <<30 ))/* x0-x30 */ -set_x_reg (regs, xn, *load_addr); +set_x_reg (regs, xn,READ_ONCE (*(u64 *)load_addr));else /* w0-w30 */ -set_w_reg (regs, xn, *load_addr); +set_w_reg (regs, xn,READ_ONCE (*(u32 *)load_addr));instruction_pointer_set (regs,instruction_pointer (regs) +4 ); }
@@ -188,14 +186,12 @@ simulate_ldr_literal(u32 opcode, long addr, struct pt_regs *regs)void __kprobes simulate_ldrsw_literal (u32 opcode,long addr,struct pt_regs *regs) { -s32 *load_addr; +unsigned long load_addr;int xn = opcode &0x1f ; -int disp; - disp =ldr_displacement (opcode); - load_addr = (s32 *) (addr + disp); + load_addr = addr +ldr_displacement (opcode); -set_x_reg (regs, xn, *load_addr); +set_x_reg (regs, xn,READ_ONCE (*(s32 *)load_addr));instruction_pointer_set (regs,instruction_pointer (regs) +4 ); }
arch/arm64/kernel/probes/uprobes.c +2 -2
@@ -42,7 +42,7 @@ int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm,else if (!IS_ALIGNED (addr,AARCH64_INSN_SIZE ))return -EINVAL ; - insn = *(probe_opcode_t *)(&auprobe->insn[0 ]); + insn =le32_to_cpu (auprobe->insn);switch (arm_probe_decode_insn (insn, &auprobe->api)) {case INSN_REJECTED :
@@ -108,7 +108,7 @@ bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs)if (!auprobe->simulate)return false; - insn = *(probe_opcode_t *)(&auprobe->insn[0 ]); + insn =le32_to_cpu (auprobe->insn); addr =instruction_pointer (regs);if (auprobe->api.handler)
arch/microblaze/mm/init.c +0 -5
@@ -276,11 +276,6 @@ asmlinkage void __init mmu_init(void) {unsigned int kstart, ksize; -if (!memblock.reserved.cnt) { -pr_emerg ("Error memory count\n" ); -machine_restart (NULL ); - } -if ((u32 ) memblock.memory.regions[0 ].size <0x400000 ) {pr_emerg ("Memory must be greater than 4MB\n" );machine_restart (NULL );
arch/parisc/kernel/entry.S +2 -4
@@ -1078,8 +1078,7 @@ ENTRY_CFI(intr_save) /* for os_hpmc */ STREG %r16, PT_ISR(%r29) STREG %r17, PT_IOR(%r29) -#if 0 && defined(CONFIG_64BIT) - /* Revisit when we have 64-bit code above 4Gb */ +#if defined(CONFIG_64BIT) b,n intr_save2 skip_save_ior:
@@ -1087,8 +1086,7 @@ skip_save_ior: * need to adjust iasq/iaoq here in the same way we adjusted isr/ior * above. */ - extrd,u,* %r8,PSW_W_BIT,1,%r1 - cmpib,COND(=),n 1,%r1,intr_save2 + bb,COND(>=),n %r8,PSW_W_BIT,intr_save2 LDREG PT_IASQ0(%r29), %r16 LDREG PT_IAOQ0(%r29), %r17 /* adjust iasq/iaoq */
arch/parisc/kernel/syscall.S +8 -6
@@ -217,10 +217,10 @@ linux_gateway_entry: #ifdef CONFIG_64BIT ldil L%sys_call_table, %r1 - or,= %r2,%r2,%r2 - addil L%(sys_call_table64-sys_call_table), %r1 + or,ev %r2,%r2,%r2 + ldil L%sys_call_table64, %r1 ldo R%sys_call_table(%r1), %r19 - or,= %r2,%r2,%r2 + or,ev %r2,%r2,%r2 ldo R%sys_call_table64(%r1), %r19 #else load32 sys_call_table, %r19
@@ -355,10 +355,10 @@ tracesys_next: extrd,u %r19,63,1,%r2 /* W hidden in bottom bit */ ldil L%sys_call_table, %r1 - or,= %r2,%r2,%r2 - addil L%(sys_call_table64-sys_call_table), %r1 + or,ev %r2,%r2,%r2 + ldil L%sys_call_table64, %r1 ldo R%sys_call_table(%r1), %r19 - or,= %r2,%r2,%r2 + or,ev %r2,%r2,%r2 ldo R%sys_call_table64(%r1), %r19 #else load32 sys_call_table, %r19
@@ -931,6 +931,8 @@ ENTRY(sys_call_table) END(sys_call_table) #ifdef CONFIG_64BIT +#undef __SYSCALL_WITH_COMPAT +#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native) .align 8 ENTRY(sys_call_table64) #include <asm/syscall_table_64.h> /* 64-bit native syscalls */
arch/riscv/Kconfig +5 -0
@@ -139,6 +139,11 @@ config GENERIC_HWEIGHT config FIX_EARLYCON_MEM def_bool y +config ILLEGAL_POINTER_VALUE + hex + default 0 if 32BIT + default 0xdead000000000000 if 64BIT + config PGTABLE_LEVELS int default 3 if 64BIT
arch/riscv/kernel/asm-offsets.c +0 -2
@@ -4,8 +4,6 @@* Copyright (C) 2017 SiFive */ -#define GENERATING_ASM_OFFSETS -#include <linux/kbuild.h> #include <linux/sched.h> #include <asm/thread_info.h>
arch/riscv/kernel/perf_callchain.c +1 -1
@@ -71,7 +71,7 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry,perf_callchain_store (entry, regs->sepc); fp =user_backtrace (entry, fp, regs->ra); -while (fp && !(fp &0x3 ) && entry->nr < entry->max_stack) +while (fp && !(fp &0x7 ) && entry->nr < entry->max_stack) fp =user_backtrace (entry, fp,0 ); }
arch/s390/include/asm/facility.h +4 -2
@@ -53,8 +53,10 @@ static inline int test_facility(unsigned long nr)unsigned long facilities_als[] = {FACILITIES_ALS };if (__builtin_constant_p (nr) && nr <sizeof (facilities_als) *8 ) { -if (__test_facility (nr, &facilities_als)) -return 1 ; +if (__test_facility (nr, &facilities_als)) { +if (!__is_defined (__DECOMPRESSOR)) +return 1 ; + } }return __test_facility (nr, &S390_lowcore.stfle_fac_list); }
arch/s390/kernel/perf_cpum_sf.c +4 -8
@@ -1412,7 +1412,7 @@ static int aux_output_begin(struct perf_output_handle *handle,unsigned long head, base, offset;struct hws_trailer_entry *te; -if (WARN_ON_ONCE (handle->head & ~PAGE_MASK )) +if (handle->head & ~PAGE_MASK )return -EINVAL ; aux->head = handle->head >>PAGE_SHIFT ;
@@ -1580,7 +1580,7 @@ static void hw_collect_aux(struct cpu_hw_sf *cpuhw)unsigned long num_sdb; aux =perf_get_aux (handle); -if (WARN_ON_ONCE (!aux)) +if (!aux)return ;/* Inform user space new data arrived */
@@ -1599,7 +1599,7 @@ static void hw_collect_aux(struct cpu_hw_sf *cpuhw)debug_sprintf_event (sfdbg,1 ,"AUX buffer used up\n" );break ; } -if (WARN_ON_ONCE (!aux)) +if (!aux)return ;/* Update head and alert_mark to new position */
@@ -1836,12 +1836,8 @@ static void cpumsf_pmu_start(struct perf_event *event, int flags) {struct cpu_hw_sf *cpuhw =this_cpu_ptr (&cpu_hw_sf); -if (WARN_ON_ONCE (!(event->hw.state &PERF_HES_STOPPED ))) +if (!(event->hw.state &PERF_HES_STOPPED ))return ; - -if (flags &PERF_EF_RELOAD ) -WARN_ON_ONCE (!(event->hw.state &PERF_HES_UPTODATE )); -perf_pmu_disable (event->pmu); event->hw.state =0 ; cpuhw->lsctl.cs =1 ;
arch/s390/kvm/diag.c +1 -1
@@ -78,7 +78,7 @@ static int __diag_page_ref_service(struct kvm_vcpu *vcpu) vcpu->stat.diagnose_258++;if (vcpu->run->s.regs.gprs[rx] &7 )return kvm_s390_inject_program_int (vcpu,PGM_SPECIFICATION ); - rc =read_guest (vcpu, vcpu->run->s.regs.gprs[rx], rx, &parm,sizeof (parm)); + rc =read_guest_real (vcpu, vcpu->run->s.regs.gprs[rx], &parm,sizeof (parm));if (rc)return kvm_s390_inject_prog_cond (vcpu, rc);if (parm.parm_version !=2 || parm.parm_len <5 || parm.code !=0x258 )
arch/s390/kvm/gaccess.c +96 -66
240 lines not on this page · raw message
arch/s390/kvm/gaccess.h +8 -6
@@ -344,11 +344,12 @@ int read_guest_abs(struct kvm_vcpu *vcpu, unsigned long gpa, void *data,* @len: number of bytes to copy * * Copy @len bytes from @data (kernel space) to @gra (guest real address). -* It is up to the caller to ensure that the entire guest memory range is -* valid memory before calling this function. * Guest low address and key protection are not checked. * -* Returns zero on success or -EFAULT on error. +* Returns zero on success, -EFAULT when copying from @data failed, or +* PGM_ADRESSING in case @gra is outside a memslot. In this case, pgm check info +* is also stored to allow injecting into the guest (if applicable) using +* kvm_s390_inject_prog_cond(). * * If an error occurs data may have been copied partially to guest memory. */
@@ -367,11 +368,12 @@ int write_guest_real(struct kvm_vcpu *vcpu, unsigned long gra, void *data,* @len: number of bytes to copy * * Copy @len bytes from @gra (guest real address) to @data (kernel space). -* It is up to the caller to ensure that the entire guest memory range is -* valid memory before calling this function. * Guest key protection is not checked. * -* Returns zero on success or -EFAULT on error. +* Returns zero on success, -EFAULT when copying to @data failed, or +* PGM_ADRESSING in case @gra is outside a memslot. In this case, pgm check info +* is also stored to allow injecting into the guest (if applicable) using +* kvm_s390_inject_prog_cond(). * * If an error occurs data may have been copied partially to kernel space. */
arch/s390/mm/cmm.c +17 -1
@@ -98,11 +98,12 @@ static long cmm_alloc_pages(long nr, long *counter, (*counter)++;spin_unlock (&cmm_lock); nr--; +cond_resched (); }return nr; } -static long cmm_free_pages (long nr,long *counter,struct cmm_page_array **list) +static long __cmm_free_pages (long nr,long *counter,struct cmm_page_array **list) {struct cmm_page_array *pa;unsigned long addr;
@@ -126,6 +127,21 @@ static long cmm_free_pages(long nr, long *counter, struct cmm_page_array **list)return nr; } +static long cmm_free_pages (long nr,long *counter,struct cmm_page_array **list) +{ +long inc =0 ; + +while (nr) { + inc =min (256L , nr); + nr -= inc; + inc =__cmm_free_pages (inc, counter, list); +if (inc) +break ; +cond_resched (); + } +return nr + inc; +} +static int cmm_oom_notify (struct notifier_block *self,unsigned long dummy,void *parm) {
arch/x86/include/asm/cpufeatures.h +2 -1
@@ -217,7 +217,7 @@#define X86_FEATURE_SPEC_STORE_BYPASS_DISABLE ( 7*32+23)/* "" Disable Speculative Store Bypass. */ #define X86_FEATURE_LS_CFG_SSBD ( 7*32+24)/* "" AMD SSBD implementation via LS_CFG MSR */ #define X86_FEATURE_IBRS ( 7*32+25)/* Indirect Branch Restricted Speculation */ -#define X86_FEATURE_IBPB ( 7*32+26)/* Indirect Branch Prediction Barrier */ +#define X86_FEATURE_IBPB ( 7*32+26)/* "ibpb" Indirect Branch Prediction Barrier without a guaranteed RSB flush */ #define X86_FEATURE_STIBP ( 7*32+27)/* Single Thread Indirect Branch Predictors */ #define X86_FEATURE_ZEN ( 7*32+28)/* "" CPU is AMD family 0x17 (Zen) */ #define X86_FEATURE_L1TF_PTEINV ( 7*32+29)/* "" L1TF workaround PTE inversion */
@@ -308,6 +308,7 @@#define X86_FEATURE_VIRT_SSBD (13*32+25)/* Virtualized Speculative Store Bypass Disable */ #define X86_FEATURE_AMD_SSB_NO (13*32+26)/* "" Speculative Store Bypass is fixed in hardware. */ #define X86_FEATURE_BTC_NO (13*32+29)/* "" Not vulnerable to Branch Type Confusion */ +#define X86_FEATURE_AMD_IBPB_RET (13*32+30)/* "" IBPB clears return address predictor */ /* Thermal and Power Management Leaf, CPUID level 0x00000006 (EAX), word 14 */ #define X86_FEATURE_DTHERM (14*32+ 0)/* Digital Thermal Sensor */
arch/x86/include/asm/syscall.h +6 -1
@@ -94,7 +94,12 @@ static inline void syscall_get_arguments(struct task_struct *task,struct pt_regs *regs, unsigned long *args) { - memcpy(args, ®s->bx, 6 * sizeof(args[0])); + args[0 ] = regs->bx; + args[1 ] = regs->cx; + args[2 ] = regs->dx; + args[3 ] = regs->si; + args[4 ] = regs->di; + args[5 ] = regs->bp; } static inline void syscall_set_arguments(struct task_struct *task,
arch/x86/kernel/apic/apic.c +13 -1
@@ -491,7 +491,19 @@ static int lapic_timer_shutdown(struct clock_event_device *evt) v =apic_read (APIC_LVTT ); v |= (APIC_LVT_MASKED |LOCAL_TIMER_VECTOR );apic_write (APIC_LVTT , v); -apic_write (APIC_TMICT ,0 ); + +/* +* Setting APIC_LVT_MASKED (above) should be enough to tell +* the hardware that this timer will never fire. But AMD +* erratum 411 and some Intel CPU behavior circa 2024 say +* otherwise. Time for belt and suspenders programming: mask +* the timer _and_ zero the counter registers: +*/ +if (v &APIC_LVT_TIMER_TSCDEADLINE ) +wrmsrl (MSR_IA32_TSC_DEADLINE ,0 ); +else +apic_write (APIC_TMICT ,0 ); +return 0 ; }
arch/x86/kernel/cpu/mshyperv.c +1 -0
@@ -256,6 +256,7 @@ static void __init ms_hyperv_init_platform(void) ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) { x86_platform.calibrate_tsc = hv_get_tsc_khz; x86_platform.calibrate_cpu = hv_get_tsc_khz; +setup_force_cpu_cap (X86_FEATURE_TSC_KNOWN_FREQ ); }if (ms_hyperv.hints &HV_X64_ENLIGHTENED_VMCS_RECOMMENDED ) {
arch/x86/kernel/cpu/resctrl/core.c +2 -2
@@ -250,7 +250,7 @@ static inline bool rdt_get_mb_table(struct rdt_resource *r)return false; } -static bool __get_mem_config_intel (struct rdt_resource *r) +static __init bool __get_mem_config_intel (struct rdt_resource *r) {union cpuid_0x10_3_eax eax;union cpuid_0x10_x_edx edx;
@@ -277,7 +277,7 @@ static bool __get_mem_config_intel(struct rdt_resource *r)return true; } -static bool __rdt_get_mem_config_amd (struct rdt_resource *r) +static __init bool __rdt_get_mem_config_amd (struct rdt_resource *r) {union cpuid_0x10_3_eax eax;union cpuid_0x10_x_edx edx;
arch/x86/xen/setup.c +1 -1
@@ -875,7 +875,7 @@ char * __init xen_memory_setup(void)* to relocating (and even reusing) pages with kernel text or data. */ if (xen_is_e820_reserved (__pa_symbol (_text), -__pa_symbol (__bss_stop) -__pa_symbol (_text))) { +__pa_symbol (_end) -__pa_symbol (_text))) {xen_raw_console_write ("Xen hypervisor allocated kernel memory conflicts with E820 map\n" );BUG (); }
block/bfq-iosched.c +9 -4
@@ -2610,8 +2610,12 @@ bfq_setup_cooperator(struct bfq_data *bfqd, struct bfq_queue *bfqq,struct bfq_queue *in_service_bfqq, *new_bfqq;/* if a merge has already been setup, then proceed with that first */ -if (bfqq->new_bfqq) -return bfqq->new_bfqq; + new_bfqq = bfqq->new_bfqq; +if (new_bfqq) { +while (new_bfqq->new_bfqq) + new_bfqq = new_bfqq->new_bfqq; +return new_bfqq; + }/* * Do not perform queue merging if the device is non
@@ -5990,7 +5994,7 @@ bfq_split_bfqq(struct bfq_io_cq *bic, struct bfq_queue *bfqq) {bfq_log_bfqq (bfqq->bfqd, bfqq,"splitting queue" ); -if (bfqq_process_refs (bfqq) ==1 ) { +if (bfqq_process_refs (bfqq) ==1 && !bfqq->new_bfqq) { bfqq->pid = current->pid;bfq_clear_bfqq_coop (bfqq);bfq_clear_bfqq_split_coop (bfqq);
@@ -6175,7 +6179,8 @@ static struct bfq_queue *bfq_init_rq(struct request *rq)* addition, if the queue has also just been split, we have to * resume its state. */ -if (likely (bfqq != &bfqd->oom_bfqq) &&bfqq_process_refs (bfqq) ==1 ) { +if (likely (bfqq != &bfqd->oom_bfqq) && !bfqq->new_bfqq && +bfqq_process_refs (bfqq) ==1 ) { bfqq->bic = bic;if (split) {/*
block/blk-rq-qos.c +1 -1
@@ -225,8 +225,8 @@ static int rq_qos_wake_function(struct wait_queue_entry *curr, data->got_token = true;smp_wmb (); -list_del_init (&curr->entry);wake_up_process (data->task); +list_del_init_careful (&curr->entry);return 1 ; }
crypto/aead.c +1 -2
@@ -40,8 +40,7 @@ static int setkey_unaligned(struct crypto_aead *tfm, const u8 *key, alignbuffer = (u8 *)ALIGN ((unsigned long )buffer, alignmask +1 );memcpy (alignbuffer, key, keylen); ret =crypto_aead_alg (tfm)->setkey (tfm, alignbuffer, keylen); -memset (alignbuffer,0 , keylen); -kfree (buffer); +kzfree (buffer);return ret; }
crypto/cipher.c +1 -2
@@ -33,8 +33,7 @@ static int setkey_unaligned(struct crypto_tfm *tfm, const u8 *key, alignbuffer = (u8 *)ALIGN ((unsigned long )buffer, alignmask +1 );memcpy (alignbuffer, key, keylen); ret = cia->cia_setkey (tfm, alignbuffer, keylen); -memset (alignbuffer,0 , keylen); -kfree (buffer); +kzfree (buffer);return ret; }
drivers/acpi/acpica/dbconvert.c +2 -0
@@ -170,6 +170,8 @@ acpi_status acpi_db_convert_to_package(char *string, union acpi_object *object) elements =ACPI_ALLOCATE_ZEROED (DB_DEFAULT_PKG_ELEMENTS *sizeof (union acpi_object )); +if (!elements) +return (AE_NO_MEMORY ); this = string;for (i =0 ; i < (DB_DEFAULT_PKG_ELEMENTS -1 ); i++) {
drivers/acpi/acpica/exprep.c +3 -0
@@ -437,6 +437,9 @@ acpi_status acpi_ex_prep_field_value(struct acpi_create_field_info *info)if (info->connection_node) { second_desc = info->connection_node->object; +if (second_desc ==NULL ) { +break ; + }if (!(second_desc->common.flags &AOPOBJ_DATA_VALID )) { status =acpi_ds_get_buffer_arguments (second_desc);
drivers/acpi/acpica/psargs.c +47 -0
77 lines not on this page · raw message
drivers/acpi/battery.c +17 -11
@@ -706,27 +706,34 @@ static LIST_HEAD(acpi_battery_list);static LIST_HEAD (battery_hook_list);static DEFINE_MUTEX (hook_mutex); -static void __battery_hook_unregister (struct acpi_battery_hook *hook,int lock) +static void battery_hook_unregister_unlocked (struct acpi_battery_hook *hook) {struct acpi_battery *battery; +/* * In order to remove a hook, we first need to * de-register all the batteries that are registered. */ -if (lock) -mutex_lock (&hook_mutex);list_for_each_entry (battery, &acpi_battery_list, list) { hook->remove_battery (battery->bat); } -list_del (&hook->list); -if (lock) -mutex_unlock (&hook_mutex); +list_del_init (&hook->list); +pr_info ("extension unregistered: %s\n" , hook->name); }void battery_hook_unregister (struct acpi_battery_hook *hook) { -__battery_hook_unregister (hook,1 ); +mutex_lock (&hook_mutex); +/* +* Ignore already unregistered battery hooks. This might happen +* if a battery hook was previously unloaded due to an error when +* adding a new battery. +*/ +if (!list_empty (&hook->list)) +battery_hook_unregister_unlocked (hook); + +mutex_unlock (&hook_mutex); }EXPORT_SYMBOL_GPL (battery_hook_unregister);
@@ -735,7 +742,6 @@ void battery_hook_register(struct acpi_battery_hook *hook)struct acpi_battery *battery;mutex_lock (&hook_mutex); -INIT_LIST_HEAD (&hook->list);list_add (&hook->list, &battery_hook_list);/* * Now that the driver is registered, we need
@@ -752,7 +758,7 @@ void battery_hook_register(struct acpi_battery_hook *hook)* hooks. */ pr_err ("extension failed to load: %s" , hook->name); -__battery_hook_unregister (hook,0 ); +battery_hook_unregister_unlocked (hook); goto end; } }
@@ -789,7 +795,7 @@ static void battery_hook_add_battery(struct acpi_battery *battery)*/ pr_err ("error in extension, unloading: %s" , hook_node->name); -__battery_hook_unregister (hook_node,0 ); +battery_hook_unregister_unlocked (hook_node); } }mutex_unlock (&hook_mutex);
@@ -822,7 +828,7 @@ static void __exit battery_hook_exit(void)* need to remove the hooks. */ list_for_each_entry_safe (hook, ptr, &battery_hook_list, list) { -__battery_hook_unregister (hook,1 ); +battery_hook_unregister (hook); }mutex_destroy (&hook_mutex); }
drivers/acpi/button.c +11 -0
@@ -111,6 +111,17 @@ static const struct dmi_system_id lid_blacklst[] = { }, .driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN, }, + { + /* + * Samsung galaxybook2 ,initial _LID device notification returns + * lid closed. + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), + DMI_MATCH(DMI_PRODUCT_NAME, "750XED"), + }, + .driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN, + }, {} };
drivers/acpi/device_sysfs.c +3 -2
@@ -533,8 +533,9 @@ int acpi_device_setup_files(struct acpi_device *dev)* If device has _STR, 'description' file is created */ if (acpi_has_method (dev->handle,"_STR" )) { - status =acpi_evaluate_object (dev->handle,"_STR" , -NULL , &buffer); + status =acpi_evaluate_object_typed (dev->handle,"_STR" , +NULL , &buffer, +ACPI_TYPE_BUFFER );if (ACPI_FAILURE (status)) buffer.pointer =NULL ; dev->pnp.str_obj = buffer.pointer;
drivers/acpi/ec.c +49 -6
114 lines not on this page · raw message
drivers/acpi/pmic/tps68470_pmic.c +2 -4
@@ -376,10 +376,8 @@ static int tps68470_pmic_opregion_probe(struct platform_device *pdev)struct tps68470_pmic_opregion *opregion;acpi_status status; -if (!dev || !tps68470_regmap) { -dev_warn (dev,"dev or regmap is NULL\n" ); -return -EINVAL ; - } +if (!tps68470_regmap) +return dev_err_probe (dev, -EINVAL ,"regmap is missing\n" );if (!handle) {dev_warn (dev,"acpi handle is NULL\n" );
drivers/acpi/resource.c +27 -0
@@ -442,6 +442,13 @@ static const struct dmi_system_id asus_laptop[] = { DMI_MATCH(DMI_BOARD_NAME, "B2402CBA"), }, }, + { +/* Asus Vivobook X1704VAP */ + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"ASUSTeK COMPUTER INC." ), + DMI_MATCH(DMI_BOARD_NAME, "X1704VAP"), + }, + }, {/* TongFang GMxXGxx/TUXEDO Polaris 15 Gen5 AMD */ .matches = {
@@ -455,6 +462,12 @@ static const struct dmi_system_id asus_laptop[] = { DMI_MATCH(DMI_BOARD_NAME, "B1402CVA"), }, }, + { +/* TongFang GMxXGxX/TUXEDO Polaris 15 Gen5 AMD */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GMxXGxX"), + }, + }, {/* TongFang GMxXGxx sold as Eluktronics Inc. RP-15 */ .matches = {
@@ -481,12 +494,26 @@ static const struct dmi_system_id asus_laptop[] = { DMI_MATCH(DMI_BOARD_NAME, "GXxHRXx"), }, }, + { + /* Asus ExpertBook B2502CVA */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "B2502CVA"), + }, + }, { /* TongFang GMxHGxx/TUXEDO Stellaris Slim Gen1 AMD */ .matches = { DMI_MATCH(DMI_BOARD_NAME, "GMxHGxx"), }, }, + { + /* LG Electronics 16T90SP */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"), + DMI_MATCH(DMI_BOARD_NAME, "16T90SP"), + }, + }, { } };
drivers/ata/sata_sil.c +6 -6
@@ -128,7 +128,7 @@ static const struct pci_device_id sil_pci_tbl[] = {static const struct sil_drivelist {const char *product;unsigned int quirk; -} sil_blacklist [] = { +} sil_quirks[] = { {"ST320012AS" ,SIL_QUIRK_MOD15WRITE }, {"ST330013AS" ,SIL_QUIRK_MOD15WRITE }, {"ST340017AS" ,SIL_QUIRK_MOD15WRITE },
@@ -601,8 +601,8 @@ static void sil_thaw(struct ata_port *ap)* list, and apply the fixups to only the specific * devices/hosts/firmwares that need it. * -* 20040111 - Seagate drives affected by the Mod15Write bug are blacklisted -* The Maxtor quirk is in the blacklist, but I'm keeping the original +* 20040111 - Seagate drives affected by the Mod15Write bug are quirked +* The Maxtor quirk is in sil_quirks, but I'm keeping the original * pessimistic fix for the following reasons... * - There seems to be less info on it, only one device gleaned off the * Windows driver, maybe only one is affected. More info would be greatly
@@ -621,9 +621,9 @@ static void sil_dev_config(struct ata_device *dev)ata_id_c_string (dev->id, model_num,ATA_ID_PROD ,sizeof (model_num)); -for (n =0 ; sil_blacklist[n].product; n++) -if (!strcmp (sil_blacklist[n].product, model_num)) { - quirks = sil_blacklist[n].quirk; +for (n =0 ; sil_quirks[n].product; n++) +if (!strcmp (sil_quirks[n].product, model_num)) { + quirks = sil_quirks[n].quirk;break ; }
drivers/base/bus.c +4 -2
@@ -103,7 +103,8 @@ static ssize_t bus_attr_show(struct kobject *kobj, struct attribute *attr, {struct bus_attribute *bus_attr =to_bus_attr (attr);struct subsys_private *subsys_priv =to_subsys_private (kobj); -ssize_t ret =0 ; +/* return -EIO for reading a bus attribute without show() */ +ssize_t ret = -EIO ;if (bus_attr->show) ret = bus_attr->show (subsys_priv->bus, buf);
@@ -115,7 +116,8 @@ static ssize_t bus_attr_store(struct kobject *kobj, struct attribute *attr, {struct bus_attribute *bus_attr =to_bus_attr (attr);struct subsys_private *subsys_priv =to_subsys_private (kobj); -ssize_t ret =0 ; +/* return -EIO for writing a bus attribute without store() */ +ssize_t ret = -EIO ;if (bus_attr->store) ret = bus_attr->store (subsys_priv->bus, buf, count);
drivers/base/core.c +5 -8
@@ -25,7 +25,6 @@#include <linux/mutex.h> #include <linux/pm_runtime.h> #include <linux/netdevice.h> -#include <linux/rcupdate.h> #include <linux/sched/signal.h> #include <linux/sysfs.h>
@@ -1175,7 +1174,6 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj, struct kobj_uevent_env *env) {struct device *dev =kobj_to_dev (kobj); -struct device_driver *driver;int retval =0 ;/* add device node properties if present */
@@ -1204,12 +1202,8 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj,if (dev->type && dev->type->name)add_uevent_var (env,"DEVTYPE=%s" , dev->type->name); -/* Synchronize with module_remove_driver() */ -rcu_read_lock (); - driver =READ_ONCE (dev->driver); -if (driver) -add_uevent_var (env,"DRIVER=%s" , driver->name); -rcu_read_unlock (); +if (dev->driver) +add_uevent_var (env,"DRIVER=%s" , dev->driver->name);/* Add common DT information about the device */ of_device_uevent (dev, env);
@@ -1279,8 +1273,11 @@ static ssize_t uevent_show(struct device *dev, struct device_attribute *attr,if (!env)return -ENOMEM ; +/* Synchronize with really_probe() */ +device_lock (dev);/* let the kset specific function add its keys */ retval = kset->uevent_ops->uevent (kset, &dev->kobj, env); +device_unlock (dev);if (retval) goto out;
drivers/base/firmware_loader/main.c +30 -0
@@ -754,6 +754,26 @@ static void fw_abort_batch_reqs(struct firmware *fw)mutex_unlock (&fw_lock); } +/* +* Reject firmware file names with ".." path components. +* There are drivers that construct firmware file names from device-supplied +* strings, and we don't want some device to be able to tell us "I would like to +* be sent my firmware from ../../../etc/shadow, please". +* +* Search for ".." surrounded by either '/' or start/end of string. +* +* This intentionally only looks at the firmware name, not at the firmware base +* directory or at symlink contents. +*/ +static bool name_contains_dotdot (const char *name) +{ +size_t name_len =strlen (name); + +return strcmp (name,".." ) ==0 ||strncmp (name,"../" ,3 ) ==0 || +strstr (name,"/../" ) !=NULL || + (name_len >=3 &&strcmp (name+name_len-3 ,"/.." ) ==0 ); +} +/* called from request_firmware() and request_firmware_work_func() */ static int _request_firmware(const struct firmware **firmware_p, const char *name,
@@ -773,6 +793,14 @@ _request_firmware(const struct firmware **firmware_p, const char *name, goto out; } +if (name_contains_dotdot (name)) { +dev_warn (device, +"Firmware load for '%s' refused, path contains '..' component\n" , + name); + ret = -EINVAL ; + goto out; + } + ret =_request_firmware_prepare (&fw, name, device, buf, size, opt_flags);if (ret <=0 )/* error or already assigned */
@@ -834,6 +862,8 @@ _request_firmware(const struct firmware **firmware_p, const char *name,* @name will be used as $FIRMWARE in the uevent environment and * should be distinctive enough not to be confused with any other * firmware image for this or any other device. +* It must not contain any ".." path components - "foo/bar..bin" is +* allowed, but "foo/../bar.bin" is not. * * Caller must hold the reference count of @device. *
drivers/base/module.c +0 -4
@@ -7,7 +7,6 @@#include <linux/errno.h> #include <linux/slab.h> #include <linux/string.h> -#include <linux/rcupdate.h> #include "base.h" static char *make_driver_name (struct device_driver *drv)
@@ -78,9 +77,6 @@ void module_remove_driver(struct device_driver *drv)if (!drv)return ; -/* Synchronize with dev_uevent() */ -synchronize_rcu (); -sysfs_remove_link (&drv->p->kobj,"module" );if (drv->owner)
drivers/block/aoe/aoecmd.c +12 -1
@@ -362,6 +362,7 @@ ata_rw_frameinit(struct frame *f) } ah->cmdstat =ATA_CMD_PIO_READ | writebit | extbit; +dev_hold (t->ifp->nd); skb->dev = t->ifp->nd; }
@@ -402,6 +403,8 @@ aoecmd_ata_rw(struct aoedev *d)__skb_queue_head_init (&queue);__skb_queue_tail (&queue, skb);aoenet_xmit (&queue); + }else { +dev_put (f->t->ifp->nd); }return 1 ; }
@@ -484,10 +487,13 @@ resend(struct aoedev *d, struct frame *f)memcpy (h->dst, t->addr,sizeof h->dst);memcpy (h->src, t->ifp->nd->dev_addr,sizeof h->src); +dev_hold (t->ifp->nd); skb->dev = t->ifp->nd; skb =skb_clone (skb,GFP_ATOMIC ); -if (skb ==NULL ) +if (skb ==NULL ) { +dev_put (t->ifp->nd);return ; + } f->sent =ktime_get ();__skb_queue_head_init (&queue);__skb_queue_tail (&queue, skb);
@@ -618,6 +624,8 @@ probe(struct aoetgt *t)__skb_queue_head_init (&queue);__skb_queue_tail (&queue, skb);aoenet_xmit (&queue); + }else { +dev_put (f->t->ifp->nd); } }
@@ -1405,6 +1413,7 @@ aoecmd_ata_id(struct aoedev *d) ah->cmdstat =ATA_CMD_ID_ATA ; ah->lba3 =0xa0 ; +dev_hold (t->ifp->nd); skb->dev = t->ifp->nd; d->rttavg =RTTAVG_INIT ;
@@ -1414,6 +1423,8 @@ aoecmd_ata_id(struct aoedev *d) skb =skb_clone (skb,GFP_ATOMIC );if (skb) f->sent =ktime_get (); +else +dev_put (t->ifp->nd);return skb; }
drivers/block/drbd/drbd_main.c +4 -2
@@ -3509,10 +3509,12 @@ void drbd_uuid_new_current(struct drbd_device *device) __must_hold(local)void drbd_uuid_set_bm (struct drbd_device *device,u64 val)__must_hold (local) {unsigned long flags; -if (device->ldev->md.uuid[UI_BITMAP ] ==0 && val ==0 ) +spin_lock_irqsave (&device->ldev->md.uuid_lock, flags); +if (device->ldev->md.uuid[UI_BITMAP ] ==0 && val ==0 ) { +spin_unlock_irqrestore (&device->ldev->md.uuid_lock, flags);return ; + } -spin_lock_irqsave (&device->ldev->md.uuid_lock, flags);if (val ==0 ) {drbd_uuid_move_history (device); device->ldev->md.uuid[UI_HISTORY_START ] = device->ldev->md.uuid[UI_BITMAP ];
drivers/block/drbd/drbd_state.c +1 -1
@@ -876,7 +876,7 @@ is_valid_state(struct drbd_device *device, union drbd_state ns) ns.disk == D_OUTDATED) rv =SS_CONNECTED_OUTDATES ; - else if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) && + else if (nc && (ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) && (nc->verify_alg[0] == 0)) rv =SS_NO_VERIFY_ALG ;
drivers/bluetooth/btmrvl_sdio.c +11 -5
@@ -105,13 +105,15 @@ static int btmrvl_sdio_probe_of(struct device *dev, }else { ret =devm_request_irq (dev, cfg->irq_bt, btmrvl_wake_irq_bt, -0 ,"bt_wake" , card); +IRQF_NO_AUTOEN ,"bt_wake" , card);if (ret) {dev_err (dev,"Failed to request irq_bt %d (%d)\n" , cfg->irq_bt, ret); } -disable_irq (cfg->irq_bt); + +/* Configure wakeup (enabled by default) */ +device_init_wakeup (dev, true); } }
@@ -1654,6 +1656,7 @@ static void btmrvl_sdio_remove(struct sdio_func *func) MODULE_SHUTDOWN_REQ);btmrvl_sdio_disable_host_int (card); } +BT_DBG ("unregister dev" ); card->priv->surprise_removed = true;btmrvl_sdio_unregister_dev (card);
@@ -1690,7 +1693,8 @@ static int btmrvl_sdio_suspend(struct device *dev) }/* Enable platform specific wakeup interrupt */ -if (card->plt_wake_cfg && card->plt_wake_cfg->irq_bt >=0 ) { +if (card->plt_wake_cfg && card->plt_wake_cfg->irq_bt >=0 && +device_may_wakeup (dev)) { card->plt_wake_cfg->wake_by_bt = false;enable_irq (card->plt_wake_cfg->irq_bt);enable_irq_wake (card->plt_wake_cfg->irq_bt);
@@ -1707,7 +1711,8 @@ static int btmrvl_sdio_suspend(struct device *dev)BT_ERR ("HS not activated, suspend failed!" );/* Disable platform specific wakeup interrupt */ if (card->plt_wake_cfg && - card->plt_wake_cfg->irq_bt >=0 ) { + card->plt_wake_cfg->irq_bt >=0 && +device_may_wakeup (dev)) {disable_irq_wake (card->plt_wake_cfg->irq_bt);disable_irq (card->plt_wake_cfg->irq_bt); }
@@ -1767,7 +1772,8 @@ static int btmrvl_sdio_resume(struct device *dev)hci_resume_dev (hcidev);/* Disable platform specific wakeup interrupt */ -if (card->plt_wake_cfg && card->plt_wake_cfg->irq_bt >=0 ) { +if (card->plt_wake_cfg && card->plt_wake_cfg->irq_bt >=0 && +device_may_wakeup (dev)) {disable_irq_wake (card->plt_wake_cfg->irq_bt);disable_irq (card->plt_wake_cfg->irq_bt);if (card->plt_wake_cfg->wake_by_bt)
drivers/bluetooth/btusb.c +9 -1
@@ -834,7 +834,15 @@ static int btusb_submit_intr_urb(struct hci_dev *hdev, gfp_t mem_flags)if (!urb)return -ENOMEM ; - size =le16_to_cpu (data->intr_ep->wMaxPacketSize); +if (le16_to_cpu (data->udev->descriptor.idVendor) ==0x0a12 && +le16_to_cpu (data->udev->descriptor.idProduct) ==0x0001 ) +/* Fake CSR devices don't seem to support sort-transter */ + size =le16_to_cpu (data->intr_ep->wMaxPacketSize); +else +/* Use maximum HCI Event size so the USB stack handles +* ZPL/short-transfer automatically. +*/ + size =HCI_MAX_EVENT_SIZE ; buf =kmalloc (size, mem_flags);if (!buf) {
drivers/char/hw_random/mtk-rng.c +1 -1
@@ -149,7 +149,7 @@ static int mtk_rng_probe(struct platform_device *pdev)dev_set_drvdata (&pdev->dev, priv);pm_runtime_set_autosuspend_delay (&pdev->dev,RNG_AUTOSUSPEND_TIMEOUT );pm_runtime_use_autosuspend (&pdev->dev); -pm_runtime_enable (&pdev->dev); +devm_pm_runtime_enable (&pdev->dev);dev_info (&pdev->dev,"registered RNG driver\n" );
drivers/char/tpm/tpm-dev-common.c +2 -0
@@ -48,6 +48,8 @@ static ssize_t tpm_dev_transmit(struct tpm_chip *chip, struct tpm_space *space,if (!ret) ret =tpm2_commit_space (chip, space, buf, &len); +else +tpm2_flush_space (chip); out_rc:return ret ? ret : len;
drivers/char/tpm/tpm2-space.c +3 -0
@@ -166,6 +166,9 @@ void tpm2_flush_space(struct tpm_chip *chip)struct tpm_space *space = &chip->work_space;int i; +if (!space) +return ; +for (i =0 ; i <ARRAY_SIZE (space->context_tbl); i++)if (space->context_tbl[i] && ~space->context_tbl[i])tpm2_flush_context (chip, space->context_tbl[i]);
drivers/char/virtio_console.c +10 -8
@@ -2051,25 +2051,27 @@ static int virtcons_probe(struct virtio_device *vdev) multiport = true; } - err =init_vqs (portdev); -if (err <0 ) { -dev_err (&vdev->dev,"Error %d initializing vqs\n" , err); - goto free_chrdev; - } -spin_lock_init (&portdev->ports_lock);INIT_LIST_HEAD (&portdev->ports);INIT_LIST_HEAD (&portdev->list); -virtio_device_ready (portdev->vdev); -INIT_WORK (&portdev->config_work, &config_work_handler);INIT_WORK (&portdev->control_work, &control_work_handler);if (multiport) {spin_lock_init (&portdev->c_ivq_lock);spin_lock_init (&portdev->c_ovq_lock); + } + err =init_vqs (portdev); +if (err <0 ) { +dev_err (&vdev->dev,"Error %d initializing vqs\n" , err); + goto free_chrdev; + } + +virtio_device_ready (portdev->vdev); + +if (multiport) { err =fill_queue (portdev->c_ivq, &portdev->c_ivq_lock);if (err <0 ) { dev_err(&vdev->dev,
drivers/clk/bcm/clk-bcm53573-ilp.c +1 -1
@@ -112,7 +112,7 @@ static void bcm53573_ilp_init(struct device_node *np) goto err_free_ilp; } - ilp->regmap =syscon_node_to_regmap (of_get_parent (np)); + ilp->regmap =syscon_node_to_regmap (np->parent);if (IS_ERR (ilp->regmap)) { err =PTR_ERR (ilp->regmap); goto err_free_ilp;
drivers/clk/qcom/clk-rpmh.c +15 -18
@@ -259,38 +259,35 @@ static int clk_rpmh_bcm_send_cmd(struct clk_rpmh *c, bool enable) {struct tcs_cmd cmd = {0 };u32 cmd_state; -int ret; +int ret =0 ;mutex_lock (&rpmh_clk_lock); - - cmd_state =0 ;if (enable) { cmd_state =1 ;if (c->aggr_state) cmd_state = c->aggr_state; + }else { + cmd_state =0 ; } -if (c->last_sent_aggr_state == cmd_state) { -mutex_unlock (&rpmh_clk_lock); -return 0 ; - } + cmd_state =min (cmd_state,BCM_TCS_CMD_VOTE_MASK ); - cmd.addr = c->res_addr; - cmd.data =BCM_TCS_CMD (1 , enable,0 , cmd_state); +if (c->last_sent_aggr_state != cmd_state) { + cmd.addr = c->res_addr; + cmd.data =BCM_TCS_CMD (1 , enable,0 , cmd_state); - ret =clk_rpmh_send (c,RPMH_ACTIVE_ONLY_STATE , &cmd, enable); -if (ret) { -dev_err (c->dev,"set active state of %s failed: (%d)\n" , - c->res_name, ret); -mutex_unlock (&rpmh_clk_lock); -return ret; + ret =clk_rpmh_send (c,RPMH_ACTIVE_ONLY_STATE , &cmd, enable); +if (ret) { +dev_err (c->dev,"set active state of %s failed: (%d)\n" , + c->res_name, ret); + }else { + c->last_sent_aggr_state = cmd_state; + } } - c->last_sent_aggr_state = cmd_state; -mutex_unlock (&rpmh_clk_lock); -return 0 ; +return ret; }static int clk_rpmh_bcm_prepare (struct clk_hw *hw)
drivers/clk/rockchip/clk-rk3228.c +1 -1
@@ -408,7 +408,7 @@ static struct rockchip_clk_branch rk3228_clk_branches[] __initdata = { RK2928_CLKSEL_CON(29), 0, 3, DFLAGS),DIV (0 ,"sclk_vop_pre" ,"sclk_vop_src" ,0 ,RK2928_CLKSEL_CON (27 ),8 ,8 ,DFLAGS ), -MUX (DCLK_VOP ,"dclk_vop" , mux_dclk_vop_p,0 , +MUX (DCLK_VOP ,"dclk_vop" , mux_dclk_vop_p,CLK_SET_RATE_PARENT |CLK_SET_RATE_NO_REPARENT ,RK2928_CLKSEL_CON (27 ),1 ,1 ,MFLAGS ), FACTOR(0, "xin12m", "xin24m", 0, 1, 2),
drivers/clk/rockchip/clk.c +2 -1
@@ -439,12 +439,13 @@ void __init rockchip_clk_register_branches( struct rockchip_clk_branch *list, unsigned int nr_clk) { -struct clk *clk =NULL ; +struct clk *clk;unsigned int idx;unsigned long flags;for (idx =0 ; idx < nr_clk; idx++, list++) { flags = list->flags; + clk =NULL ;/* catch simple muxes */ switch (list->branch_type) {
drivers/clk/ti/clk-dra7-atl.c +1 -0
@@ -257,6 +257,7 @@ static int of_dra7_atl_clk_probe(struct platform_device *pdev) } clk =of_clk_get_from_provider (&clkspec); +of_node_put (clkspec.np);if (IS_ERR (clk)) {pr_err ("%s: failed to get atl clock %d from provider\n" , __func__, i);
drivers/clocksource/timer-qcom.c +6 -1
@@ -233,6 +233,7 @@ static int __init msm_dt_timer_init(struct device_node *np) }if (of_property_read_u32 (np,"clock-frequency" , &freq)) { +iounmap (cpu0_base);pr_err ("Unknown frequency\n" );return -EINVAL ; }
@@ -243,7 +244,11 @@ static int __init msm_dt_timer_init(struct device_node *np) freq /=4 ;writel_relaxed (DGT_CLK_CTL_DIV_4 , source_base +DGT_CLK_CTL ); -return msm_timer_init (freq,32 , irq, !!percpu_offset); + ret =msm_timer_init (freq,32 , irq, !!percpu_offset); +if (ret) +iounmap (cpu0_base); + +return ret; }TIMER_OF_DECLARE (kpss_timer,"qcom,kpss-timer" , msm_dt_timer_init);TIMER_OF_DECLARE (scss_timer,"qcom,scss-timer" , msm_dt_timer_init);
drivers/firmware/arm_sdei.c +1 -1
@@ -802,7 +802,7 @@ static int sdei_device_freeze(struct device *dev)int err;/* unregister private events */ -cpuhp_remove_state (sdei_entry_point); +cpuhp_remove_state (sdei_hp_state); err =sdei_unregister_shared ();if (err)
drivers/firmware/tegra/bpmp.c +0 -6
@@ -24,12 +24,6 @@#define MSG_RING BIT(1)#define TAG_SZ 32 -static inline struct tegra_bpmp * -mbox_client_to_bpmp (struct mbox_client *client) -{ - return container_of(client, struct tegra_bpmp, mbox.client); -} -static inline const struct tegra_bpmp_ops *channel_to_ops (struct tegra_bpmp_channel *channel) {
drivers/gpio/gpio-aspeed.c +3 -1
@@ -404,6 +404,8 @@ static void __aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset, gpio->dcache[GPIO_BANK (offset)] = reg;iowrite32 (reg, addr); +/* Flush write */ +ioread32 (addr); } static void aspeed_gpio_set(struct gpio_chip *gc, unsigned int offset,
@@ -1157,7 +1159,7 @@ static int __init aspeed_gpio_probe(struct platform_device *pdev)if (!gpio_id)return -EINVAL ; - gpio->clk =of_clk_get (pdev->dev.of_node,0 ); + gpio->clk =devm_clk_get_enabled (&pdev->dev,NULL );if (IS_ERR (gpio->clk)) {dev_warn (&pdev->dev,"Failed to get clock from devicetree, debouncing disabled\n" );
drivers/gpio/gpio-davinci.c +4 -4
@@ -300,7 +300,7 @@ static int davinci_gpio_probe(struct platform_device *pdev)* serve as EDMA event triggers. */ -static void gpio_irq_disable (struct irq_data *d) +static void gpio_irq_mask (struct irq_data *d) {struct davinci_gpio_regs __iomem *g =irq2regs (d);uintptr_t mask = (uintptr_t )irq_data_get_irq_handler_data (d);
@@ -309,7 +309,7 @@ static void gpio_irq_disable(struct irq_data *d)writel_relaxed (mask, &g->clr_rising); } -static void gpio_irq_enable (struct irq_data *d) +static void gpio_irq_unmask (struct irq_data *d) {struct davinci_gpio_regs __iomem *g =irq2regs (d);uintptr_t mask = (uintptr_t )irq_data_get_irq_handler_data (d);
@@ -335,8 +335,8 @@ static int gpio_irq_type(struct irq_data *d, unsigned trigger)static struct irq_chip gpio_irqchip = { .name ="GPIO" , - .irq_enable = gpio_irq_enable, - .irq_disable = gpio_irq_disable, + .irq_unmask = gpio_irq_unmask, + .irq_mask = gpio_irq_mask, .irq_set_type = gpio_irq_type, .flags =IRQCHIP_SET_TYPE_MASKED |IRQCHIP_SKIP_SET_WAKE , };
drivers/gpio/gpiolib.c +2 -1
@@ -4,6 +4,7 @@#include <linux/module.h> #include <linux/interrupt.h> #include <linux/irq.h> +#include <linux/nospec.h> #include <linux/spinlock.h> #include <linux/list.h> #include <linux/device.h>
@@ -147,7 +148,7 @@ struct gpio_desc *gpiochip_get_desc(struct gpio_chip *chip,if (hwnum >= gdev->ngpio)return ERR_PTR (-EINVAL ); -return &gdev->descs[hwnum]; +return &gdev->descs[array_index_nospec (hwnum, gdev->ngpio)]; }/**
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +12 -3
@@ -85,6 +85,7 @@ static union acpi_object *amdgpu_atif_call(struct amdgpu_atif *atif, struct acpi_buffer *params) {acpi_status status; +union acpi_object *obj;union acpi_object atif_arg_elements[2 ];struct acpi_object_list atif_arg;struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER ,NULL };
@@ -107,16 +108,24 @@ static union acpi_object *amdgpu_atif_call(struct amdgpu_atif *atif, status =acpi_evaluate_object (atif->handle,NULL , &atif_arg, &buffer); + obj = (union acpi_object *)buffer.pointer; -/* Fail only if calling the method fails and ATIF is supported */ +/* Fail if calling the method fails and ATIF is supported */ if (ACPI_FAILURE (status) && status !=AE_NOT_FOUND ) {DRM_DEBUG_DRIVER ("failed to evaluate ATIF got %s\n" ,acpi_format_exception (status)); -kfree (buffer.pointer); +kfree (obj);return NULL ; } -return buffer.pointer; +if (obj->type !=ACPI_TYPE_BUFFER ) { +DRM_DEBUG_DRIVER ("bad object returned from ATIF: %d\n" , + obj->type); +kfree (obj); +return NULL ; + } + +return obj; }/**
drivers/gpu/drm/amd/amdgpu/atombios_encoders.c +16 -10
@@ -2098,23 +2098,29 @@ amdgpu_atombios_encoder_get_lcd_info(struct amdgpu_encoder *encoder) fake_edid_record = (ATOM_FAKE_EDID_PATCH_RECORD *)record;if (fake_edid_record->ucFakeEDIDLength) {struct edid *edid; -int edid_size = -max ((int )EDID_LENGTH , (int )fake_edid_record->ucFakeEDIDLength); - edid =kmalloc (edid_size,GFP_KERNEL ); +int edid_size; + +if (fake_edid_record->ucFakeEDIDLength ==128 ) + edid_size = fake_edid_record->ucFakeEDIDLength; +else + edid_size = fake_edid_record->ucFakeEDIDLength *128 ; + edid =kmemdup (&fake_edid_record->ucFakeEDIDString[0 ], + edid_size,GFP_KERNEL );if (edid) { -memcpy ((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0 ], - fake_edid_record->ucFakeEDIDLength); -if (drm_edid_is_valid (edid)) { adev->mode_info.bios_hardcoded_edid = edid; adev->mode_info.bios_hardcoded_edid_size = edid_size; - }else + }else {kfree (edid); + } } + record +=struct_size (fake_edid_record, + ucFakeEDIDString, + edid_size); + }else { +/* empty fake edid record must be 3 bytes long */ + record +=sizeof (ATOM_FAKE_EDID_PATCH_RECORD ) +1 ; } - record += fake_edid_record->ucFakeEDIDLength ? - fake_edid_record->ucFakeEDIDLength +2 : -sizeof (ATOM_FAKE_EDID_PATCH_RECORD );break ;case LCD_PANEL_RESOLUTION_RECORD_TYPE : panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record;
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +2 -0
@@ -1542,6 +1542,8 @@ static bool are_stream_backends_same(bool dc_is_stream_unchanged (struct dc_stream_state *old_stream,struct dc_stream_state *stream) { +if (!old_stream || !stream) +return false;if (!are_stream_backends_same (old_stream, stream))return false;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c +2 -0
@@ -551,6 +551,8 @@ bool cm_helper_translate_curve_to_degamma_hw_format( i += increment) {if (j == hw_points -1 )break ; +if (i >=TRANSFER_FUNC_POINTS ) +return false; rgb_resulted[j].red = output_tf->tf_pts.red[i]; rgb_resulted[j].green = output_tf->tf_pts.green[i]; rgb_resulted[j].blue = output_tf->tf_pts.blue[i];
drivers/gpu/drm/amd/display/dc/dml/dcn20/display_rq_dlg_calc_20v2.c +1 -1
@@ -78,7 +78,7 @@ static void calculate_ttu_cursor(struct display_mode_lib *mode_lib,static unsigned int get_bytes_per_element (enum source_format_class source_format,bool is_chroma) { -unsigned int ret_val =0 ; +unsigned int ret_val =1 ;if (source_format == dm_444_16) {if (!is_chroma)
drivers/gpu/drm/amd/display/dc/dml/dcn21/display_rq_dlg_calc_21.c +1 -1
@@ -54,7 +54,7 @@ static void calculate_ttu_cursor(static unsigned int get_bytes_per_element (enum source_format_class source_format,bool is_chroma) { -unsigned int ret_val =0 ; +unsigned int ret_val =1 ;if (source_format == dm_444_16) {if (!is_chroma)
drivers/gpu/drm/amd/display/modules/freesync/freesync.c +1 -1
@@ -131,7 +131,7 @@ static unsigned int calc_v_total_from_refresh( v_total =div64_u64 (div64_u64 (((unsigned long long )( frame_duration_in_ns) * (stream->timing.pix_clk_100hz /10 )), - stream->timing.h_total),1000000 ); + stream->timing.h_total) +500000 ,1000000 );/* v_total cannot be less than nominal */ if (v_total < stream->timing.v_total) {
drivers/gpu/drm/amd/include/atombios.h +1 -1
@@ -4107,7 +4107,7 @@ typedef struct _ATOM_FAKE_EDID_PATCH_RECORD {UCHAR ucRecordType;UCHAR ucFakeEDIDLength;// = 128 means EDID length is 128 bytes, otherwise the EDID length = ucFakeEDIDLength*128 -UCHAR ucFakeEDIDString[1 ];// This actually has ucFakeEdidLength elements. +UCHAR ucFakeEDIDString[];// This actually has ucFakeEdidLength elements. }ATOM_FAKE_EDID_PATCH_RECORD ; typedef struct _ATOM_PANEL_RESOLUTION_PATCH_RECORD
drivers/gpu/drm/arm/display/komeda/komeda_kms.c +7 -3
@@ -148,6 +148,7 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc,struct drm_plane *plane;struct list_head zorder_list;int order =0 , err; +u32 slave_zpos =0 ;DRM_DEBUG_ATOMIC ("[CRTC:%d:%s] calculating normalized zpos values\n" , crtc->base.id, crtc->name);
@@ -187,10 +188,13 @@ static int komeda_crtc_normalize_zpos(struct drm_crtc *crtc, plane_st->zpos, plane_st->normalized_zpos);/* calculate max slave zorder */ -if (has_bit (drm_plane_index (plane), kcrtc->slave_planes)) +if (has_bit (drm_plane_index (plane), kcrtc->slave_planes)) { + slave_zpos = plane_st->normalized_zpos; +if (to_kplane_st (plane_st)->layer_split) + slave_zpos++; kcrtc_st->max_slave_zorder = -max (plane_st->normalized_zpos, - kcrtc_st->max_slave_zorder); +max (slave_zpos, kcrtc_st->max_slave_zorder); + } } crtc_st->zpos_changed = true;
drivers/gpu/drm/drm_atomic_uapi.c +1 -1
@@ -582,7 +582,7 @@ static int drm_atomic_plane_set_property(struct drm_plane *plane, &state->fb_damage_clips, val,-1 , -sizeof (struct drm_rect ), +sizeof (struct drm_mode_rect ), &replaced);return ret; }else if (plane->funcs->atomic_set_property) {
drivers/gpu/drm/drm_crtc.c +1 -0
@@ -727,6 +727,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data, connector_set =NULL ; fb =NULL ; mode =NULL ; + num_connectors =0 ;DRM_MODESET_LOCK_ALL_END (ctx, ret);mutex_unlock (&crtc->dev->mode_config.mutex);
drivers/gpu/drm/drm_mipi_dsi.c +1 -1
@@ -221,7 +221,7 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,return dsi; } -device_set_node (&dsi->dev,of_fwnode_handle (info->node)); + dsi->dev.of_node = info->node; dsi->channel = info->channel;strlcpy (dsi->name, info->type,sizeof (dsi->name));
drivers/gpu/drm/drm_print.c +8 -5
@@ -59,8 +59,9 @@ void __drm_puts_coredump(struct drm_printer *p, const char *str) copy = iterator->remain;/* Copy out the bit of the string that we need */ -memcpy (iterator->data, - str + (iterator->start - iterator->offset), copy); +if (iterator->data) +memcpy (iterator->data, + str + (iterator->start - iterator->offset), copy); iterator->offset = iterator->start + copy; iterator->remain -= copy;
@@ -69,7 +70,8 @@ void __drm_puts_coredump(struct drm_printer *p, const char *str) len =min_t (ssize_t,strlen (str), iterator->remain); -memcpy (iterator->data + pos, str, len); +if (iterator->data) +memcpy (iterator->data + pos, str, len); iterator->offset += len; iterator->remain -= len;
@@ -99,8 +101,9 @@ void __drm_printfn_coredump(struct drm_printer *p, struct va_format *vaf)if ((iterator->offset >= iterator->start) && (len < iterator->remain)) {ssize_t pos = iterator->offset - iterator->start; -snprintf (((char *) iterator->data) + pos, - iterator->remain,"%pV" , vaf); +if (iterator->data) +snprintf (((char *) iterator->data) + pos, + iterator->remain,"%pV" , vaf); iterator->offset += len; iterator->remain -= len;
drivers/gpu/drm/exynos/exynos_drm_gsc.c +1 -1
@@ -1169,7 +1169,7 @@ static int gsc_bind(struct device *dev, struct device *master, void *data)struct exynos_drm_ipp *ipp = &ctx->ipp; ctx->drm_dev = drm_dev; - ctx->drm_dev = drm_dev; + ipp->drm_dev = drm_dev;exynos_drm_register_dma (drm_dev, dev, &ctx->dma_priv); exynos_drm_ipp_register(dev, ipp, &ipp_funcs,
drivers/gpu/drm/msm/adreno/a5xx_gpu.c +6 -2
@@ -134,9 +134,13 @@ static void a5xx_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit,OUT_PKT7 (ring,CP_SET_PROTECTED_MODE ,1 );OUT_RING (ring,1 ); -/* Enable local preemption for finegrain preemption */ +/* +* Disable local preemption by default because it requires +* user-space to be aware of it and provide additional handling +* to restore rendering state or do various flushes on switch. +*/ OUT_PKT7 (ring,CP_PREEMPT_ENABLE_LOCAL ,1 ); -OUT_RING (ring,0x1 ); +OUT_RING (ring,0x0 );/* Allow CP_CONTEXT_SWITCH_YIELD packets in the IB2 */ OUT_PKT7 (ring,CP_YIELD_ENABLE ,1 );
drivers/gpu/drm/msm/adreno/a5xx_gpu.h +1 -0
@@ -35,6 +35,7 @@ struct a5xx_gpu {uint64_t preempt_iova[MSM_GPU_MAX_RINGS ];atomic_t preempt_state; +spinlock_t preempt_start_lock;struct timer_list preempt_timer; };
drivers/gpu/drm/msm/adreno/a5xx_preempt.c +24 -2
@@ -98,12 +98,19 @@ void a5xx_preempt_trigger(struct msm_gpu *gpu)if (gpu->nr_rings ==1 )return ; +/* +* Serialize preemption start to ensure that we always make +* decision on latest state. Otherwise we can get stuck in +* lower priority or empty ring. +*/ +spin_lock_irqsave (&a5xx_gpu->preempt_start_lock, flags); +/* * Try to start preemption by moving from NONE to START. If * unsuccessful, a preemption is already in flight */ if (!try_preempt_state (a5xx_gpu,PREEMPT_NONE ,PREEMPT_START )) -return ; + goto out;/* Get the next ring to preempt to */ ring =get_next_ring (gpu);
@@ -128,9 +135,11 @@ void a5xx_preempt_trigger(struct msm_gpu *gpu)set_preempt_state (a5xx_gpu,PREEMPT_ABORT );update_wptr (gpu, a5xx_gpu->cur_ring);set_preempt_state (a5xx_gpu,PREEMPT_NONE ); -return ; + goto out; } +spin_unlock_irqrestore (&a5xx_gpu->preempt_start_lock, flags); +/* Make sure the wptr doesn't update while we're in motion */ spin_lock_irqsave (&ring->lock, flags); a5xx_gpu->preempt[ring->id]->wptr =get_wptr (ring);
@@ -154,6 +163,10 @@ void a5xx_preempt_trigger(struct msm_gpu *gpu)/* And actually start the preemption */ gpu_write (gpu,REG_A5XX_CP_CONTEXT_SWITCH_CNTL ,1 ); +return ; + +out: +spin_unlock_irqrestore (&a5xx_gpu->preempt_start_lock, flags); }void a5xx_preempt_irq (struct msm_gpu *gpu)
@@ -191,6 +204,12 @@ void a5xx_preempt_irq(struct msm_gpu *gpu)update_wptr (gpu, a5xx_gpu->cur_ring);set_preempt_state (a5xx_gpu,PREEMPT_NONE ); + +/* +* Try to trigger preemption again in case there was a submit or +* retire during ring switch +*/ +a5xx_preempt_trigger (gpu); }void a5xx_preempt_hw_init (struct msm_gpu *gpu)
@@ -207,6 +226,8 @@ void a5xx_preempt_hw_init(struct msm_gpu *gpu)return ;for (i =0 ; i < gpu->nr_rings; i++) { + a5xx_gpu->preempt[i]->data =0 ; + a5xx_gpu->preempt[i]->info =0 ; a5xx_gpu->preempt[i]->wptr =0 ; a5xx_gpu->preempt[i]->rptr =0 ; a5xx_gpu->preempt[i]->rbase = gpu->rb[i]->iova;
@@ -287,5 +308,6 @@ void a5xx_preempt_init(struct msm_gpu *gpu) } } +spin_lock_init (&a5xx_gpu->preempt_start_lock);timer_setup (&a5xx_gpu->preempt_timer, a5xx_preempt_timer,0 ); }
drivers/gpu/drm/msm/adreno/adreno_gpu.c +1 -1
@@ -247,7 +247,7 @@ adreno_request_fw(struct adreno_gpu *adreno_gpu, const char *fwname) ret =request_firmware_direct (&fw, fwname, drm->dev);if (!ret) {DRM_DEV_INFO (drm->dev,"loaded %s from legacy location\n" , - newname); + fwname); adreno_gpu->fwloc =FW_LOCATION_LEGACY ; goto out; }else if (adreno_gpu->fwloc !=FW_LOCATION_UNKNOWN ) {
drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c +1 -1
@@ -358,7 +358,7 @@ void mdp5_smp_dump(struct mdp5_smp *smp, struct drm_printer *p)drm_printf (p,"%s:%d\t%d\t%s\n" ,pipe2name (pipe), j, inuse, - plane ? plane->name :NULL ); + plane ? plane->name :"(null)" ); total += inuse; }
drivers/gpu/drm/msm/dsi/dsi_host.c +1 -1
@@ -663,7 +663,7 @@ static u32 dsi_get_pclk_rate(struct msm_dsi_host *msm_host, bool is_dual_dsi)struct drm_display_mode *mode = msm_host->mode;u32 pclk_rate; - pclk_rate = mode->clock *1000 ; + pclk_rate = mode->clock *1000u ;/* * For dual DSI mode, the current DRM mode has the complete width of the
drivers/gpu/drm/nouveau/nouveau_dmem.c +1 -1
@@ -139,7 +139,7 @@ static vm_fault_t nouveau_dmem_fault_copy_one(struct nouveau_drm *drm,if (!spage || !(args->src[0 ] &MIGRATE_PFN_MIGRATE ))return 0 ; - dpage =alloc_page_vma (GFP_HIGHUSER , vmf->vma, vmf->address); + dpage =alloc_page_vma (GFP_HIGHUSER | __GFP_ZERO, vmf->vma, vmf->address);if (!dpage)return VM_FAULT_SIGBUS ;lock_page (dpage);
drivers/gpu/drm/omapdrm/omap_drv.c +5 -0
@@ -580,6 +580,10 @@ static int omapdrm_init(struct omap_drm_private *priv, struct device *dev) soc =soc_device_match (omapdrm_soc_devices); priv->omaprev = soc ? (unsigned int )soc->data :0 ; priv->wq =alloc_ordered_workqueue ("omapdrm" ,0 ); +if (!priv->wq) { + ret = -ENOMEM ; + goto err_alloc_workqueue; + }mutex_init (&priv->list_lock);INIT_LIST_HEAD (&priv->obj_list);
@@ -633,6 +637,7 @@ static int omapdrm_init(struct omap_drm_private *priv, struct device *dev) err_gem_deinit:omap_gem_deinit (ddev);destroy_workqueue (priv->wq); +err_alloc_workqueue:omap_disconnect_pipelines (ddev);omap_crtc_pre_uninit (priv);drm_dev_put (ddev);
drivers/gpu/drm/radeon/atombios.h +1 -1
@@ -3615,7 +3615,7 @@ typedef struct _ATOM_FAKE_EDID_PATCH_RECORD {UCHAR ucRecordType;UCHAR ucFakeEDIDLength; -UCHAR ucFakeEDIDString[1 ];// This actually has ucFakeEdidLength elements. +UCHAR ucFakeEDIDString[];// This actually has ucFakeEdidLength elements. }ATOM_FAKE_EDID_PATCH_RECORD ; typedef struct _ATOM_PANEL_RESOLUTION_PATCH_RECORD
drivers/gpu/drm/radeon/evergreen_cs.c +31 -31
166 lines not on this page · raw message
drivers/gpu/drm/radeon/r100.c +45 -25
90 lines not on this page · raw message
drivers/gpu/drm/radeon/radeon_atombios.c +16 -10
@@ -1730,23 +1730,29 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct fake_edid_record = (ATOM_FAKE_EDID_PATCH_RECORD *)record;if (fake_edid_record->ucFakeEDIDLength) {struct edid *edid; -int edid_size = -max ((int )EDID_LENGTH , (int )fake_edid_record->ucFakeEDIDLength); - edid =kmalloc (edid_size,GFP_KERNEL ); +int edid_size; + +if (fake_edid_record->ucFakeEDIDLength ==128 ) + edid_size = fake_edid_record->ucFakeEDIDLength; +else + edid_size = fake_edid_record->ucFakeEDIDLength *128 ; + edid =kmemdup (&fake_edid_record->ucFakeEDIDString[0 ], + edid_size,GFP_KERNEL );if (edid) { -memcpy ((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0 ], - fake_edid_record->ucFakeEDIDLength); -if (drm_edid_is_valid (edid)) { rdev->mode_info.bios_hardcoded_edid = edid; rdev->mode_info.bios_hardcoded_edid_size = edid_size; - }else + }else {kfree (edid); + } } + record +=struct_size (fake_edid_record, + ucFakeEDIDString, + edid_size); + }else { +/* empty fake edid record must be 3 bytes long */ + record +=sizeof (ATOM_FAKE_EDID_PATCH_RECORD ) +1 ; } - record += fake_edid_record->ucFakeEDIDLength ? - fake_edid_record->ucFakeEDIDLength +2 : -sizeof (ATOM_FAKE_EDID_PATCH_RECORD );break ;case LCD_PANEL_RESOLUTION_RECORD_TYPE : panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record;
drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +2 -0
@@ -390,6 +390,8 @@ static void dw_hdmi_rk3328_setup_hpd(struct dw_hdmi *dw_hdmi, void *data)HIWORD_UPDATE (RK3328_HDMI_SDAIN_MSK |RK3328_HDMI_SCLIN_MSK ,RK3328_HDMI_SDAIN_MSK |RK3328_HDMI_SCLIN_MSK | RK3328_HDMI_HPD_IOE)); + +dw_hdmi_rk3328_read_hpd (dw_hdmi, data); }static const struct dw_hdmi_phy_ops rk3228_hdmi_phy_ops = {
drivers/gpu/drm/rockchip/rockchip_drm_vop.c +2 -2
@@ -333,8 +333,8 @@ static void scl_vop_cal_scl_fac(struct vop *vop, const struct vop_win_data *win,if (info->is_yuv) is_yuv = true; -if (dst_w >3840 ) { -DRM_DEV_ERROR (vop->dev,"Maximum dst width (3840) exceeded\n" ); +if (dst_w >4096 ) { +DRM_DEV_ERROR (vop->dev,"Maximum dst width (4096) exceeded\n" );return ; }
drivers/gpu/drm/stm/drv.c +3 -1
@@ -208,12 +208,14 @@ static int stm_drm_platform_probe(struct platform_device *pdev) ret =drm_dev_register (ddev,0 );if (ret) - goto err_put; + goto err_unload;drm_fbdev_generic_setup (ddev,16 );return 0 ; +err_unload: +drv_unload (ddev); err_put:drm_dev_put (ddev);
drivers/gpu/drm/vboxvideo/hgsmi_base.c +9 -1
@@ -135,7 +135,15 @@ int hgsmi_update_pointer_shape(struct gen_pool *ctx, u32 flags, flags |=VBOX_MOUSE_POINTER_VISIBLE ; } - p =hgsmi_buffer_alloc (ctx,sizeof (*p) + pixel_len,HGSMI_CH_VBVA , +/* +* The 4 extra bytes come from switching struct vbva_mouse_pointer_shape +* from having a 4 bytes fixed array at the end to using a proper VLA +* at the end. These 4 extra bytes were not subtracted from sizeof(*p) +* before the switch to the VLA, so this way the behavior is unchanged. +* Chances are these 4 extra bytes are not necessary but they are kept +* to avoid regressions. +*/ + p =hgsmi_buffer_alloc (ctx,sizeof (*p) + pixel_len +4 ,HGSMI_CH_VBVA ,VBVA_MOUSE_POINTER_SHAPE );if (!p)return -ENOMEM ;
drivers/gpu/drm/vboxvideo/vboxvideo.h +1 -3
@@ -351,10 +351,8 @@ struct vbva_mouse_pointer_shape {* Bytes in the gap between the AND and the XOR mask are undefined. * XOR mask scanlines have no gap between them and size of XOR mask is: * xor_len = width * 4 * height. -* -* Preallocate 4 bytes for accessing actual data as p->data. */ -u8 data[4 ]; +u8 data[]; } __packed;/* pointer is visible */
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +1 -0
@@ -1410,6 +1410,7 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev,DRM_ERROR ("Surface size cannot exceed %dx%d" , dev_priv->texture_max_width, dev_priv->texture_max_height); + ret = -EINVAL ; goto err_out; }
drivers/hid/hid-ids.h +2 -0
@@ -954,6 +954,8 @@#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3220_SERIES 0xc056#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3215_SERIES 0xc057#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES 0xc058 +#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3325_SERIES 0x430c +#define USB_DEVICE_ID_PLANTRONICS_ENCOREPRO_500_SERIES 0x431e#define USB_VENDOR_ID_PANASONIC 0x04da#define USB_DEVICE_ID_PANABOARD_UBT780 0x1044
drivers/hid/hid-plantronics.c +23 -0
@@ -38,8 +38,10 @@ (usage->hid & HID_USAGE_PAGE) == HID_UP_CONSUMER)#define PLT_QUIRK_DOUBLE_VOLUME_KEYS BIT(0) +#define PLT_QUIRK_FOLLOWED_OPPOSITE_VOLUME_KEYS BIT(1)#define PLT_DOUBLE_KEY_TIMEOUT 5/* ms */ +#define PLT_FOLLOWED_OPPOSITE_KEY_TIMEOUT 220/* ms */ struct plt_drv_data {unsigned long device_type;
@@ -137,6 +139,21 @@ static int plantronics_event(struct hid_device *hdev, struct hid_field *field, drv_data->last_volume_key_ts = cur_ts; } +if (drv_data->quirks &PLT_QUIRK_FOLLOWED_OPPOSITE_VOLUME_KEYS ) { +unsigned long prev_ts, cur_ts; + +/* Usages are filtered in plantronics_usages. */ + +if (!value)/* Handle key presses only. */ +return 0 ; + + prev_ts = drv_data->last_volume_key_ts; + cur_ts = jiffies; +if (jiffies_to_msecs (cur_ts - prev_ts) <=PLT_FOLLOWED_OPPOSITE_KEY_TIMEOUT ) +return 1 ;/* Ignore the followed opposite volume key. */ + + drv_data->last_volume_key_ts = cur_ts; + }return 0 ; }
@@ -210,6 +227,12 @@ static const struct hid_device_id plantronics_devices[] = { {HID_USB_DEVICE (USB_VENDOR_ID_PLANTRONICS , USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES), .driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS }, + { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, + USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3325_SERIES), + .driver_data = PLT_QUIRK_FOLLOWED_OPPOSITE_VOLUME_KEYS }, + { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, + USB_DEVICE_ID_PLANTRONICS_ENCOREPRO_500_SERIES), + .driver_data = PLT_QUIRK_FOLLOWED_OPPOSITE_VOLUME_KEYS }, { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, HID_ANY_ID) }, { } };
drivers/hid/intel-ish-hid/ishtp-fw-loader.c +1 -1
@@ -630,7 +630,7 @@ static int ish_fw_xfer_direct_dma(struct ishtp_cl_data *client_data,const struct firmware *fw, const struct shim_fw_info fw_info) { - int rv; + int rv = 0;void *dma_buf;dma_addr_t dma_buf_phy;u32 fragment_offset, fragment_size, payload_max_size;
drivers/hwmon/max16065.c +3 -2
@@ -114,9 +114,10 @@ static inline int LIMIT_TO_MV(int limit, int range)return limit * range /256 ; } -static inline int MV_TO_LIMIT (int mv,int range) +static inline int MV_TO_LIMIT (unsigned long mv,int range) { -return clamp_val (DIV_ROUND_CLOSEST (mv *256 , range),0 ,255 ); + mv =clamp_val (mv,0 ,ULONG_MAX /256 ); +return DIV_ROUND_CLOSEST (clamp_val (mv *256 ,0 , range *255 ), range); }static inline int ADC_TO_CURR (int adc,int gain)
drivers/hwmon/ntc_thermistor.c +1 -0
@@ -58,6 +58,7 @@ static const struct platform_device_id ntc_thermistor_id[] = { [NTC_NCP21WB473] = { "ncp21wb473", TYPE_NCPXXWB473 }, [NTC_LAST ] = { }, }; +MODULE_DEVICE_TABLE (platform ,ntc_thermistor_id );/* * A compensation table should be sorted by the values of .ohm
drivers/hwtracing/coresight/coresight-tmc-etr.c +1 -1
@@ -257,6 +257,7 @@ void tmc_free_sg_table(struct tmc_sg_table *sg_table) {tmc_free_table_pages (sg_table);tmc_free_data_pages (sg_table); +kfree (sg_table); }/*
@@ -337,7 +338,6 @@ struct tmc_sg_table *tmc_alloc_sg_table(struct device *dev, rc =tmc_alloc_table_pages (sg_table);if (rc) {tmc_free_sg_table (sg_table); -kfree (sg_table);return ERR_PTR (rc); }
drivers/i2c/busses/i2c-aspeed.c +8 -8
@@ -172,6 +172,13 @@ struct aspeed_i2c_bus {static int aspeed_i2c_reset (struct aspeed_i2c_bus *bus); +/* precondition: bus.lock has been acquired. */ +static void aspeed_i2c_do_stop (struct aspeed_i2c_bus *bus) +{ + bus->master_state =ASPEED_I2C_MASTER_STOP ; +writel (ASPEED_I2CD_M_STOP_CMD , bus->base +ASPEED_I2C_CMD_REG ); +} +static int aspeed_i2c_recover_bus (struct aspeed_i2c_bus *bus) {unsigned long time_left, flags;
@@ -189,7 +196,7 @@ static int aspeed_i2c_recover_bus(struct aspeed_i2c_bus *bus) command);reinit_completion (&bus->cmd_complete); -writel (ASPEED_I2CD_M_STOP_CMD , bus->base +ASPEED_I2C_CMD_REG ); +aspeed_i2c_do_stop (bus);spin_unlock_irqrestore (&bus->lock, flags); time_left = wait_for_completion_timeout(
@@ -385,13 +392,6 @@ static void aspeed_i2c_do_start(struct aspeed_i2c_bus *bus)writel (command, bus->base +ASPEED_I2C_CMD_REG ); } -/* precondition: bus.lock has been acquired. */ -static void aspeed_i2c_do_stop (struct aspeed_i2c_bus *bus) -{ - bus->master_state =ASPEED_I2C_MASTER_STOP ; -writel (ASPEED_I2CD_M_STOP_CMD , bus->base +ASPEED_I2C_CMD_REG ); -} -/* precondition: bus.lock has been acquired. */ static void aspeed_i2c_next_msg_or_stop (struct aspeed_i2c_bus *bus) {
drivers/i2c/busses/i2c-i801.c +8 -1
@@ -1861,8 +1861,15 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)i801_add_tco (priv); +/* +* adapter.name is used by platform code to find the main I801 adapter +* to instantiante i2c_clients, do not change. +*/ snprintf (priv->adapter.name,sizeof (priv->adapter.name), -"SMBus I801 adapter at %04lx" , priv->smba); +"SMBus %s adapter at %04lx" , + (priv->features &FEATURE_IDF ) ?"I801 IDF" :"I801" , + priv->smba); + err =i2c_add_adapter (&priv->adapter);if (err) {platform_device_unregister (priv->tco_pdev);
drivers/i2c/busses/i2c-isch.c +1 -2
@@ -99,8 +99,7 @@ static int sch_transaction(void)if (retries >MAX_RETRIES ) {dev_err (&sch_adapter.dev,"SMBus Timeout!\n" ); result = -ETIMEDOUT ; - } -if (temp &0x04 ) { + }else if (temp &0x04 ) { result = -EIO ;dev_dbg (&sch_adapter.dev,"Bus collision! SMBus may be " "locked until next hard reset. (sorry!)\n" );
drivers/i2c/busses/i2c-qcom-geni.c +26 -33
123 lines not on this page · raw message
drivers/i2c/busses/i2c-stm32f7.c +3 -3
@@ -2070,7 +2070,7 @@ static int stm32f7_i2c_runtime_suspend(struct device *dev)struct stm32f7_i2c_dev *i2c_dev =dev_get_drvdata (dev);if (!stm32f7_i2c_is_slave_registered (i2c_dev)) -clk_disable_unprepare (i2c_dev->clk); +clk_disable (i2c_dev->clk);return 0 ; }
@@ -2081,9 +2081,9 @@ static int stm32f7_i2c_runtime_resume(struct device *dev)int ret;if (!stm32f7_i2c_is_slave_registered (i2c_dev)) { - ret =clk_prepare_enable (i2c_dev->clk); + ret =clk_enable (i2c_dev->clk);if (ret) { -dev_err (dev,"failed to prepare_enable clock\n" ); +dev_err (dev,"failed to enable clock\n" );return ret; } }
drivers/i2c/busses/i2c-xiic.c +9 -10
@@ -469,14 +469,17 @@ static irqreturn_t xiic_process(int irq, void *dev_id) goto out; } -xiic_fill_tx_fifo (i2c); - -/* current message sent and there is space in the fifo */ -if (!xiic_tx_space (i2c) &&xiic_tx_fifo_space (i2c) >=2 ) { +if (xiic_tx_space (i2c)) { +xiic_fill_tx_fifo (i2c); + }else { +/* current message fully written */ dev_dbg (i2c->adap.dev.parent,"%s end of message sent, nmsgs: %d\n" , __func__, i2c->nmsgs); -if (i2c->nmsgs >1 ) { +/* Don't move onto the next message until the TX FIFO empties, +* to ensure that a NAK is not missed. +*/ +if (i2c->nmsgs >1 && (pend &XIIC_INTR_TX_EMPTY_MASK )) { i2c->nmsgs--; i2c->tx_msg++; xfer_more =1 ;
@@ -487,11 +490,7 @@ static irqreturn_t xiic_process(int irq, void *dev_id)"%s Got TX IRQ but no more to do...\n" , __func__); } - }else if (!xiic_tx_space (i2c) && (i2c->nmsgs ==1 )) -/* current frame is sent and is last, -* make sure to disable tx half -*/ -xiic_irq_dis (i2c,XIIC_INTR_TX_HALF_MASK ); + } } out:dev_dbg (i2c->adap.dev.parent,"%s clr: 0x%x\n" , __func__, clr);
drivers/iio/adc/Kconfig +4 -0
@@ -980,6 +980,8 @@ config TI_ADS8344 config TI_ADS8688 tristate "Texas Instruments ADS8688" depends on SPI && OF + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER help If you say yes here you get support for Texas Instruments ADS8684 and and ADS8688 ADC chips
@@ -990,6 +992,8 @@ config TI_ADS8688 config TI_ADS124S08 tristate "Texas Instruments ADS124S08" depends on SPI && OF + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER help If you say yes here you get support for Texas Instruments ADS124S08 and ADS124S06 ADC chips
drivers/iio/adc/ad7606.c +4 -4
@@ -238,9 +238,9 @@ static int ad7606_write_os_hw(struct iio_dev *indio_dev, int val)struct ad7606_state *st =iio_priv (indio_dev);DECLARE_BITMAP (values,3 ); - values[0 ] = val; + values[0 ] = val &GENMASK (2 ,0 ); -gpiod_set_array_value (ARRAY_SIZE (values), st->gpio_os->desc, +gpiod_set_array_value (st->gpio_os->ndescs, st->gpio_os->desc, st->gpio_os->info, values);/* AD7616 requires a reset to update value */
@@ -445,7 +445,7 @@ static int ad7606_request_gpios(struct ad7606_state *st)return PTR_ERR (st->gpio_range); st->gpio_standby =devm_gpiod_get_optional (dev,"standby" , -GPIOD_OUT_HIGH ); +GPIOD_OUT_LOW );if (IS_ERR (st->gpio_standby))return PTR_ERR (st->gpio_standby);
@@ -706,7 +706,7 @@ static int ad7606_suspend(struct device *dev)if (st->gpio_standby) {gpiod_set_value (st->gpio_range,1 ); -gpiod_set_value (st->gpio_standby,0 ); +gpiod_set_value (st->gpio_standby,1 ); }return 0 ;
drivers/iio/adc/ad7606_spi.c +3 -2
@@ -249,8 +249,9 @@ static int ad7616_sw_mode_config(struct iio_dev *indio_dev)static int ad7606B_sw_mode_config (struct iio_dev *indio_dev) {struct ad7606_state *st =iio_priv (indio_dev); -unsigned long os[3 ] = {1 }; +DECLARE_BITMAP (os,3 ); +bitmap_fill (os,3 );/* * Software mode is enabled when all three oversampling * pins are set to high. If oversampling gpios are defined
@@ -258,7 +259,7 @@ static int ad7606B_sw_mode_config(struct iio_dev *indio_dev)* otherwise, they must be hardwired to VDD */ if (st->gpio_os) { -gpiod_set_array_value (ARRAY_SIZE (os), +gpiod_set_array_value (st->gpio_os->ndescs, st->gpio_os->desc, st->gpio_os->info, os); }/* OS of 128 and 256 are available only in software mode */
drivers/iio/common/hid-sensors/hid-sensor-trigger.c +1 -1
@@ -33,7 +33,7 @@ static ssize_t _hid_sensor_set_report_latency(struct device *dev, latency = integer *1000 + fract /1000 ; ret =hid_sensor_set_report_latency (attrb, latency);if (ret <0 ) -return len; +return ret; attrb->latency_ms =hid_sensor_get_report_latency (attrb);
drivers/iio/dac/Kconfig +2 -0
@@ -124,6 +124,7 @@ config AD5624R_SPI config LTC1660 tristate "Linear Technology LTC1660/LTC1665 DAC SPI driver" depends on SPI + select REGMAP_SPI help Say yes here to build support for Linear Technology LTC1660 and LTC1665 Digital to Analog Converters.
@@ -346,6 +347,7 @@ config STM32_DAC config STM32_DAC_CORE tristate + select REGMAP_MMIO config TI_DAC082S085 tristate "Texas Instruments 8/10/12-bit 2/4-channel DAC driver"
drivers/iio/light/opt3001.c +4 -0
@@ -137,6 +137,10 @@ static const struct opt3001_scale opt3001_scales[] = { .val = 20966, .val2 = 400000, }, + { + .val = 41932, + .val2 = 800000, + }, { .val = 83865, .val2 = 600000,
drivers/iio/magnetometer/ak8975.c +16 -16
@@ -660,22 +660,8 @@ static int ak8975_start_read_axis(struct ak8975_data *data,if (ret <0 )return ret; -/* This will be executed only for non-interrupt based waiting case */ -if (ret & data->def->ctrl_masks[ST1_DRDY ]) { - ret =i2c_smbus_read_byte_data (client, - data->def->ctrl_regs[ST2 ]);
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_fp.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_hem.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/media/common/videobuf2/videobuf2-core.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/core.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/Kconfig +32 -32
64 lines not on this page · raw message
drivers/net/ethernet/broadcom/bcmsysport.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/emulex/benet/be_main.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/faraday/ftgmac100.c +18 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/faraday/ftgmac100.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/fs_enet/Kconfig +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hip04_eth.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns_mdio.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/i825xx/sun3_82586.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_sched.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_switch.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igb/igb_main.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/lib/pci_vsc.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfp_net_common.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/r8169_main.c +32 -3
Lines of this file are not shown. View the raw message.
drivers/net/slip/slhc.c +34 -23
57 lines not on this page · raw message
drivers/net/wireless/ath/ar5523/Kconfig +7 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/wmi-tlv.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/Kconfig +29 -29
58 lines not on this page · raw message
drivers/net/wireless/ath/ath9k/hif_usb.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_drv_debug.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/atmel/Kconfig +21 -21
42 lines not on this page · raw message
drivers/net/wireless/intel/iwlegacy/common.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/fw.c +16 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/scan.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/fw.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/scan.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ralink/rt2x00/Kconfig +22 -22
44 lines not on this page · raw message
drivers/net/wireless/realtek/rtw88/Kconfig +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/rtw8822c.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pci-keystone.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pcie-xilinx-nwl.c +10 -14
Lines of this file are not shown. View the raw message.
drivers/pinctrl/mvebu/pinctrl-dove.c +29 -13
42 lines not on this page · raw message
drivers/power/supply/max17042_battery.c +4 -1
Lines of this file are not shown. View the raw message.
fs/nilfs2/dir.c +27 -23
50 lines not on this page · raw message
fs/nilfs2/namei.c +29 -13
42 lines not on this page · raw message
fs/proc/base.c +60 -1
61 lines not on this page · raw message
fs/unicode/mkutf8data.c +0 -70
70 lines not on this page · raw message
fs/unicode/utf8data.h_shipped +3346 -3357
6,703 lines not on this page · raw message
include/drm/drm_print.h +53 -1
54 lines not on this page · raw message
include/trace/events/sched.h +84 -0
84 lines not on this page · raw message
include/uapi/linux/netfilter/nf_tables.h +1 -1
Lines of this file are not shown. View the raw message.
kernel/locking/lockdep.c +125 -90
215 lines not on this page · raw message
kernel/resource.c +50 -8
58 lines not on this page · raw message
kernel/trace/trace_kprobe.c +76 -0
76 lines not on this page · raw message
net/ipv4/devinet.c +27 -14
41 lines not on this page · raw message
net/ipv4/inet_fragment.c +57 -13
70 lines not on this page · raw message
net/ipv6/netfilter/nf_conntrack_reasm.c +1 -1
Lines of this file are not shown. View the raw message.
net/mac80211/key.c +26 -18
44 lines not on this page · raw message
net/mac80211/tx.c +46 -32
78 lines not on this page · raw message
net/mac80211/util.c +36 -9
45 lines not on this page · raw message
sound/pci/hda/patch_realtek.c +79 -46
125 lines not on this page · raw message
sound/soc/meson/axg-card.c +29 -377
406 lines not on this page · raw message
sound/soc/meson/meson-card-utils.c new file +385 -0
385 lines not on this page · raw message
sound/soc/meson/meson-card.h new file +55 -0
55 lines not on this page · raw message
tools/testing/selftests/bpf/map_tests/sk_storage_map.c +1 -1
Lines of this file are not shown. View the 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/prog_tests/tcp_rtt.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_lru_map.c +2 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/breakpoints/breakpoint_test_arm64.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/breakpoints/step_after_suspend_test.c +4 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/vDSO/parse_vdso.c +2 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.