Linux 5.10.258
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.258 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/vm/hugetlbfs_reserv.rst | 2 Makefile | 2 arch/arm/boot/dts/mt7623.dtsi | 2 arch/arm/mach-integrator/integrator_cp.c | 13 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts | 3 arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts | 6 arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi | 16 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 2 arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts | 72 ++ arch/mips/include/asm/cpu-features.h | 1 arch/mips/include/asm/cpu-info.h | 2 arch/mips/include/asm/mipsregs.h | 2 arch/mips/kernel/cpu-probe.c | 13 arch/mips/kernel/cpu-r3k-probe.c | 2 arch/mips/mm/tlb-r4k.c | 281 +++++++-- arch/parisc/kernel/syscalls/syscall.tbl | 2 arch/powerpc/kexec/file_load_64.c | 2 arch/powerpc/net/bpf_jit_comp64.c | 20 arch/powerpc/platforms/44x/warp.c | 2 arch/riscv/include/asm/pgtable.h | 2 arch/s390/kernel/debug.c | 8 arch/um/drivers/cow_user.c | 8 arch/x86/include/asm/segment.h | 8 arch/x86/kernel/uprobes.c | 24 arch/x86/kvm/svm/nested.c | 5 arch/x86/kvm/svm/sev.c | 11 arch/x86/kvm/x86.c | 14 block/blk-cgroup.c | 4 block/blk-mq.c | 6 block/blk.h | 3 block/elevator.c | 4 crypto/af_alg.c | 2 crypto/authencesn.c | 5 crypto/pcrypt.c | 7 drivers/acpi/video_detect.c | 8 drivers/ata/ahci.c | 14 drivers/base/core.c | 26 drivers/base/dd.c | 12 drivers/base/devres.c | 2 drivers/block/drbd/drbd_nl.c | 8 drivers/bluetooth/hci_ldisc.c | 51 + drivers/cdrom/cdrom.c | 73 +- drivers/char/ipmi/ipmi_si_intf.c | 70 +- drivers/char/ipmi/ipmi_ssif.c | 74 +- drivers/char/tpm/tpm_tis_core.c | 4 drivers/clk/clk-qoriq.c | 17 drivers/clk/clk-xgene.c | 2 drivers/clk/imx/clk-imx6q.c | 12 drivers/clk/imx/clk-imx8mq.c | 4 drivers/clk/qcom/dispcc-sc7180.c | 8 drivers/clk/qcom/dispcc-sm8250.c | 6 drivers/cpuidle/cpuidle-powernv.c | 5 drivers/cpuidle/cpuidle-pseries.c | 5 drivers/crypto/atmel-aes.c | 2 drivers/crypto/atmel-ecc.c | 1 drivers/crypto/atmel-tdes.c | 8 drivers/crypto/ccp/ccp-crypto-aes.c | 7 drivers/crypto/ccp/sev-dev.c | 19 drivers/crypto/ccree/cc_hash.c | 1 drivers/crypto/hisilicon/sec/sec_algs.c | 2 drivers/crypto/sa2ul.c | 4 drivers/dma/mxs-dma.c | 1 drivers/firmware/efi/capsule-loader.c | 2 drivers/firmware/google/framebuffer-coreboot.c | 2 drivers/gpio/gpiolib-cdev.c | 21 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 3 drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 66 ++ drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 3 drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 4 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 9 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 72 +- drivers/gpu/drm/amd/display/dc/bios/bios_parser.c | 62 ++ drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c | 9 drivers/gpu/drm/amd/display/dc/calcs/Makefile | 3 drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c | 4 drivers/gpu/drm/amd/display/dc/dcn30/Makefile | 4 drivers/gpu/drm/amd/display/dc/dsc/Makefile | 3 drivers/gpu/drm/amd/display/include/grph_object_ctrl_defs.h | 4 drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c | 15 drivers/gpu/drm/amd/pm/powerplay/smumgr/ci_smumgr.c | 28 drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c | 6 drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 16 drivers/gpu/drm/drm_gem_framebuffer_helper.c | 4 drivers/gpu/drm/gma500/oaktrail_hdmi.c | 1 drivers/gpu/drm/i915/display/intel_dp.c | 9 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 26 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 drivers/gpu/drm/msm/adreno/a6xx_hfi.c | 14 drivers/gpu/drm/msm/dsi/dsi_cfg.c | 4 drivers/gpu/drm/msm/dsi/dsi_cfg.h | 2 drivers/gpu/drm/panel/panel-simple.c | 2 drivers/gpu/drm/panfrost/panfrost_drv.c | 2 drivers/gpu/drm/radeon/ci_dpm.c | 9 drivers/gpu/drm/sun4i/sun4i_backend.c | 3 drivers/gpu/drm/vc4/vc4_bo.c | 3 drivers/gpu/drm/vc4/vc4_gem.c | 19 drivers/hid/hid-alps.c | 3 drivers/hid/hid-asus.c | 28 drivers/hid/hid-core.c | 3 drivers/hid/hid-ids.h | 3 drivers/hid/hid-quirks.c | 3 drivers/hid/hid-roccat.c | 2 drivers/hid/usbhid/hid-core.c | 2 drivers/hwmon/pmbus/adm1266.c | 32 - drivers/i2c/busses/i2c-s3c2410.c | 7 drivers/i3c/master.c | 7 drivers/iio/adc/ad7768-1.c | 9 drivers/infiniband/core/addr.c | 3 drivers/infiniband/core/iwpm_msg.c | 6 drivers/infiniband/core/mad.c | 5 drivers/infiniband/hw/mlx4/srq.c | 4 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 4 drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 2 drivers/infiniband/sw/rxe/rxe_recv.c | 14 drivers/infiniband/sw/siw/siw_qp_rx.c | 15 drivers/iommu/intel/iommu.c | 3 drivers/irqchip/irq-ath79-cpu.c | 7 drivers/irqchip/irq-pic32-evic.c | 2 drivers/mailbox/mailbox-test.c | 39 - drivers/mailbox/mailbox.c | 9 drivers/md/bcache/super.c | 8 drivers/md/dm-cache-metadata.c | 24 drivers/md/dm-cache-metadata.h | 5 drivers/md/dm-cache-policy-smq.c | 4 drivers/md/dm-cache-target.c | 111 +++ drivers/md/dm-ioctl.c | 6 drivers/md/dm-log.c | 6 drivers/md/dm-raid1.c | 6 drivers/md/dm-verity-fec.c | 8 drivers/md/raid10.c | 2 drivers/md/raid5-cache.c | 48 + drivers/md/raid5.c | 8 drivers/media/dvb-frontends/dib8000.c | 4 drivers/media/i2c/imx219.c | 3 drivers/media/rc/streamzap.c | 12 drivers/media/rc/xbox_remote.c | 9 drivers/media/test-drivers/vidtv/vidtv_bridge.c | 4 drivers/media/test-drivers/vidtv/vidtv_channel.c | 4 drivers/media/test-drivers/vidtv/vidtv_mux.c | 4 drivers/media/test-drivers/vidtv/vidtv_ts.c | 48 - drivers/media/test-drivers/vidtv/vidtv_ts.h | 4 drivers/media/usb/as102/as102_usb_drv.c | 2 drivers/media/usb/em28xx/em28xx-video.c | 14 drivers/media/usb/hackrf/hackrf.c | 7 drivers/media/usb/uvc/uvc_driver.c | 2 drivers/media/usb/uvc/uvc_queue.c | 3 drivers/media/usb/uvc/uvcvideo.h | 7 drivers/memory/tegra/tegra124-emc.c | 2 drivers/memory/tegra/tegra30-emc.c | 6 drivers/mfd/mc13xxx-core.c | 2 drivers/misc/ibmasm/ibmasmfs.c | 7 drivers/misc/ibmasm/lowlevel.c | 12 drivers/misc/ibmasm/remote.c | 5 drivers/mmc/core/block.c | 12 drivers/mmc/core/queue.h | 3 drivers/mtd/devices/docg3.c | 3 drivers/mtd/maps/physmap-gemini.c | 2 drivers/mtd/nand/raw/sunxi_nand.c | 6 drivers/net/bareudp.c | 24 drivers/net/can/spi/mcp251x.c | 29 drivers/net/dsa/sja1105/sja1105_static_config.c | 6 drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c | 2 drivers/net/ethernet/atheros/ag71xx.c | 3 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 15 drivers/net/ethernet/cirrus/cs89x0.c | 2 drivers/net/ethernet/cortina/gemini.c | 21 drivers/net/ethernet/ibm/ibmveth.c | 22 drivers/net/ethernet/ibm/ibmveth.h | 1 drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 8 drivers/net/ethernet/intel/e1000e/netdev.c | 1 drivers/net/ethernet/intel/i40e/i40e_main.c | 1 drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 4 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 1 drivers/net/ethernet/netronome/nfp/nfpcore/nfp_target.c | 17 drivers/net/hamradio/6pack.c | 39 - drivers/net/netdevsim/dev.c | 2 drivers/net/phy/dp83869.c | 13 drivers/net/ppp/ppp_generic.c | 5 drivers/net/ppp/pppoe.c | 8 drivers/net/slip/slhc.c | 49 + drivers/net/tap.c | 23 drivers/net/usb/cdc-phonet.c | 7 drivers/net/usb/lan78xx.c | 29 drivers/net/usb/rtl8150.c | 12 drivers/net/vrf.c | 15 drivers/net/wan/lapbether.c | 23 drivers/net/wireless/ath/ath11k/hal.c | 14 drivers/net/wireless/ath/ath5k/base.c | 3 drivers/net/wireless/ath/ath9k/channel.c | 6 drivers/net/wireless/broadcom/b43/xmit.c | 3 drivers/net/wireless/broadcom/b43legacy/xmit.c | 3 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 3 drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 31 - drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h | 5 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c | 5 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 3 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 12 drivers/net/wireless/broadcom/brcm80211/include/soc.h | 2 drivers/net/wireless/mac80211_hwsim.c | 1 drivers/net/wireless/marvell/mwifiex/11n_aggr.c | 1 drivers/net/wireless/realtek/rtlwifi/pci.c | 1 drivers/net/wireless/rsi/rsi_common.h | 5 drivers/net/wireless/ti/wl1251/tx.c | 8 drivers/nfc/trf7970a.c | 3 drivers/nvme/target/core.c | 2 drivers/parisc/lasi.c | 12 drivers/pci/controller/dwc/pcie-tegra194.c | 10 drivers/pci/controller/pci-hyperv.c | 8 drivers/pci/pci.c | 48 - drivers/pci/pcie/aer.c | 2 drivers/pcmcia/rsrc_nonstatic.c | 6 drivers/phy/marvell/phy-mvebu-a3700-utmi.c | 5 drivers/pinctrl/nomadik/pinctrl-abx500.c | 2 drivers/pinctrl/pinctrl-pic32.c | 20 drivers/platform/x86/dell_rbu.c | 6 drivers/platform/x86/intel-hid.c | 6 drivers/platform/x86/surfacepro3_button.c | 1 drivers/power/supply/max17042_battery.c | 2 drivers/regulator/act8945a-regulator.c | 3 drivers/regulator/max77650-regulator.c | 2 drivers/rtc/class.c | 5 drivers/rtc/interface.c | 12 drivers/rtc/rtc-abx80x.c | 2 drivers/s390/cio/css.c | 2 drivers/scsi/isci/host.c | 3 drivers/scsi/qla2xxx/qla_init.c | 20 drivers/scsi/sg.c | 29 drivers/scsi/sr.c | 25 drivers/scsi/sr.h | 1 drivers/soc/qcom/ocmem.c | 7 drivers/soc/qcom/qcom_aoss.c | 2 drivers/soc/ti/omap_prm.c | 1 drivers/spi/spi-fsl-qspi.c | 3 drivers/spi/spi-imx.c | 1 drivers/spi/spi-mpc52xx.c | 3 drivers/spi/spi-mtk-nor.c | 4 drivers/spi/spi-orion.c | 6 drivers/spi/spi-sprd.c | 3 drivers/spi/spi-ti-qspi.c | 1 drivers/spi/spi-topcliff-pch.c | 6 drivers/spi/spi-zynqmp-gqspi.c | 4 drivers/staging/media/atomisp/pci/atomisp_ioctl.c | 4 drivers/staging/rtl8723bs/core/rtw_security.c | 2 drivers/staging/sm750fb/sm750.c | 3 drivers/target/target_core_configfs.c | 2 drivers/target/target_core_sbc.c | 3 drivers/thermal/intel/int340x_thermal/int3400_thermal.c | 9 drivers/thermal/spear_thermal.c | 2 drivers/thermal/sprd_thermal.c | 4 drivers/tty/hvc/hvc_iucv.c | 11 drivers/usb/class/usblp.c | 3 drivers/usb/common/ulpi.c | 5 drivers/usb/gadget/function/f_ncm.c | 4 drivers/usb/gadget/function/f_phonet.c | 9 drivers/usb/gadget/udc/omap_udc.c | 4 drivers/usb/gadget/udc/renesas_usb3.c | 7 drivers/usb/host/xhci.c | 1 drivers/usb/serial/option.c | 6 drivers/usb/storage/unusual_devs.h | 7 drivers/usb/usbip/usbip_common.c | 12 drivers/vhost/net.c | 4 drivers/video/backlight/sky81452-backlight.c | 3 drivers/video/fbdev/matrox/g450_pll.c | 2 drivers/video/fbdev/offb.c | 7 drivers/video/fbdev/tdfxfb.c | 3 drivers/video/fbdev/udlfb.c | 34 + fs/adfs/super.c | 3 fs/btrfs/extent_io.c | 4 fs/btrfs/extent_io.h | 12 fs/btrfs/inode.c | 30 - fs/ceph/xattr.c | 1 fs/cifs/cifs_spnego.c | 16 fs/cifs/connect.c | 17 fs/ext2/inode.c | 14 fs/ext4/xattr.c | 4 fs/fuse/control.c | 4 fs/fuse/readdir.c | 4 fs/gfs2/dir.c | 6 fs/gfs2/glops.c | 4 fs/isofs/export.c | 2 fs/isofs/rock.c | 9 fs/nfs/blocklayout/blocklayout.c | 4 fs/nilfs2/dat.c | 3 fs/nilfs2/ioctl.c | 6 fs/notify/fsnotify.c | 2 fs/notify/inotify/inotify_user.c | 1 fs/notify/mark.c | 18 fs/ocfs2/alloc.c | 2 fs/ocfs2/aops.c | 75 +- fs/ocfs2/cluster/nodemanager.c | 2 fs/ocfs2/dir.c | 4 fs/ocfs2/dlm/dlmdomain.c | 10 fs/ocfs2/file.c | 4 fs/ocfs2/inode.c | 33 + fs/ocfs2/ioctl.c | 18 fs/ocfs2/localalloc.c | 6 fs/ocfs2/mmap.c | 7 fs/ocfs2/namei.c | 2 fs/ocfs2/ocfs2.h | 4 fs/ocfs2/ocfs2_trace.h | 10 fs/ocfs2/quota_global.c | 2 fs/ocfs2/resize.c | 22 fs/ocfs2/xattr.c | 6 fs/omfs/inode.c | 6 fs/pstore/ram_core.c | 4 fs/quota/dquot.c | 38 + fs/sysfs/group.c | 2 fs/udf/misc.c | 8 fs/userfaultfd.c | 2 include/dt-bindings/clock/qcom,dispcc-sc7180.h | 7 include/linux/acpi.h | 6 include/linux/cdrom.h | 1 include/linux/dev_printk.h | 10 include/linux/device.h | 48 + include/linux/dmi.h | 5 include/linux/fsnotify_backend.h | 1 include/linux/kvm_host.h | 3 include/linux/padata.h | 4 include/linux/ppp_defs.h | 30 + include/linux/printk.h | 5 include/linux/quotaops.h | 9 include/linux/rtc.h | 2 include/linux/spinlock_up.h | 20 include/linux/string.h | 12 include/linux/tpm_eventlog.h | 9 include/linux/uprobes.h | 1 include/linux/usb.h | 3 include/net/flow_dissector.h | 22 include/net/ipv6.h | 6 include/net/mac80211.h | 4 include/net/pie.h | 2 include/net/red.h | 1 include/net/route.h | 6 include/net/udp_tunnel.h | 15 include/sound/compress_driver.h | 2 include/trace/events/btrfs.h | 9 include/trace/events/ib_mad.h | 13 include/trace/events/rxrpc.h | 8 include/uapi/linux/rtc.h | 5 include/video/udlfb.h | 1 io_uring/io-wq.c | 3 io_uring/io_uring.c | 35 - kernel/audit.c | 4 kernel/auditsc.c | 2 kernel/bpf/local_storage.c | 2 kernel/cgroup/rdma.c | 2 kernel/events/uprobes.c | 10 kernel/padata.c | 136 +--- kernel/taskstats.c | 1 kernel/time/alarmtimer.c | 2 kernel/trace/ring_buffer.c | 8 kernel/trace/trace_branch.c | 8 kernel/trace/trace_events_hist.c | 12 kernel/trace/trace_probe.c | 2 kernel/trace/tracing_map.c | 17 lib/kunit/Kconfig | 5 lib/ts_kmp.c | 18 mm/backing-dev.c | 5 mm/kasan/init.c | 8 net/batman-adv/bat_iv_ogm.c | 85 ++ net/batman-adv/bridge_loop_avoidance.c | 92 ++- net/batman-adv/distributed-arp-table.c | 3 net/batman-adv/fragmentation.c | 58 + net/batman-adv/gateway_client.c | 4 net/batman-adv/originator.c | 4 net/batman-adv/tp_meter.c | 32 - net/batman-adv/types.h | 6 net/bluetooth/bnep/core.c | 2 net/bluetooth/hci_event.c | 3 net/bluetooth/l2cap_core.c | 8 net/bluetooth/l2cap_sock.c | 9 net/bpf/test_run.c | 20 net/caif/cfsrvl.c | 14 net/can/raw.c | 11 net/ceph/crush/crush.c | 6 net/ceph/osdmap.c | 14 net/core/filter.c | 2 net/core/flow_dissector.c | 69 ++ net/core/rtnetlink.c | 1 net/ethtool/bitset.c | 8 net/ipv4/netfilter/arp_tables.c | 18 net/ipv4/netfilter/arpt_mangle.c | 8 net/ipv4/nexthop.c | 36 + net/ipv4/raw.c | 2 net/ipv4/route.c | 48 - net/ipv4/tcp.c | 3 net/ipv4/tcp_bpf.c | 3 net/ipv4/udp_tunnel_core.c | 48 + net/ipv6/exthdrs.c | 13 net/ipv6/icmp.c | 10 net/ipv6/ip6_gre.c | 5 net/ipv6/ip6_output.c | 68 -- net/ipv6/ip6_udp_tunnel.c | 69 ++ net/ipv6/netfilter/ip6t_eui64.c | 3 net/ipv6/netfilter/ip6t_hbh.c | 4 net/ipv6/seg6_hmac.c | 2 net/ipv6/xfrm6_protocol.c | 4 net/l2tp/l2tp_core.c | 5 net/mac80211/tx.c | 4 net/netfilter/ipset/ip_set_hash_ipmark.c | 6 net/netfilter/ipset/ip_set_hash_ipport.c | 5 net/netfilter/ipset/ip_set_hash_ipportip.c | 5 net/netfilter/ipset/ip_set_hash_ipportnet.c | 5 net/netfilter/ipvs/ip_vs_xmit.c | 19 net/netfilter/nf_conntrack_netlink.c | 2 net/netfilter/nf_conntrack_proto_sctp.c | 13 net/netfilter/nf_conntrack_sip.c | 152 +++-- net/netfilter/nf_nat_amanda.c | 2 net/netfilter/nf_nat_sip.c | 34 - net/netfilter/nfnetlink_log.c | 8 net/netfilter/nfnetlink_osf.c | 45 - net/netfilter/nft_bitwise.c | 3 net/netfilter/nft_ct.c | 2 net/netfilter/nft_fwd_netdev.c | 10 net/netfilter/nft_osf.c | 6 net/netfilter/nft_set_pipapo.c | 21 net/netfilter/nft_set_pipapo_avx2.c | 20 net/netfilter/xt_mac.c | 34 - net/netfilter/xt_multiport.c | 34 + net/netfilter/xt_owner.c | 37 - net/netfilter/xt_physdev.c | 29 net/netfilter/xt_policy.c | 2 net/netfilter/xt_realm.c | 2 net/nfc/digital_technology.c | 6 net/nfc/llcp_core.c | 2 net/openvswitch/datapath.c | 35 + net/openvswitch/vport.c | 3 net/phonet/pep.c | 19 net/qrtr/ns.c | 11 net/rds/af_rds.c | 10 net/rds/connection.c | 14 net/rds/ib.c | 24 net/rds/ib.h | 1 net/rds/ib_rdma.c | 2 net/rds/message.c | 21 net/rds/rdma.c | 4 net/rxrpc/call_object.c | 22 net/rxrpc/conn_event.c | 17 net/rxrpc/key.c | 7 net/rxrpc/proc.c | 26 net/rxrpc/recvmsg.c | 22 net/rxrpc/rxkad.c | 7 net/rxrpc/sendmsg.c | 2 net/sched/act_csum.c | 6 net/sched/act_ct.c | 23 net/sched/sch_cake.c | 15 net/sched/sch_choke.c | 28 net/sched/sch_fq_codel.c | 3 net/sched/sch_fq_pie.c | 19 net/sched/sch_gred.c | 3 net/sched/sch_hhf.c | 19 net/sched/sch_netem.c | 57 + net/sched/sch_pie.c | 52 - net/sched/sch_red.c | 34 - net/sched/sch_sfb.c | 54 + net/sched/sch_taprio.c | 357 ++++++------ net/sctp/sm_statefuns.c | 6 net/sctp/socket.c | 11 net/smc/smc_clc.c | 4 net/strparser/strparser.c | 8 net/tipc/msg.c | 14 net/tls/tls_sw.c | 26 net/unix/diag.c | 21 net/vmw_vsock/af_vsock.c | 6 net/vmw_vsock/hyperv_transport.c | 4 net/vmw_vsock/virtio_transport_common.c | 3 net/vmw_vsock/vmci_transport.c | 2 net/wireless/core.c | 4 net/wireless/scan.c | 3 net/xdp/xdp_umem.c | 3 net/xfrm/xfrm_user.c | 4 scripts/checkpatch.pl | 10 scripts/dtc/dtc-lexer.l | 3 security/integrity/ima/ima_crypto.c | 2 sound/aoa/soundbus/i2sbus/core.c | 9 sound/core/compress_offload.c | 75 -- sound/core/control.c | 4 sound/core/seq/oss/seq_oss_rw.c | 6 sound/core/sound.c | 7 sound/firewire/fireworks/fireworks_command.c | 5 sound/firewire/tascam/tascam-hwdep.c | 1 sound/pci/asihpi/hpicmn.c | 6 sound/pci/asihpi/hpimsgx.c | 6 sound/pci/ctxfi/ctatc.c | 3 sound/pci/ctxfi/ctvmem.h | 2 sound/pci/hda/patch_realtek.c | 5 sound/soc/codecs/ab8500-codec.c | 6 sound/soc/fsl/fsl_easrc.c | 125 ++-- sound/soc/soc-core.c | 1 sound/soc/sti/uniperif_player.c | 9 sound/soc/stm/stm32_sai_sub.c | 3 sound/usb/6fire/chip.c | 17 sound/usb/6fire/control.c | 10 sound/usb/caiaq/control.c | 52 + sound/usb/caiaq/device.c | 39 - sound/usb/caiaq/input.c | 2 sound/usb/format.c | 2 sound/usb/midi.c | 12 sound/usb/misc/ua101.c | 12 sound/usb/mixer.c | 14 sound/usb/mixer_quirks.c | 12 sound/usb/stream.c | 4 tools/perf/util/branch.h | 3 tools/perf/util/expr.c | 3 tools/perf/util/util.h | 1 tools/testing/ktest/ktest.pl | 35 - tools/testing/selftests/cgroup/test_memcontrol.c | 11 tools/testing/selftests/lib.mk | 1 tools/testing/selftests/mqueue/setting | 1 tools/testing/selftests/mqueue/settings | 1 510 files changed, 4722 insertions(+), 2113 deletions(-)
Aaro Koskinen (1):
USB: omap_udc: DMA: Don't enable burst 4 mode
Abd-Alrhman Masalkhi (1):
media: vidtv: fix pass-by-value structs causing MSAN warnings
Abdun Nihaal (1):
mfd: mc13xxx-core: Fix memory leak in mc13xxx_add_subdevice_pdata()
Abdurrahman Hussain (10):
hwmon: (pmbus/adm1266) widen blackbox-info buffer to I2C_SMBUS_BLOCK_MAX
hwmon: (pmbus/adm1266) seed timestamp from the real-time clock
hwmon: (pmbus/adm1266) reject implausible blackbox record_count
hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer
hwmon: (pmbus/adm1266) bounce blackbox records through a protocol-sized buffer
hwmon: (pmbus/adm1266) cap PDIO scan in get_multiple at ADM1266_PDIO_NR
hwmon: (pmbus/adm1266) don't clobber GPIO bits before PDIO read in get_multiple
hwmon: (pmbus/adm1266) register the gpio_chip after pmbus_do_probe()
hwmon: (pmbus/adm1266) register the nvmem device after pmbus_do_probe()
hwmon: (pmbus/adm1266) reject short block-read responses in the GPIO accessors
Abhishek Kumar (1):
media: em28xx: fix use-after-free in em28xx_v4l2_open()
Agalakov Daniil (1):
e1000: check return value of e1000_read_eeprom
Akhil P Oommen (1):
drm/msm/a6xx: Use barriers while updating HFI Q headers
Alex Deucher (3):
drm/radeon: add missing revision check for CI drm/amdgpu/pm: add missing revision check for CI drm/amdgpu/pm: align Hawaii mclk workaround with radeon
Alex Hung (1):
drm/amd/display: Add null checker before passing variables
Alexander Konyukhov (1):
drm/komeda: fix integer overflow in AFBC framebuffer size check
Alexander Koskovich (1):
drm/msm/dsi: rename MSM8998 DSI version from V2_2_0 to V2_0_0
Alexandre Belloni (3):
rtc: introduce features bitfield
rtc: allow rtc_read_alarm without read_alarm callback
alarmtimer: Check RTC features instead of ops
Alexey Kodanev (1):
nfp: fix swapped arguments in nfp_encode_basic_qdr() calls
Alice Mikityanska (1):
l2tp: Drop large packets with UDP encap
Allison Henderson (1):
net/rds: reset op_nents when zerocopy page pin fails
Alok Tiwari (1):
soc: qcom: aoss: compare against normalized cooling state
Anderson Nascimento (1):
rxrpc: Fix missing validation of ticket length in non-XDR key preparsing
Andreas Haarmann-Thiemann (1):
net: ethernet: cortina: Drop half-assembled SKB
Andrew Price (1):
gfs2: Validate i_depth for exhash directories
André Draszik (1):
power: supply: max17042: avoid overflow when determining health
Andy Shevchenko (5):
ACPI: property: Constify stubs for CONFIG_ACPI=n case
fbdev: matroxfb: Mark variable with __maybe_unused to avoid W=1 build break driver core: Move dev_err_probe() to where it belogs nfs/blocklayout: Fix compilation error (make W=1) in bl_write_pagelist()
gpiolib: cdev: use !mem_is_zero() instead of memchr_inv(s, 0, n)
Anthony Pighin (Nokia) (1):
rtc: abx80x: Disable alarm feature if no interrupt attached
Ao Zhou (1):
net: rds: fix MR cleanup on copy error
Arend van Spriel (1):
brcmfmac: support chipsets with different core enumeration space
Arjan van de Ven (1):
drm/amdgpu: fix zero-size GDS range init on RDNA4
Arnaldo Carvalho de Melo (1):
perf util: Kill die() prototype, dead for a long time
Arnd Bergmann (3):
ALSA: asihpi: avoid write overflow check warning
tpm: avoid -Wunused-but-set-variable
clk: qoriq: avoid format string warning
Arthur Husband (1):
ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585
Arun Easi (1):
scsi: qla2xxx: Fix crash when I/O abort times out
Ashutosh Desai (1):
drm/gem: Fix inconsistent plane dimension calculation in drm_gem_fb_init_with_funcs()
Asim Viladi Oglu Manizada (1):
smb: client: reject userspace cifs.spnego descriptions
Bae Yeonju (1):
fs/adfs: validate nzones in adfs_validate_bblk()
Bart Van Assche (4):
scsi: ufs: core: Improve SCSI abort handling
drbd: Balance RCU calls in drbd_adm_dump_devices()
locking: Fix rwlock support in <linux/spinlock_up.h>
ice: fix locking in ice_dcb_rebuild()
Bartosz Golaszewski (1):
gpio: cdev: check if uAPI v2 config attributes are correctly zeroed
Ben Hutchings (1):
Revert "s390/cio: Fix device lifecycle handling in css_alloc_subchannel()"
Ben Morris (1):
sctp: revalidate list cursor after sctp_sendmsg_to_asoc() in SCTP_SENDALL
Beniamino Galvani (4):
ipv4: rename and move ip_route_output_tunnel()
ipv4: remove "proto" argument from udp_tunnel_dst_lookup()
ipv4: add new arguments to udp_tunnel_dst_lookup()
ipv6: rename and move ip6_dst_lookup_tunnel()
Benoît Sevens (1):
HID: roccat: fix use-after-free in roccat_report_event
Berk Cem Goksel (2):
ALSA: 6fire: fix use-after-free on disconnect
ALSA: caiaq: take a reference on the USB device in create_card()
Bin Liu (1):
mmc: block: use single block write in retry
Boris Sukholitko (2):
dissector: do not set invalid PPP protocol
flow_dissector: Add number of vlan tags dissector
Breno Leitao (2):
mm: blk-cgroup: fix use-after-free in cgwb_release_workfn()
tracing: branch: Fix inverted check on stat tracer registration
Brian Masney (1):
irqchip/irq-pic32-evic: Address warning related to wrong printf() formatter
Cezar Bulinaru (1):
net: tap: NULL pointer derefence in dev_parse_header_protocol when skb->dev is null
Chaitanya Kulkarni (1):
nvmet: avoid recursive nvmet-wq flush in nvmet_ctrl_free
Chaitanya Kumar Borah (1):
drm/i915/dp: Fix VSC dynamic range signaling for RGB formats
Chen Ni (3):
media: i2c: imx219: Check return value of devm_gpiod_get_optional() in imx219_probe()
mtd: physmap_of_gemini: Fix disabled pinctrl state check
backlight: sky81452-backlight: Check return value of devm_gpiod_get_optional() in sky81452_bl_parse_dt()
Chen Zhao (1):
IB/core: Fix zero dmac race in neighbor resolution
Chenguang Zhao (1):
ethtool: fix ethnl_bitmap32_not_zero() bit interval semantics
Chia-Ming Chang (2):
md/raid5: fix soft lockup in retry_aligned_read()
inotify: fix watch count leak when fsnotify_add_inode_mark_locked() fails
Christian A. Ehrhardt (1):
ASoC: codecs: ab8500: Fix casting of private data
Cole Leavitt (1):
pstore/ram: fix resource leak when ioremap() fails
Corey Minyard (7):
ipmi: Add limits to event and receive message requests
ipmi: Check event message buffer response for bad data ipmi:si: Return state to normal if message allocation fails ipmi:ssif: Fix a shutdown race
ipmi:ssif: Clean up kthread on errors
ipmi:ssif: Remove unnecessary indention ipmi:ssif: NULL thread on error
Cryolitia PukNgae (1):
ALSA: usb-audio: apply quirk for MOONDROP JU Jiu
Cássio Gabriel (12):
ALSA: usb-audio: stop parsing UAC2 rates at MAX_NR_RATES
ALSA: usb-audio: Avoid false E-MU sample-rate notifications
ALSA: usb-audio: Fix Audio Advantage Micro II SPDIF switch
ALSA: aoa: i2sbus: fix OF node lifetime handling
ALSA: seq_oss: return full count for successful SEQ_FULLSIZE writes
ALSA: caiaq: Fix control_put() result and cache rollback
ALSA: 6fire: Fix input volume change detection
ALSA: usb-audio: Fix UAC3 cluster descriptor size check
ALSA: firewire-tascam: Do not drop unread control events
ALSA: core: Validate compress device numbers without dynamic minors
ALSA: usb-audio: Bound MIDI endpoint descriptor scans
ALSA: ua101: Reject too-short USB descriptors
César Montoya (1):
ALSA: hda/realtek: Add mute LED quirk for HP Pavilion 15-eg0xxx
Daan De Meyer (1):
cdrom, scsi: sr: propagate read-only status to block layer via set_disk_ro()
Daniel Borkmann (1):
bpf: Fix precedence bug in convert_bpf_ld_abs alignment check
Daniel Brát (1):
usb: storage: Expand range of matched versions for VL817 quirks entry
Daniel Hodges (1):
ima: check return value of crypto_shash_final() in boot aggregate
Danilo Krummrich (1):
devres: fix missing node debug info in devm_krealloc()
Darrick J. Wong (1):
fuse: quiet down complaints in fuse_conn_limit_write
David Carlier (1):
tracing: Avoid NULL return from hist_field_name() on truncation
David Gow (3):
drivers: base: Free devm resources when unregistering a device
kunit: config: Enable KUNIT_DEBUGFS by default
kunit: config: KUNIT_DEBUGFS should depend on DEBUG_FS
David Heidelberg (1):
arm64: dts: qcom: sdm845-xiaomi-beryllium: Mark l1a regulator as powered during boot
David Howells (3):
rxrpc: Fix call removal to use RCU safe deletion
rxrpc: Fix recvmsg() unconditional requeue
rxrpc: Fix anonymous key handling
Deepanshu Kartikey (4):
nilfs2: fix NULL i_assoc_inode dereference in nilfs_mdt_save_to_shadow_map
ocfs2: validate inline data i_size during inode read
ALSA: caiaq: fix usb_dev refcount leak on probe failure
nilfs2: reject zero bd_oblocknr in nilfs_ioctl_mark_blocks_dirty()
Denis Benato (2):
HID: asus: make asus_resume adhere to linux kernel coding standards
HID: asus: do not abort probe when not necessary
Denis M. Karpov (1):
userfaultfd: allow registration of ranges below mmap_min_addr
Dmitry Antipov (1):
ocfs2: add inline inode consistency check to ocfs2_validate_inode_block()
Dmitry Baryshkov (1):
soc: qcom: ocmem: return -EPROBE_DEFER is ocmem is not available
Douglas Anderson (2):
driver core: Don't let a device probe until it's ready driver core: Add kernel-doc for DEV_FLAG_COUNT enum value
Dudu Lu (3):
vsock/virtio: fix accept queue count leak on transport mismatch
Bluetooth: l2cap: Add missing chan lock in l2cap_ecred_reconf_rsp net/sched: sch_cake: fix NAT destination port not being updated in cake_update_flowkeys
Duoming Zhou (1):
wifi: rtlwifi: pci: fix possible use-after-free caused by unfinished irq_prepare_bcn_tasklet
Enze Li (1):
scsi: sr: Add memory allocation failure handling for get_capabilities()
Eric Biggers (2):
dm-verity-fec: correctly reject too-small FEC devices
dm-verity-fec: correctly reject too-small hash devices
Eric Dumazet (12):
net: lapbether: handle NETDEV_PRE_TYPE_CHANGE
tcp: annotate data-races around (tp->write_seq - tp->snd_nxt)
ipv6: fix possible UAF in icmpv6_rcv()
net_sched: sch_hhf: annotate data-races in hhf_dump_stats() net/sched: sch_pie: annotate data-races in pie_dump_stats() net/sched: sch_fq_codel: remove data-races from fq_codel_dump_stats() net/sched: sch_red: annotate data-races in red_dump_stats() net/sched: sch_sfb: annotate data-races in sfb_dump_stats() net/sched: sch_choke: annotate data-races in choke_dump_stats() net/sched: sch_fq_pie: annotate data-races in fq_pie_dump_stats() net/sched: sch_cake: annotate data-races in cake_dump_stats() (V) net/sched: sch_pie: annotate more data-races in pie_dump_stats()
Ethan Nelson-Moore (1):
net: ethernet: cs89x0: remove stale CONFIG_MACH_MX31ADS reference
Ethan Tidmore (3):
wifi: brcmfmac: Fix error pointer dereference drm/sun4i: Fix resource leaks
pinctrl: pinctrl-pic32: Fix resource leak
Fabio Porcedda (2):
USB: serial: option: add Telit Cinterion FN990A MBIM composition
USB: serial: option: add Telit Cinterion LE910Cx compositions
Fedor Pchelkin (1):
platform/x86: dell_rbu: avoid uninit value usage in packet_size_write()
Felix Fietkau (1):
wifi: mac80211: always free skb on ieee80211_tx_prepare_skb() failure
Felix Gu (5):
usb: ulpi: fix memory leak on ulpi_register() error paths
spi: fsl-qspi: Use reinit_completion() for repeated operations
pmdomain: ti: omap_prm: Fix a reference leak on device node
clk: imx: imx6q: Fix device node reference leak in pll6_bypassed()
clk: imx: imx6q: Fix device node reference leak in of_assigned_ldb_sels()
Fernando Fernandez Mancera (2):
netfilter: nfnetlink_osf: fix out-of-bounds read on option matching
netfilter: nfnetlink_osf: fix potential NULL dereference in ttl check
Filipe Manana (1):
btrfs: tracepoints: fix sleep while in atomic context in btrfs_sync_file()
Florian Westphal (7):
netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry
netfilter: conntrack: add missing netlink policy validations
netfilter: nft_set_pipapo: do not rely on ZERO_SIZE_PTR
netfilter: nft_fwd_netdev: check ttl/hl before forwarding RDMA/core: Prefer NLA_NUL_STRING
netfilter: conntrack: remove sprintf usage
netfilter: nf_conntrack_sip: don't use simple_strtoul
Frank Li (1):
dmaengine: mxs-dma: Fix missing return value from of_dma_controller_register()
Gabor Juhos (1):
phy: marvell: mvebu-a3700-utmi: fix incorrect USB2_PHY_CTRL register access
Geert Uytterhoeven (2):
clk: xgene: Fix mapping leak in xgene_pllclk_init() lib/hexdump: print_hex_dump_bytes() calls print_hex_dump_debug()
Gerd Bayer (1):
PCI: Enable AtomicOps only if Root Port supports them
Goldwyn Rodrigues (1):
btrfs: tracepoints: get correct superblock from dentry in event btrfs_sync_file()
Gopi Krishna Menon (1):
thermal/drivers/spear: Fix error condition for reading st,thermal-flags
Greg Jumper (1):
net/rds: Restrict use of RDS/IB to the initial network namespace
Greg Kroah-Hartman (19):
xfrm_user: fix info leak in build_mapping()
i2c: s3c24xx: check the size of the SMBUS message before using it
HID: alps: fix NULL pointer dereference in alps_raw_event()
HID: core: clamp report_size in s32ton() to avoid undefined shift
net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete()
NFC: digital: Bounds check NFC-A cascade depth in SDD response handler
ALSA: fireworks: bound device-supplied status before string array lookup
fbdev: tdfxfb: avoid divide-by-zero on FBIOPUT_VSCREENINFO
usb: gadget: f_ncm: validate minimum block_len in ncm_unwrap_ntb()
usb: gadget: f_phonet: fix skb frags[] overflow in pn_rx_complete()
usb: gadget: renesas_usb3: validate endpoint index in standard request handlers
fbdev: udlfb: avoid divide-by-zero on FBIOPUT_VSCREENINFO
ipv6: rpl: reserve mac_len headroom when recompressed SRH grows
scsi: target: configfs: Bound snprintf() return in tg_pt_gp_members_show()
usb: usblp: fix heap leak in IEEE 1284 device ID via short response
usb: usblp: fix uninitialized heap leak via LPGETSTATUS ioctl driver core: device.h: remove extern from function prototypes
sysfs: don't remove existing directory on update failure
Linux 5.10.258
Guenter Roeck (1):
ARM: integrator: Fix early initialization
Guido Günther (1):
arm64: dts: imx8mq-librem5: Don't mark buck3 as always on
Guocai He (1):
Revert "wifi: cfg80211: stop NAN and P2P in cfg80211_leave"
Gyeyoung Baek (1):
drm/panfrost: Fix wait_bo ioctl leaking positive return from dma_resv_wait_timeout()
Hamza Mahfooz (1):
hv_sock: fix ARM64 support
Haoxiang Li (1):
crypto: ccree - fix a memory leak in cc_mac_digest()
Haoze Xie (1):
batman-adv: hold claim backbone gateways by reference
Hari Bathini (1):
powerpc64/bpf: do not increment tailcall count when prog is NULL
Harin Lee (2):
ALSA: ctxfi: Limit PTP to a single page
ALSA: ctxfi: Add fallback to default RSR for S/PDIF
Harry Wentland (1):
drm/amd/display: Fix integer overflow in bios_get_image()
Harshit Mogalapalli (1):
net: sched: sch_netem: Refactor code in 4-state loss generator
Heiko Schocher (1):
net: phy: dp83869: fix setting CLK_O_SEL field.
Helge Deller (1):
parisc: _llseek syscall is only available for 32-bit userspace
Heming Zhao (1):
ocfs2: split transactions in dio completion to avoid credit exhaustion
Herbert Xu (4):
padata: Fix pd UAF once and for all
padata: Remove comment for reorder_work
crypto: pcrypt - Fix handling of MAY_BACKLOG requests
crypto: af_alg - Cap AEAD AD length to 0x80000000
Hongling Zeng (1):
parisc: Fix IRQ leak in LASI driver
HyungJung Joo (1):
fs/omfs: reject s_sys_blocksize smaller than OMFS_DIR_START
Håkon Bugge (1):
net/rds: Optimize rds_ib_laddr_check
Ian Rogers (1):
perf branch: Avoid incrementing NULL
Ido Schimmel (2):
nexthop: Emit a notification when a nexthop group is modified
vrf: Fix a potential NPD when removing a port from a VRF
Jacqueline Wong (1):
tpm: tpm_tis: add error logging for data transfer
Jakub Kicinski (2):
net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring
net: tls: prevent chain-after-chain in plain text SG
Jamal Hadi Salim (2):
net/sched: sch_red: Replace direct dequeue call with peek and qdisc_dequeue_peeked net/sched: act_ct: Only release RCU read lock after ct_ft
James Kim (1):
mtd: docg3: fix use-after-free in docg3_release()
Jamie Iles (1):
i3c: fix uninitialized variable use in i2c setup
Jan Kara (1):
quota: Fix race of dquot_scan_active() with quota deactivation
Jane Chu (1):
Documentation: fix a hugetlbfs reservation statement
Jani Nikula (1):
string: add mem_is_zero() helper to check if memory area is all zeros
Jann Horn (1):
Bluetooth: bnep: Fix UAF read of dev->name
Jason Gunthorpe (3):
RDMA/mlx4: Fix resource leak on error in mlx4_ib_create_srq() RDMA/ocrdma: Don't NULL deref uctx on errors in ocrdma_copy_pd_uresp() RDMA/vmw_pvrdma: Fix double free on pvrdma_alloc_ucontext() error path
Jens Axboe (2):
io_uring/poll: fix EPOLL_URING_WAKE sometimes not being honored io_uring/poll: fix backport of io_poll_add() changes
Jeongjun Park (3):
media: as102: fix to not free memory after the device is registered in as102_usb_probe()
media: hackrf: fix to not free memory after the device is registered in hackrf_probe()
wifi: rsi: fix kthread lifetime race between self-exit and external-stop
Jiayuan Chen (1):
nexthop: fix IPv6 route referencing IPv4 nexthop
Jiexun Wang (4):
af_unix: read UNIX_DIAG_VFS data under unix_state_lock
batman-adv: reject new tp_meter sessions during teardown
batman-adv: stop caching unowned originator pointers in BAT IV
netfilter: xt_policy: fix strict mode inbound policy matching
Jiri Slaby (SUSE) (2):
wifi: ath5k: do not access array OOB
6pack: propagage new tty types
Johan Hovold (11):
spi: zynqmp-gqspi: fix controller deregistration
spi: topcliff-pch: fix use-after-free on unbind
regulator: max77650: fix OF node reference imbalance
regulator: act8945a: fix OF node reference imbalance
spi: mtk-nor: fix controller deregistration
spi: imx: fix runtime pm leak on probe deferral
spi: orion: fix clock imbalance on registration failure
spi: mpc52xx: fix use-after-free on unbind drm/gma500/oaktrail_hdmi: fix i2c adapter leak on setup
spi: sprd: fix error pointer deref after DMA setup failure
spi: ti-qspi: fix use-after-free after DMA setup failure
John B. Moore (2):
drm/amdgpu/gfx9: drop unnecessary 64-bit fence flag check in KIQ drm/amdgpu/sdma4: replace BUG_ON with WARN_ON in fence emission
John Walker (1):
wifi: cfg80211: advance loop vars in cfg80211_merge_profile()
Jonathan Rissanen (1):
Bluetooth: hci_ldisc: Clear HCI_UART_PROTO_INIT on error
Jonathan Santos (1):
iio: adc: ad7768-1: fix one-shot mode data acquisition
Joonwon Kang (1):
mailbox: Prevent out-of-bounds access in of_mbox_index_xlate()
Joseph Qi (2):
ocfs2: fix out-of-bounds write in ocfs2_write_end_inline
ocfs2: fix possible deadlock between unlink and dio_end_io_write
Joseph Salisbury (1):
ASoC: fsl_easrc: fix comment typo
Josh Law (1):
lib/ts_kmp: fix integer overflow in pattern length calculation
Jun Yan (1):
arm64: dts: meson-gxl-p230: fix ethernet PHY interrupt number
Junrui Luo (8):
staging: sm750fb: fix division by zero in ps_to_hz() md/raid5: validate payload size before accessing journal metadata dm mirror: fix integer overflow in create_dirty_log() md/raid10: fix divide-by-zero in setup_geo() with zero far_copies dm log: fix out-of-bounds write due to region_count overflow ocfs2/dlm: validate qr_numregions in dlm_match_regions() ocfs2/dlm: fix off-by-one in dlm_match_regions() region comparison
scsi: target: core: Fix integer overflow in UNMAP bounds check
Junxi Qian (1):
nfc: llcp: add missing return after LLCP_CLOSED checks
Justin Chen (1):
net: bcmgenet: fix off-by-one in bcmgenet_put_txcb
Kai Ma (1):
netfilter: reject zero shift in nft_bitwise
Kai Zen (1):
net: rtnetlink: zero ifla_vf_broadcast to avoid stack infoleak in rtnl_fill_vfinfo
Kees Cook (1):
selftests: lib.mk: Also install "config" and "settings"
Keith Busch (1):
blk-mq: use quiesced elevator switch when reinitializing queues
Kohei Enju (2):
i40e: don't advertise IFF_SUPP_NOFCS
vhost_net: fix sleeping with preempt-disabled in vhost_net_busy_poll()
Konrad Dybcio (2):
dt-bindings: clock: qcom,dispcc-sc7180: Define MDSS resets
clk: qcom: dispcc-sc7180: Add missing MDSS resets
Kuninori Morimoto (1):
ASoC: soc-core: call missing INIT_LIST_HEAD() for card_aux_list
Kurt Kanzenbach (1):
taprio: Handle short intervals and large packets
Kyle Farnung (1):
wifi: ath11k: clear shared SRNG pointer state on restart
Lee Jones (1):
tipc: fix double-free in tipc_buf_append()
Lee, Chun-Yi (1):
thermal/int340x_thermal: handle data_vault when the value is ZERO_SIZE_PTR
Lei Huang (1):
ALSA: hda/realtek: fix code style (ERROR: else should follow close brace '}')
Leo Yan (1):
perf expr: Return -EINVAL for syntax error in expr__find_ids()
Leonid Ravich (1):
IB/mad: Don't call to function that might sleep while in atomic context
Li Xiasong (1):
netfilter: nft_ct: fix missing expect put in obj eval
Lin YuChen (1):
staging: rtl8723bs: initialize le_tmp64 in rtw_BIP_verify()
Linus Walleij (2):
net: ethernet: cortina: Make RX SKB per-port
net: ethernet: cortina: Carry over frag counter
Liu Jian (1):
bpf, sockmap: Fix an infinite loop error when len is 0 in tcp_bpf_recvmsg_parser()
Long Li (1):
PCI: hv: Set default NUMA node to 0 for devices without affinity info
Luiz Augusto von Dentz (1):
Bluetooth: L2CAP: Fix printing wrong information if SDU length exceeds MTU
Lukas Bulwahn (1):
HID: quirks: really enable the intended work around for appledisplay
Lukas Wunner (1):
PCI/AER: Stop ruling out unbound devices as error source
Luke D. Jones (1):
ALSA: hda/realtek: Whitespace fix
Luxiao Xu (3):
rxrpc: fix reference count leak in rxrpc_server_keyring()
net: strparser: fix skb_head leak in strp_abort_strp()
batman-adv: fix tp_meter counter underflow during shutdown
Lyes Bourennani (1):
batman-adv: fix integer overflow on buff_pos
Ma Ke (1):
powerpc/warp: Fix error handling in pika_dtm_thread
Maciej Fijalkowski (1):
xsk: tighten UMEM headroom validation to account for tailroom and min frame
Maciej W. Rozycki (3):
MIPS: Always record SEGBITS in cpu_data.vmbits
MIPS: mm: Suppress TLB uniquification on EHINV hardware
MIPS: mm: Rewrite TLB uniquification for the hidden bit feature
Manivannan Sadhasivam (1):
net: qrtr: ns: Fix use-after-free in driver remove()
Maoyi Xie (1):
ip6_gre: Use cached t->net in ip6erspan_changelink().
Marcelo Ricardo Leitner (1):
net/sched: act_ct: fix ref leak when switching zones
Mario Limonciello (AMD) (1):
firmware: dmi: Correct an indexing error in dmi.h
Mark Harmstone (1):
btrfs: fix double-decrement of bytes_may_use in submit_one_async_extent()
Martin Kepplinger (2):
arm64: dts: imx8mq-librem5-r3: workaround i2c1 issue with 1GHz cpu voltage
arm64: dts: imx8mq-librem5: set regulators boot-on
Masami Hiramatsu (Google) (1):
tracing: Do not call map->ops->elt_free() if elt_alloc() fails
Mashiro Chen (1):
net: hamradio: 6pack: fix uninit-value in sixpack_receive_buf
Matt Vollrath (1):
e1000e: Unroll PTP in probe error handling
Maíra Canal (3):
drm/vc4: Fix memory leak of BO array in hang state drm/vc4: Fix a memory leak in hang state error path drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock
Michael Bommarito (11):
um: drivers: call kernel_strrchr() explicitly in cow_user.c
udf: reject descriptors with oversized CRC length
isofs: validate Rock Ridge CE continuation extent against volume size
isofs: validate block number from NFS file handle in isofs_export_iget RDMA/rxe: Reject unknown opcodes before ICRC processing
sctp: fix OOB write to userspace in sctp_getsockopt_peer_auth_chunks net/rds: zero per-item info buffer before handing it to visitors
ipv4: raw: reject IP_HDRINCL packets with ihl < 5
ixgbevf: fix use-after-free in VEPA multicast source pruning
scsi: isci: Fix use-after-free in device removal path RDMA/siw: Reject MPA FPDU length underflow before signed receive math
Michal Pecio (1):
usb: xhci: Make usb_host_endpoint.hcpriv survive endpoint_disable()
Mikko Perttunen (2):
memory: tegra124-emc: Fix dll_change check
memory: tegra30-emc: Fix dll_change check
Miklos Szeredi (1):
fanotify: fix false positive on permission events
Mikulas Patocka (2):
dm: don't report warning when doing deferred remove
dm: fix a buffer overflow in ioctl processing
Ming-Hung Tsai (7):
dm cache: fix null-deref with concurrent writes in passthrough mode dm cache: fix write path cache coherency in passthrough mode dm cache policy smq: fix missing locks in invalidating cache blocks dm cache: fix concurrent write failure in passthrough mode dm cache: support shrinking the origin device
dm cache: fix dirty mapping checking in passthrough mode switching dm cache metadata: fix memory leak on metadata abort retry
Mingming Cao (1):
ibmveth: Disable GSO for packets with small MSS
Mingyu Wang (1):
Bluetooth: hci_uart: fix UAFs and race conditions in close and init paths
Mingzhe Zou (2):
bcache: fix cached_dev.sb_bio use-after-free and crash
bcache: fix uninitialized closure object
Minh Nguyen (1):
vsock/vmci: fix UAF when peer resets connection during handshake
Minhong He (1):
ipv6: add NULL checks for idev in SRv6 paths
Morduan Zang (1):
net: usb: rtl8150: free skb on usb_submit_urb() failure in xmit
Nan Li (2):
net/rds: handle zerocopy send cleanup before the message is queued
netfilter: ipset: stop hash:* range iteration at end
Nathan Chancellor (2):
drm/amd/display: Do not add '-mhard-float' to calcs, dsc, and dcn30 FP files for clang scripts/dtc: Remove unused dts_version in dtc-lexer.l
Nathan Rebello (1):
usbip: validate number_of_packets in usbip_pack_ret_submit()
Naval Alcalá (1):
iommu/vt-d: Disable DMAR for Intel Q35 IGFX
Nicholas Carlini (1):
io-wq: check that the predecessor is hashed in io_wq_remove_pending()
Nicolai Buchwitz (1):
net: bcmgenet: keep RBUF EEE/PM disabled
Nikola Z. Ivanov (1):
netdevsim: zero initialize struct iphdr in dummy sk_buff
Norbert Szetei (1):
vsock: fix buffer size clamping order
Nuno Sa (1):
dev_printk: add new dev_err_probe() helpers
Oleg Nesterov (1):
x86/uprobes: Fix XOL allocation failure for 32-bit tasks
Oleksij Rempel (1):
net: usb: lan78xx: Fix double free issue with interrupt buffer allocation
Oliver Neukum (3):
media: rc: xbox_remote: heed DMA restrictions
media: rc: streamzap: Error handling in probe
HID: usbhid: fix deadlock in hid_post_reset()
Osama Abdelkader (1):
drm/bridge: megachips: remove bridge when irq request fails
Pablo Neira Ayuso (3):
netfilter: nft_osf: restrict it to ipv4
netfilter: xtables: restrict several matches to inet family
netfilter: arp_tables: fix IEEE1394 ARP payload parsing
Paul Geurts (1):
NFC: trf7970a: Ignore antenna noise when checking for RF field
Paul Moses (1):
crypto: ccp - copy IV using skcipher ivsize
Pauli Virtanen (1):
Bluetooth: fix locking in hci_conn_request_evt() with HCI_PROTO_DEFER
Peng Li (2):
net: lapbether: remove trailing whitespaces
net: lapbether: replace comparison to NULL with "lapbeth_get_x25_dev"
Pengpeng Hou (6):
wifi: wl1251: validate packet IDs before indexing tx_frames
wifi: brcmfmac: validate bsscfg indices in IF events tracing/probe: reject non-closed empty immediate strings
rxrpc: proc: size address buffers for %pISpc output
tracing: Rebuild full_name on each hist_field_name() call s390/debug: Reject zero-length input before trimming a newline
Qingfang Deng (2):
pppoe: drop PFC frames
flow_dissector: do not dissect PPPoE PFC frames
Qingqing Yang (1):
flow_dissector: Do not count vlan tags inside tunnel payload
Qu Wenruo (1):
btrfs: merge PAGE_CLEAR_DIRTY and PAGE_SET_WRITEBACK to PAGE_START_WRITEBACK
Quinn Tran (1):
scsi: qla2xxx: Fix warning message due to adisc being flushed
Rafael J. Wysocki (2):
platform/surface: surfacepro3_button: Drop wakeup source on remove platform/x86: intel-hid: Check ACPI_HANDLE() against NULL
Rafał Miłecki (1):
ARM: dts: mediatek: mt7623: fix efuse fallback compatible
Rajat Gupta (1):
fbdev: udlfb: add vm_ops to dlfb_ops_mmap to prevent use-after-free
Randy Dunlap (1):
tty: hvc_iucv: fix off-by-one in number of supported devices
Raphael Zimmer (4):
libceph: Fix potential out-of-bounds access in osdmap_decode()
libceph: Fix potential null-ptr-deref in decode_choose_args()
libceph: Fix potential out-of-bounds access in crush_decode()
libceph: handle rbtree insertion error in decode_choose_args()
Ren Wei (1):
netfilter: xt_multiport: validate range encoding in checkentry
René Rebe (1):
PCMCIA: Fix garbled log messages for KERN_CONT
Ricardo B. Marlière (3):
ktest: Avoid undef warning when WARNINGS_FILE is unset
ktest: Honor empty per-test option overrides
ktest: Run POST_KTEST hooks on failure and cancellation
Ricardo Ribalda (2):
media: uvcvideo: Allow extra entities
media: uvcvideo: Enable VB2_DMABUF for metadata stream
Richard Genoud (1):
mtd: rawnand: sunxi: fix sunxi_nfc_hw_ecc_read_extra_oob
Ritesh Harjani (IBM) (1):
mm/kasan: fix double free for kasan pXds
Rob Clark (1):
drm/msm/a6xx: Fix HLSQ register dumping
Rong Zhang (1):
Revert "ALSA: usb: Increase volume range that triggers a warning"
Rosen Penev (2):
irqchip/ath79-cpu: Remove unused function
net: ag71xx: check error for platform_get_irq
Ruide Cao (2):
net: sched: act_csum: validate nested VLAN headers
batman-adv: fix fragment reassembly length accounting
Ruijie Li (3):
net/smc: avoid early lgr access in smc_clc_wait_msg
xfrm: provide message size for XFRM_MSG_MAPPING
batman-adv: clear current gateway during teardown
Ruslan Valiyev (2):
media: vidtv: fix NULL pointer dereference in vidtv_channel_pmt_match_sections
media: vidtv: fix nfeeds state corruption on start_streaming failure
Sakari Ailus (1):
staging: media: atomisp: Disallow all private IOCTLs
Samuel Page (2):
can: raw: fix ro->uniq use-after-free in raw_rcv()
fuse: reject oversized dirents in page cache
Sander Vanheule (2):
ASoC: sti: Return errors from regmap_field_alloc()
ASoC: sti: use managed regmap_field allocations
Sasha Levin (4):
checkpatch: add support for Assisted-by tag Revert "scsi: ufs: core: Improve SCSI abort handling" Revert "riscv: Sparse-Memory/vmemmap out-of-bounds fix" Revert "x86/vdso: Fix output operand size of RDPID"
Sean Christopherson (5):
KVM: SEV: Drop WARN on large size for KVM_MEMORY_ENCRYPT_REG_REGION
KVM: x86: Use scratch field in MMIO fragment to hold small write values
crypto: ccp: Don't attempt to copy CSR to userspace if PSP command failed
crypto: ccp: Don't attempt to copy PDH cert to userspace if PSP command failed
crypto: ccp: Don't attempt to copy ID to userspace if PSP command failed
Sebastian Brzezinka (1):
drm/i915/gt: fix refcount underflow in intel_engine_park_heartbeat
Sebastian Krzyszkowiak (6):
arm64: dts: imx8mq: Set the correct gpu_ahb clock frequency
arm64: dts: imx8mq-librem5: Set the DVS voltages lower
arm64: dts: imx8mq-librem5: Bump BUCK1 suspend voltage to 0.81V Revert "arm64: dts: imx8mq-librem5: Set the DVS voltages lower"
arm64: dts: imx8mq-librem5: Bump BUCK1 suspend voltage up to 0.85V
clk: imx8mq: Correct the CSI PHY sels
Sebastian Reichel (1):
drm/panel: simple: Correct G190EAN01 prepare timing
Sergey Shtylyov (1):
media: dib8000: avoid division by 0 in dib8000_set_dds()
Sergio Correia (2):
audit: fix incorrect inheritable capability in CAPSET records
audit: enforce AUDIT_LOCKED for AUDIT_TRIM and AUDIT_MAKE_EQUIV
SeungJu Cheon (1):
sound: ua101: fix division by zero at probe
Shengjiu Wang (3):
ASoC: fsl_easrc: Check the variable range in fsl_easrc_iec958_put_bits()
ASoC: fsl_easrc: Fix value type in fsl_easrc_iec958_get_bits()
ASoC: fsl_easrc: Change the type for iec958 channel status controls
Shivam Kalra (1):
ACPI: video: force native backlight on HP OMEN 16 (8A44)
Shrikanth Hegde (1):
cpuidle: powerpc: avoid double clear when breaking snooze
Shuai Xue (1):
PCI/AER: Clear only error bits in PCIe Device Status
Simon Liebold (1):
selftests/mqueue: Fix incorrectly named file
Siwei Zhang (3):
Bluetooth: L2CAP: Fix null-ptr-deref in l2cap_sock_new_connection_cb()
Bluetooth: L2CAP: Fix null-ptr-deref in l2cap_sock_state_change_cb()
Bluetooth: L2CAP: Fix null-ptr-deref in l2cap_sock_get_sndtimeo_cb()
Sohei Koyama (1):
ext4: fix missing brelse() in ext4_xattr_inode_dec_ref_all()
Sourabh Jain (1):
powerpc/crash: fix backup region offset update to elfcorehdr
Stefan Wiehler (1):
mips: mm: Allocate tlb_vpn array atomically
Stephen Hemminger (3):
net/sched: netem: fix probability gaps in 4-state loss model net/sched: netem: fix queue limit check to include reordered packets net/sched: netem: validate slot configuration
Steven Rostedt (1):
ring-buffer: Fix reporting of missed events in iterator
Sumit Semwal (1):
arm64: dts: qcom: sdm845-xiaomi-beryllium: Add DSI and panel bits
Sun Jian (1):
bpf: reject short IPv4/IPv6 inputs in bpf_prog_test_run_skb
Sven Eckelmann (10):
batman-adv: bla: prevent use-after-free when deleting claims
batman-adv: bla: only purge non-released claims
batman-adv: bla: put backbone reference on failed claim hash insert
batman-adv: mcast: fix use-after-free in orig_node RCU release
batman-adv: dat: handle forward allocation error
batman-adv: frag: disallow unicast fragment in fragment
batman-adv: bla: fix report_work leak on backbone_gw purge
batman-adv: tp_meter: avoid use of uninit sender vars
batman-adv: tt: fix negative last_changeset_len
batman-adv: tt: fix negative tt_buff_len
T Pratham (1):
crypto: sa2ul - Fix AEAD fallback algorithm names
Taegu Ha (1):
ppp: require CAP_NET_ADMIN in target netns for unattached ioctls
Takashi Iwai (6):
ALSA: caiaq: Handle probe errors properly
ALSA: caiaq: Fix potentially leftover ep1_in_urb at error path
ALSA: caiaq: Don't abort when no input device is available
ALSA: usb-audio: Avoid potential endless loop in convert_chmap_v3()
ALSA: compress: Drop unused functions
ALSA: asihpi: Fix potential OOB array access at reading cache
Tejas Bharambe (1):
ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY
Thomas Bogendoerfer (1):
MIPS: mm: kmalloc tlb_vpn array to avoid stack overflow
Thomas Fourier (1):
crypto: hisilicon - Fix dma_unmap_single() direction
Thomas Huth (1):
efi/capsule-loader: fix incorrect sizeof in phys array reallocation
Thomas Zimmermann (1):
firmware: google: framebuffer: Do not mark framebuffer as busy
Thorsten Blum (5):
crypto: atmel-aes - Fix 3-page memory leak in atmel_aes_buff_cleanup
crypto: atmel-ecc - Release client on allocation failure
crypto: atmel-tdes - fix DMA sync direction thermal/drivers/sprd: Fix temperature clamping in sprd_thm_temp_to_rawdata thermal/drivers/sprd: Fix raw temperature clamping in sprd_thm_rawdata_to_temp
Timur Kristóf (8):
drm/amd/pm/ci: Use highest MCLK on CI when MCLK DPM is disabled drm/amd/pm/ci: Disable MCLK DPM on problematic CI ASICs drm/amd/pm/ci: Fix powertune defaults for Hawaii 0x67B0 drm/amd/pm/ci: Clear EnabledForActivity field for memory levels drm/amd/pm/ci: Fill DW8 fields from SMC drm/amdgpu/gfx6: Support harvested SI chips with disabled TCCs (v2) drm/amd/display: Allow DCE link encoder without AUX registers drm/amd/display: Read EDID from VBIOS embedded panel info
Tomasz Merta (1):
ASoC: stm32_sai: fix incorrect BCLK polarity for DSP_A/B, LEFT_J
Tristan Madani (2):
wifi: b43legacy: enforce bounds check on firmware key index in RX path
wifi: b43: enforce bounds check on firmware key index in b43_rx()
Tyllis Xu (3):
misc: ibmasm: fix OOB MMIO read in ibmasm_handle_mouse_interrupt()
ibmasm: fix OOB reads in command_file_write due to missing size checks
ibmasm: fix heap over-read in ibmasm_send_i2o_message()
Val Packett (2):
clk: qcom: dispcc-sm8250: Use shared ops on the mdss vsync clk
clk: qcom: dispcc-sm8250: Enable parents for pixel clocks
Vasiliy Kovalev (1):
ext2: reject inodes with zero i_nlink and valid mode in ext2_iget()
Vasily Gorbik (1):
s390/debug: Reject zero-length input in debug_input_flush_fn()
Viacheslav Dubeyko (1):
ceph: fix a buffer leak in __ceph_setxattr()
Vidya Sagar (2):
PCI: tegra194: Use devm_gpiod_get_optional() to parse "nvidia,refclk-select"
PCI: tegra194: Disable direct speed change for Endpoint mode
Vinicius Costa Gomes (1):
net/sched: taprio: fix use-after-free in advance_sched() on schedule switch
Vladimir Oltean (6):
net/sched: taprio: stop going through private ops for dequeue and peek net/sched: taprio: replace safety precautions with comments net/sched: taprio: continue with other TXQs if one dequeue() failed net/sched: taprio: refactor one skb dequeue from TXQ to separate function net/sched: taprio: rename close_time to end_time
net: dsa: sja1105: fix kasan out-of-bounds warning in sja1105_table_delete_entry()
Waiman Long (2):
blk-cgroup: Reinit blkg_iostat_set after clearing in blkcg_reset_stats()
selftest: memcg: skip memcg_sock test if address family not supported
Wang Jie (1):
rxrpc: only handle RESPONSE during service challenge
Weiming Shi (5):
bpf: fix end-of-list detection in cgroup_storage_get_next_key()
openvswitch: cap upcall PID array size and pre-size vport replies
slip: reject VJ receive packets on instances with no rstate array
slip: bound decode() reads against the compressed packet length
bareudp: fix NULL pointer dereference in bareudp_fill_metadata_dst()
Wenyuan Li (1):
can: mcp251x: add error handling for power enable in open and resume
Wojciech Drewek (1):
flow_dissector: Add PPPoE dissectors
Wolfram Sang (5):
mailbox: mailbox-test: free channels on probe error
mailbox: add sanity check for channel array
mailbox: mailbox-test: don't free the reused channel
mailbox: mailbox-test: initialize struct earlier
mailbox: mailbox-test: make data_ready a per-instance variable
Xiang Mei (2):
netfilter: nfnetlink_log: initialize nfgenmsg in NLMSG_DONE terminator
netfilter: nfnetlink_osf: fix divide-by-zero in OSF_WSS_MODULO
Xie He (1):
net: lapbether: Close the LAPB device before its underlying Ethernet device closes
Xin Long (2):
netfilter: skip recording stale or retransmitted INIT
sctp: discard stale INIT after handshake completion
Yang Erkun (1):
scsi: sg: Resolve soft lockup issue when opening /dev/sgX
Yannick Vignon (2):
net: taprio offload: enforce qdisc to netdev queue mapping net/sched: taprio: Fix init procedure
Yasuaki Torimaru (1):
xfrm: clear trailing padding in build_polexpire()
Yilin Zhu (1):
ipv6: xfrm6: release dst on error in xfrm6_rcv_encap()
Yingnan Zhang (1):
ipvs: fix MTU check for GSO packets in tunnel mode
Yiyang Chen (1):
taskstats: set version in TGID exit notifications
Yongzhi Liu (1):
drm/amd/display: Fix memory leak
Yosry Ahmed (3):
KVM: nSVM: Sync interrupt shadow to cached vmcb12 after VMRUN of L2
KVM: nSVM: Ensure AVIC is inhibited when restoring a vCPU to guest mode
KVM: nSVM: Clear GIF on nested #VMEXIT(INVALID)
Yu-Chun Lin (1):
pinctrl: abx500: Fix type of 'argument' variable
Yucheng Lu (1):
crypto: authencesn - reject short ahash digests during instance creation
Yuho Choi (1):
fbdev: offb: fix PCI device reference leak on probe failure
Yuqi Xu (1):
rxrpc: reject undecryptable rxkad response tickets
Zhan Jun (1):
net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit()
Zhang Xiaoxu (1):
cifs: Fix connections leak when tlink setup failed
ZhengYuan Huang (4):
ocfs2: handle invalid dinode in ocfs2_group_extend
ocfs2: fix listxattr handling when the buffer is full
ocfs2: validate bg_bits during freefrag scan
ocfs2: validate group add input before caching
Zhengchao Shao (2):
net: sched: gred/red: remove unused variables in struct red_stats
net: sched: choke: remove unused variables in struct choke_sched_data
Zhengchuan Liang (3):
netfilter: ip6t_eui64: reject invalid MAC header for all packets
net: caif: clear client service pointer on teardown
netfilter: ip6t_hbh: reject oversized option lists
Zijing Yin (1):
phonet/pep: disable BH around forwarded sk_receive_skb()
Zilin Guan (1):
wifi: mwifiex: Fix memory leak in mwifiex_11n_aggregate_pkt()
Ziqing Chen (1):
ALSA: control: Validate buf_len before strnlen() in snd_ctl_elem_init_enum_names()
Zoran Ilievski (1):
net: atlantic: preserve PCI wake-from-D3 on shutdown when WOL enabled
cuitao (1):
cgroup/rdma: fix integer overflow in rdmacg_try_charge()
hkbinbin (1):
RDMA/rxe: Validate pad and ICRC before payload_size() in rxe_rcv
hongnanli (1):
fs/ocfs2: fix comments mentioning i_mutex
leo vriska (1):
HID: quirks: add HID_QUIRK_ALWAYS_POLL for 8BitDo Pro 3
наб (1):
tty: hvc: remove HVC_IUCV_MAGIC
Greg Kroah-Hartman
maintainerDocumentation/vm/hugetlbfs_reserv.rst +1 -1
@@ -157,7 +157,7 @@ are enough free huge pages to accommodate the reservation. If there are, the global reservation count resv_huge_pages is adjusted something like the following:: - if (resv_needed <= (resv_huge_pages - free_huge_pages)) + if (resv_needed <= (free_huge_pages - resv_huge_pages) resv_huge_pages += resv_needed; Note that the global lock hugetlb_lock is held when checking and adjusting
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 257 +SUBLEVEL = 258 EXTRAVERSION = NAME = Dare mighty things
arch/arm/boot/dts/mt7623.dtsi +1 -1
@@ -329,7 +329,7 @@ sysirq: interrupt-controller@10200100 { efuse: efuse@10206000 { compatible = "mediatek,mt7623-efuse", - "mediatek,mt8173-efuse"; + "mediatek,efuse"; reg = <0 0x10206000 0 0x1000>; #address-cells = <1>; #size-cells = <1>;
arch/arm/mach-integrator/integrator_cp.c +4 -9
@@ -88,14 +88,6 @@ static u64 notrace intcp_read_sched_clock(void)return val; } -static void __init intcp_init_early (void ) -{ - cm_map =syscon_regmap_lookup_by_compatible ("arm,core-module-integrator" ); -if (IS_ERR (cm_map)) -return ; -sched_clock_register (intcp_read_sched_clock,32 ,24000000 ); -} -static void __init intcp_init_irq_of (void ) {cm_init ();
@@ -121,6 +113,10 @@ static void __init intcp_init_of(void) {struct device_node *cpcon; + cm_map =syscon_regmap_lookup_by_compatible ("arm,core-module-integrator" ); +if (!IS_ERR (cm_map)) +sched_clock_register (intcp_read_sched_clock,32 ,24000000 ); + cpcon =of_find_matching_node (NULL , intcp_syscon_match);if (!cpcon)return ;
@@ -140,7 +136,6 @@ static const char * intcp_dt_board_compat[] = {DT_MACHINE_START (INTEGRATOR_CP_DT ,"ARM Integrator/CP (Device Tree)" ) .reserve = integrator_reserve, .map_io = intcp_map_io, - .init_early = intcp_init_early, .init_irq = intcp_init_irq_of, .init_machine = intcp_init_of, .dt_compat = intcp_dt_board_compat,
arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts +2 -1
@@ -86,7 +86,8 @@ external_phy: ethernet-phy@0 { reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>; interrupt-parent = <&gpio_intc>; - interrupts = <29 IRQ_TYPE_LEVEL_LOW>; + /* MAC_INTR on GPIOZ_15 */ + interrupts = <25 IRQ_TYPE_LEVEL_LOW>; eee-broken-1000t; }; };
arch/arm64/boot/dts/freescale/imx8mq-librem5-r3.dts +6 -0
@@ -10,6 +10,12 @@ / { compatible = "purism,librem5r3", "purism,librem5", "fsl,imx8mq"; }; +&a53_opp_table { + opp-1000000000 { + opp-microvolt = <1000000>; + }; +}; + &accel_gyro { mount-matrix = "1", "0", "0", "0", "1", "0",
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi +14 -2
@@ -649,10 +649,11 @@ buck1_reg: BUCK1 { regulator-name = "buck1"; regulator-min-microvolt = <700000>; regulator-max-microvolt = <1300000>; + regulator-boot-on; regulator-ramp-delay = <1250>; rohm,dvs-run-voltage = <900000>; rohm,dvs-idle-voltage = <850000>; - rohm,dvs-suspend-voltage = <800000>; + rohm,dvs-suspend-voltage = <850000>; regulator-always-on; };
@@ -660,6 +661,7 @@ buck2_reg: BUCK2 { regulator-name = "buck2"; regulator-min-microvolt = <700000>; regulator-max-microvolt = <1300000>; + regulator-boot-on; regulator-ramp-delay = <1250>; rohm,dvs-run-voltage = <1000000>; rohm,dvs-idle-voltage = <900000>;
@@ -670,8 +672,8 @@ buck3_reg: BUCK3 { regulator-name = "buck3"; regulator-min-microvolt = <700000>; regulator-max-microvolt = <1300000>; + regulator-boot-on; rohm,dvs-run-voltage = <900000>; - regulator-always-on; }; buck4_reg: BUCK4 {
@@ -685,6 +687,7 @@ buck5_reg: BUCK5 { regulator-name = "buck5"; regulator-min-microvolt = <700000>; regulator-max-microvolt = <1350000>; + regulator-boot-on; regulator-always-on; };
@@ -692,6 +695,7 @@ buck6_reg: BUCK6 { regulator-name = "buck6"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3300000>; + regulator-boot-on; regulator-always-on; };
@@ -699,6 +703,7 @@ buck7_reg: BUCK7 { regulator-name = "buck7"; regulator-min-microvolt = <1605000>; regulator-max-microvolt = <1995000>; + regulator-boot-on; regulator-always-on; };
@@ -706,6 +711,7 @@ buck8_reg: BUCK8 { regulator-name = "buck8"; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1400000>; + regulator-boot-on; regulator-always-on; };
@@ -713,6 +719,7 @@ ldo1_reg: LDO1 { regulator-name = "ldo1"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3300000>; + regulator-boot-on; /* leave on for snvs power button */ regulator-always-on; };
@@ -721,6 +728,7 @@ ldo2_reg: LDO2 { regulator-name = "ldo2"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <900000>; + regulator-boot-on; /* leave on for snvs power button */ regulator-always-on; };
@@ -729,6 +737,7 @@ ldo3_reg: LDO3 { regulator-name = "ldo3"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; + regulator-boot-on; regulator-always-on; };
@@ -736,6 +745,7 @@ ldo4_reg: LDO4 { regulator-name = "ldo4"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <1800000>; + regulator-boot-on; regulator-always-on; };
@@ -752,6 +762,7 @@ ldo6_reg: LDO6 { regulator-name = "ldo6"; regulator-min-microvolt = <900000>; regulator-max-microvolt = <1800000>; + regulator-boot-on; regulator-always-on; };
@@ -760,6 +771,7 @@ ldo7_reg: LDO7 { regulator-name = "ldo7"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; + regulator-boot-on; regulator-always-on; }; };
arch/arm64/boot/dts/freescale/imx8mq.dtsi +1 -1
@@ -1137,7 +1137,7 @@ gpu: gpu@38000000 { <&clk IMX8MQ_GPU_PLL_OUT>, <&clk IMX8MQ_GPU_PLL>; assigned-clock-rates = <800000000>, <800000000>, - <800000000>, <800000000>, <0>; + <800000000>, <400000000>, <0>; power-domains = <&pgc_gpu>; };
arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts +72 -0
102 lines not on this page · raw message
arch/mips/include/asm/cpu-features.h +0 -1
@@ -486,7 +486,6 @@# endif # ifndef cpu_vmbits# define cpu_vmbits cpu_data[0].vmbits -# define __NEED_VMBITS_PROBE# endif #endif
arch/mips/include/asm/cpu-info.h +0 -2
@@ -80,9 +80,7 @@ struct cpuinfo_mips {int srsets;/* Shadow register sets */ int package;/* physical package number */ unsigned int globalnumber; -#ifdef CONFIG_64BIT int vmbits;/* Virtual memory size in bits */ -#endif void *data;/* Additional data */ unsigned int watch_reg_count;/* Number that exist */ unsigned int watch_reg_use_cnt;/* Usable by ptrace */
arch/mips/include/asm/mipsregs.h +2 -0
@@ -1715,6 +1715,8 @@ do { \#define read_c0_entryhi () __read_ulong_c0_register($10, 0)#define write_c0_entryhi (val) __write_ulong_c0_register($10, 0, val) +#define read_c0_entryhi_64 () __read_64bit_c0_register($10, 0) +#define write_c0_entryhi_64 (val) __write_64bit_c0_register($10, 0, val)#define read_c0_guestctl1 () __read_32bit_c0_register($10, 4)#define write_c0_guestctl1 (val) __write_32bit_c0_register($10, 4, val)
arch/mips/kernel/cpu-probe.c +8 -5
@@ -207,11 +207,14 @@ static inline void set_elf_base_platform(const char *plat)static inline void cpu_probe_vmbits (struct cpuinfo_mips *c) { -#ifdef __NEED_VMBITS_PROBE -write_c0_entryhi (0x3fffffffffffe000ULL ); -back_to_back_c0_hazard (); - c->vmbits =fls64 (read_c0_entryhi () &0x3fffffffffffe000ULL ); -#endif +int vmbits =31 ; + +if (cpu_has_64bits) { +write_c0_entryhi_64 (0x3fffffffffffe000ULL ); +back_to_back_c0_hazard (); + vmbits =fls64 (read_c0_entryhi_64 () &0x3fffffffffffe000ULL ); + } + c->vmbits = vmbits; }static void set_isa (struct cpuinfo_mips *c,unsigned int isa)
arch/mips/kernel/cpu-r3k-probe.c +2 -0
@@ -158,6 +158,8 @@ void cpu_probe(void)cpu_set_fpu_opts (c); elsecpu_set_nofpu_opts (c ); + + c->vmbits =31 ; }void cpu_report (void )
arch/mips/mm/tlb-r4k.c +235 -46
335 lines not on this page · raw message
arch/parisc/kernel/syscalls/syscall.tbl +1 -1
@@ -154,7 +154,7 @@ # 137 was afs_syscall 138 common setfsuid sys_setfsuid 139 common setfsgid sys_setfsgid -140 common _llseek sys_llseek +140 32 _llseek sys_llseek 141 common getdents sys_getdents compat_sys_getdents 142 common _newselect sys_select compat_sys_select 143 common flock sys_flock
arch/powerpc/kexec/file_load_64.c +1 -1
@@ -766,7 +766,7 @@ static void update_backup_region_phdr(struct kimage *image, Elf64_Ehdr *ehdr)unsigned int i; phdr = (Elf64_Phdr *)(ehdr +1 ); -for (i =0 ; i < ehdr->e_phnum; i++) { +for (i =0 ; i < ehdr->e_phnum; i++, phdr++) {if (phdr->p_paddr ==BACKUP_SRC_START ) { phdr->p_offset = image->arch.backup_start; pr_debug("Backup region offset updated to 0x%lx\n",
arch/powerpc/net/bpf_jit_comp64.c +11 -9
@@ -257,30 +257,32 @@ static int bpf_jit_emit_tail_call(u32 *image, struct codegen_context *ctx, u32 o* tail_call_cnt++; */ EMIT (PPC_RAW_ADDI (b2p[TMP_REG_1 ], b2p[TMP_REG_1 ],1 )); -PPC_BPF_STL (b2p[TMP_REG_1 ],1 ,bpf_jit_stack_tailcallcnt (ctx));/* prog = array->ptrs[index]; */ -EMIT (PPC_RAW_MULI (b2p[TMP_REG_1 ], b2p_index,8 )); -EMIT (PPC_RAW_ADD (b2p[TMP_REG_1 ], b2p[TMP_REG_1 ], b2p_bpf_array)); -PPC_BPF_LL (b2p[TMP_REG_1 ], b2p[TMP_REG_1 ], offsetof(struct bpf_array , ptrs)); +EMIT (PPC_RAW_MULI (b2p[TMP_REG_2 ], b2p_index,8 )); +EMIT (PPC_RAW_ADD (b2p[TMP_REG_2 ], b2p[TMP_REG_2 ], b2p_bpf_array)); +PPC_BPF_LL (b2p[TMP_REG_2 ], b2p[TMP_REG_2 ], offsetof(struct bpf_array , ptrs));/* * if (prog == NULL) * goto out; */ -EMIT (PPC_RAW_CMPLDI (b2p[TMP_REG_1 ],0 )); +EMIT (PPC_RAW_CMPLDI (b2p[TMP_REG_2 ],0 ));PPC_BCC (COND_EQ , out);/* goto *(prog->bpf_func + prologue_size); */ -PPC_BPF_LL (b2p[TMP_REG_1 ], b2p[TMP_REG_1 ], offsetof(struct bpf_prog , bpf_func)); +PPC_BPF_LL (b2p[TMP_REG_2 ], b2p[TMP_REG_2 ], offsetof(struct bpf_prog , bpf_func));#ifdef PPC64_ELF_ABI_v1/* skip past the function descriptor */ -EMIT (PPC_RAW_ADDI (b2p[TMP_REG_1 ], b2p[TMP_REG_1 ], +EMIT (PPC_RAW_ADDI (b2p[TMP_REG_2 ], b2p[TMP_REG_2 ],FUNCTION_DESCR_SIZE +BPF_TAILCALL_PROLOGUE_SIZE ));#else -EMIT (PPC_RAW_ADDI (b2p[TMP_REG_1 ], b2p[TMP_REG_1 ],BPF_TAILCALL_PROLOGUE_SIZE )); +EMIT (PPC_RAW_ADDI (b2p[TMP_REG_2 ], b2p[TMP_REG_2 ],BPF_TAILCALL_PROLOGUE_SIZE ));#endif -EMIT (PPC_RAW_MTCTR (b2p[TMP_REG_1 ])); +EMIT (PPC_RAW_MTCTR (b2p[TMP_REG_2 ])); + +/* Writeback updated tailcall count */ +PPC_BPF_STL (b2p[TMP_REG_1 ],1 ,bpf_jit_stack_tailcallcnt (ctx));/* tear down stack, restore NVRs, ... */ bpf_jit_emit_common_epilogue (image, ctx);
arch/powerpc/platforms/44x/warp.c +2 -0
@@ -261,6 +261,8 @@ static int pika_dtm_thread(void __iomem *fpga)schedule_timeout (HZ ); } +put_device (&client->dev); +return 0 ; }
arch/riscv/include/asm/pgtable.h +1 -1
@@ -44,7 +44,7 @@* Define vmemmap for pfn_to_page & page_to_pfn calls. Needed if kernel * is configured with CONFIG_SPARSEMEM_VMEMMAP enabled. */ -#define vmemmap ((struct page *)VMEMMAP_START - (phys_ram_base >> PAGE_SHIFT)) +#define vmemmap ((struct page *)VMEMMAP_START)#define PCI_IO_SIZE SZ_16M#define PCI_IO_END VMEMMAP_START
arch/s390/kernel/debug.c +8 -0
@@ -1211,6 +1211,9 @@ static inline char *debug_get_user_string(const char __user *user_buf, {char *buffer; +if (!user_len) +return ERR_PTR (-EINVAL ); + buffer =kmalloc (user_len +1 ,GFP_KERNEL );if (!buffer)return ERR_PTR (-ENOMEM );
@@ -1387,6 +1390,11 @@ static int debug_input_flush_fn(debug_info_t *id, struct debug_view *view,char input_buf[1 ];int rc = user_len; +if (!user_len) { + rc = -EINVAL ; + goto out; + } +if (user_len >0x10000 ) user_len =0x10000 ;if (*offset !=0 ) {
arch/um/drivers/cow_user.c +7 -1
@@ -15,6 +15,12 @@#include "cow.h" #include "cow_sys.h" +/* +* arch/um/Makefile remaps strrchr to kernel_strrchr; call the kernel +* name directly to avoid glibc >= 2.43's C23 strrchr macro. +*/ +char *kernel_strrchr (const char *,int ); +#define PATH_LEN_V1 256/* unsigned time_t works until year 2106 */
@@ -153,7 +159,7 @@ static int absolutize(char *to, int size, char *from) errno);return -1 ; } - slash =strrchr (from,'/' ); + slash =kernel_strrchr (from,'/' );if (slash !=NULL ) { *slash ='\0' ;if (chdir (from)) {
arch/x86/include/asm/segment.h +4 -4
@@ -242,7 +242,7 @@ static inline unsigned long vdso_encode_cpunode(int cpu, unsigned long node)static inline void vdso_read_cpunode (unsigned *cpu,unsigned *node) { -unsigned long p; +unsigned int p;/* * Load CPU and node number from the GDT. LSL is faster than RDTSCP
@@ -252,10 +252,10 @@ static inline void vdso_read_cpunode(unsigned *cpu, unsigned *node)* * If RDPID is available, use it. */ -alternative_io ("lsl %[seg],%k[p]" , -"rdpid %[p]" , +alternative_io ("lsl %[seg],%[p]" , +".byte 0xf3,0x0f,0xc7,0xf8" ,/* RDPID %eax/rax */ X86_FEATURE_RDPID, - [p] "=r" (p), [seg] "r" (__CPUNODE_SEG)); + [p] "=a" (p), [seg] "r" (__CPUNODE_SEG)); if (cpu) *cpu = (p & VDSO_CPUNODE_MASK);
arch/x86/kernel/uprobes.c +24 -0
@@ -1095,3 +1095,27 @@ bool arch_uretprobe_is_alive(struct return_instance *ret, enum rp_check ctx,else return regs->sp <= ret->stack; } + +#ifdef CONFIG_IA32_EMULATION +unsigned long arch_uprobe_get_xol_area (void ) +{ +struct thread_info *ti =current_thread_info (); +unsigned long vaddr; + +/* +* HACK: we are not in a syscall, but x86 get_unmapped_area() paths +* ignore TIF_ADDR32 and rely on in_32bit_syscall() to calculate +* vm_unmapped_area_info.high_limit. +* +* The #ifdef above doesn't cover the CONFIG_X86_X32_ABI=y case, +* but in this case in_32bit_syscall() -> in_x32_syscall() always +* (falsely) returns true because ->orig_ax == -1. +*/ +if (test_thread_flag (TIF_ADDR32 )) + ti->status |=TS_COMPAT ; + vaddr =get_unmapped_area (NULL ,TASK_SIZE -PAGE_SIZE ,PAGE_SIZE ,0 ,0 ); + ti->status &= ~TS_COMPAT ; + +return vaddr; +} +#endif
arch/x86/kvm/svm/nested.c +5 -0
@@ -308,6 +308,7 @@ void sync_nested_vmcb_control(struct vcpu_svm *svm)u32 mask; svm->nested.ctl.event_inj = svm->vmcb->control.event_inj; svm->nested.ctl.event_inj_err = svm->vmcb->control.event_inj_err; + svm->nested.ctl.int_state = svm->vmcb->control.int_state;/* Only a few fields of int_ctl are written by the processor. */ mask =V_IRQ_MASK |V_TPR_MASK ;
@@ -531,6 +532,7 @@ int nested_svm_vmrun(struct vcpu_svm *svm) vmcb12->control.exit_code_hi =-1u ; vmcb12->control.exit_info_1 =0 ; vmcb12->control.exit_info_2 =0 ; +svm_set_gif (svm, false); goto out; }
@@ -1251,6 +1253,9 @@ static int svm_set_nested_state(struct kvm_vcpu *vcpu,load_nested_vmcb_control (svm, ctl);nested_prepare_vmcb_control (svm); +if (kvm_vcpu_apicv_active (vcpu)) +kvm_make_request (KVM_REQ_APICV_UPDATE , vcpu); +kvm_make_request (KVM_REQ_GET_NESTED_STATE_PAGES , vcpu); ret =0 ; out_free:
arch/x86/kvm/svm/sev.c +7 -4
@@ -338,10 +338,16 @@ static struct page **sev_pin_memory(struct kvm *kvm, unsigned long uaddr,if (ulen ==0 || uaddr + ulen < uaddr)return ERR_PTR (-EINVAL ); -/* Calculate number of pages. */ +/* +* Calculate the number of pages that need to be pinned to cover the +* entire range. Note! This isn't simply ulen >> PAGE_SHIFT, as KVM +* doesn't require the incoming address+size to be page aligned! +*/ first = (uaddr &PAGE_MASK ) >>PAGE_SHIFT ; last = ((uaddr + ulen -1 ) &PAGE_MASK ) >>PAGE_SHIFT ; npages = (last - first +1 ); +if (npages >INT_MAX ) +return ERR_PTR (-EINVAL ); locked = sev->pages_locked + npages; lock_limit =rlimit (RLIMIT_MEMLOCK ) >>PAGE_SHIFT ;
@@ -350,9 +356,6 @@ static struct page **sev_pin_memory(struct kvm *kvm, unsigned long uaddr,return ERR_PTR (-ENOMEM ); } -if (WARN_ON_ONCE (npages >INT_MAX )) -return ERR_PTR (-EINVAL ); -/* Avoid using vmalloc for smaller buffers. */ size = npages *sizeof (struct page *);if (size >PAGE_SIZE )
arch/x86/kvm/x86.c +13 -1
@@ -6489,7 +6489,13 @@ static int emulator_read_write_onepage(unsigned long addr, void *val,WARN_ON (vcpu->mmio_nr_fragments >=KVM_MAX_MMIO_FRAGMENTS ); frag = &vcpu->mmio_fragments[vcpu->mmio_nr_fragments++]; frag->gpa = gpa; - frag->data = val; +if (write && bytes <=8u ) { + frag->val =0 ; + frag->data = &frag->val; +memcpy (&frag->val, val, bytes); + }else { + frag->data = val; + } frag->len = bytes;return X86EMUL_CONTINUE ; }
@@ -6504,6 +6510,9 @@ static int emulator_read_write(struct x86_emulate_ctxt *ctxt,gpa_t gpa;int rc; +if (WARN_ON_ONCE ((bytes >8u || !ops->write) &&object_is_on_stack (val))) +return X86EMUL_UNHANDLEABLE ; +if (ops->read_write_prepare && ops->read_write_prepare (vcpu, val, bytes))return X86EMUL_CONTINUE ;
@@ -9554,6 +9563,9 @@ static int complete_emulated_mmio(struct kvm_vcpu *vcpu) frag++; vcpu->mmio_cur_fragment++; }else { +if (WARN_ON_ONCE (frag->data == &frag->val)) +return -EIO ; +/* Go forward to the next mmio piece. */ frag->data += len; frag->gpa += len;
block/blk-cgroup.c +4 -0
@@ -464,8 +464,12 @@ static int blkcg_reset_stats(struct cgroup_subsys_state *css,struct blkg_iostat_set *bis =per_cpu_ptr (blkg->iostat_cpu, cpu);memset (bis,0 ,sizeof (*bis)); + +/* Re-initialize the cleared blkg_iostat_set */ +u64_stats_init (&bis->sync); }memset (&blkg->iostat,0 ,sizeof (blkg->iostat)); +u64_stats_init (&blkg->iostat.sync);for (i =0 ; i <BLKCG_MAX_POLS ; i++) {struct blkcg_policy *pol = blkcg_policy[i];
block/blk-mq.c +3 -3
@@ -3689,14 +3689,14 @@ static bool blk_mq_elv_switch_none(struct list_head *head,mutex_lock (&q->sysfs_lock);/* -* After elevator_switch_mq, the previous elevator_queue will be +* After elevator_switch, the previous elevator_queue will be * released by elevator_release. The reference of the io scheduler * module get by elevator_get will also be put. So we need to get * a reference of the io scheduler module here to prevent it to be * removed. */ __module_get (qe->type->elevator_owner); -elevator_switch_mq (q,NULL ); +elevator_switch (q,NULL );mutex_unlock (&q->sysfs_lock);return true;
@@ -3721,7 +3721,7 @@ static void blk_mq_elv_switch_back(struct list_head *head,kfree (qe);mutex_lock (&q->sysfs_lock); -elevator_switch_mq (q, t); +elevator_switch (q, t);mutex_unlock (&q->sysfs_lock); }
block/blk.h +1 -2
@@ -202,8 +202,7 @@ void blk_account_io_done(struct request *req, u64 now);void blk_insert_flush (struct request *rq);void elevator_init_mq (struct request_queue *q); -int elevator_switch_mq (struct request_queue *q, -struct elevator_type *new_e); +int elevator_switch (struct request_queue *q,struct elevator_type *new_e);void __elevator_exit (struct request_queue *,struct elevator_queue *);int elv_register_queue (struct request_queue *q,bool uevent);void elv_unregister_queue (struct request_queue *q);
block/elevator.c +2 -2
@@ -572,7 +572,7 @@ void elv_unregister(struct elevator_type *e) }EXPORT_SYMBOL_GPL (elv_unregister); -int elevator_switch_mq (struct request_queue *q, +static int elevator_switch_mq (struct request_queue *q,struct elevator_type *new_e) {int ret;
@@ -701,7 +701,7 @@ void elevator_init_mq(struct request_queue *q)* need for the new one. this way we have a chance of going back to the old * one, if the new one fails init for some reason. */ -static int elevator_switch (struct request_queue *q,struct elevator_type *new_e) +int elevator_switch (struct request_queue *q,struct elevator_type *new_e) {int err;
crypto/af_alg.c +2 -0
@@ -478,6 +478,8 @@ static int af_alg_cmsg_send(struct msghdr *msg, struct af_alg_control *con)if (cmsg->cmsg_len <CMSG_LEN (sizeof (u32)))return -EINVAL ; con->aead_assoclen = *(u32 *)CMSG_DATA (cmsg); +if (con->aead_assoclen >=0x80000000u ) +return -EINVAL ;break ;default :
crypto/authencesn.c +5 -0
@@ -400,6 +400,11 @@ static int crypto_authenc_esn_create(struct crypto_template *tmpl, auth =crypto_spawn_ahash_alg (&ctx->auth); auth_base = &auth->base; +if (auth->digestsize >0 && auth->digestsize <4 ) { + err = -EINVAL ; + goto err_free_inst; + } + err =crypto_grab_skcipher (&ctx->enc,aead_crypto_instance (inst),crypto_attr_alg_name (tb[2 ]),0 , mask);if (err)
crypto/pcrypt.c +5 -2
@@ -69,6 +69,9 @@ static void pcrypt_aead_done(struct crypto_async_request *areq, int err)struct pcrypt_request *preq =aead_request_ctx (req);struct padata_priv *padata =pcrypt_request_padata (preq); +if (err == -EINPROGRESS ) +return ; + padata->info = err;padata_do_serial (padata);
@@ -82,7 +85,7 @@ static void pcrypt_aead_enc(struct padata_priv *padata) ret =crypto_aead_encrypt (req); -if (ret == -EINPROGRESS ) +if (ret == -EINPROGRESS || ret == -EBUSY )return ; padata->info = ret;
@@ -133,7 +136,7 @@ static void pcrypt_aead_dec(struct padata_priv *padata) ret =crypto_aead_decrypt (req); -if (ret == -EINPROGRESS ) +if (ret == -EINPROGRESS || ret == -EBUSY )return ; padata->info = ret;
drivers/acpi/video_detect.c +8 -0
@@ -154,6 +154,14 @@ static const struct dmi_system_id video_detect_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "VPCEH3U1E"), }, }, + { + .callback = video_detect_force_native, + /* HP OMEN Gaming Laptop 16-n0xxx */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "HP"), + DMI_MATCH(DMI_PRODUCT_NAME, "OMEN by HP Gaming Laptop 16-n0xxx"), + }, + },/* * These models have a working acpi_video backlight control, and using
drivers/ata/ahci.c +14 -0
@@ -61,6 +61,7 @@ enum board_ids {/* board IDs for specific chipsets in alphabetical order */ board_ahci_al, board_ahci_avn, + board_ahci_jmb585, board_ahci_mcp65, board_ahci_mcp77, board_ahci_mcp89,
@@ -200,6 +201,15 @@ static const struct ata_port_info ahci_port_info[] = { .udma_mask = ATA_UDMA6, .port_ops = &ahci_avn_ops, }, + /* JMicron JMB582/585: 64-bit DMA is broken, force 32-bit */ + [board_ahci_jmb585] = { +AHCI_HFLAGS (AHCI_HFLAG_IGN_IRQ_IF_ERR | + AHCI_HFLAG_32BIT_ONLY), + .flags = AHCI_FLAG_COMMON, + .pio_mask = ATA_PIO4, + .udma_mask = ATA_UDMA6, + .port_ops = &ahci_ops, + }, [board_ahci_mcp65] = {AHCI_HFLAGS (AHCI_HFLAG_NO_FPDMA_AA |AHCI_HFLAG_NO_PMP | AHCI_HFLAG_YES_NCQ),
@@ -436,6 +446,10 @@ static const struct pci_device_id ahci_pci_tbl[] = {/* Elkhart Lake IDs 0x4b60 & 0x4b62 https://sata-io.org/product/8803 not tested yet */ { PCI_VDEVICE(INTEL, 0x4b63), board_ahci_low_power }, /* Elkhart Lake AHCI */ +/* JMicron JMB582/585: force 32-bit DMA (broken 64-bit implementation) */ + { PCI_VDEVICE(JMICRON, 0x0582), board_ahci_jmb585 }, + { PCI_VDEVICE(JMICRON, 0x0585), board_ahci_jmb585 }, +/* JMicron 360/1/3/5/6, match class to avoid IDE function */ { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_SATA_AHCI, 0xffffff, board_ahci_ign_iferr },
drivers/base/core.c +26 -0
@@ -3008,6 +3008,21 @@ int device_add(struct device *dev)fw_devlink_link_device (dev); } +/* +* The moment the device was linked into the bus's "klist_devices" in +* bus_add_device() then it's possible that probe could have been +* attempted in a different thread via userspace loading a driver +* matching the device. "ready_to_probe" being unset would have +* blocked those attempts. Now that all of the above initialization has +* happened, unblock probe. If probe happens through another thread +* after this point but before bus_probe_device() runs then it's fine. +* bus_probe_device() -> device_initial_probe() -> __device_attach() +* will notice (under device_lock) that the device is already bound. +*/ +device_lock (dev); +dev_set_ready_to_probe (dev); +device_unlock (dev); +bus_probe_device (dev);if (parent) klist_add_tail(&dev->p->knode_parent,
@@ -3195,6 +3210,17 @@ void device_del(struct device *dev)device_remove_properties (dev);device_links_purge (dev); +/* +* If a device does not have a driver attached, we need to clean +* up any managed resources. We do this in device_release(), but +* it's never called (and we leak the device) if a managed +* resource holds a reference to the device. So release all +* managed resources here, like we do in driver_detach(). We +* still need to do so again in device_release() in case someone +* adds a new resource after this point, though. +*/ +devres_release_all (dev); +if (dev->bus)blocking_notifier_call_chain (&dev->bus->p->bus_notifier,BUS_NOTIFY_REMOVED_DEVICE , dev);
drivers/base/dd.c +12 -0
@@ -738,6 +738,18 @@ int driver_probe_device(struct device_driver *drv, struct device *dev)if (!device_is_registered (dev))return -ENODEV ; +/* +* In device_add(), the "struct device" gets linked into the subsystem's +* list of devices and broadcast to userspace (via uevent) before we're +* quite ready to probe. Those open pathways to driver probe before +* we've finished enough of device_add() to reliably support probe. +* Detect this and tell other pathways to try again later. device_add() +* itself will also try to probe immediately after setting +* "ready_to_probe". +*/ +if (!dev_ready_to_probe (dev)) +return dev_err_probe (dev, -EPROBE_DEFER ,"Device not ready to probe\n" ); +pr_debug ("bus: '%s': %s: matched device %s with driver %s\n" , drv->bus->name, __func__,dev_name (dev), drv->name);
drivers/base/devres.c +2 -0
@@ -911,6 +911,8 @@ void *devm_krealloc(struct device *dev, void *ptr, size_t new_size, gfp_t gfp)if (!new_dr)return NULL ; +set_node_dbginfo (&new_dr->node,"devm_krealloc_release" , new_size); +/* * The spinlock protects the linked list against concurrent * modifications but not the resource itself.
drivers/block/drbd/drbd_nl.c +6 -2
@@ -3424,8 +3424,10 @@ int drbd_adm_dump_devices(struct sk_buff *skb, struct netlink_callback *cb)if (resource_filter) { retcode =ERR_RES_NOT_KNOWN ; resource =drbd_find_resource (nla_data (resource_filter)); -if (!resource) +if (!resource) { +rcu_read_lock (); goto put_result; + } cb->args[0 ] = (long )resource; } }
@@ -3674,8 +3676,10 @@ int drbd_adm_dump_peer_devices(struct sk_buff *skb, struct netlink_callback *cb)if (resource_filter) { retcode =ERR_RES_NOT_KNOWN ; resource =drbd_find_resource (nla_data (resource_filter)); -if (!resource) +if (!resource) { +rcu_read_lock (); goto put_result; + } } cb->args[0 ] = (long )resource; }
drivers/bluetooth/hci_ldisc.c +43 -8
105 lines not on this page · raw message
drivers/cdrom/cdrom.c +48 -25
93 lines not on this page · raw message
drivers/char/ipmi/ipmi_si_intf.c +56 -14
137 lines not on this page · raw message
drivers/char/ipmi/ipmi_ssif.c +56 -18
134 lines not on this page · raw message
drivers/char/tpm/tpm_tis_core.c +4 -0
@@ -410,6 +410,8 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len) status =tpm_tis_status (chip);if (!itpm && (status &TPM_STS_DATA_EXPECT ) ==0 ) { rc = -EIO ; +dev_err (&chip->dev,"TPM_STS_DATA_EXPECT should be set. sts = 0x%08x\n" , + status); goto out_err; } }
@@ -427,6 +429,8 @@ static int tpm_tis_send_data(struct tpm_chip *chip, const u8 *buf, size_t len) status =tpm_tis_status (chip);if (!itpm && (status &TPM_STS_DATA_EXPECT ) !=0 ) { rc = -EIO ; +dev_err (&chip->dev,"TPM_STS_DATA_EXPECT should be unset. sts = 0x%08x\n" , + status); goto out_err; }
drivers/clk/clk-qoriq.c +9 -8
@@ -880,13 +880,11 @@ static const struct clockgen_pll_div *get_pll_div(struct clockgen *cg,return &cg->pll[pll].div[div]; } -static struct clk *__init create_mux_common (struct clockgen *cg, -struct mux_hwclock *hwc, -const struct clk_ops *ops, -unsigned long min_rate, -unsigned long max_rate, -unsigned long pct80_rate, -const char *fmt,int idx) +static struct clk * __init __printf(7, 8) +create_mux_common(struct clockgen *cg, struct mux_hwclock *hwc, + const struct clk_ops *ops, unsigned long min_rate, + unsigned long max_rate, unsigned long pct80_rate, + const char *fmt, ...) { struct clk_init_data init = {};struct clk *clk;
@@ -894,8 +892,11 @@ static struct clk * __init create_mux_common(struct clockgen *cg,const char *parent_names[NUM_MUX_PARENTS ];char name[32 ];int i, j; +va_list args; -snprintf (name,sizeof (name), fmt, idx); +va_start (args, fmt); +vsnprintf (name,sizeof (name), fmt, args); +va_end (args);for (i =0 , j =0 ; i <NUM_MUX_PARENTS ; i++) {unsigned long rate;
drivers/clk/clk-xgene.c +2 -0
@@ -187,6 +187,8 @@ static void xgene_pllclk_init(struct device_node *np, enum xgene_pll_type pll_tyof_clk_add_provider (np, of_clk_src_simple_get, clk);clk_register_clkdev (clk, clk_name,NULL );pr_debug ("Add %s clock PLL\n" , clk_name); + }else { +iounmap (reg); } }
drivers/clk/imx/clk-imx6q.c +11 -1
@@ -183,9 +183,11 @@ static void of_assigned_ldb_sels(struct device_node *node, }if (clkspec.np != node || clkspec.args[0 ] >=IMX6QDL_CLK_END ) {pr_err ("ccm: parent clock %d not in ccm\n" , index); +of_node_put (clkspec.np);return ; } parent = clkspec.args[0 ]; +of_node_put (clkspec.np); rc =of_parse_phandle_with_args (node,"assigned-clocks" ,"#clock-cells" , index, &clkspec);
@@ -193,9 +195,11 @@ static void of_assigned_ldb_sels(struct device_node *node,return ;if (clkspec.np != node || clkspec.args[0 ] >=IMX6QDL_CLK_END ) {pr_err ("ccm: child clock %d not in ccm\n" , index); +of_node_put (clkspec.np);return ; } child = clkspec.args[0 ]; +of_node_put (clkspec.np);if (child !=IMX6QDL_CLK_LDB_DI0_SEL && child !=IMX6QDL_CLK_LDB_DI1_SEL )
@@ -233,8 +237,11 @@ static bool pll6_bypassed(struct device_node *node)return false;if (clkspec.np == node && - clkspec.args[0 ] ==IMX6QDL_PLL6_BYPASS ) + clkspec.args[0 ] ==IMX6QDL_PLL6_BYPASS ) { +of_node_put (clkspec.np);break ; + } +of_node_put (clkspec.np); }/* PLL6 bypass is not part of the assigned clock list */
@@ -244,6 +251,9 @@ static bool pll6_bypassed(struct device_node *node) ret =of_parse_phandle_with_args (node,"assigned-clock-parents" ,"#clock-cells" , index, &clkspec); +if (!ret) +of_node_put (clkspec.np); +if (clkspec.args[0 ] !=IMX6QDL_CLK_PLL6 )return true;
drivers/clk/imx/clk-imx8mq.c +2 -2
@@ -237,7 +237,7 @@ static const char * const imx8mq_dsi_esc_sels[] = {"osc_25m", "sys2_pll_100m", "static const char *const imx8mq_csi1_core_sels[] = {"osc_25m" ,"sys1_pll_266m" ,"sys2_pll_250m" ,"sys1_pll_800m" ,"sys2_pll_1000m" ,"sys3_pll_out" ,"audio_pll2_out" ,"video_pll1_out" , }; -static const char *const imx8mq_csi1_phy_sels[] = {"osc_25m" ,"sys2_pll_125m" ,"sys2_pll_100m" ,"sys1_pll_800m" , +static const char *const imx8mq_csi1_phy_sels[] = {"osc_25m" ,"sys2_pll_333m" ,"sys2_pll_100m" ,"sys1_pll_800m" ,"sys2_pll_1000m" ,"clk_ext2" ,"audio_pll2_out" ,"video_pll1_out" , };static const char *const imx8mq_csi1_esc_sels[] = {"osc_25m" ,"sys2_pll_100m" ,"sys1_pll_80m" ,"sys1_pll_800m" ,
@@ -246,7 +246,7 @@ static const char * const imx8mq_csi1_esc_sels[] = {"osc_25m", "sys2_pll_100m",static const char *const imx8mq_csi2_core_sels[] = {"osc_25m" ,"sys1_pll_266m" ,"sys2_pll_250m" ,"sys1_pll_800m" ,"sys2_pll_1000m" ,"sys3_pll_out" ,"audio_pll2_out" ,"video_pll1_out" , }; -static const char *const imx8mq_csi2_phy_sels[] = {"osc_25m" ,"sys2_pll_125m" ,"sys2_pll_100m" ,"sys1_pll_800m" , +static const char *const imx8mq_csi2_phy_sels[] = {"osc_25m" ,"sys2_pll_333m" ,"sys2_pll_100m" ,"sys1_pll_800m" ,"sys2_pll_1000m" ,"clk_ext2" ,"audio_pll2_out" ,"video_pll1_out" , };static const char *const imx8mq_csi2_esc_sels[] = {"osc_25m" ,"sys2_pll_100m" ,"sys1_pll_80m" ,"sys1_pll_800m" ,
drivers/clk/qcom/dispcc-sc7180.c +8 -0
@@ -16,6 +16,7 @@#include "clk-regmap-divider.h" #include "common.h" #include "gdsc.h" +#include "reset.h" enum {P_BI_TCXO ,
@@ -634,6 +635,11 @@ static struct gdsc mdss_gdsc = { .flags = HW_CTRL, }; +static const struct qcom_reset_map disp_cc_sc7180_resets[] = { + [DISP_CC_MDSS_CORE_BCR ] = {0x2000 }, + [DISP_CC_MDSS_RSCC_BCR ] = {0x4000 }, +}; +static struct gdsc *disp_cc_sc7180_gdscs[] = { [MDSS_GDSC ] = &mdss_gdsc, };
@@ -685,6 +691,8 @@ static const struct qcom_cc_desc disp_cc_sc7180_desc = { .config = &disp_cc_sc7180_regmap_config, .clks = disp_cc_sc7180_clocks, .num_clks = ARRAY_SIZE(disp_cc_sc7180_clocks), + .resets = disp_cc_sc7180_resets, + .num_resets = ARRAY_SIZE(disp_cc_sc7180_resets), .gdscs = disp_cc_sc7180_gdscs, .num_gdscs = ARRAY_SIZE(disp_cc_sc7180_gdscs), };
drivers/clk/qcom/dispcc-sm8250.c +3 -3
@@ -392,7 +392,7 @@ static struct clk_rcg2 disp_cc_mdss_pclk0_clk_src = { .name = "disp_cc_mdss_pclk0_clk_src", .parent_data = disp_cc_parent_data_6, .num_parents = ARRAY_SIZE(disp_cc_parent_data_6), - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE, .ops = &clk_pixel_ops, }, };
@@ -406,7 +406,7 @@ static struct clk_rcg2 disp_cc_mdss_pclk1_clk_src = { .name = "disp_cc_mdss_pclk1_clk_src", .parent_data = disp_cc_parent_data_6, .num_parents = ARRAY_SIZE(disp_cc_parent_data_6), - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_SET_RATE_PARENT | CLK_OPS_PARENT_ENABLE, .ops = &clk_pixel_ops, }, };
@@ -446,7 +446,7 @@ static struct clk_rcg2 disp_cc_mdss_vsync_clk_src = { .parent_data = disp_cc_parent_data_1, .num_parents = ARRAY_SIZE(disp_cc_parent_data_1), .flags = CLK_SET_RATE_PARENT, - .ops = &clk_rcg2_ops, + .ops = &clk_rcg2_shared_ops, }, };
drivers/cpuidle/cpuidle-powernv.c +4 -1
@@ -93,7 +93,10 @@ static int snooze_loop(struct cpuidle_device *dev,HMT_medium ();ppc64_runlatch_on (); -clear_thread_flag (TIF_POLLING_NRFLAG ); + +/* Avoid double clear when breaking */ +if (!dev->poll_time_limit) +clear_thread_flag (TIF_POLLING_NRFLAG );local_irq_disable ();
drivers/cpuidle/cpuidle-pseries.c +4 -1
@@ -61,7 +61,10 @@ static int snooze_loop(struct cpuidle_device *dev, }HMT_medium (); -clear_thread_flag (TIF_POLLING_NRFLAG ); + +/* Avoid double clear when breaking */ +if (!dev->poll_time_limit) +clear_thread_flag (TIF_POLLING_NRFLAG );local_irq_disable ();
drivers/crypto/atmel-aes.c +1 -1
@@ -2265,7 +2265,7 @@ static int atmel_aes_buff_init(struct atmel_aes_dev *dd)static void atmel_aes_buff_cleanup (struct atmel_aes_dev *dd) { -free_page ((unsigned long )dd->buf); +free_pages ((unsigned long )dd->buf,ATMEL_AES_BUFFER_ORDER ); }static int atmel_aes_dma_init (struct atmel_aes_dev *dd)
drivers/crypto/atmel-ecc.c +1 -0
@@ -273,6 +273,7 @@ static int atmel_ecdh_init_tfm(struct crypto_kpp *tfm)if (IS_ERR (fallback)) {dev_err (&ctx->client->dev,"Failed to allocate transformation for '%s': %ld\n" , alg,PTR_ERR (fallback)); +atmel_ecc_i2c_client_free (ctx->client);return PTR_ERR (fallback); }
drivers/crypto/atmel-tdes.c +4 -4
@@ -312,8 +312,8 @@ static int atmel_tdes_crypt_pdc_stop(struct atmel_tdes_dev *dd)dma_unmap_sg (dd->dev, dd->out_sg,1 ,DMA_FROM_DEVICE );dma_unmap_sg (dd->dev, dd->in_sg,1 ,DMA_TO_DEVICE ); }else { -dma_sync_single_for_device (dd->dev, dd->dma_addr_out, - dd->dma_size,DMA_FROM_DEVICE ); +dma_sync_single_for_cpu (dd->dev, dd->dma_addr_out, + dd->dma_size,DMA_FROM_DEVICE );/* copy data */ count = atmel_tdes_sg_copy(&dd->out_sg, &dd->out_offset,
@@ -671,8 +671,8 @@ static int atmel_tdes_crypt_dma_stop(struct atmel_tdes_dev *dd)dma_unmap_sg (dd->dev, dd->out_sg,1 ,DMA_FROM_DEVICE );dma_unmap_sg (dd->dev, dd->in_sg,1 ,DMA_TO_DEVICE ); }else { -dma_sync_single_for_device (dd->dev, dd->dma_addr_out, - dd->dma_size,DMA_FROM_DEVICE ); +dma_sync_single_for_cpu (dd->dev, dd->dma_addr_out, + dd->dma_size,DMA_FROM_DEVICE );/* copy data */ count = atmel_tdes_sg_copy(&dd->out_sg, &dd->out_offset,
drivers/crypto/ccp/ccp-crypto-aes.c +5 -2
@@ -28,8 +28,11 @@ static int ccp_aes_complete(struct crypto_async_request *async_req, int ret)if (ret)return ret; -if (ctx->u.aes.mode !=CCP_AES_MODE_ECB ) -memcpy (req->iv, rctx->iv,AES_BLOCK_SIZE ); +if (ctx->u.aes.mode !=CCP_AES_MODE_ECB ) { +size_t ivsize =crypto_skcipher_ivsize (crypto_skcipher_reqtfm (req)); + +memcpy (req->iv, rctx->iv, ivsize); + }return 0 ; }
drivers/crypto/ccp/sev-dev.c +17 -2
@@ -458,7 +458,10 @@ static int sev_ioctl_do_pek_csr(struct sev_issue_cmd *argp, bool writable) ret =__sev_do_cmd_locked (SEV_CMD_PEK_CSR , &data, &argp->error); -/* If we query the CSR length, FW responded with expected data. */ +/* +* Firmware will returns the length of the CSR blob (either the minimum +* required length or the actual length written), return it to the user. +*/ input.length = data.len;if (copy_to_user ((void __user *)argp->data, &input,sizeof (input))) {
@@ -466,6 +469,9 @@ static int sev_ioctl_do_pek_csr(struct sev_issue_cmd *argp, bool writable) goto e_free_blob; } +if (ret ||WARN_ON_ONCE (argp->error)) + goto e_free_blob; +if (blob) {if (copy_to_user (input_address, blob, input.length)) ret = -EFAULT ;
@@ -697,6 +703,9 @@ static int sev_ioctl_do_get_id2(struct sev_issue_cmd *argp) goto e_free; } +if (ret ||WARN_ON_ONCE (argp->error)) + goto e_free; +if (id_blob) {if (copy_to_user (input_address, id_blob, data.len)) { ret = -EFAULT ;
@@ -811,7 +820,10 @@ static int sev_ioctl_do_pdh_export(struct sev_issue_cmd *argp, bool writable) cmd: ret =__sev_do_cmd_locked (SEV_CMD_PDH_CERT_EXPORT , &data, &argp->error); -/* If we query the length, FW responded with expected data. */ +/* +* Firmware will return the length of the blobs (either the minimum +* required length or the actual length written), return 'em to the user. +*/ input.cert_chain_len = data.cert_chain_len; input.pdh_cert_len = data.pdh_cert_len;
@@ -820,6 +832,9 @@ static int sev_ioctl_do_pdh_export(struct sev_issue_cmd *argp, bool writable) goto e_free_cert; } +if (ret ||WARN_ON_ONCE (argp->error)) + goto e_free_cert; +if (pdh_blob) {if (copy_to_user (input_pdh_cert_address, pdh_blob, input.pdh_cert_len)) {
drivers/crypto/ccree/cc_hash.c +1 -0
@@ -1448,6 +1448,7 @@ static int cc_mac_digest(struct ahash_request *req)if (cc_map_hash_request_final (ctx->drvdata, state, req->src, req->nbytes,1 , flags)) {dev_err (dev,"map_ahash_request_final() failed\n" ); +cc_unmap_result (dev, state, digestsize, req->result);cc_unmap_req (dev, state, ctx);return -ENOMEM ; }
drivers/crypto/hisilicon/sec/sec_algs.c +1 -1
@@ -844,7 +844,7 @@ static int sec_alg_skcipher_crypto(struct skcipher_request *skreq,if (crypto_skcipher_ivsize (atfm))dma_unmap_single (info->dev, sec_req->dma_iv,crypto_skcipher_ivsize (atfm), -DMA_BIDIRECTIONAL ); +DMA_TO_DEVICE ); err_unmap_out_sg:if (split) sec_unmap_sg_on_err(skreq->dst, steps, splits_out,
drivers/crypto/sa2ul.c +2 -2
@@ -1754,13 +1754,13 @@ static int sa_cra_init_aead(struct crypto_aead *tfm, const char *hash,static int sa_cra_init_aead_sha1 (struct crypto_aead *tfm) {return sa_cra_init_aead (tfm,"sha1" , -"authenc(hmac(sha1-ce),cbc(aes-ce))" ); +"authenc(hmac(sha1),cbc(aes))" ); }static int sa_cra_init_aead_sha256 (struct crypto_aead *tfm) {return sa_cra_init_aead (tfm,"sha256" , -"authenc(hmac(sha256-ce),cbc(aes-ce))" ); +"authenc(hmac(sha256),cbc(aes))" ); }static void sa_exit_tfm_aead (struct crypto_aead *tfm)
drivers/dma/mxs-dma.c +1 -0
@@ -827,6 +827,7 @@ static int mxs_dma_probe(struct platform_device *pdev)if (ret) {dev_err (mxs_dma->dma_device.dev,"failed to register controller\n" ); +return ret; }dev_info (mxs_dma->dma_device.dev,"initialized\n" );
drivers/firmware/efi/capsule-loader.c +1 -1
@@ -67,7 +67,7 @@ int __efi_capsule_setup_info(struct capsule_info *cap_info) cap_info->pages = temp_page; temp_page =krealloc (cap_info->phys, - pages_needed *sizeof (phys_addr_t *), + pages_needed *sizeof (phys_addr_t),GFP_KERNEL | __GFP_ZERO);if (!temp_page)return -ENOMEM ;
drivers/firmware/google/framebuffer-coreboot.c +1 -1
@@ -50,7 +50,7 @@ static int framebuffer_probe(struct coreboot_device *dev)return -ENODEV ;memset (&res,0 ,sizeof (res)); - res.flags =IORESOURCE_MEM |IORESOURCE_BUSY ; + res.flags =IORESOURCE_MEM ; res.name ="Coreboot Framebuffer" ; res.start = fb->physical_address; length =PAGE_ALIGN (fb->y_resolution * fb->bytes_per_line);
drivers/gpio/gpiolib-cdev.c +17 -4
@@ -14,13 +14,13 @@#include <linux/gpio/driver.h> #include <linux/interrupt.h> #include <linux/irqreturn.h> -#include <linux/kernel.h> #include <linux/kfifo.h> #include <linux/module.h> #include <linux/mutex.h> #include <linux/pinctrl/consumer.h> #include <linux/poll.h> #include <linux/spinlock.h> +#include <linux/string.h> #include <linux/timekeeping.h> #include <linux/uaccess.h> #include <linux/workqueue.h>
@@ -925,6 +925,7 @@ static int gpio_v2_line_flags_validate(u64 flags)static int gpio_v2_line_config_validate (struct gpio_v2_line_config *lc,unsigned int num_lines) { +size_t unused_attrs;unsigned int i;u64 flags;int ret;
@@ -932,9 +933,21 @@ static int gpio_v2_line_config_validate(struct gpio_v2_line_config *lc,if (lc->num_attrs >GPIO_V2_LINE_NUM_ATTRS_MAX )return -EINVAL ; -if (memchr_inv (lc->padding,0 ,sizeof (lc->padding))) + unused_attrs =GPIO_V2_LINE_NUM_ATTRS_MAX - lc->num_attrs; + +if (!mem_is_zero (lc->padding,sizeof (lc->padding)))return -EINVAL ; +for (i =0 ; i < lc->num_attrs; i++) { +if (lc->attrs[i].attr.padding !=0 ) +return -EINVAL ; + } + +if (unused_attrs) { +if (!mem_is_zero (&lc->attrs[lc->num_attrs], unused_attrs *sizeof (*lc->attrs))) +return -EINVAL ; + } +for (i =0 ; i < num_lines; i++) { flags =gpio_v2_line_config_flags (lc, i); ret =gpio_v2_line_flags_validate (flags);
@@ -1324,7 +1337,7 @@ static int linereq_create(struct gpio_device *gdev, void __user *ip)if ((ulr.num_lines ==0 ) || (ulr.num_lines >GPIO_V2_LINES_MAX ))return -EINVAL ; -if (memchr_inv (ulr.padding,0 ,sizeof (ulr.padding))) +if (!mem_is_zero (ulr.padding,sizeof (ulr.padding)))return -EINVAL ; lc = &ulr.config;
@@ -2069,7 +2082,7 @@ static int lineinfo_get(struct gpio_chardev_data *cdev, void __user *ip,if (copy_from_user (&lineinfo, ip,sizeof (lineinfo)))return -EFAULT ; -if (memchr_inv (lineinfo.padding,0 ,sizeof (lineinfo.padding))) +if (!mem_is_zero (lineinfo.padding,sizeof (lineinfo.padding)))return -EINVAL ; desc =gpiochip_get_desc (cdev->gdev->chip, lineinfo.offset);
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +3 -0
@@ -71,6 +71,9 @@ static int amdgpu_ttm_init_on_chip(struct amdgpu_device *adev, unsigned int type, uint64_t size_in_page) { +if (!size_in_page) +return 0 ; +return ttm_range_man_init (&adev->mman.bdev, type, false, size_in_page); }
drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c +66 -0
78 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +0 -3
@@ -5433,9 +5433,6 @@ static void gfx_v9_0_ring_emit_fence_kiq(struct amdgpu_ring *ring, u64 addr, {struct amdgpu_device *adev = ring->adev; -/* we only allocate 32bit for each seq wb address */ -BUG_ON (flags &AMDGPU_FENCE_FLAG_64BIT ); -/* write fence seq to the "addr" */ amdgpu_ring_write (ring,PACKET3 (PACKET3_WRITE_DATA ,3 )); amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(0) |
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +2 -2
@@ -925,7 +925,7 @@ static void sdma_v4_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 se/* write the fence */ amdgpu_ring_write (ring,SDMA_PKT_HEADER_OP (SDMA_OP_FENCE ));/* zero in first two bits */ -BUG_ON (addr &0x3 ); +WARN_ON (addr &0x3 );amdgpu_ring_write (ring,lower_32_bits (addr));amdgpu_ring_write (ring,upper_32_bits (addr));amdgpu_ring_write (ring,lower_32_bits (seq));
@@ -935,7 +935,7 @@ static void sdma_v4_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 se addr +=4 ;amdgpu_ring_write (ring,SDMA_PKT_HEADER_OP (SDMA_OP_FENCE ));/* zero in first two bits */ -BUG_ON (addr &0x3 ); +WARN_ON (addr &0x3 );amdgpu_ring_write (ring,lower_32_bits (addr));amdgpu_ring_write (ring,upper_32_bits (addr));amdgpu_ring_write (ring,upper_32_bits (seq));
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +6 -3
@@ -1778,7 +1778,8 @@ static int dm_suspend(void *handle)mutex_lock (&dm->dc_lock); dm->cached_dc_state =dc_copy_state (dm->dc->current_state); -dm_gpureset_toggle_interrupts (adev, dm->cached_dc_state, false); +if (dm->cached_dc_state) +dm_gpureset_toggle_interrupts (adev, dm->cached_dc_state, false);amdgpu_dm_commit_zero_streams (dm->dc);
@@ -5396,7 +5397,8 @@ static void create_eml_sink(struct amdgpu_dm_connector *aconnector) aconnector->dc_sink = aconnector->dc_link->local_sink ? aconnector->dc_link->local_sink : aconnector->dc_em_sink; -dc_sink_retain (aconnector->dc_sink); +if (aconnector->dc_sink) +dc_sink_retain (aconnector->dc_sink); } }
@@ -6575,7 +6577,8 @@ static int amdgpu_dm_connector_get_modes(struct drm_connector *connector)drm_add_modes_noedid (connector,640 ,480 ); }else {amdgpu_dm_connector_ddc_get_modes (connector, edid); -amdgpu_dm_connector_add_common_modes (encoder, connector); +if (encoder) +amdgpu_dm_connector_add_common_modes (encoder, connector); }amdgpu_dm_fbc_init (connector);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +54 -18
198 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/bios/bios_parser.c +62 -0
80 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c +6 -3
@@ -37,10 +37,13 @@ uint8_t *bios_get_image(struct dc_bios *bp, uint32_t offset, uint32_t size) { -if (bp->bios && offset + size < bp->bios_size) -return bp->bios + offset; -else +if (!bp->bios)return NULL ; + +if (offset > bp->bios_size || size > bp->bios_size - offset) +return NULL ; + +return bp->bios + offset; }#include "reg_helper.h"
drivers/gpu/drm/amd/display/dc/calcs/Makefile +2 -1
@@ -26,7 +26,8 @@ # ifdef CONFIG_X86 -calcs_ccflags := -mhard-float -msse +calcs_ccflags-$(CONFIG_CC_IS_GCC) := -mhard-float +calcs_ccflags := $(calcs_ccflags-y) -msse endif ifdef CONFIG_PPC64
drivers/gpu/drm/amd/display/dc/dce/dce_link_encoder.c +3 -1
@@ -994,7 +994,9 @@ void dce110_link_encoder_hw_init(ASSERT (result ==BP_RESULT_OK ); } -aux_initialize (enc110); + +if (enc110->aux_regs) +aux_initialize (enc110);/* reinitialize HPD. * hpd_initialize() will pass DIG_FE id to HW context.
drivers/gpu/drm/amd/display/dc/dcn30/Makefile +2 -2
@@ -32,8 +32,8 @@ DCN30 = dcn30_init.o dcn30_hubbub.o dcn30_hubp.o dcn30_dpp.o dcn30_optc.o \ ifdef CONFIG_X86 -CFLAGS_$(AMDDALPATH)/dc/dcn30/dcn30_resource.o := -mhard-float -msse -CFLAGS_$(AMDDALPATH)/dc/dcn30/dcn30_optc.o := -mhard-float -msse +CFLAGS_$(AMDDALPATH)/dc/dcn30/dcn30_resource.o := $(if $(CONFIG_CC_IS_GCC),-mhard-float) -msse +CFLAGS_$(AMDDALPATH)/dc/dcn30/dcn30_optc.o := $(if $(CONFIG_CC_IS_GCC),-mhard-float) -msse endif ifdef CONFIG_PPC64
drivers/gpu/drm/amd/display/dc/dsc/Makefile +2 -1
@@ -3,7 +3,8 @@ # Makefile for the 'dsc' sub-component of DAL. ifdef CONFIG_X86 -dsc_ccflags := -mhard-float -msse +dsc_ccflags-$(CONFIG_CC_IS_GCC) := -mhard-float +dsc_ccflags := $(dsc_ccflags-y) -msse endif ifdef CONFIG_PPC64
drivers/gpu/drm/amd/display/include/grph_object_ctrl_defs.h +4 -0
@@ -153,6 +153,10 @@ struct embedded_panel_info {uint32_t drr_enabled;uint32_t min_drr_refresh_rate;bool realtek_eDPToLVDS; +uint16_t panel_width_mm; +uint16_t panel_height_mm; +uint16_t fake_edid_size; +const uint8_t *fake_edid; };struct dc_firmware_info {
drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c +15 -0
@@ -108,6 +108,21 @@ int hwmgr_early_init(struct pp_hwmgr *hwmgr) PP_GFXOFF_MASK); hwmgr->pp_table_version =PP_TABLE_V0 ; hwmgr->od_enabled = false; +switch (hwmgr->chip_id) { +case CHIP_BONAIRE : +/* R9 M380 in iMac 2015: SMU hangs when enabling MCLK DPM +* R7 260X cards with old MC ucode: MCLK DPM is unstable +*/ +if (adev->pdev->subsystem_vendor ==0x106B || + adev->pdev->device ==0x6658 ) { +dev_info (adev->dev,"disabling MCLK DPM on quirky ASIC" ); + adev->pm.pp_feature &= ~PP_MCLK_DPM_MASK ; + hwmgr->feature_mask &= ~PP_MCLK_DPM_MASK ; + } +break ; +default : +break ; + }smu7_init_function_pointers (hwmgr);break ;case AMDGPU_FAMILY_CZ :
drivers/gpu/drm/amd/pm/powerplay/smumgr/ci_smumgr.c +18 -10
@@ -244,7 +244,7 @@ static void ci_initialize_power_tune_defaults(struct pp_hwmgr *hwmgr) smu_data->power_tune_defaults = &defaults_hawaii_pro;break ;case 0x67B8 : -case 0x66B0 : +case 0x67B0 : smu_data->power_tune_defaults = &defaults_hawaii_xt;break ;case 0x6640 :
@@ -542,12 +542,11 @@ static int ci_populate_dw8(struct pp_hwmgr *hwmgr, uint32_t fuse_table_offset) {struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);const struct ci_pt_defaults *defaults = smu_data->power_tune_defaults; -uint32_t temp;if (ci_read_smc_sram_dword (hwmgr, fuse_table_offset + offsetof(SMU7_Discrete_PmFuses , TdcWaterfallCtl), - (uint32_t *)&temp,SMC_RAM_END )) + (uint32_t *)&smu_data->power_tune_table.TdcWaterfallCtl,SMC_RAM_END ))PP_ASSERT_WITH_CODE (false,"Attempt to read PmFuses.DW6 (SviLoadLineEn) from SMC Failed!" , return -EINVAL );
@@ -1216,7 +1215,7 @@ static int ci_populate_single_memory_level( } memory_level->EnabledForThrottle =1 ; - memory_level->EnabledForActivity =1 ; + memory_level->EnabledForActivity =0 ; memory_level->UpH = data->current_profile_setting.mclk_up_hyst; memory_level->DownH = data->current_profile_setting.mclk_down_hyst; memory_level->VoltageDownH =0 ;
@@ -1321,16 +1320,25 @@ static int ci_populate_all_memory_levels(struct pp_hwmgr *hwmgr)return result; } +if (data->mclk_dpm_key_disabled && dpm_table->mclk_table.count) { +/* Populate the table with the highest MCLK level when MCLK DPM is disabled */ +for (i =0 ; i < dpm_table->mclk_table.count -1 ; i++) { + levels[i] = levels[dpm_table->mclk_table.count -1 ]; + levels[i].DisplayWatermark =PPSMC_DISPLAY_WATERMARK_HIGH ; + } + } + smu_data->smc_state_table.MemoryLevel[0 ].EnabledForActivity =1 ; dev_id = adev->pdev->device; -if ((dpm_table->mclk_table.count >=2 ) - && ((dev_id ==0x67B0 ) || (dev_id ==0x67B1 ))) { - smu_data->smc_state_table.MemoryLevel[1 ].MinVddci = - smu_data->smc_state_table.MemoryLevel[0 ].MinVddci; - smu_data->smc_state_table.MemoryLevel[1 ].MinMvdd = - smu_data->smc_state_table.MemoryLevel[0 ].MinMvdd; +if ((dpm_table->mclk_table.count >=2 ) && + ((dev_id ==0x67B0 ) || (dev_id ==0x67B1 )) && + (adev->pdev->revision ==0 )) { + smu_data->smc_state_table.MemoryLevel[1 ].MinVddc = + smu_data->smc_state_table.MemoryLevel[0 ].MinVddc; + smu_data->smc_state_table.MemoryLevel[1 ].MinVddcPhases = + smu_data->smc_state_table.MemoryLevel[0 ].MinVddcPhases; } smu_data->smc_state_table.MemoryLevel[0 ].ActivityLevel =0x1F ;CONVERT_FROM_HOST_TO_SMC_US (smu_data->smc_state_table.MemoryLevel[0 ].ActivityLevel);
drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c +5 -1
@@ -4,6 +4,8 @@* Author: James.Qian.Wang <[email protected]> * */ +#include <linux/overflow.h> +#include <drm/drm_device.h> #include <drm/drm_fb_cma_helper.h> #include <drm/drm_gem.h>
@@ -92,7 +94,9 @@ komeda_fb_afbc_size_check(struct komeda_fb *kfb, struct drm_file *file, kfb->afbc_size = kfb->offset_payload + n_blocks *ALIGN (bpp *AFBC_SUPERBLK_PIXELS /8 ,AFBC_SUPERBLK_ALIGNMENT ); - min_size = kfb->afbc_size + fb->offsets[0 ]; +if (check_add_overflow (kfb->afbc_size, fb->offsets[0 ], &min_size)) { + goto check_failed; + }if (min_size > obj->size) {DRM_DEBUG_KMS ("afbc size check failed, obj_size: 0x%zx. min_size 0x%llx.\n" , obj->size, min_size);
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +10 -6
@@ -302,7 +302,6 @@ static void ge_b850v3_lvds_remove(void) goto out;drm_bridge_remove (&ge_b850v3_lvds_ptr->bridge); - ge_b850v3_lvds_ptr =NULL ; out:mutex_unlock (&ge_b850v3_lvds_dev_mutex);
@@ -312,6 +311,7 @@ static int ge_b850v3_register(void) {struct i2c_client *stdp4028_i2c = ge_b850v3_lvds_ptr->stdp4028_i2c;struct device *dev = &stdp4028_i2c->dev; +int ret;/* drm bridge initialization */ ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs;
@@ -329,11 +329,15 @@ static int ge_b850v3_register(void)if (!stdp4028_i2c->irq)return 0 ; -return devm_request_threaded_irq (&stdp4028_i2c->dev, - stdp4028_i2c->irq,NULL , - ge_b850v3_lvds_irq_handler, -IRQF_TRIGGER_HIGH |IRQF_ONESHOT , -"ge-b850v3-lvds-dp" , ge_b850v3_lvds_ptr); + ret =devm_request_threaded_irq (&stdp4028_i2c->dev, + stdp4028_i2c->irq,NULL , + ge_b850v3_lvds_irq_handler, +IRQF_TRIGGER_HIGH |IRQF_ONESHOT , +"ge-b850v3-lvds-dp" , ge_b850v3_lvds_ptr); +if (ret) +drm_bridge_remove (&ge_b850v3_lvds_ptr->bridge); + +return ret; } static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
drivers/gpu/drm/drm_gem_framebuffer_helper.c +2 -2
@@ -159,8 +159,8 @@ int drm_gem_fb_init_with_funcs(struct drm_device *dev,return -EINVAL ;for (i =0 ; i < info->num_planes; i++) { -unsigned int width = mode_cmd->width / (i ? info->hsub :1 ); -unsigned int height = mode_cmd->height / (i ? info->vsub :1 ); +unsigned int width =drm_format_info_plane_width (info, mode_cmd->width, i); +unsigned int height =drm_format_info_plane_height (info, mode_cmd->height, i);unsigned int min_size; objs[i] =drm_gem_object_lookup (file, mode_cmd->handles[i]);
drivers/gpu/drm/gma500/oaktrail_hdmi.c +1 -0
@@ -576,6 +576,7 @@ static int oaktrail_hdmi_get_modes(struct drm_connector *connector) }else { edid = (struct edid *)raw_edid;/* FIXME ? edid = drm_get_edid(connector, i2c_adap); */ +i2c_put_adapter (i2c_adap); }if (edid) {
drivers/gpu/drm/i915/display/intel_dp.c +7 -2
@@ -2589,8 +2589,13 @@ static void intel_dp_compute_vsc_colorimetry(const struct intel_crtc_state *crtcdrm_WARN_ON (&dev_priv->drm, vsc->bpc ==6 && vsc->pixelformat !=DP_PIXELFORMAT_RGB ); -/* all YCbCr are always limited range */ - vsc->dynamic_range =DP_DYNAMIC_RANGE_CTA ; +/* All YCbCr formats are always limited range. */ +if (vsc->pixelformat ==DP_PIXELFORMAT_RGB ) + vsc->dynamic_range = crtc_state->limited_color_range ? +DP_DYNAMIC_RANGE_CTA :DP_DYNAMIC_RANGE_VESA ; +else + vsc->dynamic_range =DP_DYNAMIC_RANGE_CTA ; + vsc->content_type =DP_CONTENT_TYPE_NOT_DEFINED ; }
drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c +18 -8
@@ -70,10 +70,12 @@ static void heartbeat(struct work_struct *wrk)/* Just in case everything has gone horribly wrong, give it a kick */ intel_engine_flush_submission (engine); - rq = engine->heartbeat.systole; -if (rq &&i915_request_completed (rq)) { -i915_request_put (rq); - engine->heartbeat.systole =NULL ; + rq =xchg (&engine->heartbeat.systole,NULL ); +if (rq) { +if (i915_request_completed (rq)) +i915_request_put (rq); +else + engine->heartbeat.systole = rq; }if (!intel_engine_pm_get_if_awake (engine))
@@ -153,8 +155,11 @@ static void heartbeat(struct work_struct *wrk) unlock:mutex_unlock (&ce->timeline->mutex); out: -if (!next_heartbeat (engine)) -i915_request_put (fetch_and_zero (&engine->heartbeat.systole)); +if (!next_heartbeat (engine)) { + rq =xchg (&engine->heartbeat.systole,NULL ); +if (rq) +i915_request_put (rq); + }intel_engine_pm_put (engine); }
@@ -168,8 +173,13 @@ void intel_engine_unpark_heartbeat(struct intel_engine_cs *engine)void intel_engine_park_heartbeat (struct intel_engine_cs *engine) { -if (cancel_delayed_work (&engine->heartbeat.work)) -i915_request_put (fetch_and_zero (&engine->heartbeat.systole)); +if (cancel_delayed_work (&engine->heartbeat.work)) { +struct i915_request *rq; + + rq =xchg (&engine->heartbeat.systole,NULL ); +if (rq) +i915_request_put (rq); + } }void intel_engine_init_heartbeat (struct intel_engine_cs *engine)
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c +1 -1
@@ -642,7 +642,7 @@ static void a6xx_get_crashdumper_hlsq_registers(struct msm_gpu *gpu,u64 out = dumper->iova +A6XX_CD_DATA_OFFSET ;int i, regcount =0 ; - in +=CRASHDUMP_WRITE (in,REG_A6XX_HLSQ_DBG_READ_SEL , regs->val1); + in +=CRASHDUMP_WRITE (in,REG_A6XX_HLSQ_DBG_READ_SEL , (regs->val1 &0xff ) <<8 );for (i =0 ; i < regs->count; i +=2 ) {u32 count =RANGE (regs->registers, i);
drivers/gpu/drm/msm/adreno/a6xx_hfi.c +10 -4
@@ -29,7 +29,7 @@ static int a6xx_hfi_queue_read(struct a6xx_gmu *gmu,struct a6xx_hfi_queue_header *header = queue->header;u32 i, hdr, index = header->read_index; -if (header->read_index == header->write_index) { +if (header->read_index ==READ_ONCE (header->write_index)) { header->rx_request =1 ;return 0 ; }
@@ -55,7 +55,10 @@ static int a6xx_hfi_queue_read(struct a6xx_gmu *gmu,if (!gmu->legacy) index =ALIGN (index,4 ) % header->size; - header->read_index = index; +/* Ensure all memory operations are complete before updating the read index */ +dma_mb (); + +WRITE_ONCE (header->read_index, index);return HFI_HEADER_SIZE (hdr); }
@@ -67,7 +70,7 @@ static int a6xx_hfi_queue_write(struct a6xx_gmu *gmu,spin_lock (&queue->lock); - space =CIRC_SPACE (header->write_index, header->read_index, + space =CIRC_SPACE (header->write_index,READ_ONCE (header->read_index), header->size);if (space < dwords) { header->dropped++;
@@ -86,7 +89,10 @@ static int a6xx_hfi_queue_write(struct a6xx_gmu *gmu, queue->data[index] =0xfafafafa ; } - header->write_index = index; +/* Ensure all memory operations are complete before updating the write index */ +dma_mb (); + +WRITE_ONCE (header->write_index, index);spin_unlock (&queue->lock);gmu_write (gmu,REG_A6XX_GMU_HOST2GMU_INTR_SET ,0x01 );
drivers/gpu/drm/msm/dsi/dsi_cfg.c +2 -2
@@ -258,10 +258,10 @@ static const struct msm_dsi_cfg_handler dsi_cfg_handlers[] = { &msm8996_dsi_cfg, &msm_dsi_6g_host_ops}, {MSM_DSI_VER_MAJOR_6G ,MSM_DSI_6G_VER_MINOR_V1_4_2 , &msm8976_dsi_cfg, &msm_dsi_6g_host_ops}, + {MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_0_0, + &msm8998_dsi_cfg, &msm_dsi_6g_v2_host_ops}, {MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_1_0, &sdm660_dsi_cfg, &msm_dsi_6g_v2_host_ops}, - {MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_2_0, - &msm8998_dsi_cfg, &msm_dsi_6g_v2_host_ops}, {MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_2_1, &sdm845_dsi_cfg, &msm_dsi_6g_v2_host_ops}, {MSM_DSI_VER_MAJOR_6G, MSM_DSI_6G_VER_MINOR_V2_3_0,
drivers/gpu/drm/msm/dsi/dsi_cfg.h +1 -1
@@ -18,8 +18,8 @@#define MSM_DSI_6G_VER_MINOR_V1_3_1 0x10030001#define MSM_DSI_6G_VER_MINOR_V1_4_1 0x10040001#define MSM_DSI_6G_VER_MINOR_V1_4_2 0x10040002 +#define MSM_DSI_6G_VER_MINOR_V2_0_0 0x20000000#define MSM_DSI_6G_VER_MINOR_V2_1_0 0x20010000 -#define MSM_DSI_6G_VER_MINOR_V2_2_0 0x20000000#define MSM_DSI_6G_VER_MINOR_V2_2_1 0x20020001#define MSM_DSI_6G_VER_MINOR_V2_3_0 0x20030000#define MSM_DSI_6G_VER_MINOR_V2_4_0 0x20040000
drivers/gpu/drm/panel/panel-simple.c +1 -1
@@ -1140,7 +1140,7 @@ static const struct panel_desc auo_g190ean01 = { .height = 301, }, .delay = { - .prepare = 50, + .prepare = 30, .enable = 200, .disable = 110, .unprepare = 1000,
drivers/gpu/drm/panfrost/panfrost_drv.c +2 -0
@@ -324,6 +324,8 @@ panfrost_ioctl_wait_bo(struct drm_device *dev, void *data, true, timeout);if (!ret) ret = timeout ? -ETIMEDOUT : -EBUSY ; +else if (ret >0 ) + ret =0 ;drm_gem_object_put (gem_obj);
drivers/gpu/drm/radeon/ci_dpm.c +6 -3
@@ -2490,7 +2490,8 @@ static void ci_register_patching_mc_arb(struct radeon_device *rdev,if (patch && ((rdev->pdev->device ==0x67B0 ) || - (rdev->pdev->device ==0x67B1 ))) { + (rdev->pdev->device ==0x67B1 )) && + (rdev->pdev->revision ==0 )) {if ((memory_clock >100000 ) && (memory_clock <=125000 )) { tmp2 = (((0x31 * engine_clock) /125000 ) -1 ) &0xff ; *dram_timimg2 &= ~0x00ff0000 ;
@@ -3331,7 +3332,8 @@ static int ci_populate_all_memory_levels(struct radeon_device *rdev) pi->smc_state_table.MemoryLevel[0 ].EnabledForActivity =1 ;if ((dpm_table->mclk_table.count >=2 ) && - ((rdev->pdev->device ==0x67B0 ) || (rdev->pdev->device ==0x67B1 ))) { + ((rdev->pdev->device ==0x67B0 ) || (rdev->pdev->device ==0x67B1 )) && + (rdev->pdev->revision ==0 )) { pi->smc_state_table.MemoryLevel[1 ].MinVddc = pi->smc_state_table.MemoryLevel[0 ].MinVddc; pi->smc_state_table.MemoryLevel[1].MinVddcPhases =
@@ -4528,7 +4530,8 @@ static int ci_register_patching_mc_seq(struct radeon_device *rdev,if (patch && ((rdev->pdev->device ==0x67B0 ) || - (rdev->pdev->device ==0x67B1 ))) { + (rdev->pdev->device ==0x67B1 )) && + (rdev->pdev->revision ==0 )) {for (i =0 ; i < table->last; i++) {if (table->last >=SMU7_DISCRETE_MC_REGISTER_ARRAY_SIZE )return -EINVAL ;
drivers/gpu/drm/sun4i/sun4i_backend.c +2 -1
@@ -897,7 +897,8 @@ static int sun4i_backend_bind(struct device *dev, struct device *master, &sun4i_backend_regmap_config);if (IS_ERR (backend->engine.regs)) {dev_err (dev,"Couldn't create the backend regmap\n" ); -return PTR_ERR (backend->engine.regs); + ret =PTR_ERR (backend->engine.regs); + goto err_disable_ram_clk; }list_add_tail (&backend->engine.list, &drv->engine_list);
drivers/gpu/drm/vc4/vc4_bo.c +3 -0
@@ -719,12 +719,15 @@ int vc4_mmap(struct file *filp, struct vm_area_struct *vma)return -EINVAL ; } +mutex_lock (&bo->madv_lock);if (bo->madv !=VC4_MADV_WILLNEED ) {DRM_DEBUG ("mmaping of %s BO not allowed\n" , bo->madv ==VC4_MADV_DONTNEED ?"purgeable" :"purged" ); +mutex_unlock (&bo->madv_lock);return -EINVAL ; } +mutex_unlock (&bo->madv_lock);/* * Clear the VM_PFNMAP flag that was set by drm_gem_mmap(), and set the
drivers/gpu/drm/vc4/vc4_gem.c +11 -8
@@ -60,6 +60,7 @@ vc4_free_hang_state(struct drm_device *dev, struct vc4_hang_state *state)for (i =0 ; i < state->user_state.bo_count; i++)drm_gem_object_put (state->bo[i]); +kfree (state->bo);kfree (state); }
@@ -165,10 +166,8 @@ vc4_save_hang_state(struct drm_device *dev)spin_lock_irqsave (&vc4->job_lock, irqflags); exec[0 ] =vc4_first_bin_job (vc4); exec[1 ] =vc4_first_render_job (vc4); -if (!exec[0 ] && !exec[1 ]) { -spin_unlock_irqrestore (&vc4->job_lock, irqflags); -return ; - } +if (!exec[0 ] && !exec[1 ]) + goto err_free_state;/* Get the bos from both binner and renderer into hang state. */ state->bo_count =0 ;
@@ -185,10 +184,8 @@ vc4_save_hang_state(struct drm_device *dev) kernel_state->bo =kcalloc (state->bo_count,sizeof (*kernel_state->bo),GFP_ATOMIC ); -if (!kernel_state->bo) { -spin_unlock_irqrestore (&vc4->job_lock, irqflags); -return ; - } +if (!kernel_state->bo) + goto err_free_state; k =0 ;for (i =0 ; i <2 ; i++) {
@@ -280,6 +277,12 @@ vc4_save_hang_state(struct drm_device *dev) vc4->hang_state = kernel_state;spin_unlock_irqrestore (&vc4->job_lock, irqflags); } + +return ; + +err_free_state: +spin_unlock_irqrestore (&vc4->job_lock, irqflags); +kfree (kernel_state); } static void
drivers/hid/hid-alps.c +3 -0
@@ -437,6 +437,9 @@ static int alps_raw_event(struct hid_device *hdev,int ret =0 ;struct alps_dev *hdata =hid_get_drvdata (hdev); +if (!(hdev->claimed &HID_CLAIMED_INPUT ) || !hdata->input) +return 0 ; +switch (hdev->product) {case HID_PRODUCT_ID_T4_BTNLESS : ret =t4_raw_event (hdata, data, size);
drivers/hid/hid-asus.c +12 -16
@@ -901,7 +901,8 @@ static int asus_start_multitouch(struct hid_device *hdev)return 0 ; } -static int __maybe_unused asus_resume (struct hid_device *hdev) { +static int __maybe_unused asus_resume (struct hid_device *hdev) +{struct asus_drvdata *drvdata =hid_get_drvdata (hdev);int ret =0 ;
@@ -1033,22 +1034,17 @@ static int asus_probe(struct hid_device *hdev, const struct hid_device_id *id)* were freed during registration due to no usages being mapped, * leaving drvdata->input pointing to freed memory. */ -if (!drvdata->input || !(hdev->claimed &HID_CLAIMED_INPUT )) { -hid_err (hdev,"Asus input not registered\n" ); - ret = -ENOMEM ; - goto err_stop_hw; - } - -if (drvdata->tp) { - drvdata->input->name ="Asus TouchPad" ; - }else { - drvdata->input->name ="Asus Keyboard" ; - } +if (drvdata->input && (hdev->claimed &HID_CLAIMED_INPUT )) { +if (drvdata->tp) + drvdata->input->name ="Asus TouchPad" ; +else + drvdata->input->name ="Asus Keyboard" ; -if (drvdata->tp) { - ret =asus_start_multitouch (hdev); -if (ret) - goto err_stop_hw; +if (drvdata->tp) { + ret =asus_start_multitouch (hdev); +if (ret) + goto err_stop_hw; + } }return 0 ;
drivers/hid/hid-core.c +3 -0
@@ -1354,6 +1354,9 @@ static u32 s32ton(__s32 value, unsigned n)if (!value || !n)return 0 ; +if (n >32 ) + n =32 ; + a = value >> (n -1 );if (a && a !=-1 )return value <0 ?1 << (n -1 ) : (1 << (n -1 )) -1 ;
drivers/hid/hid-ids.h +3 -0
@@ -22,6 +22,9 @@#define USB_DEVICE_ID_3M2256 0x0502#define USB_DEVICE_ID_3M3266 0x0506 +#define USB_VENDOR_ID_8BITDO 0x2dc8 +#define USB_DEVICE_ID_8BITDO_PRO_3 0x6009 +#define USB_VENDOR_ID_A4TECH 0x09da#define USB_DEVICE_ID_A4TECH_WCP32PU 0x0006#define USB_DEVICE_ID_A4TECH_X5_005D 0x000a
drivers/hid/hid-quirks.c +2 -1
@@ -25,6 +25,7 @@*/ static const struct hid_device_id hid_quirks[] = { + {HID_USB_DEVICE (USB_VENDOR_ID_8BITDO ,USB_DEVICE_ID_8BITDO_PRO_3 ),HID_QUIRK_ALWAYS_POLL }, {HID_USB_DEVICE (USB_VENDOR_ID_AASHIMA ,USB_DEVICE_ID_AASHIMA_GAMEPAD ),HID_QUIRK_BADPAD }, {HID_USB_DEVICE (USB_VENDOR_ID_AASHIMA ,USB_DEVICE_ID_AASHIMA_PREDATOR ),HID_QUIRK_BADPAD }, {HID_USB_DEVICE (USB_VENDOR_ID_ADATA_XPG ,USB_VENDOR_ID_ADATA_XPG_WL_GAMING_MOUSE ),HID_QUIRK_ALWAYS_POLL },
@@ -221,7 +222,7 @@ static const struct hid_device_id hid_quirks[] = {* used as a driver. See hid_scan_report(). */ static const struct hid_device_id hid_have_special_driver[] = { -#if IS_ENABLED(CONFIG_APPLEDISPLAY) +#if IS_ENABLED(CONFIG_USB_APPLEDISPLAY) {HID_USB_DEVICE (USB_VENDOR_ID_APPLE ,0x9218 ) }, {HID_USB_DEVICE (USB_VENDOR_ID_APPLE ,0x9219 ) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, 0x921c) },
drivers/hid/hid-roccat.c +2 -0
@@ -257,6 +257,7 @@ int roccat_report_event(int minor, u8 const *data)if (!new_value)return -ENOMEM ; +mutex_lock (&device->readers_lock);mutex_lock (&device->cbuf_lock); report = &device->cbuf[device->cbuf_end];
@@ -279,6 +280,7 @@ int roccat_report_event(int minor, u8 const *data) }mutex_unlock (&device->cbuf_lock); +mutex_unlock (&device->readers_lock);wake_up_interruptible (&device->wait);return 0 ;
drivers/hid/usbhid/hid-core.c +1 -1
@@ -1538,7 +1538,7 @@ static int hid_post_reset(struct usb_interface *intf)* configuration descriptors passed, we already know that * the size of the HID report descriptor has not changed. */ - rdesc =kmalloc (hid->dev_rsize,GFP_KERNEL ); + rdesc =kmalloc (hid->dev_rsize,GFP_NOIO );if (!rdesc)return -ENOMEM ;
drivers/hwmon/pmbus/adm1266.c +21 -11
@@ -46,6 +46,7 @@#define ADM1266_BLACKBOX_OFFSET 0#define ADM1266_BLACKBOX_SIZE 64 +#define ADM1266_BLACKBOX_MAX_RECORDS 32#define ADM1266_PMBUS_BLOCK_MAX 255
@@ -60,7 +61,7 @@ struct adm1266_data {u8 *dev_mem;struct mutex buf_mutex;u8 write_buf[ADM1266_PMBUS_BLOCK_MAX +1 ]____cacheline_aligned ; -u8 read_buf[ADM1266_PMBUS_BLOCK_MAX +1 ]____cacheline_aligned ; +u8 read_buf[ADM1266_PMBUS_BLOCK_MAX +2 ]____cacheline_aligned ; };static const struct nvmem_cell_info adm1266_nvmem_cells[] = {
@@ -175,6 +176,8 @@ static int adm1266_gpio_get(struct gpio_chip *chip, unsigned int offset) ret =i2c_smbus_read_block_data (data->client, pmbus_cmd, read_buf);
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/md/dm-cache-target.c +90 -21
111 lines not on this page · raw message
drivers/md/raid5-cache.c +33 -15
48 lines not on this page · raw message
drivers/media/test-drivers/vidtv/vidtv_bridge.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vidtv/vidtv_channel.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vidtv/vidtv_mux.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vidtv/vidtv_ts.c +24 -24
48 lines not on this page · raw message
drivers/media/test-drivers/vidtv/vidtv_ts.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/media/usb/as102/as102_usb_drv.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/media/usb/em28xx/em28xx-video.c +10 -4
Lines of this file are not shown. View the raw message.
drivers/net/dsa/sja1105/sja1105_static_config.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet.c +7 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000/e1000_ethtool.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000e/netdev.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_main.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_dcb_lib.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_target.c +11 -6
Lines of this file are not shown. View the raw message.
drivers/net/slip/slhc.c +31 -18
49 lines not on this page · raw message
drivers/net/wireless/ath/ath9k/channel.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43/xmit.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/b43legacy/xmit.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c +27 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.h +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +8 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/include/soc.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/11n_aggr.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/pci.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-tegra194.c +7 -3
Lines of this file are not shown. View the raw message.
drivers/pci/pci.c +23 -25
48 lines not on this page · raw message
drivers/phy/marvell/phy-mvebu-a3700-utmi.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/pinctrl/nomadik/pinctrl-abx500.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/surfacepro3_button.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/power/supply/max17042_battery.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/media/atomisp/pci/atomisp_ioctl.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_security.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/thermal/intel/int340x_thermal/int3400_thermal.c +5 -4
Lines of this file are not shown. View the raw message.
drivers/video/backlight/sky81452-backlight.c +3 -0
Lines of this file are not shown. View the raw message.
fs/ocfs2/aops.c +45 -30
75 lines not on this page · raw message
include/dt-bindings/clock/qcom,dispcc-sc7180.h +6 -1
Lines of this file are not shown. View the raw message.
include/linux/device.h +45 -3
48 lines not on this page · raw message
kernel/padata.c +37 -99
136 lines not on this page · raw message
net/batman-adv/bat_iv_ogm.c +60 -25
85 lines not on this page · raw message
net/batman-adv/bridge_loop_avoidance.c +63 -29
92 lines not on this page · raw message
net/batman-adv/fragmentation.c +52 -6
58 lines not on this page · raw message
net/core/flow_dissector.c +62 -7
69 lines not on this page · raw message
net/ipv4/route.c +0 -48
48 lines not on this page · raw message
net/ipv4/udp_tunnel_core.c +48 -0
48 lines not on this page · raw message
net/ipv6/ip6_output.c +0 -68
68 lines not on this page · raw message
net/ipv6/ip6_udp_tunnel.c +69 -0
69 lines not on this page · raw message
net/netfilter/ipset/ip_set_hash_ipmark.c +5 -1
Lines of this file are not shown. View the raw message.
net/netfilter/ipset/ip_set_hash_ipport.c +4 -1
Lines of this file are not shown. View the raw message.
net/netfilter/ipset/ip_set_hash_ipportip.c +4 -1
Lines of this file are not shown. View the raw message.
net/netfilter/ipset/ip_set_hash_ipportnet.c +4 -1
Lines of this file are not shown. View the raw message.
net/netfilter/nf_conntrack_proto_sctp.c +9 -4
Lines of this file are not shown. View the raw message.
net/netfilter/nf_conntrack_sip.c +118 -34
152 lines not on this page · raw message
net/netfilter/nfnetlink_osf.c +19 -26
45 lines not on this page · raw message
net/sched/sch_netem.c +43 -14
57 lines not on this page · raw message
net/sched/sch_pie.c +25 -27
52 lines not on this page · raw message
net/sched/sch_sfb.c +32 -22
54 lines not on this page · raw message
net/sched/sch_taprio.c +185 -172
357 lines not on this page · raw message
net/vmw_vsock/virtio_transport_common.c +1 -2
Lines of this file are not shown. View the raw message.
sound/core/compress_offload.c +0 -75
75 lines not on this page · raw message
sound/firewire/fireworks/fireworks_command.c +4 -1
Lines of this file are not shown. View the raw message.
sound/soc/fsl/fsl_easrc.c +89 -36
125 lines not on this page · raw message
sound/usb/caiaq/control.c +36 -16
52 lines not on this page · raw message
tools/testing/selftests/cgroup/test_memcontrol.c +10 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mqueue/setting deleted +0 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mqueue/settings new file +1 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.