Linux 5.15.216
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.15.216 kernel.
All users of the 5.15 kernel series must upgrade.
The updated 5.15.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/arm/mach-npcm/platsmp.c | 2 arch/powerpc/boot/simpleboot.c | 2 arch/powerpc/boot/treeboot-akebono.c | 2 arch/powerpc/boot/treeboot-currituck.c | 2 arch/powerpc/include/asm/cputime.h | 30 arch/powerpc/include/asm/time.h | 1 arch/powerpc/kernel/time.c | 93 + arch/powerpc/platforms/chrp/time.c | 2 arch/powerpc/platforms/ps3/mm.c | 1 arch/um/drivers/vector_kern.c | 3 arch/x86/boot/compressed/Makefile | 1 arch/x86/kvm/mmu/mmu.c | 2 arch/x86/kvm/vmx/nested.c | 11 arch/x86/kvm/vmx/vmx_ops.h | 16 crypto/rsa-pkcs1pad.c | 2 drivers/ata/pata_sl82c105.c | 4 drivers/ata/sata_dwc_460ex.c | 21 drivers/block/rbd.c | 7 drivers/bluetooth/btqca.c | 2 drivers/cdrom/cdrom.c | 1 drivers/comedi/drivers/comedi_parport.c | 13 drivers/counter/microchip-tcb-capture.c | 4 drivers/cpufreq/powernow-k8.c | 1 drivers/dma/sh/rz-dmac.c | 94 - drivers/dma/sun6i-dma.c | 11 drivers/firewire/net.c | 39 drivers/firmware/arm_ffa/driver.c | 2 drivers/firmware/arm_scmi/notify.c | 6 drivers/firmware/stratix10-svc.c | 9 drivers/gpio/gpio-pch.c | 28 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 45 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 15 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 8 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 13 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 3 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 10 drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 4 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 4 drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c | 2 drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c | 7 drivers/gpu/drm/i915/gem/i915_gem_context.c | 24 drivers/gpu/drm/i915/gt/intel_engine_user.c | 2 drivers/gpu/drm/i915/gt/selftest_gt_pm.c | 8 drivers/gpu/drm/i915/i915_active.c | 7 drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 6 drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.c | 1 drivers/gpu/drm/radeon/r100.c | 13 drivers/gpu/drm/rockchip/cdn-dp-reg.c | 2 drivers/gpu/drm/vc4/vc4_validate.c | 29 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 14 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 22 drivers/hid/hid-logitech-dj.c | 28 drivers/hwmon/adt7470.c | 129 +- drivers/hwmon/corsair-cpro.c | 1 drivers/hwmon/corsair-psu.c | 5 drivers/hwmon/nct6775.c | 12 drivers/hwmon/npcm750-pwm-fan.c | 11 drivers/hwmon/occ/common.c | 134 +- drivers/hwmon/occ/common.h | 7 drivers/hwmon/occ/p8_i2c.c | 2 drivers/hwmon/occ/p9_sbe.c | 2 drivers/hwmon/occ/sysfs.c | 159 ++ drivers/hwmon/pmbus/pmbus_core.c | 2 drivers/hwtracing/intel_th/core.c | 10 drivers/hwtracing/intel_th/msu.c | 2 drivers/i2c/busses/i2c-amd-mp2-plat.c | 4 drivers/i2c/busses/i2c-imx.c | 1 drivers/i2c/busses/i2c-jz4780.c | 5 drivers/infiniband/core/mad.c | 30 drivers/infiniband/hw/hns/hns_roce_hem.c | 2 drivers/infiniband/hw/irdma/verbs.c | 4 drivers/infiniband/sw/rxe/rxe_mmap.c | 19 drivers/infiniband/sw/siw/siw_verbs.c | 62 - drivers/input/evdev.c | 27 drivers/input/misc/ims-pcu.c | 32 drivers/iommu/amd/init.c | 6 drivers/iommu/intel/perf.c | 2 drivers/iommu/intel/svm.c | 2 drivers/media/cec/platform/seco/seco-cec.c | 6 drivers/media/common/videobuf2/videobuf2-core.c | 12 drivers/media/dvb-frontends/rtl2832.c | 4 drivers/media/dvb-frontends/rtl2832_sdr.c | 19 drivers/media/pci/cx23885/cx23885-core.c | 14 drivers/media/pci/dm1105/dm1105.c | 1 drivers/media/pci/saa7134/saa7134-video.c | 25 drivers/media/platform/sunxi/sun4i-csi/sun4i_dma.c | 6 drivers/media/radio/radio-si476x.c | 1 drivers/media/test-drivers/vidtv/vidtv_bridge.c | 4 drivers/media/test-drivers/vimc/vimc-core.c | 1 drivers/media/test-drivers/vivid/vivid-ctrls.c | 12 drivers/media/test-drivers/vivid/vivid-vid-cap.c | 6 drivers/media/test-drivers/vivid/vivid-vid-out.c | 6 drivers/media/usb/airspy/airspy.c | 8 drivers/media/usb/cx231xx/cx231xx-cards.c | 16 drivers/media/usb/msi2500/msi2500.c | 32 drivers/media/usb/pwc/pwc-if.c | 13 drivers/media/usb/uvc/uvc_video.c | 78 - drivers/media/usb/uvc/uvcvideo.h | 4 drivers/media/v4l2-core/v4l2-ctrls-request.c | 14 drivers/misc/fastrpc.c | 3 drivers/mtd/mtdswap.c | 5 drivers/mtd/nand/raw/mtk_ecc.c | 16 drivers/net/bonding/bond_alb.c | 10 drivers/net/can/c_can/c_can_main.c | 8 drivers/net/can/softing/softing_fw.c | 46 drivers/net/can/usb/ems_usb.c | 43 drivers/net/can/usb/etas_es58x/es58x_core.c | 1 drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c | 1 drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c | 13 drivers/net/can/usb/peak_usb/pcan_usb_core.c | 1 drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 40 drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 20 drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 11 drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 22 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 12 drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 7 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 22 drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c | 1 drivers/net/ethernet/google/gve/gve.h | 3 drivers/net/ethernet/google/gve/gve_main.c | 3 drivers/net/ethernet/google/gve/gve_rx_dqo.c | 33 drivers/net/ethernet/hisilicon/hip04_eth.c | 11 drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 1 drivers/net/ethernet/huawei/hinic/hinic_dev.h | 2 drivers/net/ethernet/huawei/hinic/hinic_ethtool.c | 21 drivers/net/ethernet/intel/e1000/e1000_main.c | 2 drivers/net/ethernet/intel/ice/ice_ptp.c | 2 drivers/net/ethernet/intel/igbvf/netdev.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c | 1 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c | 6 drivers/net/ethernet/marvell/prestera/prestera_pci.c | 3 drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 16 drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 15 drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c | 2 drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c | 3 drivers/net/ethernet/nvidia/forcedeth.c | 4 drivers/net/ethernet/qlogic/qede/qede_main.c | 44 drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 14 drivers/net/ethernet/stmicro/stmmac/stmmac.h | 3 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 156 ++ drivers/net/geneve.c | 3 drivers/net/macsec.c | 2 drivers/net/phy/phylink.c | 29 drivers/net/ppp/ppp_generic.c | 18 drivers/net/ppp/pppoe.c | 1 drivers/net/slip/slip.c | 4 drivers/net/thunderbolt.c | 20 drivers/net/vmxnet3/vmxnet3_drv.c | 22 drivers/net/vxlan/vxlan_core.c | 20 drivers/net/wan/wanxl.c | 3 drivers/net/wireless/ath/ath11k/dp_rx.c | 3 drivers/net/wireless/ath/ath6kl/txrx.c | 10 drivers/net/wireless/ath/ath6kl/wmi.c | 20 drivers/net/wireless/ath/ath9k/hif_usb.c | 7 drivers/net/wireless/ath/carl9170/rx.c | 7 drivers/net/wireless/ath/carl9170/tx.c | 2 drivers/net/wireless/atmel/at76c50x-usb.c | 7 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 8 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 drivers/net/wireless/intel/ipw2x00/ipw2100.c | 8 drivers/net/wireless/intersil/p54/txrx.c | 8 drivers/net/wireless/mac80211_hwsim.c | 1 drivers/net/wireless/marvell/libertas/firmware.c | 1 drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c | 2 drivers/net/wireless/marvell/mwifiex/tdls.c | 2 drivers/net/wireless/marvell/mwifiex/uap_event.c | 24 drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 4 drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 2 drivers/net/wireless/microchip/wilc1000/hif.c | 5 drivers/nvme/target/tcp.c | 4 drivers/phy/xilinx/phy-zynqmp.c | 127 +- drivers/pinctrl/Kconfig | 1 drivers/pinctrl/devicetree.c | 4 drivers/pinctrl/renesas/pinctrl-rzg2l.c | 4 drivers/s390/block/dasd_ioctl.c | 2 drivers/s390/crypto/zcrypt_ccamisc.c | 26 drivers/s390/net/qeth_core_main.c | 3 drivers/s390/scsi/zfcp_aux.c | 1 drivers/scsi/libiscsi.c | 2 drivers/scsi/libiscsi_tcp.c | 8 drivers/scsi/scsi_debug.c | 4 drivers/spi/spi-fsl-dspi.c | 13 drivers/staging/media/meson/vdec/vdec.c | 4 drivers/staging/media/sunxi/cedrus/cedrus.c | 6 drivers/staging/media/sunxi/cedrus/cedrus_h264.c | 3 drivers/staging/media/tegra-video/vi.c | 4 drivers/staging/rtl8723bs/core/rtw_ieee80211.c | 12 drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 2 drivers/staging/rtl8723bs/core/rtw_wlan_util.c | 3 drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 6 drivers/thermal/thermal_hwmon.c | 3 drivers/thunderbolt/eeprom.c | 9 drivers/thunderbolt/icm.c | 2 drivers/tty/serial/8250/8250_dma.c | 12 drivers/tty/vt/keyboard.c | 5 drivers/tty/vt/vt_ioctl.c | 2 drivers/usb/atm/cxacru.c | 2 drivers/usb/atm/ueagle-atm.c | 17 drivers/usb/cdns3/cdnsp-gadget.c | 4 drivers/usb/chipidea/core.c | 1 drivers/usb/gadget/function/f_midi.c | 1 drivers/usb/gadget/function/f_ncm.c | 19 drivers/usb/gadget/function/f_printer.c | 23 drivers/usb/gadget/function/uvc_v4l2.c | 2 drivers/usb/gadget/udc/bdc/bdc_core.c | 20 drivers/usb/gadget/udc/bdc/bdc_udc.c | 7 drivers/usb/gadget/udc/dummy_hcd.c | 40 drivers/usb/gadget/udc/fsl_udc_core.c | 1 drivers/usb/gadget/udc/snps_udc_core.c | 1 drivers/usb/host/xhci-pci.c | 1 drivers/usb/host/xhci.c | 15 drivers/usb/host/xhci.h | 1 drivers/usb/serial/ftdi_sio.c | 2 drivers/usb/serial/ftdi_sio_ids.h | 5 drivers/usb/serial/io_edgeport.c | 3 drivers/usb/serial/keyspan_pda.c | 44 drivers/usb/serial/option.c | 1 drivers/usb/storage/unusual_devs.h | 7 drivers/vhost/vdpa.c | 9 drivers/vhost/vhost.c | 8 drivers/video/fbdev/core/bitblit.c | 9 drivers/watchdog/watchdog_pretimeout.c | 2 fs/binfmt_elf_fdpic.c | 4 fs/binfmt_misc.c | 9 fs/btrfs/free-space-cache.c | 3 fs/btrfs/relocation.c | 2 fs/ceph/caps.c | 1 fs/cifs/cifssmb.c | 12 fs/cifs/smb2ops.c | 25 fs/crypto/fscrypt_private.h | 32 fs/crypto/keyring.c | 212 +-- fs/exec.c | 2 fs/ksmbd/smb2misc.c | 5 fs/namespace.c | 5 fs/nfs/nfs4proc.c | 13 fs/proc/namespaces.c | 4 include/linux/dma/qcom_bam_dma.h | 21 include/linux/netdevice.h | 5 include/linux/netfilter/nf_conntrack_sip.h | 2 include/linux/vtime.h | 6 include/media/videobuf2-core.h | 8 include/net/act_api.h | 19 include/net/addrconf.h | 4 include/net/bluetooth/l2cap.h | 1 include/net/bluetooth/rfcomm.h | 3 include/net/ip_vs.h | 20 include/net/raw.h | 5 include/net/rawv6.h | 6 include/net/route.h | 2 include/net/sctp/structs.h | 3 kernel/audit.c | 11 kernel/auditfilter.c | 6 kernel/bpf/verifier.c | 31 kernel/futex/core.c | 95 + kernel/sched/cputime.c | 13 kernel/trace/trace_eprobe.c | 3 kernel/trace/trace_events.c | 6 kernel/trace/trace_events_filter.c | 3 kernel/trace/trace_mmiotrace.c | 5 kernel/trace/trace_probe.c | 13 lib/assoc_array.c | 3 lib/rhashtable.c | 1 mm/huge_memory.c | 16 mm/hugetlb.c | 2 mm/page_reporting.c | 6 mm/percpu-km.c | 2 net/bluetooth/6lowpan.c | 18 net/bluetooth/hidp/core.c | 30 net/bluetooth/l2cap_core.c | 41 net/bluetooth/rfcomm/core.c | 17 net/bluetooth/rfcomm/tty.c | 7 net/bridge/br_mrp.c | 8 net/bridge/br_multicast.c | 1 net/bridge/br_netlink_tunnel.c | 3 net/bridge/br_private.h | 6 net/bridge/br_vlan.c | 10 net/bridge/br_vlan_options.c | 3 net/bridge/netfilter/ebt_nflog.c | 17 net/bridge/netfilter/nf_conntrack_bridge.c | 1 net/can/bcm.c | 556 +++++++--- net/can/isotp.c | 293 +++-- net/can/j1939/transport.c | 20 net/ceph/auth_x.c | 9 net/ceph/ceph_common.c | 4 net/ceph/mon_client.c | 4 net/ceph/osdmap.c | 12 net/core/lwt_bpf.c | 4 net/core/sock.c | 1 net/core/xdp.c | 2 net/hsr/hsr_slave.c | 2 net/ipv4/fib_semantics.c | 101 + net/ipv4/fib_trie.c | 2 net/ipv4/icmp.c | 18 net/ipv4/inet_connection_sock.c | 20 net/ipv4/nexthop.c | 2 net/ipv4/raw.c | 93 - net/ipv4/raw_diag.c | 33 net/ipv4/route.c | 29 net/ipv4/tcp_bpf.c | 4 net/ipv4/udp_offload.c | 4 net/ipv6/fib6_rules.c | 1 net/ipv6/ila/ila_common.c | 12 net/ipv6/ip6_tunnel.c | 3 net/ipv6/raw.c | 108 - net/ipv6/route.c | 8 net/iucv/af_iucv.c | 21 net/mac80211/iface.c | 8 net/mac80211/rx.c | 2 net/mac80211/s1g.c | 4 net/mac802154/llsec.c | 5 net/mpls/af_mpls.c | 4 net/mptcp/options.c | 12 net/ncsi/ncsi-netlink.c | 4 net/netfilter/ipset/ip_set_hash_gen.h | 2 net/netfilter/ipvs/ip_vs_conn.c | 44 net/netfilter/ipvs/ip_vs_core.c | 1 net/netfilter/ipvs/ip_vs_ctl.c | 77 + net/netfilter/ipvs/ip_vs_lc.c | 4 net/netfilter/ipvs/ip_vs_proto_sctp.c | 2 net/netfilter/ipvs/ip_vs_proto_tcp.c | 2 net/netfilter/ipvs/ip_vs_sync.c | 7 net/netfilter/nf_conntrack_sip.c | 2 net/netfilter/nf_nat_sip.c | 2 net/netfilter/nft_payload.c | 12 net/netfilter/xt_hashlimit.c | 16 net/openvswitch/actions.c | 26 net/openvswitch/datapath.c | 54 net/openvswitch/datapath.h | 2 net/openvswitch/flow.c | 11 net/openvswitch/meter.c | 33 net/openvswitch/vport.c | 2 net/packet/af_packet.c | 13 net/phonet/pep.c | 2 net/qrtr/af_qrtr.c | 8 net/qrtr/ns.c | 33 net/rds/ib.c | 4 net/rds/ib_cm.c | 4 net/rds/recv.c | 15 net/rds/tcp.c | 14 net/sched/act_gact.c | 5 net/sched/act_police.c | 6 net/sched/act_tunnel_key.c | 14 net/sched/cls_route.c | 35 net/sched/sch_cake.c | 1 net/sctp/associola.c | 14 net/sctp/auth.c | 2 net/sctp/outqueue.c | 1 net/sctp/sm_make_chunk.c | 26 net/sctp/sm_statefuns.c | 8 net/sctp/stream.c | 6 net/smc/af_smc.c | 3 net/smc/smc_core.c | 2 net/smc/smc_llc.c | 3 net/tipc/core.c | 5 net/tipc/discover.c | 14 net/tipc/netlink.c | 6 net/tipc/netlink_compat.c | 4 net/tipc/node.c | 15 net/tipc/socket.c | 3 net/tls/tls_sw.c | 15 net/vmw_vsock/virtio_transport.c | 14 net/wireless/core.c | 1 net/wireless/nl80211.c | 4 net/wireless/pmsr.c | 21 net/wireless/scan.c | 2 net/x25/af_x25.c | 8 net/xfrm/xfrm_policy.c | 4 security/integrity/ima/ima_appraise.c | 9 security/keys/keyring.c | 14 sound/core/pcm_native.c | 7 sound/pci/lx6464es/lx6464es.c | 5 sound/pci/lx6464es/lx_core.c | 5 sound/soc/codecs/bt-sco.c | 18 sound/soc/codecs/max98090.c | 5 sound/soc/codecs/max98095.c | 5 sound/soc/codecs/tas2562.c | 35 sound/soc/meson/aiu-fifo-spdif.c | 5 sound/usb/6fire/chip.c | 4 sound/usb/endpoint.c | 20 sound/usb/midi.c | 2 sound/usb/quirks.c | 2 sound/usb/usx2y/usX2Yhwdep.c | 2 sound/usb/usx2y/usx2yhwdeppcm.c | 2 tools/testing/selftests/clone3/clone3_set_tid.c | 2 tools/testing/selftests/ftrace/test.d/dynevent/add_remove_eprobe.tc | 23 tools/testing/selftests/ftrace/test.d/dynevent/add_remove_kprobe.tc | 7 393 files changed, 4227 insertions(+), 1854 deletions(-)
Abdun Nihaal (3):
wifi: ipw2100: fix potential memory leak in ipw2100_pci_init_one()
cpufreq: powernow-k8: Fix possible memory leak in powernowk8_cpu_init()
can: kvaser_usb: kvaser_usb_hydra_get_busparams(): fix memory leak in kvaser_usb_hydra_get_busparams()
Al Viro (1):
mount: honour SB_NOUSER in the new mount API
Aldo Ariel Panzardo (2):
rds: drop incoming messages that cross network namespace boundaries
net: qrtr: restrict socket creation to the initial network namespace
Aleksandr Nogikh (1):
usb: atm: cxacru: properly kill rcv_urb on error in cxacru_cm()
Aleksandrova Alyona (1):
RDMA/irdma: Prevent overflows in memory contiguity checks
Alex Deucher (5):
drm/amdgpu/sdma5.2: replace BUG_ON() with WARN_ON() drm/amdgpu/sdma5.0: replace BUG_ON() with WARN_ON() drm/amdgpu/gfx10: replace BUG_ON() with WARN_ON() drm/amdgpu/gfx8: drop unecessary BUG_ON() drm/amdgpu/gfx9: replace BUG_ON() with WARN_ON()
Alexander Gordeev (1):
sched/vtime: Get rid of generic vtime_task_switch() implementation
Alexei Lazar (2):
net/mlx5e: Report zero bandwidth for non-ETS traffic classes net/mlx5e: Reject unsupported CB Shaper TSA in ETS validation
Anand Moon (1):
media: meson: vdec: Fix memory leak in error path of vdec_open
Anandu Krishnan E (1):
misc: fastrpc: fix channel ctx ref leak when session alloc fails
Andrew Pope (1):
wifi: mac80211: recalculate TIM when a station enters power save
Anna Schumaker (1):
NFS: Pin the 'struct nfs_server' during a FREE_STATEID call
Asim Viladi Oglu Manizada (2):
pppoe: reload header pointer after dev_hard_header()
sctp: prevent peer transport count overflow
Aswin Karuvally (1):
s390/qeth: Check CAP_NET_ADMIN for private ioctls
Babanpreet Singh (1):
counter: microchip-tcb-capture: Fix DT channel validation
Baul Lee (6):
ALSA: usb-audio: fix OOB write in snd_usbmidi_akai_output()
ALSA: usb-audio: fix OOB write on Type II inbound URBs
net: bridge: mrp: fix uninitialised bytes on the wire
ALSA: usx2y: bound the hwdep mmap fault offset
vxlan: do not arm the ageing timer on a device that is down
sctp: keep chunk->transport in step with the list it is queued on
Benjamin Block (1):
scsi: zfcp: Fix memory leak during adapter release by destroying gid_pn_req
Benjamin Boortz (1):
pinctrl: bm1880: add missing select GENERIC_PINCONF
Benjamin Tissoires (1):
HID: logitech-dj: fix wrong detection of bad DJ_SHORT output report
Boyuan Zhang (1):
drm/amdgpu: fix division by zero with invalid uvd dimensions
Breno Leitao (1):
phonet: pep: fix use-after-free in pep_get_sb()
Bryam Vargas (5):
wifi: mac80211_hwsim: clamp virtio RX length before skb_put net/iucv: take a reference on the socket found in afiucv_hs_rcv()
ceph: fix pre-auth out-of-bounds read on snaptrace in ceph_handle_caps() net/iucv: fix use-after-free of a severed iucv_path
thunderbolt: Bound the DROM dual link port number before indexing sw->ports
Candice Li (1):
drm/amdgpu: restore UMD profile pstate after runtime resume
Ce Sun (1):
drm/amdgpu: invoke pm_genpd_remove() before freeing genpd
Cen Zhang (2):
wifi: cfg80211: cancel sched scan results work on unregister
wifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock
Cen Zhang (Microsoft) (4):
sctp: validate stream count in sctp_process_strreset_inreq()
tipc: fix u16 MTU truncation in media and bearer MTU validation
rhashtable: clear stale iter->p on table restart net/openvswitch: check Ethernet header length in key_extract()
Charles Vosburgh (1):
sctp: validate Adaptation Indication parameter length
Cheng Yongkang (1):
wifi: ath9k: hif_usb: don't dereference hif_dev after re-arming firmware request
Chengfeng Ye (5):
bpf, sockmap: Fix cork use-after-free in tcp_bpf_sendmsg()
Bluetooth: RFCOMM: Fix session UAF in set_termios
netfilter: ebt_nflog: pin the NFLOG backend
ipv4: fix use-after-free in fib_nhc_update_mtu() bpf, sockmap: Fix sk_redir use-after-free in send verdict
Chenguang Zhao (4):
hinic: remove unused ethtool RSS user configuration buffers
forcedeth: fix UAF of txrx_stats in nv_remove
net: sxgbe: free TX rings on RX allocation failure
net: sxgbe: check descriptor ring allocation failures
Chris Gellermann (1):
selftests/clone3: fix wild pointer access of getline due to missing init
Christian Brauner (4):
exec: fix unsigned loop counter wrap in transfer_args_to_stack()
binfmt_misc: set have_execfd only once the interpreter is opened
binfmt_elf_fdpic: only honour the first PT_INTERP
binfmt_misc: reject a flag character as the field delimiter
Christian Hewitt (1):
ASoC: meson: aiu: fifo-spdif: soft reset the S/PDIF datapath on start/stop
Christian Marangi (1):
net: phylink: put link_gpio if phylink_create fails
Chukun Pan (1):
USB: serial: option: add TDTECH MT5710-CN
Claudiu Beznea (2):
dmaengine: sh: rz-dmac: Move interrupt request after everything is set up
pinctrl: renesas: rzg2l: Use -ENOTSUPP instead of -EOPNOTSUPP
Colin Ian King (1):
ata: sata_dwc_460ex: remove variable num_processed
Cunhao Lu (1):
serial: 8250_dma: Clear stale RX state on shutdown
Daehyeon Ko (2):
macsec: don't read an unset MAC header in macsec_encrypt()
tipc: clear sock->sk on the failed-insert path in tipc_sk_create()
Daniel Borkmann (1):
bpf: Fix ld_{abs,ind} failure path analysis in subprogs
Danila Chernetsov (1):
RDMA/hns: Fix potential integer overflow in mhop hem cleanup
David Corvaglia (1):
net: bridge: mrp: fix Option TLV length in MRP_Test frames
David Lee (3):
net/packet: avoid fanout hook re-registration after unregister net/x25: fix use-after-free in x25_kill_by_neigh()
netfilter: ipset: do not update comments from kernel-side hash adds
Dawei Feng (3):
wifi: libertas: fix memory leak in helper_firmware_cb()
smb: client: fix buffer leaks in SMB1 read and write
e1000: fix memory leak in e1000_probe()
Deepanshu Kartikey (1):
media: rtl2832: fix use-after-free in rtl2832_remove()
Denis V. Lunev (1):
qede: sync udp_tunnel ports outside qede_lock in the recovery path
Devin Wittmayer (1):
wifi: mt76: mt7615: drop TXRX_NOTIFY on non-mmio buses
Diego Fernando Mancera Gomez (1):
usb: atm: ueagle-atm: reject descriptors that confuse probe and disconnect
Dmitry Morgun (1):
wifi: ath11k: fix potential buffer underflow in ath11k_hal_rx_msdu_list_get()
Dmitry Torokhov (3):
Input: ims-pcu - fix logic error in packet reset
Input: evdev - sanitize event type index when fetching event masks
Input: evdev - fix information leak in evdev_pass_values()
Doruk Tan Ozturk (6):
crypto: rsa-pkcs1pad: Don't WARN on an empty digest
wifi: mwifiex: fix NULL dereference when the AP has HT-cap but no HT-oper
vxlan: require CAP_NET_ADMIN in the device netns for changelink
geneve: require CAP_NET_ADMIN in the device netns for changelink
mac802154: llsec: reject frames shorter than the authentication tag net/packet: reset the MAC header on the packet-socket transmit path
Douya Le (3):
libceph: bound get_version reply decode to front len
libceph: reject zero bucket types in crush_decode
libceph: remove debugfs files before client teardown
Eddie James (4):
hwmon: (occ) Add sysfs entry for IPS (Idle Power Saver) status
hwmon: (occ) Add sysfs entry for OCC mode
hwmon: (occ) Add sysfs entries for additional extended status bits
hwmon: (occ) Delay hwmon registration until user request
Eddie Lin (1):
misc: fastrpc: fix memory leak in fastrpc_channel_ctx_free
Eddie Phillips (1):
gve: fix Rx queue stall on alloc failure
Edward Adam Davis (1):
hwmon: (corsair-psu) Stop device IO before calling hid_hw_stop
Emre Cecanpunar (1):
drm/i915/selftests: Fix GT PM sort comparators
Eric Biggers (1):
fscrypt: Replace mk_users keyring with simple list
Eric Dumazet (10):
net: hsr: fix memory leak on slave unregistration by removing synced VLANs
ipv4: icmp: fill flow parameters in icmp_route_lookup decoy lookup
raw: use more conventional iterators
raw: remove unused variables from raw6_icmp_error()
raw: fix a typo in raw_icmp_error()
vxlan: re-fetch eth header after route_shortcircuit()
vxlan: unclone skb head before modifying eth header in route_shortcircuit()
vxlan: use neigh_ha_snapshot() in route_shortcircuit()
vxlan: use pskb_network_may_pull() in route_shortcircuit()
net: remove WARN_ON_ONCE() from sk_mc_loop()
Fan Wu (4):
usb: gadget: f_midi: cancel pending IN work before freeing the midi object
usb: gadget: udc: bdc: free IRQ and drain func_wake_notify before teardown
wifi: brcmfmac: make release_scratchbuffers idempotent
net: hip04: fix RX buffer leak on build_skb failure
Fan XinRan (1):
net: thunderbolt: Tear down DMA paths before stopping the rings
Filipe Manana (1):
btrfs: fix root leak if its reloc root is unexpected in merge_reloc_roots()
Frederic Weisbecker (1):
powerpc/time: Prepare to stop elapsing in dynticks-idle
Greg Kroah-Hartman (1):
Linux 5.15.216
Guanghui Yang (1):
btrfs: free mapping node on duplicate reloc root insert
Guangshuo Li (6):
dpaa2-switch: put MAC endpoint device on disconnect
dpaa2-eth: put MAC endpoint device on disconnect
media: vidtv: fix reference leak on failed device registration
media: vimc: fix reference leak on failed device registration
intel_th: fix MSC output device reference leak
can: etas_es58x: es58x_read_bulk_callback(): fix RX buffer leak on URB resubmit failure
Guenter Roeck (3):
hwmon: (corsair-cpro) Stop device IO before calling hid_hw_stop
hwmon: (nct6775-core) Prevent access to unsupported weight registers
hwmon: (pmbus) Fix return value from pmbus_update_byte_data()
Guoqing Jiang (1):
RDMA/siw: Only check attrs->cap.max_send_wr in siw_create_qp
H. Nikolaus Schaller (1):
i2c: jz4780: Cache host clock rate at probe to prevent CCF prepare_lock deadlock
HE WEI (ギカク) (2):
wifi: cfg80211: bound element ID read when checking non-inheritance
wifi: mwifiex: bound uAP association event IEs to the event buffer
Haidar Lee (2):
ASoC: tas2562: fix DVC coefficient write order
ASoC: tas2562: fix broken entries in the volume lookup table
HanQuan (1):
sctp: fix auth_chunk_list capacity check in sctp_auth_ep_add_chunkid
Hans Verkuil (1):
media: vivid: check for vb2_is_busy() when toggling caps
Harald Freudenberger (1):
s390/zcrypt: Fix missing mem scrub at clear key import in cca_clr2cipherkey()
Harkirat Gill (1):
drm/amdgpu: cap GTT size to physical RAM on APUs
Harshaka Narayana (1):
vmxnet3: fix BUG_ON in vmxnet3_get_hdr_len() for Geneve packets
He Ying (1):
powerpc/time: Fix sparse warnings
Helen Koike (1):
tipc: fix infinite loop in __tipc_nl_compat_dumpit
Henry Martin (1):
net/ncsi: fix heap OOB read in NCSI_CMD_SEND_CMD payload length
Hidayath Khan (1):
net/af_iucv: fix NULL deref in afiucv_hs_callback_syn()
Holger Dengler (2):
s390/zcrypt: Validate length for CCA AES cipher key requests s390/zcrypt: Validate length for CCA ECC private key requests
Hongling Zeng (1):
dmaengine: sun6i-dma: Fix reclaim descriptors while terminating DMA
Hongyan Xu (2):
hwmon: (npcm750-pwm-fan): stop fan timer on device detach
ata: pata_sl82c105: fix bridge revision use-after-free
Huang Wei (1):
USB: storage: add NO_ATA_1X quirk for Longmai USB Key
Huihui Huang (2):
wifi: at76c50x-usb: avoid length underflow in at76_guess_freq()
wifi: wilc1000: validate assoc response length before subtracting header
Huiwen He (1):
smb/client: handle overlapping allocated ranges in fallocate
Hungyu Lin (1):
media: tegra-video: vi: fix invalid u32 return value in format lookup
HyeongJun An (3):
scsi: libiscsi: Fix stale-data leak into the SCSI sense buffer
scsi: libiscsi_tcp: Bound SCSI Response data segment to the connection buffer
HID: logitech-dj: Fix maxfield check in DJ short report validation
Hyunjung Ko (1):
net/sched: act_gact, act_police: range check the fallback control action
Hyunwoo Kim (1):
KVM: nVMX: Hide shadow VMCS right after VMCLEAR
Ian Abbott (1):
comedi: comedi_parport: deal with premature interrupt
Ian Forbes (1):
drm/vmwgfx: Validate vmw_surface_metadata::array_size
Ilia Gavrilov (1):
rds: Fix inet6_addr_lst NULL dereference when IPv6 is disabled
Ilya Maximets (3):
net: openvswitch: fix potential UAF on meter attach failure
net: openvswitch: fix skb leak on flow key update failure during ct
net: openvswitch: fix skb leak on flow key update failure during recirculation
Isaac Scott (1):
media: uvcvideo: Implement dual stream quirk to fix loss of usb packets
Jamal Hadi Salim (2):
net/sched: act_tunnel_key: Defer dst_release to RCU callback net/sched: cls_route: fix fastmap use-after-free on filter
James Gao (1):
can: peak_usb: add bounds check for USB channel index
Jan Höppner (1):
s390/dasd: Fix potential NULL pointer dereference
Jann Horn (1):
proc: Fix broken error paths for namespace links
Jiale Yao (1):
Bluetooth: L2CAP: fix UAF in l2cap_le_connect_rsp
Jiawen Liu (1):
net: hisilicon: hix5hd2_gmac: remove redundant NAPI delete
Jiaxin Yu (1):
ASoC: bt-sco: fix bt-sco-pcm-wb dai widget don't connect to the endpoint
Jiayuan Chen (1):
tcp: fix TFO max_qlen accounting across reuseport migration
Jinchao Wang (1):
usb: gadget: dummy_hcd: prevent fifo_req reuse during giveback
Johan Hovold (4):
USB: gadget: snps-udc: fix device name leak on probe failure
USB: gadget: fsl-udc: fix device name leak on probe failure
USB: serial: keyspan_pda: fix data loss on receive throttling
media: cx231xx: fix devres lifetime
Joonas Lahtinen (3):
drm/i915: Return NULL on error in active_instance drm/i915/gem: Do not leak siblings[] on proto context error drm/i915/gem: Fix NULL deref in I915_CONTEXT_PARAM_SSEU
Joshua Rogers (2):
vt: add permission check for KDSKBMETA ioctl
vt: stabilize tty reference in kbd_keycode with tty_port_tty_get
Julian Anastasov (2):
ipvs: add totalconns for dest
ipvs: properly update the overload flag on dest edit
Jun Yang (3):
sctp: don't free the ASCONF's own transport in DEL-IP processing
vhost: reset the vring metadata cache on vring reconfiguration
tipc: read le->link under the node lock in tipc_node_link_down()
Junjie Cao (1):
gpio: pch: use raw_spinlock_t for the register lock
Karl Mehltretter (1):
pinctrl: devicetree: don't free uninitialized dev_name on error path
Keegan Freyhof (1):
bnxt_en: Fix PTP PPS setting bug
Keno Fischer (1):
futex: Prevent robust futex exit race some more
Kiryl Shutsemau (Meta) (1):
mm/huge_memory: unlock i_mmap_rwsem before releasing after-split folios
Krzysztof Kozlowski (1):
media: pci: dm1105: Free allocated workqueue
Kyle Zeng (3):
openvswitch: fix GSO userspace truncation underflow
ipvs: clear IPv4 options after rebasing tunnel ICMP errors
ipv6: prevent in6_dev_get() from resurrecting inet6_dev
Larisa Grigore (1):
spi: spi-fsl-dspi: Avoid setup_accel logic for DMA transfers
Lee Jones (3):
can: bcm: defer rx_op deallocation to workqueue to fix thrtimer UAF
HID: logitech-dj: Standardise hid_report_enum variable nomenclature
HID: logitech-dj: Prevent REPORT_ID_DJ_SHORT related user initiated OOB write
Li RongQing (2):
iommu/intel: Fix out-of-bounds memset in dmar_latency_disable()
net: ipv6: fix dif and sdif mismatch in raw6_icmp_error
Liem (1):
i2c: imx: Cancel hrtimer before clearing slave pointer
Lincoln Wallace (1):
ima: fix out-of-bounds read in xattr_verify()
Link Lin (1):
mm/page_reporting: use system_freezable_wq to fix UAF during suspend
Linyu Yuan (1):
selftests/ftrace: Add test case for GRP/ only input
Lorenzo Bianconi (1):
wifi: mt76: connac: fix possible NULL-pointer deref in mt76_connac_mcu_uni_bss_he_tlv()
Lu Baolu (1):
iommu/vt-d: Disallow SVA if page walk is not coherent
Lucas Martins Alves (1):
can: c_can: c_can_chip_config(): keep controller in init mode until bittiming is configured
Luiz Angelo Daros de Luca (8):
hwmon: (adt7470) Fix fans stuck in manual mode on I2C errors
hwmon: (adt7470) Fix cache updated before hardware write on I2C error
hwmon: (adt7470) Fix busy-loop and I2C flooding in update thread
hwmon: (adt7470) Fix temperature alarm logic in hwmon_temp_read()
hwmon: (adt7470) Fix swapped PWM3 and PWM4 auto mode masks
hwmon: (adt7470) Use cached PWM frequency value
hwmon: (adt7470) Fix divide-by-zero TOCTOU crash in fan speed read
hwmon: (adt7470) Fix PWM auto temp state array and bounds check
Luiz Augusto von Dentz (1):
Bluetooth: 6lowpan: Fix using chan->conn as indication to no remote netdev
Luxiao Xu (1):
audit: fix potential use-after-free in audit_del_rule()
Ma Ke (1):
media: saa7134: Fix a possible memory leak in saa7134_video_init1
Mahanta Jambigi (1):
net/smc: fix qentry overwrite for CONFIRM_LINK and ADD_LINK_CONT in smc_llc_event_handler()
Manivannan Sadhasivam (1):
net: qrtr: ns: Limit the maximum server registration per node
Maoyi Xie (1):
can: peak_usb: peak_usb_start(): fix double free of transfer buffer on URB submit error
Marco Elver (1):
Bluetooth: L2CAP: Fix UAF in channel timeout by holding conn ref
Mariano Baragiola (1):
staging: rtl8723bs: validate monitor transmit frame lengths
Mario Limonciello (1):
drm/amdgpu: Fix VFCT bus number matching with soft filter
Martin Kaiser (1):
selftests/ftrace: refactor eprobes test to fix argument checks
Masami Hiramatsu (Google) (7):
tracing/eprobe: Fix exact system name matching in eprobe_dyn_event_match() tracing/probes: Avoid temporary buffer truncation in trace_probe_match_command_args() tracing/probes: Fix potential underflow in LEN_OR_ZERO macro tracing/probes: Prevent out-of-bounds write in __trace_probe_log_err() tracing/mmiotrace: Reset dropped_count in mmio_reset_data()
tracing: Check return value of __register_event() in trace_module_add_events() tracing/filters: Fix false positive match in regex_match_full()
Matt Vollrath (1):
igbvf: Fix leak in TX DMA error cleanup
Maximilian Immanuel Brandtner (1):
tls: don't abort the connection on signal-interrupted sends
Maíra Canal (1):
drm/vc4: Zero the tile state data array before each BIN job
Md Sadre Alam (1):
dmaengine: qcom: bam_dma: Fix command element mask field for BAM v1.6.0+
Melbin K Mathew (1):
usb: gadget: printer: fix infinite loop in printer_read()
Michael Bommarito (7):
IB/mad: Drop unmatched RMPP responses before reassembly
mptcp: only set DATA_FIN when a mapping is present
ila: reload IPv6 header after pskb_may_pull in checksum adjust
keys: fix out-of-bounds read in keyring_get_key_chunk()
keys: make keyring key-chunk byte order agree with keyring_diff_objects()
assoc_array: trim the final shortcut word using the current chunk end
um: vector: fix use-after-free in vector_mmsg_rx()
Michael Chan (2):
bnxt_en: Do not set EOP on RX AGG BDs on 5760X chips
bnxt_en: Disable EOP for TPA on all chips to prevent data corruption
Michael Guralnik (1):
net/mlx5: fw_tracer, return NULL on create error
Michael Wu (1):
tracing: Fix race between update_event_fields and, event_define_fields
Mike Looijmans (1):
phy-zynqmp: Postpone getting clock rate until actually needed
MinJea Kim (1):
staging: rtl8723bs: fix inverted HT40 secondary channel offset
Minhong He (1):
can: isotp: check register_netdevice_notifier() error in module init
Moksh Panicker (1):
staging: rtl8723bs: fix OOB reads in rtw_get_wps_ie()
Muhammad Bilal (3):
usb: gadget: uvc: clamp SEND_RESPONSE length to the response buffer
staging: rtl8723bs: fix OOB read in rtw_get_wpa_ie()
staging: rtl8723bs: fix OOB read in WMM_param_handler()
Myeonghun Pak (4):
media: cec: seco: unregister adapter on IR probe failure
media: cedrus: clean up media device on probe failure
media: radio-si476x: Unregister v4l2_device on probe failure
i2c: amd-mp2: Unregister callback on adapter add failure
Nathan Chancellor (1):
x86/boot/compressed: Disable jump tables
Nava kishore Manne (3):
phy: zynqmp: fix L0_TM_DISABLE_SCRAMBLE_ENCODER mask
phy: zynqmp: use read-modify-write for SERDES scrambler bypass
phy: zynqmp: keep SERDES scrambler and 8b/10b enabled for USB
Nazim Amirul (2):
net: stmmac: fix l3l4 filter rejecting unsupported offload requests
net: stmmac: reset residual action in L3L4 filters on delete
Nicholas Piggin (1):
powerpc: remove the last remnants of cputime_t
Nikolay Aleksandrov (1):
net: bridge: vlan: fix vlan range dumps starting with pvid
Norbert Szetei (2):
ppp: defer channel free to an RCU grace period to fix pppol2tp RX UAF
ALSA: pcm: wake linked drain waiters on unlink
Oleksij Rempel (1):
can: j1939: transport: j1939_session_fresh_new(): initialize receive buffer
Oliver Hartkopp (10):
can: isotp: fix use-after-free race with concurrent NETDEV_UNREGISTER
can: isotp: serialize TX state transitions under so->rx_lock
can: bcm: add locking when updating filter and timer values
can: bcm: fix CAN frame rx/tx statistics
can: bcm: extend bcm_tx_lock usage for data and timer updates
can: bcm: validate frame length in bcm_rx_setup() for RTR replies
can: bcm: add missing device refcount for CAN filter removal
can: bcm: fix stale rx/tx ops after device removal
can: bcm: fix data race on rx_stamp/rx_ifindex in bcm_rx_handler()
can: bcm: track a single source interface for ANYDEV timeout/throttle ops
Ong Boon Leong (1):
net: stmmac: add tc flower filter for EtherType matching
Pablo Neira Ayuso (1):
netfilter: xt_hashlimit: validate hashtable supports XT_HASHLIMIT_RATE_MATCH
Panagiotis Petrakopoulos (1):
staging: rtl8723bs: fix missing shared-key auth challenge length check
Pavel Ondračka (1):
drm/radeon: fix r100_copy_blit for large BOs
Pawel Laszczak (1):
usb: cdnsp: fix incorrect endian conversions for APB timeout register
Pengpeng Hou (11):
mtd: mtdswap: remove debugfs stats file on teardown
mtd: nand: mtk-ecc: stop on ECC idle timeouts
drm/i915/gt: use correct selftest config symbol
hwmon: occ: validate poll response sensor blocks
iommu/amd: Bound the early ACPI HID map
media: cedrus: skip invalid H.264 reference list entries
can: ems_usb: validate CPC message lengths
can: kvaser_usb_leaf: kvaser_usb_leaf_wait_cmd(): validate received command extents
can: softing: fw_parse(): validate firmware record spans
can: peak_usb: validate uCAN receive record lengths
net: prestera: validate firmware header length
Phil Rosenthal (1):
KVM: x86/mmu: Fix use-after-free on vendor module reload
Prashanth Kumar KR (1):
amd-xgbe: fix MAC_AUTO_SW handling in CL37 AN
Pushpendra Singh (1):
firmware: arm_scmi: Rate-limit queue-full warnings in IRQ context
Qihang Tang (1):
net: remove CAP_SYS_RAWIO zero-padding in dev_validate_header
Qing Luo (2):
sctp: auth: verify auth requirement when auth_chunk is NULL
sctp: fix addip_serial increment on ASCONF_ACK allocation failure
Qing Ming (1):
sctp: clear new_transport when removing a peer
Radhey Shyam Pandey (2):
phy: zynqmp: fix clock error handling in xpsgtr_phy_init()
phy: zynqmp: fix runtime PM leak on probe allocation failure
Rafael J. Wysocki (1):
Revert "thermal/drivers/hwmon: Cleanup coding style a bit"
Raphael Zimmer (3):
libceph: Fix multiplication overflow in decode_new_up_state_weight()
libceph: Reject monmaps advertising zero monitors
rbd: Reset positive result codes to zero in object map update path
Ricardo Ribalda (1):
media: uvcvideo: Fix sequence number when no EOF
Rik van Riel (1):
fbdev: bitblit: bound-check glyph index in bit_cursor()
Rosen Penev (3):
ata: sata_dwc_460ex: enable SATA interrupts only after IRQ handler is registered
ata: sata_dwc_460ex: fix clear_interrupt_bit() clearing all pending interrupts
ata: sata_dwc_460ex: fix infinite loop in NCQ tag completion bit-scanning
Runyu Xiao (1):
wifi: brcmfmac: initialize SDIO data work before cleanup
Ruoyu Wang (5):
RDMA/siw: publish QP after initialization
firewire: net: Fix fragmented datagram reassembly
nfp: Check resource mutex allocation
wan: wanxl: Only reset hardware after BAR mapping drm/mediatek: Check CRTC state before freeing
Sabrina Dubroca (1):
tls: separate no-async decryption request handling from async
Sagi Grimberg (1):
nvmet-tcp: Fix potential UAF when ddgst mismatch
Samuel Holland (1):
media: cedrus: Fix missing cleanup in error path
Sangho Lee (2):
Bluetooth: HIDP: reject frames without a transaction header
Bluetooth: HIDP: validate numbered report payloads
Sasha Levin (1):
Revert "drm/amd/display: Add missing kdoc for ALLM parameters"
Scott Mayhew (1):
nfs4: take a reference on the nfs_client when running FREE_STATEID
Sean Anderson (1):
phy: zynqmp: Allow variation in refclk rate
Sean Christopherson (1):
KVM: VMX: Make vmread_error_trampoline() uncallable from C code
Sebastian Andrzej Siewior (1):
futex: Prevent lockup in requeue-PI during signal/ timeout wakeup
Sergey Shtylyov (2):
drm/rockchip: cdn-dp: add missing check in cdn_dp_config_video()
media: v4l2-ctrls-request: add NULL check in v4l2_ctrl_request_complete()
Sergey Temerkhanov (1):
ice: use READ_ONCE() to access cached PHC time
Sergey V. Frolov (1):
net: octeontx2-pf: Fix UB in shift operation
Seungjin Bae (1):
Input: ims-pcu - fix heap-buffer-overflow in ims_pcu_process_data()
Shelley Yang (1):
wifi: brcmfmac: fix 802.1X-SHA256 call trace warning
Shengjiu Wang (1):
ASoC: bt-sco: fix duplicate DAPM widget names for wideband DAI
Shrikanth Hegde (1):
powerpc/vtime: Initialize starttime at boot for native accounting
Shuangpeng Bai (1):
libceph: refresh auth->authorizer_buf{,_len} after authorizer updateShuhao Fu (1):
can: j1939: fix lockless local-destination check
Sidraya Jayagond (1):
net/smc: fix TOCTOU race between smc_listen_out() and listener close
Sonali Pradhan (4):
usb: gadget: f_ncm: validate datagram bounds in ncm_unwrap_ntb()
ALSA: usb-audio: Fix DMA buffer out-of-bounds write when fill_max is set
ALSA: usb-audio: Clamp frame size in implicit-feedback mode
usb: gadget: f_ncm: Use unsigned int for ndp_index
Steven Rostedt (1):
tracing: Fix mmiotrace possible NULL dereferencing of hiter->dev
Suman Ghosh (2):
octeontx2-vf: set TC flower flag on MCAM entry allocation
octeontx2-pf: Set correct sequence for carrier off and tx queue stop
Sungmin Kang (1):
net: slip: serialize receive against buffer reallocation
Sunho Park (1):
USB: serial: io_edgeport: cap received transmit credits
Takashi Iwai (2):
ALSA: usb-audio: Skip DSD quirk for Musical Fidelity M6s DAC
ALSA: 6fire: Fix UAF at error handling during probe
Thorsten Blum (4):
powerpc/boot: Fix simpleboot CPU node lookup check powerpc/boot: Fix treeboot-currituck CPU node lookup check powerpc/boot: Fix treeboot-akebono CPU node lookup check powerpc/ps3: Fix map failure path in dma_ioc0_map_pages()
Tim Pambor (1):
USB: serial: ftdi_sio: add support for E+H FXA291
Timur Kristóf (1):
drm/amd/pm/ci: Don't disable MCLK DPM on Bonaire 0x6658 (R7 260X)
Toke Høiland-Jørgensen (1):
net/sched: sch_cake: drop WARN_ON(1) for malformed packets in ACK filter
Tristan Madani (6):
wifi: ath6kl: fix OOB read from firmware num_msg in TX complete handler
wifi: ath6kl: fix OOB read from firmware IE lengths in connect event
wifi: carl9170: bound memcpy length in cmd callback to prevent OOB read
wifi: carl9170: fix OOB read from off-by-two in TX status handler
wifi: carl9170: fix buffer overflow in rx_stream failover path
wifi: ath6kl: fix OOB access from firmware ADDBA window size
Tze Yee Ng (1):
firmware: stratix10-svc: fix memory leaks and list corruption bugs
Tzung-Bi Shih (1):
watchdog: pretimeout: Fix UAF in watchdog_unregister_governor()
Uday Khare (3):
ASoC: tas2562: fix deprecated 'shut-down' GPIO always cleared after lookup
ASoC: max98095: fix missing IS_ERR() before PTR_ERR() on mclk lookup
ASoC: max98090: fix missing IS_ERR() before PTR_ERR() on mclk lookup
Unnathi Chalicheemala (1):
firmware: arm_ffa: Fix NULL dereference in ffa_partition_info_get()
Valery Borovsky (6):
media: airspy: Return queued buffers on start_streaming() failure
media: msi2500: Return queued buffers on start_streaming() failure
media: pwc: Drain fill_buf on start_streaming() failure
media: pwc: Return queued buffers on start_streaming() failure
media: rtl2832_sdr: Return queued buffers on start_streaming() failure
media: sun4i-csi: Return queued buffers on start_streaming() failure
Vladimir Oltean (1):
net: dpaa2-eth: assign priv->mac after dpaa2_mac_connect() call
Wang Jun (1):
media: cx23885: add ioremap return check and cleanup
Weiming Shi (5):
ipv4: fib: free fib_alias with kfree_rcu() on insert error path
mpls: fix NULL deref in mpls_valid_fib_dump_req() on CONFIG_INET=n
tipc: fix use-after-free of the discoverer in tipc_disc_rcv() vsock/virtio: read virtqueues under worker locks vsock/virtio: avoid refilling the RX queue after teardown
Wentao Liang (1):
drm/nouveau/acr: fix missing nvkm_done() in error path of nvkm_acr_oneinit()
Wilken Gottwalt (1):
hwmon: (corsair-psu) fix possible out-of-bounds access on missing string termination
Will Deacon (2):
arm64: syscall: Ensure saved x0 is kept in-sync with tracer updates Revert "arm64: syscall: Ensure saved x0 is kept in-sync with tracer updates"
Xiang Mei (5):
btrfs: reject free space cache with more entries than pages
wifi: p54: validate RX frame length in p54_rx_eeprom_readback()
Bluetooth: qca: fix NVM tag length underflow in TLV parser
netfilter: nf_conntrack_sip: widen NAT rewrite delta to s32 in sip_help_tcp()
rds: tcp: hold the RCU lock across ipv6_chk_addr() in rds_tcp_laddr_check()
Xiang Mei (Microsoft) (5):
xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert
ksmbd: validate compound request size before reading StructureSize2
nexthop: initialize extack in nh_res_bucket_migrate()
netfilter: nft_payload: fix mask build for partial field offload
bonding: alb: re-check primary_is_promisc under RTNL in bond_alb_monitor
Xiangfeng Cai (1):
mm/hugetlb: fix list corruption in allocate_file_region_entries()
Xin Long (2):
sctp: fix auth_hmacs array size in struct sctp_cookie
sctp: clear control chunk transport if it is being removed
Xincheng Zhang (1):
usb: xhci-pci: Limit VIA VL805 DMA addressing to 36 bits
Xu Rao (4):
cdrom: fix stack out-of-bounds read in CDROMVOLCTRL
ALSA: lx6464es: fix period byte count for 16-bit streams
thunderbolt: icm: Preserve USB4 proxy data-valid bit
scsi: scsi_debug: Negate wrapped memcmp() result
Xu Yang (1):
usb: chipidea: fix usage_count leak when autosuspend_delay is negative
Xuanqiang Luo (3):
bpf: lwt: Fix dst reference leak on reroute failure net/smc: fix socket use-after-free during link group termination
udp: fix potential use-after-free in tunnel segmentation
Yael Chemla (1):
net/mlx5: E-Switch, fix zero num_dest in prio_tag egress vlan rule
Yangyu Chen (1):
net: atlantic: free RX pages of consumed but not refilled buffers
Yehyeong Lee (1):
net: mpls: initialize rtm_tos in mpls_getroute()
Yiyang Chen (1):
bpf: Preserve pointer state for commuted arithmetic
Yousef Alhouseen (1):
vhost/vdpa: reject overflowing PA map page counts on 32-bit
Youssef Samir (1):
net: qrtr: ns: Raise node count limit to 512
Yuejie Shi (1):
ipv6: fix Route Information option length validation
Yuho Choi (1):
ARM: npcm: Fix OF node refcount leaks in SMP setup
Yuxiang Yang (2):
sctp: reject stale cookies with mismatched verification tags
sctp: fix use-after-free of cached ASCONF chunk
Zack Rusin (2):
drm/vmwgfx: validate DRAW_PRIMITIVES header size before division drm/vmwgfx: bound DMA command body size against suffix pointer
Zhan Xusheng (1):
audit: fix potential integer overflow in audit_log_n_string()
Zhao Li (5):
wifi: cfg80211: validate PMSR measurement type data
wifi: cfg80211: validate PMSR FTM preamble range
wifi: cfg80211: reject unsupported PMSR FTM location requests
wifi: mac80211: validate individual TWT params before driver setup
wifi: mwifiex: use the subframe length when parsing A-MSDU TDLS frames
Zhao Zhang (1):
libceph: guard missing CRUSH type name lookup
Zhiling Zou (7):
ipvs: do not propagate one-packet flag to synced conns
net: bridge: stop fast-leave after deleting a port group
net: ipv6: clear suppressed fib6 rule result
net: openvswitch: reallocate update replies for mismatched IDs
netfilter: bridge: release template ct on non-IP path
xdp: reject clones that overrun skb_shared_info tailroom
ip6_tunnel: clear skb2->cb[] in ip6ip6_err()
Zhu Lingshan (1):
drm/amdgpu: fix bo->pin leaking in amdgpu_bo_create_reserved
Zhu Yanjun (1):
RDMA/rxe: Fix a use-after-free problem in rxe_mmap
Zi Yan (1):
mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()
Zihan Xi (2):
tipc: avoid use-after-free in poll trace queue dumps
ipv4: Fix fib_nlmsg_size() for RTA_VIA nexthops
Zile Xiong (1):
media: vb2: use ssize_t for vb2_read/vb2_write
deepakraog (1):
tracing: Fix resource leak on mmiotrace trace_pipe close
Łukasz Patron (1):
net: qrtr: ns: Raise lookup limit to 128
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 15 -SUBLEVEL = 215 +SUBLEVEL = 216 EXTRAVERSION = NAME = Trick or Treat
arch/arm/mach-npcm/platsmp.c +2 -0
@@ -35,6 +35,7 @@ static int npcm7xx_smp_boot_secondary(unsigned int cpu, goto out; } gcr_base =of_iomap (gcr_np,0 ); +of_node_put (gcr_np);if (!gcr_base) {pr_err ("could not iomap gcr" ); ret = -ENOMEM ;
@@ -63,6 +64,7 @@ static void __init npcm7xx_smp_prepare_cpus(unsigned int max_cpus)return ; } scu_base =of_iomap (scu_np,0 ); +of_node_put (scu_np);if (!scu_base) {pr_err ("could not iomap scu" );return ;
arch/powerpc/boot/simpleboot.c +1 -1
@@ -68,7 +68,7 @@ void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,/* finally, setup the timebase */ node =fdt_node_offset_by_prop_value (_dtb_start,-1 ,"device_type" ,"cpu" ,sizeof ("cpu" )); -if (!node) +if (node <0 )fatal ("Cannot find cpu node\n" ); timebase =fdt_getprop (_dtb_start, node,"timebase-frequency" , &size);if (timebase && (size ==4 ))
arch/powerpc/boot/treeboot-akebono.c +1 -1
@@ -146,7 +146,7 @@ void platform_init(char *userdata) node =fdt_node_offset_by_prop_value (_dtb_start,-1 ,"device_type" ,"cpu" ,sizeof ("cpu" )); -if (!node) +if (node <0 )fatal ("Cannot find cpu node\n" ); timebase =fdt_getprop (_dtb_start, node,"timebase-frequency" , &size);if (timebase && (size ==4 ))
arch/powerpc/boot/treeboot-currituck.c +1 -1
@@ -102,7 +102,7 @@ void platform_init(void) node =fdt_node_offset_by_prop_value (_dtb_start,-1 ,"device_type" ,"cpu" ,sizeof ("cpu" )); -if (!node) +if (node <0 )fatal ("Cannot find cpu node\n" ); timebase =fdt_getprop (_dtb_start, node,"timebase-frequency" , &size);if (timebase && (size ==4 ))
arch/powerpc/include/asm/cputime.h +1 -29
@@ -20,23 +20,8 @@#include <asm/time.h> #include <asm/param.h> -typedef u64 __nocast cputime_t ; -typedef u64 __nocast cputime64_t ; - -#define cmpxchg_cputime (ptr, old, new) cmpxchg(ptr, old, new) -#ifdef __KERNEL__ -/* -* Convert cputime <-> microseconds -*/ -extern u64 __cputime_usec_factor; - -static inline unsigned long cputime_to_usecs (const cputime_t ct) -{ -return mulhdu ((__force u64 ) ct, __cputime_usec_factor); -} - -#define cputime_to_nsecs (cputime) tb_to_ns((__force u64)cputime) +#define cputime_to_nsecs (cputime) tb_to_ns(cputime)/* * PPC64 uses PACA which is task independent for storing accounting data while
@@ -46,23 +31,10 @@ static inline unsigned long cputime_to_usecs(const cputime_t ct)#ifdef CONFIG_PPC64 #define get_accounting (tsk) (&get_paca()->accounting)#define raw_get_accounting (tsk) (&local_paca->accounting) -static inline void arch_vtime_task_switch (struct task_struct *tsk) { }#else #define get_accounting (tsk) (&task_thread_info(tsk)->accounting)#define raw_get_accounting (tsk) get_accounting(tsk) -/* -* Called from the context switch with interrupts disabled, to charge all -* accumulated times to the current process, and to prepare accounting on -* the next process. -*/ -static inline void arch_vtime_task_switch (struct task_struct *prev) -{ -struct cpu_accounting_data *acct =get_accounting (current); -struct cpu_accounting_data *acct0 =get_accounting (prev); - - acct->starttime = acct0->starttime; -}#endif /*
arch/powerpc/include/asm/time.h +1 -0
@@ -22,6 +22,7 @@ extern unsigned long tb_ticks_per_jiffy;extern unsigned long tb_ticks_per_usec;extern unsigned long tb_ticks_per_sec;extern struct clock_event_device decrementer_clockevent; +extern u64 decrementer_max;extern void generic_calibrate_decr (void );
arch/powerpc/kernel/time.c +69 -24
143 lines not on this page · raw message
arch/powerpc/platforms/chrp/time.c +0 -2
@@ -30,8 +30,6 @@#include <platforms/chrp/chrp.h> -extern spinlock_t rtc_lock; -#define NVRAM_AS0 0x74#define NVRAM_AS1 0x75#define NVRAM_DATA 0x77
arch/powerpc/platforms/ps3/mm.c +1 -0
@@ -616,6 +616,7 @@ static int dma_ioc0_map_pages(struct ps3_dma_region *r, unsigned long phys_addr, fail_map:for (iopage--;0 <= iopage; iopage--) { + offset = (1 << r->page_size) * iopage; lv1_put_iopte(0, c->bus_addr + offset, c->lpar_addr + offset,
arch/um/drivers/vector_kern.c +3 -0
@@ -1007,6 +1007,9 @@ static int vector_mmsg_rx(struct vector_private *vp)*/ dev_kfree_skb_irq (skb); vp->estats.rx_encaps_errors++; + (*skbuff_vector) =NULL ; + mmsg_vector++; + skbuff_vector++;continue ; }if (header_check >0 ) {
arch/x86/boot/compressed/Makefile +1 -0
@@ -35,6 +35,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \ KBUILD_CFLAGS := -m$(BITS) -O2 $(CLANG_FLAGS) KBUILD_CFLAGS += -std=gnu89 KBUILD_CFLAGS += -fno-strict-aliasing -fPIE +KBUILD_CFLAGS += -fno-jump-tables KBUILD_CFLAGS += -Wundef KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING cflags-$(CONFIG_X86_32) := -march=i386
arch/x86/kvm/mmu/mmu.c +2 -0
@@ -6062,7 +6062,9 @@ static struct shrinker mmu_shrinker = {static void mmu_destroy_caches (void ) {kmem_cache_destroy (pte_list_desc_cache); + pte_list_desc_cache =NULL ;kmem_cache_destroy (mmu_page_header_cache); + mmu_page_header_cache =NULL ; }static bool get_nx_auto_mode (void )
arch/x86/kvm/vmx/nested.c +9 -2
@@ -279,6 +279,7 @@ static void vmx_switch_vmcs(struct kvm_vcpu *vcpu, struct loaded_vmcs *vmcs)static void free_nested (struct kvm_vcpu *vcpu) {struct vcpu_vmx *vmx =to_vmx (vcpu); +struct vmcs *shadow_vmcs;if (WARN_ON_ONCE (vmx->loaded_vmcs != &vmx->vmcs01))vmx_switch_vmcs (vcpu, &vmx->vmcs01);
@@ -295,9 +296,15 @@ static void free_nested(struct kvm_vcpu *vcpu) vmx->nested.current_vmptr =-1ull ;if (enable_shadow_vmcs) {vmx_disable_shadow_vmcs (vmx); -vmcs_clear (vmx->vmcs01.shadow_vmcs); -free_vmcs (vmx->vmcs01.shadow_vmcs); + +/* +* Keep the pointer visible until after VMCLEAR, so migration +* can clear an active shadow VMCS on the old CPU. +*/ + shadow_vmcs = vmx->vmcs01.shadow_vmcs; +vmcs_clear (shadow_vmcs); vmx->vmcs01.shadow_vmcs =NULL ; +free_vmcs (shadow_vmcs); }kfree (vmx->nested.cached_vmcs12); vmx->nested.cached_vmcs12 =NULL ;
arch/x86/kvm/vmx/vmx_ops.h +14 -2
@@ -11,14 +11,26 @@#include "x86.h" asmlinkage void vmread_error(unsigned long field, bool fault); -__attribute__((regparm (0 )))void vmread_error_trampoline (unsigned long field, -bool fault);void vmwrite_error (unsigned long field,unsigned long value);void vmclear_error (struct vmcs *vmcs,u64 phys_addr);void vmptrld_error (struct vmcs *vmcs,u64 phys_addr);void invvpid_error (unsigned long ext,u16 vpid,gva_t gva);void invept_error (unsigned long ext,u64 eptp,gpa_t gpa); +/* +* The VMREAD error trampoline _always_ uses the stack to pass parameters, even +* for 64-bit targets. Preserving all registers allows the VMREAD inline asm +* blob to avoid clobbering GPRs, which in turn allows the compiler to better +* optimize sequences of VMREADs. +* +* Declare the trampoline as an opaque label as it's not safe to call from C +* code; there is no way to tell the compiler to pass params on the stack for +* 64-bit targets. +* +* void vmread_error_trampoline(unsigned long field, bool fault); +*/ +extern unsigned long vmread_error_trampoline; + static __always_inline void vmcs_check16(unsigned long field) { BUILD_BUG_ON_MSG(__builtin_constant_p(field) && ((field) & 0x6001) == 0x2000,
crypto/rsa-pkcs1pad.c +1 -1
@@ -535,7 +535,7 @@ static int pkcs1pad_verify(struct akcipher_request *req)int err;if (WARN_ON (req->dst) || -WARN_ON (!req->dst_len) || + !req->dst_len || !ctx->key_size || req->src_len != ctx->key_size)return -EINVAL ;
drivers/ata/pata_sl82c105.c +3 -1
@@ -265,6 +265,7 @@ static struct ata_port_operations sl82c105_port_ops = {static int sl82c105_bridge_revision (struct pci_dev *pdev) {struct pci_dev *bridge; +u8 revision;/* * The bridge should be part of the same device, but function 0.
@@ -286,8 +287,9 @@ static int sl82c105_bridge_revision(struct pci_dev *pdev)/* * We need to find function 0's revision, not function 1 */ + revision = bridge->revision;pci_dev_put (bridge); -return bridge->revision; +return revision; }static void sl82c105_fixup (struct pci_dev *pdev)
drivers/ata/sata_dwc_460ex.c +6 -15
@@ -443,8 +443,7 @@ static void clear_serror(struct ata_port *ap)static void clear_interrupt_bit (struct sata_dwc_device *hsdev,u32 bit) { -sata_dwc_writel (&hsdev->sata_dwc_regs->intpr, -sata_dwc_readl (&hsdev->sata_dwc_regs->intpr)); +sata_dwc_writel (&hsdev->sata_dwc_regs->intpr, bit); }static u32 qcmd_tag_to_mask (u8 tag)
@@ -512,7 +511,7 @@ static irqreturn_t sata_dwc_isr(int irq, void *dev_instance)struct ata_queued_cmd *qc;unsigned long flags;u8 status, tag; -int handled, num_processed, port =0 ; +int handled, port =0 ;uint intpr, sactive, sactive2, tag_mask;struct sata_dwc_device_port *hsdevp; hsdev->sactive_issued =0 ;
@@ -656,16 +655,9 @@ static irqreturn_t sata_dwc_isr(int irq, void *dev_instance) status = ap->ops->sff_check_status (ap);dev_dbg (ap->dev,"%s ATA status register=0x%x\n" , __func__, status); - tag =0 ; - num_processed =0 ;while (tag_mask) { - num_processed++; -while (!(tag_mask &0x00000001 )) { - tag++; - tag_mask <<=1 ; - } - - tag_mask &= (~0x00000001 ); + tag =__ffs (tag_mask); + tag_mask &= ~(1U << tag); qc =ata_qc_from_tag (ap, tag);if (unlikely (!qc)) {dev_err (ap->dev,"failed to get qc" );
@@ -1256,9 +1248,6 @@ static int sata_dwc_probe(struct platform_device *ofdev)/* Save dev for later use in dev_xxx() routines */ hsdev->dev = &ofdev->dev; -/* Enable SATA Interrupts */ -sata_dwc_enable_interrupts (hsdev); -/* Get SATA interrupt number */ irq =irq_of_parse_and_map (np,0 );if (irq ==NO_IRQ ) {
@@ -1291,6 +1280,8 @@ static int sata_dwc_probe(struct platform_device *ofdev)if (err)dev_err (&ofdev->dev,"failed to activate host" ); +/* Enable SATA Interrupts */ +sata_dwc_enable_interrupts (hsdev);return 0 ; error_out:
drivers/block/rbd.c +6 -1
@@ -1958,9 +1958,14 @@ static int rbd_object_map_update_finish(struct rbd_obj_request *obj_req,bool has_current_state;void *p; -if (osd_req->r_result) +if (osd_req->r_result <0 )return osd_req->r_result; +/* +* Writes aren't allowed to return a data payload. +*/ +WARN_ON_ONCE (osd_req->r_result >0 ); +/* * Nothing to do for a snapshot object map. */
drivers/bluetooth/btqca.c +1 -1
@@ -352,7 +352,7 @@ static int qca_tlv_check_data(struct hci_dev *hdev, idx =0 ; data = tlv->data; -while (idx < length -sizeof (struct tlv_type_nvm )) { +while (idx +sizeof (struct tlv_type_nvm ) <= length) { tlv_nvm = (struct tlv_type_nvm *)(data + idx); tag_id =le16_to_cpu (tlv_nvm->tag_id);
drivers/cdrom/cdrom.c +1 -0
@@ -3165,6 +3165,7 @@ static noinline int mmc_ioctl_cdrom_volume(struct cdrom_device_info *cdi,/* set volume */ cgc->buffer = buffer + offset -8 ; + cgc->buflen -= offset -8 ;memset (cgc->buffer,0 ,8 );return cdrom_mode_select (cdi, cgc); }
drivers/comedi/drivers/comedi_parport.c +10 -3
@@ -212,6 +212,13 @@ static irqreturn_t parport_interrupt(int irq, void *d)unsigned int ctrl;unsigned short val =0 ; +/* +* Check device is fully attached. Device interrupts should have +* been disabled, but do this in case of bad hardware. +*/ +if (!dev->attached) +return IRQ_NONE ; + ctrl =inb (dev->iobase +PARPORT_CTRL_REG );if (!(ctrl &PARPORT_CTRL_IRQ_ENA ))return IRQ_NONE ;
@@ -232,6 +239,9 @@ static int parport_attach(struct comedi_device *dev,if (ret)return ret; +outb (0 , dev->iobase +PARPORT_DATA_REG ); +outb (0 , dev->iobase +PARPORT_CTRL_REG ); +if (it->options[1 ]) { ret =request_irq (it->options[1 ], parport_interrupt,0 , dev->board_name, dev);
@@ -287,9 +297,6 @@ static int parport_attach(struct comedi_device *dev, s->cancel = parport_intr_cancel; } -outb (0 , dev->iobase +PARPORT_DATA_REG ); -outb (0 , dev->iobase +PARPORT_CTRL_REG ); -return 0 ; }
drivers/counter/microchip-tcb-capture.c +2 -2
@@ -310,7 +310,7 @@ static int mchp_tc_probe(struct platform_device *pdev)char clk_name[7 ];struct regmap *regmap;struct clk *clk[3 ]; -int channel; +u32 channel;int ret, i; priv =devm_kzalloc (&pdev->dev,sizeof (*priv),GFP_KERNEL );
@@ -345,7 +345,7 @@ static int mchp_tc_probe(struct platform_device *pdev) priv->channel[i] = channel; -snprintf (clk_name,sizeof (clk_name),"t%d_clk" , channel); +snprintf (clk_name,sizeof (clk_name),"t%u_clk" , channel); clk[i] =of_clk_get_by_name (np->parent, clk_name);if (IS_ERR (clk[i])) {
drivers/cpufreq/powernow-k8.c +1 -0
@@ -1083,6 +1083,7 @@ static int powernowk8_cpu_init(struct cpufreq_policy *pol) err_out_exit_acpi:powernow_k8_cpu_exit_acpi (data); +kfree (data->powernow_table); err_out:kfree (data);
drivers/dma/sh/rz-dmac.c +37 -57
145 lines not on this page · raw message
drivers/dma/sun6i-dma.c +4 -7
@@ -895,16 +895,13 @@ static int sun6i_dma_terminate_all(struct dma_chan *chan)spin_lock_irqsave (&vchan->vc.lock, flags); -if (vchan->cyclic) { - vchan->cyclic = false; -if (pchan && pchan->desc) { -struct virt_dma_desc *vd = &pchan->desc->vd; -struct virt_dma_chan *vc = &vchan->vc; +if (pchan && pchan->desc && pchan->desc != pchan->done) { +struct virt_dma_desc *vd = &pchan->desc->vd; -list_add_tail (&vd->node, &vc->desc_completed); - } +vchan_terminate_vdesc (vd); } + vchan->cyclic = false;vchan_get_all_descriptors (&vchan->vc, &head);if (pchan) {
drivers/firewire/net.c +21 -18
@@ -306,31 +306,34 @@ static struct fwnet_fragment_info *fwnet_frag_new(if (fi->offset + fi->len == offset) {/* The new fragment can be tacked on to the end */ /* Did the new fragment plug a hole? */ - fi2 =list_entry (fi->fi_link.next, - struct fwnet_fragment_info, fi_link); -if (fi->offset + fi->len == fi2->offset) { -/* glue fragments together */ - fi->len += len + fi2->len; -list_del (&fi2->fi_link); -kfree (fi2); - }else { - fi->len += len; +if (!list_is_last (&fi->fi_link, &pd->fi_list)) { + fi2 =list_next_entry (fi, fi_link); +if (offset + len == fi2->offset) { +/* glue fragments together */ + fi->len += len + fi2->len; +list_del (&fi2->fi_link); +kfree (fi2); + +return fi; + } } + fi->len += len;return fi; }if (offset + len == fi->offset) {/* The new fragment can be tacked on to the beginning */ /* Did the new fragment plug a hole? */ - fi2 =list_entry (fi->fi_link.prev, - struct fwnet_fragment_info, fi_link); -if (fi2->offset + fi2->len == fi->offset) { -/* glue fragments together */ - fi2->len += fi->len + len; -list_del (&fi->fi_link); -kfree (fi); - -return fi2; +if (!list_is_first (&fi->fi_link, &pd->fi_list)) { + fi2 =list_prev_entry (fi, fi_link); +if (fi2->offset + fi2->len == offset) { +/* glue fragments together */ + fi2->len += fi->len + len; +list_del (&fi->fi_link); +kfree (fi); + +return fi2; + } } fi->offset = offset; fi->len += len;
drivers/firmware/arm_ffa/driver.c +1 -1
@@ -558,7 +558,7 @@ static int ffa_partition_info_get(const char *uuid_str,uuid_t uuid;struct ffa_partition_info *pbuf; -if (uuid_parse (uuid_str, &uuid)) { +if (!uuid_str ||uuid_parse (uuid_str, &uuid)) {pr_err ("invalid uuid (%s)\n" , uuid_str);return -ENODEV ; }
drivers/firmware/arm_scmi/notify.c +3 -3
@@ -595,9 +595,9 @@ int scmi_notify(const struct scmi_handle *handle, u8 proto_id, u8 evt_id,return -EINVAL ; }if (kfifo_avail (&r_evt->proto->equeue.kfifo) <sizeof (eh) + len) { -dev_warn (handle->dev, -"queue full, dropping proto_id:%d evt_id:%d ts:%lld\n" , - proto_id, evt_id,ktime_to_ns (ts)); +dev_warn_ratelimited (handle->dev, +"queue full, dropping proto_id:%d evt_id:%d ts:%lld\n" , + proto_id, evt_id,ktime_to_ns (ts));return -ENOMEM ; }
drivers/firmware/stratix10-svc.c +5 -4
@@ -911,13 +911,15 @@ void *stratix10_svc_allocate_memory(struct stratix10_svc_chan *chan,struct gen_pool *genpool = chan->ctrl->genpool;size_t s =roundup (size,1 << genpool->min_alloc_order); - pmem =devm_kzalloc (chan->ctrl->dev,sizeof (*pmem),GFP_KERNEL ); + pmem =kzalloc (sizeof (*pmem),GFP_KERNEL );if (!pmem)return ERR_PTR (-ENOMEM ); va =gen_pool_alloc (genpool, s); -if (!va) +if (!va) { +kfree (pmem);return ERR_PTR (-ENOMEM ); + }memset ((void *)va,0 , s); pa =gen_pool_virt_to_phys (genpool, va);
@@ -950,10 +952,9 @@ void stratix10_svc_free_memory(struct stratix10_svc_chan *chan, void *kaddr) (unsigned long)kaddr, pmem->size); pmem->vaddr =NULL ;list_del (&pmem->node); +kfree (pmem);return ; } - -list_del (&svc_data_mem); }EXPORT_SYMBOL_GPL (stratix10_svc_free_memory);
drivers/gpio/gpio-pch.c +14 -14
@@ -92,7 +92,7 @@ struct pch_gpio {struct pch_gpio_reg_data pch_gpio_reg;int irq_base;enum pch_type_t ioh; -spinlock_t spinlock; +raw_spinlock_t spinlock; };static void pch_gpio_set (struct gpio_chip *gpio,unsigned int nr,int val)
@@ -101,7 +101,7 @@ static void pch_gpio_set(struct gpio_chip *gpio, unsigned int nr, int val)struct pch_gpio *chip =gpiochip_get_data (gpio);unsigned long flags; -spin_lock_irqsave (&chip->spinlock, flags); +raw_spin_lock_irqsave (&chip->spinlock, flags); reg_val =ioread32 (&chip->reg->po);if (val) reg_val |=BIT (nr);
@@ -109,7 +109,7 @@ static void pch_gpio_set(struct gpio_chip *gpio, unsigned int nr, int val) reg_val &= ~BIT (nr);iowrite32 (reg_val, &chip->reg->po); -spin_unlock_irqrestore (&chip->spinlock, flags); +raw_spin_unlock_irqrestore (&chip->spinlock, flags); }static int pch_gpio_get (struct gpio_chip *gpio,unsigned int nr)
@@ -127,7 +127,7 @@ static int pch_gpio_direction_output(struct gpio_chip *gpio, unsigned int nr,u32 reg_val;unsigned long flags; -spin_lock_irqsave (&chip->spinlock, flags); +raw_spin_lock_irqsave (&chip->spinlock, flags); reg_val =ioread32 (&chip->reg->po);if (val)
@@ -141,7 +141,7 @@ static int pch_gpio_direction_output(struct gpio_chip *gpio, unsigned int nr, pm |=BIT (nr);iowrite32 (pm, &chip->reg->pm); -spin_unlock_irqrestore (&chip->spinlock, flags); +raw_spin_unlock_irqrestore (&chip->spinlock, flags);return 0 ; }
@@ -152,12 +152,12 @@ static int pch_gpio_direction_input(struct gpio_chip *gpio, unsigned int nr)u32 pm;unsigned long flags; -spin_lock_irqsave (&chip->spinlock, flags); +raw_spin_lock_irqsave (&chip->spinlock, flags); pm =ioread32 (&chip->reg->pm); pm &=BIT (gpio_pins[chip->ioh]) -1 ; pm &= ~BIT (nr);iowrite32 (pm, &chip->reg->pm); -spin_unlock_irqrestore (&chip->spinlock, flags); +raw_spin_unlock_irqrestore (&chip->spinlock, flags);return 0 ; }
@@ -259,7 +259,7 @@ static int pch_irq_type(struct irq_data *d, unsigned int type)return 0 ; } -spin_lock_irqsave (&chip->spinlock, flags); +raw_spin_lock_irqsave (&chip->spinlock, flags);/* Set interrupt mode */ im =ioread32 (im_reg) & ~(PCH_IM_MASK << (im_pos *4 ));
@@ -271,7 +271,7 @@ static int pch_irq_type(struct irq_data *d, unsigned int type)else if (type &IRQ_TYPE_EDGE_BOTH )irq_set_handler_locked (d, handle_edge_irq); -spin_unlock_irqrestore (&chip->spinlock, flags); +raw_spin_unlock_irqrestore (&chip->spinlock, flags);return 0 ; }
@@ -378,7 +378,7 @@ static int pch_gpio_probe(struct pci_dev *pdev, chip->reg = chip->base;pci_set_drvdata (pdev, chip); -spin_lock_init (&chip->spinlock); +raw_spin_lock_init (&chip->spinlock);pch_gpio_setup (chip); ret =devm_gpiochip_add_data (&pdev->dev, &chip->gpio, chip);
@@ -415,9 +415,9 @@ static int __maybe_unused pch_gpio_suspend(struct device *dev)struct pch_gpio *chip =dev_get_drvdata (dev);unsigned long flags; -spin_lock_irqsave (&chip->spinlock, flags); +raw_spin_lock_irqsave (&chip->spinlock, flags);pch_gpio_save_reg_conf (chip); -spin_unlock_irqrestore (&chip->spinlock, flags); +raw_spin_unlock_irqrestore (&chip->spinlock, flags);return 0 ; }
@@ -427,11 +427,11 @@ static int __maybe_unused pch_gpio_resume(struct device *dev)struct pch_gpio *chip =dev_get_drvdata (dev);unsigned long flags; -spin_lock_irqsave (&chip->spinlock, flags); +raw_spin_lock_irqsave (&chip->spinlock, flags);iowrite32 (0x01 , &chip->reg->reset);iowrite32 (0x00 , &chip->reg->reset);pch_gpio_restore_reg_conf (chip); -spin_unlock_irqrestore (&chip->spinlock, flags); +raw_spin_unlock_irqrestore (&chip->spinlock, flags);return 0 ; }
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +2 -0
@@ -466,7 +466,9 @@ static int acp_hw_fini(void *handle)mfd_remove_devices (adev->acp.parent);kfree (adev->acp.acp_res); +pm_genpd_remove (&adev->acp.acp_genpd->gpd);kfree (adev->acp.acp_genpd); + adev->acp.acp_genpd =NULL ;kfree (adev->acp.acp_cell);return 0 ;
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +40 -5
57 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +15 -0
@@ -2393,6 +2393,19 @@ static int amdgpu_pmops_runtime_suspend(struct device *dev)return 0 ; } +static void amdgpu_restore_umd_profile_pstate_after_runpm (struct amdgpu_device *adev) +{ +enum amd_dpm_forced_level level; +uint32_t profile_mode_mask =AMD_DPM_FORCED_LEVEL_PROFILE_STANDARD | +AMD_DPM_FORCED_LEVEL_PROFILE_MIN_SCLK | +AMD_DPM_FORCED_LEVEL_PROFILE_MIN_MCLK | +AMD_DPM_FORCED_LEVEL_PROFILE_PEAK ; + + level =amdgpu_dpm_get_performance_level (adev); +if (level & profile_mode_mask) +amdgpu_asic_update_umd_stable_pstate (adev, true); +} +static int amdgpu_pmops_runtime_resume (struct device *dev) {struct pci_dev *pdev =to_pci_dev (dev);
@@ -2436,6 +2449,8 @@ static int amdgpu_pmops_runtime_resume(struct device *dev)if (amdgpu_device_supports_px (drm_dev)) drm_dev->switch_power_state =DRM_SWITCH_POWER_ON ; + +amdgpu_restore_umd_profile_pstate_after_runpm (adev); adev->in_runpm = false;return 0 ; }
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +8 -5
@@ -266,10 +266,12 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev, goto error_free; } - r =amdgpu_bo_pin (*bo_ptr, domain); -if (r) { -dev_err (adev->dev,"(%d) kernel bo pin failed\n" , r); - goto error_unreserve; +if (free) { + r =amdgpu_bo_pin (*bo_ptr, domain); +if (r) { +dev_err (adev->dev,"(%d) kernel bo pin failed\n" , r); + goto error_unreserve; + } } r =amdgpu_ttm_alloc_gart (&(*bo_ptr)->tbo);
@@ -292,7 +294,8 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev,return 0 ; error_unpin: -amdgpu_bo_unpin (*bo_ptr); +if (free) +amdgpu_bo_unpin (*bo_ptr); error_unreserve:amdgpu_bo_unreserve (*bo_ptr);
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +12 -0
@@ -1768,6 +1768,18 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)else gtt_size = (uint64_t )amdgpu_gtt_size <<20 ; +/* Cap GTT so that it does not exceed total physical RAM. */ +if (adev->flags &AMD_IS_APU ) { +u64 phys_ram = (u64 )totalram_pages () <<PAGE_SHIFT ; + +if (gtt_size > phys_ram) { + gtt_size = phys_ram; +dev_info (adev->dev, +"Capping GTT to %uM to not exceed available system memory\n" , + (unsigned int )(gtt_size / (1024 *1024 ))); + } + } +/* Initialize GTT memory pool */ r =amdgpu_gtt_mgr_init (adev, gtt_size);if (r) {
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +8 -0
@@ -578,6 +578,14 @@ static int amdgpu_uvd_cs_msg_decode(struct amdgpu_device *adev, uint32_t *msg,unsigned image_size, tmp, min_dpb_size, num_dpb_buffer;unsigned min_ctx_size = ~0 ; +/* Reject invalid dimensions to prevent division by zero */ +if (width <16 || height <16 ) { +dev_WARN_ONCE (adev->dev,1 , +"Invalid UVD decoding dimensions (%dx%d)!\n" , + width, height); +return -EINVAL ; + } + image_size = width * height; image_size += image_size /2 ; image_size =ALIGN (image_size,1024 );
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +5 -8
@@ -3854,7 +3854,7 @@ static void gfx_v10_0_wait_reg_mem(struct amdgpu_ring *ring, int eng_sel, WAIT_REG_MEM_ENGINE(eng_sel)));if (mem_space) -BUG_ON (addr0 &0x3 );/* Dword align */ +WARN_ON (addr0 &0x3 );/* Dword align */ amdgpu_ring_write (ring, addr0);amdgpu_ring_write (ring, addr1);amdgpu_ring_write (ring, ref);
@@ -8629,7 +8629,7 @@ static void gfx_v10_0_ring_emit_ib_gfx(struct amdgpu_ring *ring, }amdgpu_ring_write (ring, header); -BUG_ON (ib->gpu_addr &0x3 );/* Dword align */ +WARN_ON (ib->gpu_addr &0x3 );/* Dword align */ amdgpu_ring_write(ring, #ifdef __BIG_ENDIAN (2 << 0) |
@@ -8664,7 +8664,7 @@ static void gfx_v10_0_ring_emit_ib_compute(struct amdgpu_ring *ring, }amdgpu_ring_write (ring,PACKET3 (PACKET3_INDIRECT_BUFFER ,2 )); -BUG_ON (ib->gpu_addr &0x3 );/* Dword align */ +WARN_ON (ib->gpu_addr &0x3 );/* Dword align */ amdgpu_ring_write(ring, #ifdef __BIG_ENDIAN (2 << 0) |
@@ -8697,9 +8697,9 @@ static void gfx_v10_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr,* aligned if only send 32bit data low (discard data high) */ if (write64bit) -BUG_ON (addr &0x7 ); +WARN_ON (addr &0x7 );else -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));
@@ -8735,9 +8735,6 @@ static void gfx_v10_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/gfx_v8_0.c +0 -3
@@ -6301,9 +6301,6 @@ static void gfx_v8_0_ring_emit_fence_compute(struct amdgpu_ring *ring,static void gfx_v8_0_ring_emit_fence_kiq (struct amdgpu_ring *ring,u64 addr,u64 seq,unsigned int flags) { -/* 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/gfx_v9_0.c +5 -5
@@ -1052,7 +1052,7 @@ static void gfx_v9_0_wait_reg_mem(struct amdgpu_ring *ring, int eng_sel, WAIT_REG_MEM_ENGINE(eng_sel)));if (mem_space) -BUG_ON (addr0 &0x3 );/* Dword align */ +WARN_ON (addr0 &0x3 );/* Dword align */ amdgpu_ring_write (ring, addr0);amdgpu_ring_write (ring, addr1);amdgpu_ring_write (ring, ref);
@@ -5395,7 +5395,7 @@ static void gfx_v9_0_ring_emit_ib_gfx(struct amdgpu_ring *ring, }amdgpu_ring_write (ring, header); -BUG_ON (ib->gpu_addr &0x3 );/* Dword align */ +WARN_ON (ib->gpu_addr &0x3 );/* Dword align */ amdgpu_ring_write(ring, #ifdef __BIG_ENDIAN (2 << 0) |
@@ -5430,7 +5430,7 @@ static void gfx_v9_0_ring_emit_ib_compute(struct amdgpu_ring *ring, }amdgpu_ring_write (ring,PACKET3 (PACKET3_INDIRECT_BUFFER ,2 )); -BUG_ON (ib->gpu_addr &0x3 );/* Dword align */ +WARN_ON (ib->gpu_addr &0x3 );/* Dword align */ amdgpu_ring_write(ring, #ifdef __BIG_ENDIAN (2 << 0) |
@@ -5464,9 +5464,9 @@ static void gfx_v9_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr,* aligned if only send 32bit data low (discard data high) */ if (write64bit) -BUG_ON (addr &0x7 ); +WARN_ON (addr &0x7 );else -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));
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c +2 -2
@@ -552,7 +552,7 @@ static void sdma_v5_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seamdgpu_ring_write (ring,SDMA_PKT_HEADER_OP (SDMA_OP_FENCE ) |SDMA_PKT_FENCE_HEADER_MTYPE (0x3 ));/* Ucached(UC) */ /* 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));
@@ -563,7 +563,7 @@ static void sdma_v5_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seamdgpu_ring_write (ring,SDMA_PKT_HEADER_OP (SDMA_OP_FENCE ) |SDMA_PKT_FENCE_HEADER_MTYPE (0x3 ));/* 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/amdgpu/sdma_v5_2.c +2 -2
@@ -449,7 +449,7 @@ static void sdma_v5_2_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seamdgpu_ring_write (ring,SDMA_PKT_HEADER_OP (SDMA_OP_FENCE ) |SDMA_PKT_FENCE_HEADER_MTYPE (0x3 ));/* Ucached(UC) */ /* 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));
@@ -460,7 +460,7 @@ static void sdma_v5_2_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seamdgpu_ring_write (ring,SDMA_PKT_HEADER_OP (SDMA_OP_FENCE ) |SDMA_PKT_FENCE_HEADER_MTYPE (0x3 ));/* 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/modules/info_packet/info_packet.c +0 -2
@@ -415,8 +415,6 @@ void mod_build_vsc_infopacket(const struct dc_stream_state *stream,* * @stream: contains data we may need to construct VSIF (i.e. timing_3d_format, etc.) * @info_packet: output structure where to store VSIF -* @ALLMEnabled: indicates whether ALLM HF-VSIF should be generated -* @ALLMValue: ALLM bit value to advertise in HF-VSIF */ void mod_build_hf_vsif_infopacket (const struct dc_stream_state *stream,struct dc_info_packet *info_packet)
drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c +2 -5
@@ -106,11 +106,8 @@ int hwmgr_early_init(struct pp_hwmgr *hwmgr) 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 ) { +/* R9 M380 in iMac 2015: SMU hangs when enabling MCLK DPM */ +if (adev->pdev->subsystem_vendor ==0x106B ) {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 ;
drivers/gpu/drm/i915/gem/i915_gem_context.c +15 -9
@@ -565,8 +565,8 @@ static int set_proto_ctx_engines(struct drm_i915_file_private *fpriv,struct intel_engine_cs *engine;if (copy_from_user (&ci, &user->engines[n],sizeof (ci))) { -kfree (set.engines); -return -EFAULT ; + err = -EFAULT ; + goto err; }memset (&set.engines[n],0 ,sizeof (set.engines[n]));
@@ -582,8 +582,8 @@ static int set_proto_ctx_engines(struct drm_i915_file_private *fpriv,drm_dbg (&i915->drm,"Invalid engine[%d]: { class:%d, instance:%d }\n" , n, ci.engine_class, ci.engine_instance); -kfree (set.engines); -return -ENOENT ; + err = -ENOENT ; + goto err; } set.engines[n].type =I915_GEM_ENGINE_TYPE_PHYSICAL ;
@@ -596,15 +596,21 @@ static int set_proto_ctx_engines(struct drm_i915_file_private *fpriv, set_proto_ctx_engines_extensions,ARRAY_SIZE (set_proto_ctx_engines_extensions), &set); -if (err) { -kfree (set.engines); -return err; - } +if (err) + goto err_extensions; pc->num_user_engines = set.num_engines; pc->user_engines = set.engines;return 0 ; + +err_extensions: +for (n =0 ; n < set.num_engines; n++) +kfree (set.engines[n].siblings); +err: +kfree (set.engines); + +return err; } static int set_proto_ctx_sseu(struct drm_i915_file_private *fpriv,
@@ -646,7 +652,7 @@ static int set_proto_ctx_sseu(struct drm_i915_file_private *fpriv, pe = &pc->user_engines[idx];/* Only render engine supports RPCS configuration. */ -if (pe->engine->class !=RENDER_CLASS ) +if (!pe->engine || pe->engine->class !=RENDER_CLASS )return -EINVAL ; sseu = &pe->sseu;
drivers/gpu/drm/i915/gt/intel_engine_user.c +1 -1
@@ -235,7 +235,7 @@ void intel_engines_driver_register(struct drm_i915_private *i915) p = &prev->rb_right; } -if (IS_ENABLED (CONFIG_DRM_I915_SELFTESTS ) && +if (IS_ENABLED (CONFIG_DRM_I915_SELFTEST ) &&IS_ENABLED (CONFIG_DRM_I915_DEBUG_GEM )) {struct intel_engine_cs *engine;unsigned int isolation;
drivers/gpu/drm/i915/gt/selftest_gt_pm.c +4 -4
@@ -15,9 +15,9 @@ static int cmp_u64(const void *A, const void *B) {const u64 *a =A , *b =B ; -if (a < b) +if (*a < *b)return -1 ; -else if (a > b) +else if (*a > *b)return 1 ;else return 0 ;
@@ -27,9 +27,9 @@ static int cmp_u32(const void *A, const void *B) {const u32 *a =A , *b =B ; -if (a < b) +if (*a < *b)return -1 ; -else if (a > b) +else if (*a > *b)return 1 ;else return 0 ;
drivers/gpu/drm/i915/i915_active.c +6 -1
@@ -319,7 +319,7 @@ active_instance(struct i915_active *ref, u64 idx)*/ node =kmem_cache_alloc (slab_cache,GFP_ATOMIC );if (!node) - goto out; + goto err;__i915_active_fence_init (&node->base,NULL , node_retire); node->ref = ref;
@@ -333,6 +333,11 @@ active_instance(struct i915_active *ref, u64 idx)spin_unlock_irq (&ref->tree_lock);return &node->base; + +err: +spin_unlock_irq (&ref->tree_lock); + +return NULL ; } void __i915_active_init(struct i915_active *ref,
drivers/gpu/drm/mediatek/mtk_drm_crtc.c +3 -3
@@ -172,10 +172,10 @@ static void mtk_drm_crtc_reset(struct drm_crtc *crtc) {struct mtk_crtc_state *state; -if (crtc->state) +if (crtc->state) {__drm_atomic_helper_crtc_destroy_state (crtc->state); - -kfree (to_mtk_crtc_state (crtc->state)); +kfree (to_mtk_crtc_state (crtc->state)); + } crtc->state =NULL ; state =kzalloc (sizeof (*state),GFP_KERNEL );
drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.c +1 -0
@@ -314,6 +314,7 @@ nvkm_acr_oneinit(struct nvkm_subdev *subdev) i, us, fw); } } +nvkm_done (acr->wpr);return -EINVAL ; }nvkm_done (acr->wpr);
drivers/gpu/drm/radeon/r100.c +9 -4
@@ -904,6 +904,7 @@ struct radeon_fence *r100_copy_blit(struct radeon_device *rdev, {struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX ];struct radeon_fence *fence; +uint64_t cur_src_offset, cur_dst_offset;uint32_t cur_pages;uint32_t stride_bytes =RADEON_GPU_PAGE_SIZE ;uint32_t pitch;
@@ -932,6 +933,10 @@ struct radeon_fence *r100_copy_blit(struct radeon_device *rdev, cur_pages =8191 ; } num_gpu_pages -= cur_pages; + cur_src_offset = src_offset + + (uint64_t )num_gpu_pages *RADEON_GPU_PAGE_SIZE ; + cur_dst_offset = dst_offset + + (uint64_t )num_gpu_pages *RADEON_GPU_PAGE_SIZE ;/* pages are in Y direction - height page width in X direction - width */
@@ -948,13 +953,13 @@ struct radeon_fence *r100_copy_blit(struct radeon_device *rdev,RADEON_DP_SRC_SOURCE_MEMORY |RADEON_GMC_CLR_CMP_CNTL_DIS | RADEON_GMC_WR_MSK_DIS); -radeon_ring_write (ring, (pitch <<22 ) | (src_offset >>10 )); -radeon_ring_write (ring, (pitch <<22 ) | (dst_offset >>10 )); +radeon_ring_write (ring, (pitch <<22 ) | (cur_src_offset >>10 )); +radeon_ring_write (ring, (pitch <<22 ) | (cur_dst_offset >>10 ));radeon_ring_write (ring, (0x1fff ) | (0x1fff <<16 ));radeon_ring_write (ring,0 );radeon_ring_write (ring, (0x1fff ) | (0x1fff <<16 )); -radeon_ring_write (ring, num_gpu_pages); -radeon_ring_write (ring, num_gpu_pages); +radeon_ring_write (ring,0 ); +radeon_ring_write (ring,0 );radeon_ring_write (ring, cur_pages | (stride_pixels <<16 )); }radeon_ring_write (ring,PACKET0 (RADEON_DSTCACHE_CTLSTAT ,0 ));
drivers/gpu/drm/rockchip/cdn-dp-reg.c +2 -0
@@ -683,6 +683,8 @@ int cdn_dp_config_video(struct cdn_dp_device *dp) val =div_u64 (8 * (symbol +1 ), bit_per_pix) - val; val +=2 ; ret =cdn_dp_reg_write (dp,DP_VC_TABLE (15 ), val); +if (ret) + goto err_config_video;switch (video->color_depth) {case 6 :
drivers/gpu/drm/vc4/vc4_validate.c +23 -6
@@ -379,6 +379,23 @@ validate_tile_binning_config(VALIDATE_ARGS)return -EINVAL ; } +/* The tile state data array is 48 bytes per tile, and we put it at +* the start of a BO containing both it and the tile alloc. +*/ + tile_state_size =48 * tile_count; + +/* Since the tile alloc array will follow us, align. */ + tile_state_size =roundup (tile_state_size,4096 ); + +/* Reject configurations whose tile state would leave no room for +* the tile alloc pool that follows it in the slot. +*/ +if (tile_state_size >= vc4->bin_alloc_size) { +DRM_DEBUG ("Tile binning config of %dx%d too large\n" , + exec->bin_tiles_x, exec->bin_tiles_y); +return -EINVAL ; + } + bin_slot =vc4_v3d_get_bin_slot (vc4);if (bin_slot <0 ) {if (bin_slot != -EINTR && bin_slot != -ERESTARTSYS ) {
@@ -394,13 +411,13 @@ validate_tile_binning_config(VALIDATE_ARGS) exec->bin_slots |=BIT (bin_slot); bin_addr = vc4->bin_bo->base.paddr + bin_slot * vc4->bin_alloc_size; -/* The tile state data array is 48 bytes per tile, and we put it at -* the start of a BO containing both it and the tile alloc. -*/ - tile_state_size =48 * tile_count; + exec->tile_alloc_offset = bin_addr + tile_state_size; -/* Since the tile alloc array will follow us, align. */ - exec->tile_alloc_offset = bin_addr +roundup (tile_state_size,4096 ); +/* The TSDA area must be zeroed out before use, otherwise the PTB might +* consume a stale tile state. +*/ +memset (vc4->bin_bo->base.vaddr + bin_slot * vc4->bin_alloc_size,0 , + tile_state_size); *(uint8_t *)(validated + 14) = ((flags & ~(VC4_BIN_CONFIG_ALLOC_INIT_BLOCK_SIZE_MASK |
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +13 -1
@@ -1534,6 +1534,12 @@ static int vmw_cmd_dma(struct vmw_private *dev_priv,bool dirty; cmd =container_of (header,typeof (*cmd), header); + +if (unlikely (header->size <sizeof (cmd->body) +sizeof (*suffix))) { +VMW_DEBUG_USER ("Illegal SVGA_3D_CMD_SURFACE_DMA size.\n" ); +return -EINVAL ; + } + suffix = (SVGA3dCmdSurfaceDMASuffix *)((unsigned long ) &cmd->body + header->size -sizeof (*suffix));
@@ -1595,11 +1601,17 @@ static int vmw_cmd_draw(struct vmw_private *dev_priv,uint32_t maxnum;int ret; + cmd =container_of (header,typeof (*cmd), header); + +if (unlikely (header->size <sizeof (cmd->body))) { +VMW_DEBUG_USER ("Illegal DRAW_PRIMITIVES header size.\n" ); +return -EINVAL ; + } + ret =vmw_cmd_cid_check (dev_priv, sw_context, header);if (unlikely (ret !=0 ))return ret; - cmd =container_of (header,typeof (*cmd), header); maxnum = (header->size -sizeof (cmd->body)) /sizeof (*decl);if (unlikely (cmd->body.numVertexDecls > maxnum)) {
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +17 -5
@@ -104,7 +104,7 @@ static int vmw_gb_surface_unbind(struct vmw_resource *res,static int vmw_gb_surface_destroy (struct vmw_resource *res);static int vmw_gb_surface_define_internal (struct drm_device *dev, -struct drm_vmw_gb_surface_create_ext_req *req, +const struct drm_vmw_gb_surface_create_ext_req *req,struct drm_vmw_gb_surface_create_rep *rep,struct drm_file *file_priv); static int
@@ -1447,7 +1447,7 @@ int vmw_gb_surface_reference_ext_ioctl(struct drm_device *dev, void *data,*/ static int vmw_gb_surface_define_internal (struct drm_device *dev, -struct drm_vmw_gb_surface_create_ext_req *req, +const struct drm_vmw_gb_surface_create_ext_req *req,struct drm_vmw_gb_surface_create_rep *rep,struct drm_file *file_priv) {
@@ -1466,9 +1466,21 @@ vmw_gb_surface_define_internal(struct drm_device *dev, req->base.svga3d_flags);/* array_size must be null for non-GL3 host. */ -if (req->base.array_size >0 && !has_sm4_context (dev_priv)) { -VMW_DEBUG_USER ("SM4 surface not supported.\n" ); -return -EINVAL ; +if (req->base.array_size >0 ) { +if (has_sm5_context (dev_priv)) { +if (req->base.array_size >SVGA3D_SM5_MAX_SURFACE_ARRAYSIZE ) { +VMW_DEBUG_USER ("Invalid Surface Array Size.\n" ); +return -EINVAL ; + } + }else if (has_sm4_context (dev_priv)) { +if (req->base.array_size >SVGA3D_SM4_MAX_SURFACE_ARRAYSIZE ) { +VMW_DEBUG_USER ("Invalid Surface Array Size.\n" ); +return -EINVAL ; + } + }else { +VMW_DEBUG_USER ("SM4+ surface not supported.\n" ); +return -EINVAL ; + } }if (!has_sm4_1_context (dev_priv)) {
drivers/hid/hid-logitech-dj.c +22 -6
@@ -1749,7 +1749,8 @@ static int logi_dj_raw_event(struct hid_device *hdev,static int logi_dj_probe (struct hid_device *hdev,const struct hid_device_id *id) { -struct hid_report_enum *rep_enum; +struct hid_report_enum *input_report_enum; +struct hid_report_enum *output_report_enum;struct hid_report *rep;struct dj_receiver_dev *djrcv_dev;struct usb_interface *intf;
@@ -1793,10 +1794,25 @@ static int logi_dj_probe(struct hid_device *hdev, } } - rep_enum = &hdev->report_enum[HID_INPUT_REPORT ]; + output_report_enum = &hdev->report_enum[HID_OUTPUT_REPORT ]; + rep = output_report_enum->report_id_hash[REPORT_ID_DJ_SHORT ]; + +if (rep && rep->maxfield <1 ) { +hid_err (hdev,"Expected size of DJ short report is %d, but got 0" , +DJREPORT_SHORT_LENGTH -1 ); +return -EINVAL ; + } + +if (rep && rep->field[0 ]->report_count !=DJREPORT_SHORT_LENGTH -1 ) { +hid_err (hdev,"Expected size of DJ short report is %d, but got %d" , +DJREPORT_SHORT_LENGTH -1 , rep->field[0 ]->report_count); +return -EINVAL ; + } + + input_report_enum = &hdev->report_enum[HID_INPUT_REPORT ];/* no input reports, bail out */ -if (list_empty (&rep_enum->report_list)) +if (list_empty (&input_report_enum->report_list))return -ENODEV ;/*
@@ -1804,7 +1820,7 @@ static int logi_dj_probe(struct hid_device *hdev,* Note: we should theoretically check for HID++ and DJ * collections, but this will do. */ -list_for_each_entry (rep, &rep_enum->report_list, list) { +list_for_each_entry (rep, &input_report_enum->report_list, list) {if (rep->application ==0xff000001 ) has_hidpp = true; }
@@ -1817,7 +1833,7 @@ static int logi_dj_probe(struct hid_device *hdev,return -ENODEV ;/* get the current application attached to the node */ - rep = list_first_entry(&rep_enum->report_list, struct hid_report, list); + rep = list_first_entry(&input_report_enum->report_list, struct hid_report, list); djrcv_dev =dj_get_receiver_dev (hdev, id->driver_data, rep->application, has_hidpp);if (!djrcv_dev) {
@@ -1825,7 +1841,7 @@ static int logi_dj_probe(struct hid_device *hdev,return -ENOMEM ; } -if (!rep_enum->numbered) +if (!input_report_enum->numbered) djrcv_dev->unnumbered_application = rep->application;/* Starts the usb device and connects to upper interfaces hiddev and
drivers/hwmon/adt7470.c +92 -37
296 lines not on this page · raw message
drivers/hwmon/corsair-cpro.c +1 -0
@@ -558,6 +558,7 @@ static int ccp_probe(struct hid_device *hdev, const struct hid_device_id *id) out_hw_close:hid_hw_close (hdev); +hid_device_io_stop (hdev); out_hw_stop:hid_hw_stop (hdev);return ret;
drivers/hwmon/corsair-psu.c +3 -2
@@ -644,7 +644,7 @@ static int vendor_show(struct seq_file *seqf, void *unused) {struct corsairpsu_data *priv = seqf->private; -seq_printf (seqf,"%s\n" , priv->vendor); +seq_printf (seqf,"%.*s\n" ,REPLY_SIZE , priv->vendor);return 0 ; }
@@ -654,7 +654,7 @@ static int product_show(struct seq_file *seqf, void *unused) {struct corsairpsu_data *priv = seqf->private; -seq_printf (seqf,"%s\n" , priv->product); +seq_printf (seqf,"%.*s\n" ,REPLY_SIZE , priv->product);return 0 ; }
@@ -742,6 +742,7 @@ static int corsairpsu_probe(struct hid_device *hdev, const struct hid_device_id fail_and_close:hid_hw_close (hdev); +hid_device_io_stop (hdev); fail_and_stop:hid_hw_stop (hdev);return ret;
drivers/hwmon/nct6775.c +6 -6
@@ -851,12 +851,12 @@ static const u16 NCT6106_REG_TOLERANCE_H[] = { 0x112, 0x122, 0x132 };static const u16 NCT6106_REG_TARGET [] = {0x111 ,0x121 ,0x131 }; -static const u16 NCT6106_REG_WEIGHT_TEMP_SEL [] = {0x168 ,0x178 ,0x188 }; -static const u16 NCT6106_REG_WEIGHT_TEMP_STEP [] = {0x169 ,0x179 ,0x189 }; -static const u16 NCT6106_REG_WEIGHT_TEMP_STEP_TOL [] = {0x16a ,0x17a ,0x18a }; -static const u16 NCT6106_REG_WEIGHT_DUTY_STEP [] = {0x16b ,0x17b ,0x18b }; -static const u16 NCT6106_REG_WEIGHT_TEMP_BASE [] = {0x16c ,0x17c ,0x18c }; -static const u16 NCT6106_REG_WEIGHT_DUTY_BASE [] = {0x16d ,0x17d ,0x18d }; +static const u16 NCT6106_REG_WEIGHT_TEMP_SEL [] = {0x168 ,0x178 ,0x188 ,0 ,0 }; +static const u16 NCT6106_REG_WEIGHT_TEMP_STEP [] = {0x169 ,0x179 ,0x189 ,0 ,0 }; +static const u16 NCT6106_REG_WEIGHT_TEMP_STEP_TOL [] = {0x16a ,0x17a ,0x18a ,0 ,0 }; +static const u16 NCT6106_REG_WEIGHT_DUTY_STEP [] = {0x16b ,0x17b ,0x18b ,0 ,0 }; +static const u16 NCT6106_REG_WEIGHT_TEMP_BASE [] = {0x16c ,0x17c ,0x18c ,0 ,0 }; +static const u16 NCT6106_REG_WEIGHT_DUTY_BASE [] = {0x16d ,0x17d ,0x18d ,0 ,0 };static const u16 NCT6106_REG_AUTO_TEMP [] = {0x160 ,0x170 ,0x180 };static const u16 NCT6106_REG_AUTO_PWM [] = {0x164 ,0x174 ,0x184 };
drivers/hwmon/npcm750-pwm-fan.c +11 -0
@@ -360,6 +360,11 @@ static void npcm7xx_fan_polling(struct timer_list *t)add_timer (&data->fan_timer); } +static void npcm7xx_fan_cleanup (void *timer) +{ +timer_shutdown_sync (timer); +} +static inline void npcm7xx_fan_compute (struct npcm7xx_pwm_fan_data *data,u8 fan,u8 cmp,u8 fan_id,u8 flag_int,u8 flag_mode,u8 flag_clear)
@@ -1003,6 +1008,12 @@ static int npcm7xx_pwm_fan_probe(struct platform_device *pdev)msecs_to_jiffies (NPCM7XX_FAN_POLL_TIMER_200MS );timer_setup (&data->fan_timer, npcm7xx_fan_polling,0 ); + ret =devm_add_action_or_reset (dev, + npcm7xx_fan_cleanup, + &data->fan_timer); +if (ret) +return ret; +add_timer (&data->fan_timer);break ; }
drivers/hwmon/occ/common.c +98 -36
182 lines not on this page · raw message
drivers/hwmon/occ/common.h +6 -1
@@ -107,6 +107,7 @@ struct occ {struct attribute_group group;const struct attribute_group *groups[2 ]; +bool active;int error;/* final transfer error after retry */ int last_error;/* latest transfer error */ unsigned int error_count;/* number of xfr errors observed */
@@ -120,11 +121,15 @@ struct occ {u8 prev_stat;u8 prev_ext_stat;u8 prev_occs_present; +u8 prev_ips_status; +u8 prev_mode; }; -int occ_setup (struct occ *occ,const char *name); +int occ_active (struct occ *occ,bool active); +int occ_setup (struct occ *occ);int occ_setup_sysfs (struct occ *occ);void occ_shutdown (struct occ *occ); +void occ_shutdown_sysfs (struct occ *occ);void occ_sysfs_poll_done (struct occ *occ);int occ_update_response (struct occ *occ);
drivers/hwmon/occ/p8_i2c.c +1 -1
@@ -224,7 +224,7 @@ static int p8_i2c_occ_probe(struct i2c_client *client) occ->poll_cmd_data =0x10 ;/* P8 OCC poll data */ occ->send_cmd = p8_i2c_occ_send_cmd; -return occ_setup (occ,"p8_occ" ); +return occ_setup (occ); }static int p8_i2c_occ_remove (struct i2c_client *client)
drivers/hwmon/occ/p9_sbe.c +1 -1
@@ -73,7 +73,7 @@ static int p9_sbe_occ_probe(struct platform_device *pdev) occ->poll_cmd_data =0x20 ;/* P9 OCC poll data */ occ->send_cmd = p9_sbe_occ_send_cmd; - rc =occ_setup (occ,"p9_occ" ); + rc =occ_setup (occ);if (rc == -ESHUTDOWN ) rc = -ENODEV ;/* Host is shutdown, don't spew errors */
drivers/hwmon/occ/sysfs.c +114 -45
239 lines not on this page · raw message
drivers/hwmon/pmbus/pmbus_core.c +1 -1
@@ -419,7 +419,7 @@ int pmbus_update_byte_data(struct i2c_client *client, int page, u8 reg,if (tmp != rv) rv =_pmbus_write_byte_data (client, page, reg, tmp); -return rv; +return rv <0 ? rv :0 ; }EXPORT_SYMBOL_NS_GPL (pmbus_update_byte_data,PMBUS );
drivers/hwtracing/intel_th/core.c +0 -10
@@ -843,18 +843,8 @@ static int intel_th_output_open(struct inode *inode, struct file *file)return err; } -static int intel_th_output_release (struct inode *inode,struct file *file) -{ -struct intel_th_device *thdev = file->private_data; - -put_device (&thdev->dev); - -return 0 ; -} -static const struct file_operations intel_th_output_fops = { .open = intel_th_output_open, - .release = intel_th_output_release, .llseek = noop_llseek, };
drivers/hwtracing/intel_th/msu.c +2 -0
@@ -1479,8 +1479,10 @@ static int intel_th_msc_release(struct inode *inode, struct file *file) {struct msc_iter *iter = file->private_data;struct msc *msc = iter->msc; +struct intel_th_device *thdev = msc->thdev;msc_iter_remove (iter, msc); +put_device (&thdev->dev);return 0 ; }
drivers/i2c/busses/i2c-amd-mp2-plat.c +3 -1
@@ -326,8 +326,10 @@ static int i2c_amd_probe(struct platform_device *pdev)amd_mp2_pm_runtime_put (mp2_dev); -if (ret <0 ) +if (ret <0 ) {dev_err (&pdev->dev,"i2c add adapter failed = %d\n" , ret); +amd_mp2_unregister_cb (&i2c_dev->common); + }return ret; }
drivers/i2c/busses/i2c-imx.c +1 -0
@@ -865,6 +865,7 @@ static int i2c_imx_unreg_slave(struct i2c_client *client)i2c_imx_reset_regs (i2c_imx); +hrtimer_cancel (&i2c_imx->slave_timer); i2c_imx->slave =NULL ;/* Suspend */
drivers/i2c/busses/i2c-jz4780.c +4 -1
@@ -141,6 +141,7 @@ struct jz4780_i2c {void __iomem *iomem;int irq;struct clk *clk; +unsigned long clk_rate_khz;struct i2c_adapter adap;const struct ingenic_i2c_config *cdata;
@@ -246,7 +247,7 @@ static int jz4780_i2c_set_target(struct jz4780_i2c *i2c, unsigned char address)static int jz4780_i2c_set_speed (struct jz4780_i2c *i2c) { -int dev_clk_khz =clk_get_rate (i2c->clk) /1000 ; +int dev_clk_khz = i2c->clk_rate_khz;int cnt_high =0 ;/* HIGH period count of the SCL clock */ int cnt_low =0 ;/* LOW period count of the SCL clock */ int cnt_period =0 ;/* period count of the SCL clock */
@@ -800,6 +801,8 @@ static int jz4780_i2c_probe(struct platform_device *pdev)if (ret)return ret; + i2c->clk_rate_khz =clk_get_rate (i2c->clk) /1000 ; + ret =of_property_read_u32 (pdev->dev.of_node,"clock-frequency" , &clk_freq);if (ret) {
drivers/infiniband/core/mad.c +30 -0
@@ -1778,6 +1778,24 @@ void ib_mark_mad_done(struct ib_mad_send_wr_private *mad_send_wr) &mad_send_wr->mad_agent_priv->done_list); } +static bool is_kernel_rmpp_data_response (struct ib_mad_agent_private *agent, +struct ib_mad_recv_wc *mad_recv_wc) +{ +const struct ib_mad_hdr *mad_hdr = &mad_recv_wc->recv_buf.mad->mad_hdr; +struct ib_rmpp_mad *rmpp_mad; + +if (!ib_mad_kernel_rmpp_agent (&agent->agent) || + !ib_response_mad (mad_hdr) || + !ib_is_mad_class_rmpp (mad_hdr->mgmt_class)) +return false; + + rmpp_mad = (struct ib_rmpp_mad *)mad_recv_wc->recv_buf.mad; + +return (ib_get_rmpp_flags (&rmpp_mad->rmpp_hdr) & +IB_MGMT_RMPP_FLAG_ACTIVE ) && + rmpp_mad->rmpp_hdr.rmpp_type ==IB_MGMT_RMPP_TYPE_DATA ; +} +static void ib_mad_complete_recv (struct ib_mad_agent_private *mad_agent_priv,struct ib_mad_recv_wc *mad_recv_wc) {
@@ -1796,6 +1814,18 @@ static void ib_mad_complete_recv(struct ib_mad_agent_private *mad_agent_priv, }list_add (&mad_recv_wc->recv_buf.list, &mad_recv_wc->rmpp_list); +if (is_kernel_rmpp_data_response (mad_agent_priv, mad_recv_wc)) { +spin_lock_irqsave (&mad_agent_priv->lock, flags); + mad_send_wr =ib_find_send_mad (mad_agent_priv, mad_recv_wc); +spin_unlock_irqrestore (&mad_agent_priv->lock, flags); + +if (!mad_send_wr) { +ib_free_recv_mad (mad_recv_wc); +deref_mad_agent (mad_agent_priv); +return ; + } + } +if (ib_mad_kernel_rmpp_agent (&mad_agent_priv->agent)) { mad_recv_wc =ib_process_rmpp_recv_wc (mad_agent_priv, mad_recv_wc);
drivers/infiniband/hw/hns/hns_roce_hem.c +1 -1
@@ -902,7 +902,7 @@ static void hns_roce_cleanup_mhop_hem_table(struct hns_roce_dev *hr_dev, mhop.bt_chunk_size;for (i =0 ; i < table->num_hem; ++i) { - obj = i * buf_chunk_size / table->obj_size; + obj = (u64 )i * buf_chunk_size / table->obj_size;if (table->hem[i])hns_roce_table_mhop_put (hr_dev, table, obj,0 ); }
drivers/infiniband/hw/irdma/verbs.c +2 -2
@@ -2256,7 +2256,7 @@ static bool irdma_check_mem_contiguous(u64 *arr, u32 npages, u32 pg_size)u32 pg_idx;for (pg_idx =0 ; pg_idx < npages; pg_idx++) { -if ((*arr + (pg_size * pg_idx)) != arr[pg_idx]) +if ((*arr + ((u64 )pg_size * pg_idx)) != arr[pg_idx])return false; }
@@ -2289,7 +2289,7 @@ static bool irdma_check_mr_contiguous(struct irdma_pble_alloc *palloc,for (i =0 ; i < lvl2->leaf_cnt; i++, leaf++) { arr = leaf->addr; -if ((*start_addr + (i * pg_size *PBLE_PER_PAGE )) != *arr) +if ((*start_addr + ((u64 )i * pg_size *PBLE_PER_PAGE )) != *arr)return false; ret =irdma_check_mem_contiguous (arr, leaf->cnt, pg_size);if (!ret)
drivers/infiniband/sw/rxe/rxe_mmap.c +16 -3
@@ -94,18 +94,31 @@ int rxe_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) goto done; found_it: +/* +* Increment refcount and check whether it is being freed atm while +* holding lock to prevent UAF +*/ +if (!kref_get_unless_zero (&ip->ref)) { +spin_unlock_bh (&rxe->pending_lock); + ret = -ENXIO ; + goto done; + } +list_del_init (&ip->pending_mmaps);spin_unlock_bh (&rxe->pending_lock); + vma->vm_ops = &rxe_vm_ops; + vma->vm_private_data = ip; + ret =remap_vmalloc_range (vma, ip->obj,0 );if (ret) { + vma->vm_private_data =NULL ; + vma->vm_ops =NULL ; +kref_put (&ip->ref, rxe_mmap_release);pr_err ("err %d from remap_vmalloc_range\n" , ret); goto done; } - vma->vm_ops = &rxe_vm_ops; - vma->vm_private_data = ip; -rxe_vma_open (vma); done:return ret; }
drivers/infiniband/sw/siw/siw_verbs.c +29 -33
141 lines not on this page · raw message
drivers/input/evdev.c +16 -11
@@ -21,6 +21,7 @@#include <linux/init.h> #include <linux/input/mt.h> #include <linux/major.h> +#include <linux/nospec.h> #include <linux/device.h> #include <linux/cdev.h> #include "input-compat.h"
@@ -67,8 +68,10 @@ static size_t evdev_get_mask_cnt(unsigned int type) [EV_SND] = SND_CNT, [EV_FF] = FF_CNT, }; +unsigned long mask =array_index_mask_nospec (type,EV_CNT ); -return (type <EV_CNT ) ? counts[type] :0 ; +/* Returns 0 for out-of-bounds types, including speculatively */ +return counts[type & mask] & mask; }/* requires the buffer lock to be held */
@@ -146,11 +149,11 @@ static void __evdev_queue_syn_dropped(struct evdev_client *client)struct timespec64 ts =ktime_to_timespec64 (ev_time[client->clk_type]);struct input_event ev; +memset (&ev,0 ,sizeof (ev)); ev.input_event_sec = ts.tv_sec; ev.input_event_usec = ts.tv_nsec /NSEC_PER_USEC ; ev.type =EV_SYN ; ev.code =SYN_DROPPED ; - ev.value =0 ; client->buffer[client->head++] = ev; client->head &= client->bufsize -1 ;
@@ -218,20 +221,20 @@ static void __pass_event(struct evdev_client *client, client->head &= client->bufsize -1 ;if (unlikely (client->head == client->tail)) { +struct input_event ev; + +memset (&ev,0 ,sizeof (ev)); + ev.input_event_sec = event->input_event_sec; + ev.input_event_usec = event->input_event_usec; + ev.type =EV_SYN ; + ev.code =SYN_DROPPED ; +/* * This effectively "drops" all unconsumed events, leaving * EV_SYN/SYN_DROPPED plus the newest event in the queue. */ client->tail = (client->head -2 ) & (client->bufsize -1 ); - - client->buffer[client->tail] = (struct input_event ) { - .input_event_sec = event->input_event_sec, - .input_event_usec = event->input_event_usec, - .type =EV_SYN , - .code =SYN_DROPPED , - .value =0 , - }; - + client->buffer[client->tail] = ev; client->packet_head = client->tail; }
@@ -253,6 +256,8 @@ static void evdev_pass_values(struct evdev_client *client,if (client->revoked)return ; +memset (&event,0 ,sizeof (event)); + ts =ktime_to_timespec64 (ev_time[client->clk_type]); event.input_event_sec = ts.tv_sec; event.input_event_usec = ts.tv_nsec /NSEC_PER_USEC ;
drivers/input/misc/ims-pcu.c +26 -6
@@ -448,6 +448,14 @@ static void ims_pcu_handle_response(struct ims_pcu *pcu) } } +static void ims_pcu_reset_packet (struct ims_pcu *pcu) +{ + pcu->have_stx = false; + pcu->have_dle = false; + pcu->read_pos =0 ; + pcu->check_sum =0 ; +} +static void ims_pcu_process_data (struct ims_pcu *pcu,struct urb *urb) {int i;
@@ -460,6 +468,14 @@ static void ims_pcu_process_data(struct ims_pcu *pcu, struct urb *urb)continue ;if (pcu->have_dle) { +if (pcu->read_pos >=IMS_PCU_BUF_SIZE ) { +dev_warn (pcu->dev, +"Packet too long (%d bytes), discarding\n" , + pcu->read_pos); +ims_pcu_reset_packet (pcu); +continue ; + } + pcu->have_dle = false; pcu->read_buf[pcu->read_pos++] = data; pcu->check_sum += data;
@@ -472,10 +488,8 @@ static void ims_pcu_process_data(struct ims_pcu *pcu, struct urb *urb)dev_warn (pcu->dev,"Unexpected STX at byte %d, discarding old data\n" , pcu->read_pos); +ims_pcu_reset_packet (pcu); pcu->have_stx = true; - pcu->have_dle = false; - pcu->read_pos =0 ; - pcu->check_sum =0 ;break ;case IMS_PCU_PROTOCOL_DLE :
@@ -495,12 +509,18 @@ static void ims_pcu_process_data(struct ims_pcu *pcu, struct urb *urb)ims_pcu_handle_response (pcu); } - pcu->have_stx = false; - pcu->have_dle = false; - pcu->read_pos =0 ; +ims_pcu_reset_packet (pcu);break ;default : +if (pcu->read_pos >=IMS_PCU_BUF_SIZE ) { +dev_warn (pcu->dev, +"Packet too long (%d bytes), discarding\n" , + pcu->read_pos); +ims_pcu_reset_packet (pcu); +continue ; + } + pcu->read_buf[pcu->read_pos++] = data; pcu->check_sum += data;break ;
drivers/iommu/amd/init.c +6 -0
@@ -3327,6 +3327,12 @@ static int __init parse_ivrs_acpihid(char *str)return 1 ; found: +if (early_acpihid_map_size ==EARLY_MAP_SIZE ) { +pr_err ("Early ACPI HID map overflow - ignoring ivrs_acpihid%s\n" , + str); +return 1 ; + } + p = acpiid; hid =strsep (&p,":" ); uid = p;
drivers/iommu/intel/perf.c +1 -1
@@ -63,7 +63,7 @@ void dmar_latency_disable(struct intel_iommu *iommu, enum latency_type type)return ;spin_lock_irqsave (&latency_lock, flags); -memset (&lstat[type],0 ,sizeof (*lstat) *DMAR_LATENCY_NUM ); +memset (&lstat[type],0 ,sizeof (*lstat));spin_unlock_irqrestore (&latency_lock, flags); }
drivers/iommu/intel/svm.c +1 -1
@@ -175,7 +175,7 @@ static inline bool intel_svm_capable(struct intel_iommu *iommu)void intel_svm_check (struct intel_iommu *iommu) { -if (!pasid_supported (iommu)) +if (!pasid_supported (iommu) || !ecap_smpwc (iommu->ecap))return ; if (cpu_feature_enabled(X86_FEATURE_GBPAGES) &&
drivers/media/cec/platform/seco/seco-cec.c +5 -1
@@ -662,7 +662,7 @@ static int secocec_probe(struct platform_device *pdev) ret =secocec_ir_probe (secocec);if (ret) - goto err_notifier; + goto err_unregister_adapter;platform_set_drvdata (pdev, secocec);
@@ -670,6 +670,10 @@ static int secocec_probe(struct platform_device *pdev)return ret; +err_unregister_adapter: +cec_notifier_cec_adap_unregister (secocec->notifier, secocec->cec_adap); +cec_unregister_adapter (secocec->cec_adap); + goto err; err_notifier:cec_notifier_cec_adap_unregister (secocec->notifier, secocec->cec_adap); err_delete_adapter:
drivers/media/common/videobuf2/videobuf2-core.c +6 -6
@@ -2719,8 +2719,8 @@ static int __vb2_cleanup_fileio(struct vb2_queue *q)* @nonblock: mode selector (1 means blocking calls, 0 means nonblocking) * @read: access mode selector (1 means read, 0 means write) */ -static size_t __vb2_perform_fileio (struct vb2_queue *q,char __user *data,size_t count, -loff_t *ppos,int nonblock,int read) +static ssize_t __vb2_perform_fileio (struct vb2_queue *q,char __user *data,size_t count, +loff_t *ppos,int nonblock,int read) {struct vb2_fileio_data *fileio;struct vb2_fileio_buf *buf;
@@ -2880,15 +2880,15 @@ static size_t __vb2_perform_fileio(struct vb2_queue *q, char __user *data, size_return ret; } -size_t vb2_read (struct vb2_queue *q,char __user *data,size_t count, -loff_t *ppos,int nonblocking) +ssize_t vb2_read (struct vb2_queue *q,char __user *data,size_t count, +loff_t *ppos,int nonblocking) {return __vb2_perform_fileio (q, data, count, ppos, nonblocking,1 ); }EXPORT_SYMBOL_GPL (vb2_read); -size_t vb2_write (struct vb2_queue *q,const char __user *data,size_t count, -loff_t *ppos,int nonblocking) +ssize_t vb2_write (struct vb2_queue *q,const char __user *data,size_t count, +loff_t *ppos,int nonblocking) {return __vb2_perform_fileio (q, (char __user *) data, count, ppos, nonblocking,0 );
drivers/media/dvb-frontends/rtl2832.c +2 -2
@@ -1116,10 +1116,10 @@ static int rtl2832_remove(struct i2c_client *client)dev_dbg (&client->dev,"\n" ); -cancel_delayed_work_sync (&dev->i2c_gate_work); -i2c_mux_del_adapters (dev->muxc); +cancel_delayed_work_sync (&dev->i2c_gate_work); +regmap_exit (dev->regmap);kfree (dev);
drivers/media/dvb-frontends/rtl2832_sdr.c +14 -5
@@ -396,7 +396,8 @@ static int rtl2832_sdr_alloc_urbs(struct rtl2832_sdr_dev *dev) }/* Must be called with vb_queue_lock hold */ -static void rtl2832_sdr_cleanup_queued_bufs (struct rtl2832_sdr_dev *dev) +static void rtl2832_sdr_cleanup_queued_bufs (struct rtl2832_sdr_dev *dev, +enum vb2_buffer_state state) {struct platform_device *pdev = dev->pdev;unsigned long flags;
@@ -410,7 +411,7 @@ static void rtl2832_sdr_cleanup_queued_bufs(struct rtl2832_sdr_dev *dev) buf =list_entry (dev->queued_bufs.next, struct rtl2832_sdr_frame_buf, list);list_del (&buf->list); -vb2_buffer_done (&buf->vb.vb2_buf,VB2_BUF_STATE_ERROR ); +vb2_buffer_done (&buf->vb.vb2_buf, state); }spin_unlock_irqrestore (&dev->queued_bufs_lock, flags); }
@@ -851,11 +852,15 @@ static int rtl2832_sdr_start_streaming(struct vb2_queue *vq, unsigned int count)dev_dbg (&pdev->dev,"\n" ); -if (!dev->udev) +if (!dev->udev) { +rtl2832_sdr_cleanup_queued_bufs (dev,VB2_BUF_STATE_QUEUED );return -ENODEV ; + } -if (mutex_lock_interruptible (&dev->v4l2_lock)) +if (mutex_lock_interruptible (&dev->v4l2_lock)) { +rtl2832_sdr_cleanup_queued_bufs (dev,VB2_BUF_STATE_QUEUED );return -ERESTARTSYS ; + }if (d->props->power_ctrl) d->props->power_ctrl (d,1 );
@@ -896,7 +901,11 @@ static int rtl2832_sdr_start_streaming(struct vb2_queue *vq, unsigned int count)if (ret) goto err; +mutex_unlock (&dev->v4l2_lock); +return 0 ; + err: +rtl2832_sdr_cleanup_queued_bufs (dev,VB2_BUF_STATE_QUEUED );mutex_unlock (&dev->v4l2_lock);return ret;
@@ -916,7 +925,7 @@ static void rtl2832_sdr_stop_streaming(struct vb2_queue *vq)rtl2832_sdr_kill_urbs (dev);rtl2832_sdr_free_urbs (dev);rtl2832_sdr_free_stream_bufs (dev); -rtl2832_sdr_cleanup_queued_bufs (dev); +rtl2832_sdr_cleanup_queued_bufs (dev,VB2_BUF_STATE_ERROR );rtl2832_sdr_unset_adc (dev);/* sleep tuner */
drivers/media/pci/cx23885/cx23885-core.c +12 -2
@@ -990,8 +990,12 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) }/* PCIe stuff */ - dev->lmmio =ioremap (pci_resource_start (dev->pci,0 ), -pci_resource_len (dev->pci,0 )); + dev->lmmio =pci_ioremap_bar (dev->pci,0 ); +if (!dev->lmmio) { +dev_err (&dev->pci->dev,"CORE %s: can't ioremap MMIO memory\n" , + dev->name); + goto err_release_region; + } dev->bmmio = (u8 __iomem *)dev->lmmio;
@@ -1096,6 +1100,12 @@ static int cx23885_dev_setup(struct cx23885_dev *dev) }return 0 ; + +err_release_region: +release_mem_region (pci_resource_start (dev->pci,0 ), +pci_resource_len (dev->pci,0 )); + cx23885_devcount--; +return -ENODEV ; }static void cx23885_dev_unregister (struct cx23885_dev *dev)
drivers/media/pci/dm1105/dm1105.c +1 -0
@@ -1193,6 +1193,7 @@ static void dm1105_remove(struct pci_dev *pdev)dm1105_hw_exit (dev);free_irq (pdev->irq, dev); +destroy_workqueue (dev->wq);pci_iounmap (pdev, dev->io_mem);pci_release_regions (pdev);pci_disable_device (pdev);
drivers/media/pci/saa7134/saa7134-video.c +20 -5
@@ -2126,8 +2126,10 @@ int saa7134_video_init1(struct saa7134_dev *dev) q->dev = &dev->pci->dev; ret =vb2_queue_init (q);if (ret) -return ret; -saa7134_pgtable_alloc (dev->pci, &dev->video_q.pt); + goto err_free_ctrl; + ret =saa7134_pgtable_alloc (dev->pci, &dev->video_q.pt); +if (ret) + goto err_free_ctrl; q = &dev->vbi_vbq; q->type =V4L2_BUF_TYPE_VBI_CAPTURE ;
@@ -2144,11 +2146,24 @@ int saa7134_video_init1(struct saa7134_dev *dev) q->lock = &dev->lock; q->dev = &dev->pci->dev; ret =vb2_queue_init (q); -if (ret) -return ret; -saa7134_pgtable_alloc (dev->pci, &dev->vbi_q.pt); +if (ret) { +saa7134_pgtable_free (dev->pci, &dev->video_q.pt); + goto err_free_ctrl; + } + + ret =saa7134_pgtable_alloc (dev->pci, &dev->vbi_q.pt); +if (ret) { +saa7134_pgtable_free (dev->pci, &dev->video_q.pt); + goto err_free_ctrl; + }return 0 ; + +err_free_ctrl: +v4l2_ctrl_handler_free (&dev->ctrl_handler); +if (card_has_radio (dev)) +v4l2_ctrl_handler_free (&dev->radio_ctrl_handler); +return ret; }void saa7134_video_fini (struct saa7134_dev *dev)
drivers/media/platform/sunxi/sun4i-csi/sun4i_dma.c +4 -2
@@ -234,8 +234,10 @@ static int sun4i_csi_start_streaming(struct vb2_queue *vq, unsigned int count)int ret; csi_fmt =sun4i_csi_find_format (&csi->fmt.pixelformat,NULL ); -if (!csi_fmt) -return -EINVAL ; +if (!csi_fmt) { + ret = -EINVAL ; + goto err_clear_dma_queue; + }dev_dbg (csi->dev,"Starting capture\n" );
drivers/media/radio/radio-si476x.c +1 -0
@@ -1504,6 +1504,7 @@ static int si476x_radio_probe(struct platform_device *pdev)return 0 ; exit:v4l2_ctrl_handler_free (radio->videodev.ctrl_handler); +v4l2_device_unregister (&radio->v4l2dev);return rval; }
drivers/media/test-drivers/vidtv/vidtv_bridge.c +3 -1
@@ -596,8 +596,10 @@ static int __init vidtv_bridge_init(void)int ret; ret =platform_device_register (&vidtv_bridge_dev); -if (ret) +if (ret) { +platform_device_put (&vidtv_bridge_dev);return ret;
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vimc/vimc-core.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-ctrls.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-vid-cap.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-vid-out.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/media/usb/cx231xx/cx231xx-cards.c +11 -5
Lines of this file are not shown. View the raw message.
drivers/media/usb/uvc/uvc_video.c +54 -24
78 lines not on this page · raw message
drivers/media/v4l2-core/v4l2-ctrls-request.c +9 -5
Lines of this file are not shown. View the raw message.
drivers/net/can/softing/softing_fw.c +32 -14
46 lines not on this page · raw message
drivers/net/can/usb/ems_usb.c +43 -0
43 lines not on this page · raw message
drivers/net/can/usb/etas_es58x/es58x_core.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c +11 -2
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/peak_usb/pcan_usb_core.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/peak_usb/pcan_usb_fd.c +39 -1
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/peak_usb/pcan_usb_pro.c +16 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-mdio.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/aquantia/atlantic/aq_ring.c +18 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.c +11 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +13 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_main.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_rx_dqo.c +33 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hip04_eth.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/huawei/hinic/hinic_dev.h +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/huawei/hinic/hinic_ethtool.c +0 -21
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000/e1000_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_ptp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igbvf/netdev.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/prestera/prestera_pci.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +7 -9
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c +15 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/esw/acl/helper.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/nvidia/forcedeth.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/qlogic/qede/qede_main.c +22 -22
44 lines not on this page · raw message
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +8 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c +156 -0
156 lines not on this page · raw message
drivers/net/wireless/ath/ath11k/dp_rx.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/hif_usb.c +1 -6
Lines of this file are not shown. View the raw message.
drivers/net/wireless/atmel/at76c50x-usb.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/ipw2x00/ipw2100.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intersil/p54/txrx.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/firmware.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/tdls.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/mwifiex/uap_event.c +22 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7615/mac.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/microchip/wilc1000/hif.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/phy/xilinx/phy-zynqmp.c +81 -46
127 lines not on this page · raw message
drivers/pinctrl/renesas/pinctrl-rzg2l.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/staging/media/meson/vdec/vdec.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/staging/media/sunxi/cedrus/cedrus.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/staging/media/sunxi/cedrus/cedrus_h264.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_ieee80211.c +11 -1
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_mlme_ext.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_wlan_util.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/usb/gadget/function/f_printer.c +18 -5
Lines of this file are not shown. View the raw message.
drivers/usb/serial/keyspan_pda.c +35 -9
44 lines not on this page · raw message
fs/crypto/keyring.c +91 -121
212 lines not on this page · raw message
include/linux/netfilter/nf_conntrack_sip.h +1 -1
Lines of this file are not shown. View the raw message.
kernel/futex/core.c +65 -30
95 lines not on this page · raw message
net/bluetooth/l2cap_core.c +27 -14
41 lines not on this page · raw message
net/bridge/netfilter/nf_conntrack_bridge.c +1 -0
Lines of this file are not shown. View the raw message.
net/can/bcm.c +424 -132
556 lines not on this page · raw message
net/can/isotp.c +222 -71
293 lines not on this page · raw message
net/ipv4/fib_semantics.c +60 -41
101 lines not on this page · raw message
net/ipv4/raw.c +33 -60
93 lines not on this page · raw message
net/ipv6/raw.c +38 -70
108 lines not on this page · raw message
net/netfilter/ipvs/ip_vs_conn.c +15 -29
44 lines not on this page · raw message
net/netfilter/ipvs/ip_vs_ctl.c +64 -13
77 lines not on this page · raw message
net/openvswitch/datapath.c +40 -14
54 lines not on this page · raw message
tools/testing/selftests/clone3/clone3_set_tid.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ftrace/test.d/dynevent/add_remove_eprobe.tc +12 -11
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ftrace/test.d/dynevent/add_remove_kprobe.tc +7 -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.