Linux 6.6.151
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.6.151 kernel.
All users of the 6.6 kernel series must upgrade.
The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.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/powerpc/boot/simpleboot.c | 2 arch/powerpc/boot/treeboot-akebono.c | 2 arch/powerpc/boot/treeboot-currituck.c | 2 arch/powerpc/platforms/ps3/mm.c | 1 arch/s390/kvm/pci.c | 28 arch/um/drivers/vector_kern.c | 3 arch/x86/kvm/svm/avic.c | 8 drivers/accel/qaic/qaic_control.c | 2 drivers/ata/ahci.h | 17 drivers/ata/ahci_brcm.c | 3 drivers/ata/ahci_ceva.c | 24 drivers/ata/libahci.c | 1 drivers/ata/libahci_platform.c | 38 drivers/ata/libata-eh.c | 8 drivers/ata/sata_mv.c | 2 drivers/block/ublk_drv.c | 9 drivers/bluetooth/btintel.c | 3 drivers/bluetooth/btmtk.c | 50 drivers/cpufreq/ia64-acpi-cpufreq.c | 4 drivers/cpufreq/powernow-k8.c | 1 drivers/dma/idxd/cdev.c | 4 drivers/dma/sun6i-dma.c | 11 drivers/firmware/stratix10-svc.c | 10 drivers/gpio/gpio-pca953x.c | 15 drivers/gpio/gpio-pch.c | 28 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 15 drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c | 30 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 10 drivers/gpu/drm/amd/amdkfd/kfd_events.c | 23 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 2 drivers/gpu/drm/armada/armada_fbdev.c | 12 drivers/gpu/drm/display/drm_dp_helper.c | 12 drivers/gpu/drm/drm_fb_helper.c | 41 drivers/gpu/drm/drm_fbdev_dma.c | 12 drivers/gpu/drm/drm_fbdev_generic.c | 12 drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 9 drivers/gpu/drm/gma500/fbdev.c | 13 drivers/gpu/drm/i915/display/intel_display_core.h | 3 drivers/gpu/drm/i915/display/intel_display_device.c | 3 drivers/gpu/drm/i915/display/intel_display_types.h | 40 drivers/gpu/drm/i915/display/intel_fbc.c | 9 drivers/gpu/drm/i915/display/intel_fbdev.c | 9 drivers/gpu/drm/i915/display/intel_hdcp.c | 266 +-- drivers/gpu/drm/i915/display/intel_vrr.c | 10 drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c | 7 drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 6 drivers/gpu/drm/msm/msm_fbdev.c | 9 drivers/gpu/drm/omapdrm/omap_fbdev.c | 9 drivers/gpu/drm/radeon/radeon_fbdev.c | 13 drivers/gpu/drm/renesas/Kconfig | 1 drivers/gpu/drm/renesas/Makefile | 1 drivers/gpu/drm/renesas/rcar-du/Kconfig | 8 drivers/gpu/drm/renesas/rcar-du/Makefile | 2 drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi.c | 816 ---------- drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi_regs.h | 151 - drivers/gpu/drm/renesas/rz-du/Kconfig | 8 drivers/gpu/drm/renesas/rz-du/Makefile | 3 drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c | 816 ++++++++++ drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi_regs.h | 151 + drivers/gpu/drm/tegra/fbdev.c | 18 drivers/gpu/drm/vc4/vc4_irq.c | 2 drivers/gpu/drm/vc4/vc4_validate.c | 29 drivers/gpu/drm/vmwgfx/ttm_object.c | 7 drivers/gpu/drm/vmwgfx/vmwgfx_blit.c | 39 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 20 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 13 drivers/hid/hid-logitech-dj.c | 28 drivers/hwmon/adt7470.c | 129 + drivers/hwmon/lm90.c | 4 drivers/hwmon/nct6775-core.c | 20 drivers/hwmon/npcm750-pwm-fan.c | 11 drivers/hwmon/nzxt-smart2.c | 2 drivers/hwmon/pmbus/pmbus_core.c | 7 drivers/i2c/busses/i2c-amd-mp2-plat.c | 4 drivers/i2c/busses/i2c-imx.c | 9 drivers/i2c/busses/i2c-jz4780.c | 5 drivers/iommu/iommu-sva.c | 6 drivers/media/i2c/imx219.c | 668 ++++---- drivers/media/v4l2-core/v4l2-async.c | 8 drivers/media/v4l2-core/v4l2-fwnode.c | 6 drivers/net/can/c_can/c_can_main.c | 8 drivers/net/can/ctucanfd/ctucanfd_base.c | 14 drivers/net/can/ctucanfd/ctucanfd_pci.c | 3 drivers/net/can/dev/skb.c | 2 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/gs_usb.c | 4 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/dsa/mt7530.c | 58 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/intel/e1000/e1000_main.c | 2 drivers/net/ethernet/intel/ice/ice_ethtool.c | 10 drivers/net/ethernet/intel/ice/ice_main.c | 10 drivers/net/ethernet/intel/igbvf/netdev.c | 2 drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 2 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/phy/phylink.c | 29 drivers/net/vrf.c | 2 drivers/net/vxlan/vxlan_core.c | 15 drivers/net/wireless/ath/ath6kl/txrx.c | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 16 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 6 drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 4 drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 46 drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 6 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 14 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h | 1 drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 3 drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h | 2 drivers/net/wireless/marvell/mwifiex/11n_rxreorder.c | 2 drivers/phy/xilinx/phy-zynqmp.c | 130 - drivers/pinctrl/Kconfig | 2 drivers/pinctrl/devicetree.c | 4 drivers/pinctrl/pinctrl-amd.c | 3 drivers/pinctrl/qcom/pinctrl-sc8280xp.c | 21 drivers/power/supply/bq25890_charger.c | 2 drivers/s390/block/dasd_eckd.c | 11 drivers/s390/block/dasd_ioctl.c | 2 drivers/s390/crypto/zcrypt_api.c | 2 drivers/s390/crypto/zcrypt_ccamisc.c | 6 drivers/s390/net/qeth_core_main.c | 3 drivers/s390/scsi/zfcp_aux.c | 1 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 10 drivers/scsi/libiscsi.c | 2 drivers/scsi/libiscsi_tcp.c | 8 drivers/scsi/libsas/sas_init.c | 37 drivers/scsi/scsi_debug.c | 8 drivers/soc/qcom/ice.c | 17 drivers/spi/spi-cadence.c | 129 + drivers/spi/spi-qcom-qspi.c | 3 drivers/target/target_core_iblock.c | 6 drivers/target/target_core_transport.c | 12 drivers/thunderbolt/xdomain.c | 40 drivers/ufs/core/ufshcd.c | 6 drivers/usb/gadget/function/f_tcm.c | 192 ++ drivers/usb/gadget/function/tcm.h | 13 drivers/usb/musb/omap2430.c | 25 drivers/usb/typec/ucsi/ucsi.c | 115 - drivers/usb/typec/ucsi/ucsi.h | 1 fs/binfmt_misc.c | 4 fs/btrfs/zoned.c | 6 fs/ceph/acl.c | 6 fs/ceph/addr.c | 279 +-- fs/ceph/caps.c | 710 +++++--- fs/ceph/crypto.c | 39 fs/ceph/debugfs.c | 6 fs/ceph/dir.c | 225 +- fs/ceph/export.c | 39 fs/ceph/file.c | 245 +-- fs/ceph/inode.c | 485 +++-- fs/ceph/ioctl.c | 13 fs/ceph/locks.c | 57 fs/ceph/mds_client.c | 554 +++--- fs/ceph/mdsmap.c | 24 fs/ceph/metric.c | 5 fs/ceph/quota.c | 29 fs/ceph/snap.c | 174 +- fs/ceph/super.c | 70 fs/ceph/super.h | 6 fs/ceph/xattr.c | 96 - fs/erofs/Kconfig | 14 fs/erofs/decompressor_lzma.c | 3 fs/smb/client/cifssmb.c | 12 fs/smb/server/vfs_cache.c | 6 include/drm/drm_fb_helper.h | 12 include/linux/can/core.h | 1 include/linux/can/skb.h | 2 include/linux/ceph/ceph_debug.h | 38 include/linux/dma/qcom_bam_dma.h | 21 include/linux/libata.h | 2 include/linux/mmc/sdio_ids.h | 2 include/linux/netfilter/nf_conntrack_sip.h | 2 include/linux/sched.h | 1 include/linux/sysctl.h | 2 include/linux/thunderbolt.h | 3 include/media/v4l2-async.h | 8 include/net/ip_vs.h | 45 include/net/neighbour.h | 8 include/net/netfilter/nf_conntrack_expect.h | 5 include/net/netfilter/nf_tables.h | 2 include/scsi/libsas.h | 1 init/init_task.c | 1 ipc/ipc_sysctl.c | 2 ipc/mq_sysctl.c | 2 kernel/audit.c | 11 kernel/auditfilter.c | 6 kernel/trace/trace_events.c | 4 kernel/trace/trace_events_filter.c | 3 kernel/trace/trace_mmiotrace.c | 1 kernel/trace/trace_probe.c | 6 kernel/ucount.c | 2 lib/assoc_array.c | 3 lib/rhashtable.c | 1 mm/huge_memory.c | 16 mm/hugetlb.c | 12 mm/mm_init.c | 15 mm/page_reporting.c | 6 mm/percpu-km.c | 2 net/ax25/sysctl_net_ax25.c | 2 net/bluetooth/hci_conn.c | 14 net/bluetooth/hci_sync.c | 6 net/bluetooth/hidp/core.c | 30 net/bluetooth/iso.c | 3 net/bluetooth/l2cap_core.c | 5 net/bluetooth/mgmt.c | 84 - net/bridge/br_mrp.c | 2 net/bridge/br_multicast.c | 1 net/bridge/br_netfilter_hooks.c | 8 net/can/af_can.c | 14 net/can/bcm.c | 2 net/can/isotp.c | 333 ++-- net/can/j1939/bus.c | 2 net/can/j1939/j1939-priv.h | 3 net/can/j1939/main.c | 8 net/can/j1939/socket.c | 1 net/can/j1939/transport.c | 6 net/can/raw.c | 7 net/core/lwt_bpf.c | 4 net/core/sysctl_net_core.c | 2 net/ieee802154/6lowpan/reassembly.c | 2 net/ipv4/devinet.c | 2 net/ipv4/ip_fragment.c | 2 net/ipv4/route.c | 4 net/ipv4/sysctl_net_ipv4.c | 2 net/ipv4/xfrm4_policy.c | 2 net/ipv6/addrconf.c | 2 net/ipv6/fib6_rules.c | 1 net/ipv6/ip6_fib.c | 17 net/ipv6/ip6_output.c | 2 net/ipv6/ndisc.c | 2 net/ipv6/netfilter/nf_conntrack_reasm.c | 2 net/ipv6/reassembly.c | 2 net/ipv6/sysctl_net_ipv6.c | 6 net/ipv6/xfrm6_policy.c | 2 net/mac80211/s1g.c | 4 net/mpls/af_mpls.c | 5 net/mptcp/ctrl.c | 2 net/mptcp/pm.c | 9 net/mptcp/pm_netlink.c | 29 net/mptcp/pm_userspace.c | 87 - net/mptcp/protocol.h | 6 net/netfilter/ipset/ip_set_hash_gen.h | 2 net/netfilter/ipvs/ip_vs_app.c | 4 net/netfilter/ipvs/ip_vs_conn.c | 3 net/netfilter/ipvs/ip_vs_core.c | 180 +- net/netfilter/ipvs/ip_vs_proto_sctp.c | 19 net/netfilter/ipvs/ip_vs_proto_tcp.c | 48 net/netfilter/ipvs/ip_vs_proto_udp.c | 54 net/netfilter/ipvs/ip_vs_xmit.c | 42 net/netfilter/nf_conntrack_broadcast.c | 1 net/netfilter/nf_conntrack_core.c | 7 net/netfilter/nf_conntrack_expect.c | 1 net/netfilter/nf_conntrack_h323_main.c | 12 net/netfilter/nf_conntrack_helper.c | 5 net/netfilter/nf_conntrack_netlink.c | 18 net/netfilter/nf_conntrack_sip.c | 4 net/netfilter/nf_conntrack_standalone.c | 2 net/netfilter/nf_log.c | 2 net/netfilter/nf_nat_sip.c | 2 net/netfilter/nf_tables_api.c | 10 net/netfilter/nft_payload.c | 12 net/netfilter/nft_set_pipapo.c | 11 net/netfilter/xt_hashlimit.c | 16 net/openvswitch/actions.c | 12 net/openvswitch/meter.c | 33 net/rds/ib.c | 4 net/rds/ib_cm.c | 4 net/rds/tcp.c | 14 net/rxrpc/ar-internal.h | 1 net/rxrpc/call_accept.c | 1 net/rxrpc/peer_object.c | 12 net/sctp/associola.c | 3 net/sctp/protocol.c | 21 net/sctp/sm_make_chunk.c | 17 net/sctp/sysctl.c | 11 net/smc/smc_core.c | 2 net/smc/smc_sysctl.c | 2 net/tipc/socket.c | 2 net/unix/sysctl_net_unix.c | 2 net/xfrm/xfrm_sysctl.c | 2 security/keys/keyring.c | 14 sound/core/pcm_native.c | 7 sound/core/ump.c | 1 sound/pci/hda/patch_hdmi.c | 48 sound/pci/lx6464es/lx6464es.c | 5 sound/pci/lx6464es/lx_core.c | 5 sound/soc/codecs/max98090.c | 5 sound/soc/codecs/max98095.c | 5 sound/soc/codecs/tas2562.c | 30 sound/usb/6fire/chip.c | 4 sound/usb/endpoint.c | 14 sound/usb/midi.c | 2 sound/usb/midi2.c | 4 tools/testing/selftests/clone3/clone3_set_tid.c | 2 tools/testing/selftests/mm/mlock-random-test.c | 2 307 files changed, 5935 insertions(+), 4096 deletions(-)
Aaron Ma (1):
ice: wait for reset completion in ice_resume()
Abdun Nihaal (2):
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()
Alexander Kaplan (1):
drm/dp: Read the PCON max FRL bandwidth only for HDMI DFPs
Andrei Kuchynski (2):
usb: typec: ucsi: Fix race condition and ordering in port unregistration
usb: typec: ucsi: Correct teardown ordering in ucsi_init() error path
Asim Viladi Oglu Manizada (1):
sctp: prevent peer transport count overflow
Aswin Karuvally (1):
s390/qeth: Check CAP_NET_ADMIN for private ioctls
Avi Weiss (4):
can: ctucanfd: use self-test mode for PRESUME_ACK
can: ctucanfd: unmap BAR0 using base address
can: ctucanfd: handle bus error interrupts
can: ctucanfd: mark error-active controller status valid
Baul Lee (3):
ALSA: ump: fix double free of out_cvts on rawmidi error
ALSA: usb-audio: fix use-after-free in ump_to_endpoint()
ALSA: usb-audio: fix OOB write in snd_usbmidi_akai_output()
Benjamin Block (1):
scsi: zfcp: Fix memory leak during adapter release by destroying gid_pn_req
Benjamin Boortz (2):
pinctrl: microchip-sgpio: add missing select REGMAP_MMIO
pinctrl: bm1880: add missing select GENERIC_PINCONF
Benjamin Tissoires (1):
HID: logitech-dj: fix wrong detection of bad DJ_SHORT output report
Biju Das (1):
drm: renesas: rzg2l_mipi_dsi: Increase reset deassertion delay
Candice Li (1):
drm/amdgpu: restore UMD profile pstate after runtime resume
Cen Zhang (1):
usb: gadget: f_tcm: synchronize delayed set_alt with teardown
Cen Zhang (Microsoft) (1):
rhashtable: clear stale iter->p on table restart
Charles Vosburgh (1):
sctp: validate Adaptation Indication parameter length
Chenguang Zhao (3):
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 (2):
selftests/mm: fix potential wild pointer access of getline due to missing init selftests/clone3: fix wild pointer access of getline due to missing init
Christian Brauner (1):
binfmt_misc: reject a flag character as the field delimiter
Christian Marangi (1):
net: phylink: put link_gpio if phylink_create fails
Damien Le Moal (2):
ahci: Introduce ahci_ignore_port() helper
ata: libahci_platform: Do not set mask_port_map when not needed
Daniel Golle (1):
net: dsa: mt7530: error out on failed reads in MT7531 PHY polling
Daniel Hodges (1):
wifi: ath6kl: fix use-after-free in aggr_reset_state()
David Corvaglia (1):
net: bridge: mrp: fix Option TLV length in MRP_Test frames
David Francis (1):
drm/amdkfd: Handle invalid event type in CRIU event restore
David Howells (1):
rxrpc: Fix irq-disabled in local_bh_enable()
David Lee (1):
netfilter: ipset: do not update comments from kernel-side hash adds
Dawei Feng (3):
smb: client: fix buffer leaks in SMB1 read and write
e1000: fix memory leak in e1000_probe()
ice: fix memory leak in ice_lbtest_prepare_rings()
Denis V. Lunev (1):
qede: sync udp_tunnel ports outside qede_lock in the recovery path
Diogo Ivo (1):
usb: typec: ucsi: Only enable supported notifications
Eddie Phillips (1):
gve: fix Rx queue stall on alloc failure
Eric Dumazet (5):
net: do not send ICMP/NDISC Redirects when peer allocation fails
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()
Fan Wu (1):
wifi: brcmfmac: drain bus_reset work on device removal
Farhan Ali (3):
KVM: s390: pci: Reject adapter interrupt forwarding if already enabled
KVM: s390: pci: Fix NULL dereference on AIBV allocation failure
KVM: s390: pci: Validate AIBV and AISB before pinning guest pages
Frank Scheiner (1):
Revert "ia64: Make acpi_cpufreq_cpu_exit return void"
Gang Ba (1):
drm/amdkfd: Fix missing authorization check in KFD_IOC_DBG_TRAP_DISABLE
Geliang Tang (4):
mptcp: pm: avoid code duplication to lookup endp
mptcp: add mptcp_userspace_pm_lookup_addr helper
mptcp: pm: use addr entry for get_local_id
mptcp: pm: userspace: fix use-after-free in get_local_id
Gokul Sivakumar (1):
wifi: brcmfmac: fix 43752 SDIO FWVID incorrectly labelled as Cypress (CYW)
Greg Kroah-Hartman (2):
Bluetooth: btmtk: Fix short read errors in btmtk_usb_uhw_reg_read() Linux 6.6.151
Gregory Price (1):
mm/vmstat: fold stranded per-cpu node stats when a node comes online
Guangshuo Li (3):
scsi: ufs: core: Cancel RTC work in active-active suspend
can: etas_es58x: es58x_read_bulk_callback(): fix RX buffer leak on URB resubmit failure
usb: musb: omap2430: Do not put borrowed of_node in probe
Guenter Roeck (5):
hwmon: (nct6775-core) Fix number of temperature registers for NCT6116
hwmon: (lm90) Only report alarms if driver is ready
hwmon: (nzxt-smart2) DMA-align output buffer
hwmon: (nct6775-core) Prevent access to unsupported weight registers
hwmon: (pmbus) Fix return value from pmbus_update_byte_data()
H. Nikolaus Schaller (1):
i2c: jz4780: Cache host clock rate at probe to prevent CCF prepare_lock deadlock
Haidar Lee (2):
ASoC: tas2562: fix DVC coefficient write order
ASoC: tas2562: fix broken entries in the volume lookup table
Harald Freudenberger (1):
s390/zcrypt: Fix wrong domain value verification with EP11 CPRBs
Harkirat Gill (1):
drm/amdgpu: cap GTT size to physical RAM on APUs
Harshal Dev (1):
soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
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 (1):
hwmon: (npcm750-pwm-fan): stop fan timer on device detach
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
Ibrahim Hashimov (1):
scsi: scsi_debug: Fix REPORT ZONES alloc_len underflow OOB write
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 recirculation
net: openvswitch: fix skb leak on flow key update failure during ct
Jai Luthra (1):
media: i2c: imx219: Rename VTS to FRM_LENGTH
James Gao (1):
can: peak_usb: add bounds check for USB channel index
Jan Höppner (1):
s390/dasd: Fix potential NULL pointer dereference
Jani Nikula (4):
drm/i915/vrr: require valid min/max vfreq for VRR drm/i915/hdcp: migrate away from kdev_to_i915() in bind/unbind drm/i915/hdcp: require monotonically increasing seq_num_v drm/i915/hdcp: check streams[] bounds before overflow
Jiale Yao (1):
Bluetooth: L2CAP: fix UAF in l2cap_le_connect_rsp
Johan Hovold (1):
usb: musb: omap2430: clean up probe error handling
Johannes Thumshirn (1):
btrfs: zoned: fix deadlock between metadata writeback and transaction commit
Jose Maria Casanova Crespo (1):
drm/vc4: Supply the overflow slot size in BPOS, not the whole bin BO size
Josua Mayer (1):
ata: libahci_platform: support non-consecutive port numbers
Julian Anastasov (3):
ipvs: fix the checksum validations
ipvs: fix places with wrong packet offsets
ipvs: do not mangle ICMP replies for non-first fragments
Jun Guo (2):
spi: spi-cadence: supports transmission with bits_per_word of 16 and 32
spi: spi-cadence: enable SPI_CONTROLLER_MUST_TX
Junjie Cao (1):
gpio: pch: use raw_spinlock_t for the register lock
Kai Vehmanen (1):
ALSA: hda: codecs: hdmi: disable keep-alive before audio format change
Karl Mehltretter (1):
pinctrl: devicetree: don't free uninitialized dev_name on error path
Kent Overstreet (1):
sched: Add task_struct->faults_disabled_mapping
Kiryl Shutsemau (Meta) (2):
mm/hugetlb: fix swap entry corruption when clearing uffd-wp at fork() mm/huge_memory: unlock i_mmap_rwsem before releasing after-split folios
Konrad Dybcio (1):
pinctrl: qcom: sc8280xp: Add missing wakeup entries for GPIO143/151
Lad Prabhakar (1):
drm: renesas: Move RZ/G2L MIPI DSI driver to rz-du
Laurent Pinchart (5):
media: i2c: imx219: Access height from active format in imx219_set_ctrl
media: i2c: imx219: Don't store the current mode in the imx219 structure
media: i2c: imx219: Drop IMX219_VTS_* macros
media: i2c: imx219: Group functions by purpose
media: i2c: imx219: Calculate crop rectangle dynamically
Lee Jones (2):
HID: logitech-dj: Standardise hid_report_enum variable nomenclature
HID: logitech-dj: Prevent REPORT_ID_DJ_SHORT related user initiated OOB write
Leon Romanovsky (1):
scsi: target: Clear cmd_cnt when initial counter enrollment fails
LiangCheng Wang (1):
wifi: brcmfmac: set F2 blocksize to 256 for BCM43752
Liem (2):
i2c: imx: Fix slave registration race and error handling
i2c: imx: Cancel hrtimer before clearing slave pointer
Link Lin (1):
mm/page_reporting: use system_freezable_wq to fix UAF during suspend
Lorenzo Bianconi (1):
netfilter: br_netfilter: Reallocate headroom if necessary in neigh_hh_bridge()
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
Luxiao Xu (1):
audit: fix potential use-after-free in audit_del_rule()
Maoyi Xie (1):
can: peak_usb: peak_usb_start(): fix double free of transfer buffer on URB submit error
Marc Kleine-Budde (1):
can: gs_usb: gs_usb_receive_bulk_callback(): resubmit URB on skb allocation failure
Mario Limonciello (1):
pinctrl-amd: Don't clear S4 wake bits at probe
Masami Hiramatsu (Google) (3):
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 (2):
ata: libata-eh: Increase STANDBY IMMEDIATE timeout
igbvf: Fix leak in TX DMA error cleanup
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+
Michael Bommarito (6):
thunderbolt: Prevent XDomain delayed work use-after-free on disconnect
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
erofs: cap LZMA stream pool size
um: vector: fix use-after-free in vector_mmsg_rx()
Mike Looijmans (1):
phy-zynqmp: Postpone getting clock rate until actually needed
Ming Lei (1):
ublk: reset kernel-owned dev_info fields in ublk_ctrl_add_dev()
Minhong He (1):
can: isotp: check register_netdevice_notifier() error in module init
Mirela Rabulea (1):
media: v4l2-fwnode: Fix subdev owner overwritten in v4l2_async_register_subdev_sensor()
Muhammad Bilal (1):
accel/qaic: use sizeof(*trans_hdr) for transaction length check
Myeonghun Pak (2):
i2c: amd-mp2: Unregister callback on adapter add failure drm/mediatek: ovl_adaptor: balance component registrations
Namjae Jeon (2):
ksmbd: return success for deferred final close
ksmbd: fix use-after-free in __close_file_table_ids()
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
Niklas Cassel (1):
ata: ahci: Make ahci_ignore_port() handle empty mask_port_map
Norbert Szetei (1):
ALSA: pcm: wake linked drain waiters on unlink
Oleksij Rempel (1):
can: j1939: transport: j1939_session_fresh_new(): initialize receive buffer
Oliver Hartkopp (2):
can: use skb hash instead of private variable in headroom
can: isotp: fix timer drain order, wakeup handling and tx_gen ordering
Pablo Neira Ayuso (3):
netfilter: nf_conntrack_expect: restore helper propagation via expectation
netfilter: xt_hashlimit: validate hashtable supports XT_HASHLIMIT_RATE_MATCH
netfilter: nf_tables: clone set on flush only
Pauli Virtanen (5):
Bluetooth: ISO: clear iso_data always when detaching conn from hcon
Bluetooth: ISO: fix timeout vs sync_timeout typo in check_bcast_qos
Bluetooth: hci_sync: make hci_cmd_sync_run_once return -EEXIST if exists
Bluetooth: hci_conn: hold conn reference in abort_conn_sync()
Bluetooth: hci_sync: fix hci_conn_del() use in hci_le_create_conn_sync
Pengfei Zhang (1):
ipv6: fib6: fix NULL deref in fib6_walk_continue() on multi-batch dump
Pengpeng Hou (5):
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
can: ctucanfd: add missing MODULE_DEVICE_TABLE()
Radhey Shyam Pandey (3):
ata: ahci_ceva: fix error paths in ceva_ahci_platform_enable_resources()
phy: zynqmp: fix clock error handling in xpsgtr_phy_init()
phy: zynqmp: fix runtime PM leak on probe allocation failure
Raushan Patel (1):
tracing/probes: Reject $arg0 in meta argument expansion
Rosen Penev (1):
ata: sata_mv: accept 1 or 2 resources in platform probe
Ruoyu Wang (1):
drm/mediatek: Check CRTC state before freeing
Sakari Ailus (2):
media: imx219: Fix maximum frame length in lines
media: v4l: async: Set owner for async sub-devices
Sangho Lee (2):
Bluetooth: HIDP: reject frames without a transaction header
Bluetooth: HIDP: validate numbered report payloads
Sean Christopherson (1):
KVM: SVM: Update x2APIC MSR intercepts if AVIC is inhibited while L2 is active
Sergey Senozhatsky (1):
usb: typec: ucsi: split connector lock classes
Sonali Pradhan (2):
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
Srikanth Boyapally (1):
spi: spi-cadence: Move TX FIFO full busy-wait into FIFO
Stefan Haberland (1):
s390/dasd: Fix undersized format-check buffer
Suman Ghosh (1):
octeontx2-pf: Set correct sequence for carrier off and tx queue stop
Suraj Kandpal (1):
drm/i915/hdcp: Move to using intel_display in intel_hdcp
Takashi Iwai (1):
ALSA: 6fire: Fix UAF at error handling during probe
TanZheng (1):
scsi: target: iblock: Fix wrong PR ops NULL check for PREEMPT/RELEASE
Tetsuo Handa (1):
can: j1939: use netdevice_tracker for j1939_{priv,session,ecu} tracking
Thomas Weißschuh (1):
sysctl: treewide: constify ctl_table_header::ctl_table_arg
Thomas Zimmermann (3):
drm/fb-helper: Allocate and release fb_info in single place drm/tegra: fbdev: Remove offset into framebuffer memory drm/tegra: fbdev: Do not assign to struct drm_fb_helper.info
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()
Timur Kristóf (1):
drm/amdgpu: Respect placement requirements in amdgpu_gtt_mgr functions
Tze Yee Ng (1):
firmware: stratix10-svc: fix memory leaks and list corruption bugs
Uday Khare (2):
ASoC: max98095: fix missing IS_ERR() before PTR_ERR() on mclk lookup
ASoC: max98090: fix missing IS_ERR() before PTR_ERR() on mclk lookup
Vijaya Krishna Nivarthi (1):
spi: qcom-qspi: Correct max DMA length to avoid 64K boundary failure
Ville Syrjälä (2):
drm/i915/vrr: Check HAS_VRR() first in intel_vrr_is_capable() drm/i915/fbc: Extract intel_fbc_has_fences()
Vincent Jardin (1):
hwmon: (pmbus/core) notify on the hwmon device, not the i2c client
Vladimir Marioukhine (1):
drm/amdkfd: fix QID bit leak in pqm_create_queue()
Wei Yang (1):
iommu/sva: move x86 disable check before allocation
WenTao Liang (1):
ceph: fix refcount leak in ceph_readdir()
William Palacek (1):
drm/amdkfd: hold event_mutex while checkpointing CRIU events
Xiang Mei (2):
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) (1):
netfilter: nft_payload: fix mask build for partial field offload
Xiangfeng Cai (1):
mm/hugetlb: fix list corruption in allocate_file_region_entries()
Xingui Yang (1):
scsi: libsas: Fix HA resume deadlock and hisi_sas disk-wake race
Xiubo Li (2):
libceph: add doutc and *_client debug macros support
ceph: print cluster fsid and client global_id in all debug logs
Xu Rao (2):
ALSA: lx6464es: fix period byte count for 16-bit streams
power: supply: bq25890: fix the -10 C NTC lookup entry
Xuanqiang Luo (2):
bpf: lwt: Fix dst reference leak on reroute failure net/smc: fix socket use-after-free during link group termination
Yehyeong Lee (1):
net: mpls: initialize rtm_tos in mpls_getroute()
Yuho Choi (1):
dmaengine: idxd: fix fdev setup failure cleanup in idxd_cdev_open()
Yuxiang Yang (1):
sctp: reject stale cookies with mismatched verification tags
Zack Rusin (7):
drm/vmwgfx: fix guest_memory_dirty bitfield clobbered as size drm/vmwgfx: reject DX_BIND_QUERY without a DX context drm/vmwgfx: drop dma_buf reference on foreign-fd prime import drm/vmwgfx: validate DRAW_PRIMITIVES header size before division drm/vmwgfx: bound DMA command body size against suffix pointer drm/vmwgfx: use check_add_overflow for shader size+offset bound drm/vmwgfx: validate external BO copy bounds for both stride paths
Zhan Xusheng (1):
audit: fix potential integer overflow in audit_log_n_string()
Zhao Li (2):
wifi: mac80211: validate individual TWT params before driver setup
wifi: mwifiex: use the subframe length when parsing A-MSDU TDLS frames
Zhiling Zou (5):
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
sctp: avoid auth_enable sysctl UAF during netns teardown
sctp: close UDP tunnel sockets during netns teardown
Zi Yan (1):
mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk()
Zihan Xi (3):
Bluetooth: mgmt: fix pending command UAF in EIR updates
Bluetooth: mgmt: fix UAF in pair command cancellation
tipc: avoid use-after-free in poll trace queue dumps
Zijun Hu (1):
Bluetooth: btintel: Validate length before parsing diagnostics TLV
bui duc phuc (1):
gpio: pca953x: fix cache_only and IRQ state on restore_context() failure
Greg Kroah-Hartman
maintainerMakefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 6 -SUBLEVEL = 150 +SUBLEVEL = 151 EXTRAVERSION = NAME = Pinguïn Aangedreven
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/platforms/ps3/mm.c +1 -0
@@ -615,6 +615,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/s390/kvm/pci.c +27 -1
@@ -225,7 +225,7 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zdev, struct zpci_fib *fib, bool assist) {struct page *pages[1 ], *aibv_page, *aisb_page =NULL ; -unsigned int msi_vecs, idx; +unsigned int msi_vecs, idx, size;struct zpci_gaite *gaite;unsigned long hva, bit;struct kvm *kvm;
@@ -239,6 +239,10 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zdev, struct zpci_fib *fib,if (zdev->gisa ==0 )return -EINVAL ; +/* AIF already enabled for the device */ +if (zdev->kzdev->fib.fmt0.aibv !=0 ) +return -EINVAL ; + kvm = zdev->kzdev->kvm; msi_vecs = min_t(unsigned int, fib->fmt0.noi, zdev->max_msi);
@@ -248,6 +252,14 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zdev, struct zpci_fib *fib,return gisc;/* Replace AIBV address */ + size =BITS_TO_LONGS (msi_vecs + fib->fmt0.aibvo) *sizeof (unsigned long ); + npages =DIV_ROUND_UP ((fib->fmt0.aibv & ~PAGE_MASK ) + size,PAGE_SIZE ); +/* AIBV cannot span more than 1 page */ +if (npages >1 ) { + rc = -EINVAL ; + goto out; + } + idx =srcu_read_lock (&kvm->srcu); hva =gfn_to_hva (kvm,gpa_to_gfn ((gpa_t )fib->fmt0.aibv)); npages =pin_user_pages_fast (hva,1 ,FOLL_WRITE |FOLL_LONGTERM , pages);
@@ -263,6 +275,12 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zdev, struct zpci_fib *fib,/* Pin the guest AISB if one was specified */ if (fib->fmt0.sum ==1 ) { +/* AISB must be dword aligned */ +if (fib->fmt0.aisb &0x7 ) { + rc = -EINVAL ; + goto unpin1; + } + idx =srcu_read_lock (&kvm->srcu); hva =gfn_to_hva (kvm,gpa_to_gfn ((gpa_t )fib->fmt0.aisb)); npages = pin_user_pages_fast(hva, 1, FOLL_WRITE | FOLL_LONGTERM,
@@ -291,6 +309,11 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zdev, struct zpci_fib *fib,AIRQ_IV_GUESTVEC , phys_to_virt(fib->fmt0.aibv)); +if (!zdev->aibv) { + rc = -ENOMEM ; + goto free_aisb; + } +spin_lock_irq (&aift->gait_lock); gaite = aift->gait + zdev->aisb;
@@ -327,6 +350,9 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zdev, struct zpci_fib *fib, rc =kvm_zpci_set_airq (zdev);return rc; +free_aisb: +airq_iv_free_bit (aift->sbv, zdev->aisb); + zdev->aisb =0 ; unlock:mutex_unlock (&aift->aift_lock); unpin2:
arch/um/drivers/vector_kern.c +3 -0
@@ -1007,6 +1007,9 @@ static int vector_mmsg_rx(struct vector_private *vp, int budget)*/ dev_kfree_skb_irq (skb); vp->estats.rx_encaps_errors++; + (*skbuff_vector) =NULL ; + mmsg_vector++; + skbuff_vector++;continue ; }if (header_check >0 ) {
arch/x86/kvm/svm/avic.c +0 -8
@@ -167,14 +167,6 @@ static void avic_deactivate_vmcb(struct vcpu_svm *svm)if (!sev_es_guest (svm->vcpu.kvm))svm_set_intercept (svm,INTERCEPT_CR8_WRITE ); -/* -* If running nested and the guest uses its own MSR bitmap, there -* is no need to update L0's msr bitmap -*/ -if (is_guest_mode (&svm->vcpu) && -vmcb12_is_intercept (&svm->nested.ctl,INTERCEPT_MSR_PROT )) -return ; -/* Enabling MSR intercept for x2APIC registers */ svm_set_x2apic_msr_interception (svm, true); }
drivers/accel/qaic/qaic_control.c +1 -1
@@ -782,7 +782,7 @@ static int encode_message(struct qaic_device *qdev, struct manage_msg *user_msg,break ; } trans_hdr = (struct qaic_manage_trans_hdr *)(user_msg->data + user_len); -if (trans_hdr->len <sizeof (trans_hdr) || +if (trans_hdr->len <sizeof (*trans_hdr) ||size_add (user_len, trans_hdr->len) > user_msg->len) { ret = -EINVAL ;break ;
drivers/ata/ahci.h +16 -1
@@ -330,7 +330,7 @@ struct ahci_port_priv {struct ahci_host_priv {/* Input fields */ unsigned int flags;/* AHCI_HFLAG_* */ -u32 mask_port_map;/* mask out particular bits */ +u32 mask_port_map;/* Mask of valid ports */ void __iomem * mmio;/* bus-independent mem map */ u32 cap;/* cap to use */
@@ -381,6 +381,21 @@ struct ahci_host_priv { int port); }; +/* +* Return true if a port should be ignored because it is excluded from +* the host port map. +*/ +static inline bool ahci_ignore_port (struct ahci_host_priv *hpriv, +unsigned int portid) +{ +if (portid >= hpriv->nports) +return true; +/* mask_port_map not set means that all ports are available */ +if (!hpriv->mask_port_map) +return false; +return !(hpriv->mask_port_map & (1 << portid)); +} +extern int ahci_ignore_sss;extern const struct attribute_group *ahci_shost_groups[];
drivers/ata/ahci_brcm.c +3 -0
@@ -288,6 +288,9 @@ static unsigned int brcm_ahci_read_id(struct ata_device *dev,/* Re-initialize and calibrate the PHY */ for (i =0 ; i < hpriv->nports; i++) { +if (ahci_ignore_port (hpriv, i)) +continue ; + rc =phy_init (hpriv->phys[i]);if (rc) goto disable_phys;
drivers/ata/ahci_ceva.c +20 -4
@@ -206,15 +206,21 @@ static int ceva_ahci_platform_enable_resources(struct ahci_host_priv *hpriv) goto disable_clks;for (i =0 ; i < hpriv->nports; i++) { +if (ahci_ignore_port (hpriv, i)) +continue ; + rc =phy_init (hpriv->phys[i]);if (rc) - goto disable_rsts; + goto exit_phys; }/* De-assert the controller reset */ ahci_platform_deassert_rsts (hpriv);for (i =0 ; i < hpriv->nports; i++) { +if (ahci_ignore_port (hpriv, i)) +continue ; + rc =phy_power_on (hpriv->phys[i]);if (rc) {phy_exit (hpriv->phys[i]);
@@ -224,14 +230,24 @@ static int ceva_ahci_platform_enable_resources(struct ahci_host_priv *hpriv)return 0 ; -disable_rsts: -ahci_platform_deassert_rsts (hpriv); - disable_phys:while (--i >=0 ) { +if (ahci_ignore_port (hpriv, i)) +continue ; +phy_power_off (hpriv->phys[i]);phy_exit (hpriv->phys[i]); } +ahci_platform_assert_rsts (hpriv); + goto disable_clks; + +exit_phys: +while (--i >=0 ) { +if (ahci_ignore_port (hpriv, i)) +continue ; + +phy_exit (hpriv->phys[i]); + } disable_clks:ahci_platform_disable_clks (hpriv);
drivers/ata/libahci.c +1 -0
@@ -541,6 +541,7 @@ void ahci_save_initial_config(struct device *dev, struct ahci_host_priv *hpriv) hpriv->saved_port_map = port_map; } +/* mask_port_map not set means that all ports are available */ if (hpriv->mask_port_map) { dev_warn(dev, "masking port_map 0x%lx -> 0x%lx\n", port_map,
drivers/ata/libahci_platform.c +32 -6
@@ -49,6 +49,9 @@ int ahci_platform_enable_phys(struct ahci_host_priv *hpriv)int rc, i;for (i =0 ; i < hpriv->nports; i++) { +if (ahci_ignore_port (hpriv, i)) +continue ; + rc =phy_init (hpriv->phys[i]);if (rc) goto disable_phys;
@@ -70,6 +73,9 @@ int ahci_platform_enable_phys(struct ahci_host_priv *hpriv) disable_phys:while (--i >=0 ) { +if (ahci_ignore_port (hpriv, i)) +continue ; +phy_power_off (hpriv->phys[i]);phy_exit (hpriv->phys[i]); }
@@ -88,6 +94,9 @@ void ahci_platform_disable_phys(struct ahci_host_priv *hpriv)int i;for (i =0 ; i < hpriv->nports; i++) { +if (ahci_ignore_port (hpriv, i)) +continue ; +phy_power_off (hpriv->phys[i]);phy_exit (hpriv->phys[i]); }
@@ -435,6 +444,20 @@ static int ahci_platform_get_firmware(struct ahci_host_priv *hpriv,return 0 ; } +static u32 ahci_platform_find_max_port_id (struct device *dev) +{ +u32 max_port =0 ; + +for_each_child_of_node_scoped (dev->of_node, child) { +u32 port; + +if (!of_property_read_u32 (child,"reg" , &port)) + max_port =max (max_port, port); + } + +return max_port; +} +/** * ahci_platform_get_resources - Get platform resources * @pdev: platform device to get resources for
@@ -462,6 +485,7 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev,struct ahci_host_priv *hpriv;struct device_node *child;u32 mask_port_map =0 ; +u32 max_port;if (!devres_open_group (dev,NULL ,GFP_KERNEL ))return ERR_PTR (-ENOMEM );
@@ -553,15 +577,17 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev, goto err_out; } +/* find maximum port id for allocating structures */ + max_port =ahci_platform_find_max_port_id (dev);/* -* If no sub-node was found, we still need to set nports to -* one in order to be able to use the +* Set nports according to maximum port id. Clamp at +* AHCI_MAX_PORTS, warning message for invalid port id +* is generated later. +* When DT has no sub-nodes max_port is 0, nports is 1, +* in order to be able to use the * ahci_platform_[en|dis]able_[phys|regulators] functions. */ -if (child_nodes) - hpriv->nports = child_nodes; -else - hpriv->nports =1 ; + hpriv->nports =min (AHCI_MAX_PORTS , max_port +1 ); hpriv->phys =devm_kcalloc (dev, hpriv->nports,sizeof (*hpriv->phys),GFP_KERNEL );if (!hpriv->phys) {
drivers/ata/libata-eh.c +8 -0
@@ -106,6 +106,12 @@ static const unsigned int ata_eh_flush_timeouts[] = { UINT_MAX, }; +static const unsigned int ata_eh_standby_timeouts[] = { +15000 ,/* Some drives may be slow to standby */ +/* but don't hold up a suspend too long waiting for them */ +UINT_MAX , +}; +static const unsigned int ata_eh_other_timeouts[] = {5000 ,/* same rationale as identify timeout */ 10000 ,/* ditto */
@@ -147,6 +153,8 @@ ata_eh_cmd_timeout_table[ATA_EH_CMD_TIMEOUT_TABLE_SIZE] = { .timeouts = ata_eh_other_timeouts, }, { .commands = CMDS(ATA_CMD_FLUSH, ATA_CMD_FLUSH_EXT), .timeouts = ata_eh_flush_timeouts }, + { .commands = CMDS(ATA_CMD_STANDBYNOW1), + .timeouts = ata_eh_standby_timeouts }, { .commands = CMDS(ATA_CMD_VERIFY), .timeouts = ata_eh_reset_timeouts }, };
drivers/ata/sata_mv.c +1 -1
@@ -4026,7 +4026,7 @@ static int mv_platform_probe(struct platform_device *pdev)/* * Simple resource validation .. */ -if (unlikely (pdev->num_resources !=1 )) { +if (unlikely (pdev->num_resources !=1 && pdev->num_resources !=2 )) {dev_err (&pdev->dev,"invalid number of resources\n" );return -EINVAL ; }
drivers/block/ublk_drv.c +9 -0
@@ -2437,6 +2437,15 @@ static int ublk_ctrl_add_dev(struct io_uring_cmd *cmd)/* update device id */ ub->dev_info.dev_id = ub->ub_number; +/* +* ->state and ->ublksrv_pid are owned by the driver and only read back +* by userspace, but they come from the copied-in dev_info, so reset +* them. Otherwise a device added with ->state != DEAD looks live while +* ->ub_disk is still NULL. +*/ + ub->dev_info.state =UBLK_S_DEV_DEAD ; + ub->dev_info.ublksrv_pid =-1 ; +/* * 64bit flags will be copied back to userspace as feature * negotiation result, so have to clear flags which driver
drivers/bluetooth/btintel.c +3 -0
@@ -2922,6 +2922,9 @@ static int btintel_diagnostics(struct hci_dev *hdev, struct sk_buff *skb) {struct intel_tlv *tlv = (void *)&skb->data[5 ]; +if (skb->len <5 +sizeof (*tlv) +sizeof (tlv->val[0 ])) + goto recv_frame; +/* The first event is always an event type TLV */ if (tlv->type !=INTEL_TLV_TYPE_ID ) goto recv_frame;
drivers/bluetooth/btmtk.c +22 -28
127 lines not on this page · raw message
drivers/cpufreq/ia64-acpi-cpufreq.c +3 -1
@@ -302,7 +302,7 @@ acpi_cpufreq_cpu_init ( } -static void +static int acpi_cpufreq_cpu_exit (struct cpufreq_policy *policy) {
@@ -316,6 +316,8 @@ acpi_cpufreq_cpu_exit (kfree (policy->freq_table);kfree (data); } + +return (0 ); }
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/idxd/cdev.c +3 -1
@@ -293,6 +293,7 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp) fdev->parent =cdev_dev (idxd_cdev); fdev->bus = &dsa_bus_type; fdev->type = &idxd_cdev_file_type; +idxd_wq_get (wq); rc =dev_set_name (fdev,"file%d" , ctx->id);if (rc <0 ) {
@@ -306,13 +307,14 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp) goto failed_dev_add; } -idxd_wq_get (wq);mutex_unlock (&wq->wq_lock);return 0 ; failed_dev_add: failed_dev_name: +mutex_unlock (&wq->wq_lock);put_device (fdev); +return rc; failed_ida: failed_set_pasid:if (device_user_pasid_enabled (idxd))
drivers/dma/sun6i-dma.c +4 -7
@@ -934,16 +934,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/firmware/stratix10-svc.c +6 -4
@@ -1083,14 +1083,16 @@ 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 );guard (mutex)(&svc_mem_lock); 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);
@@ -1116,6 +1118,7 @@ EXPORT_SYMBOL_GPL(stratix10_svc_allocate_memory);void stratix10_svc_free_memory (struct stratix10_svc_chan *chan,void *kaddr) {struct stratix10_svc_data_mem *pmem; +guard (mutex)(&svc_mem_lock);list_for_each_entry (pmem, &svc_data_mem, node)
@@ -1124,10 +1127,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-pca953x.c +13 -2
@@ -1258,9 +1258,20 @@ static int pca953x_restore_context(struct pca953x_chip *chip)regcache_mark_dirty (chip->regmap); ret =pca953x_regcache_sync (chip);if (ret) -return ret; + goto err; + + ret =regcache_sync (chip->regmap); +if (ret) + goto err; + +return 0 ; -return regcache_sync (chip->regmap); +err: +if (chip->client->irq >0 ) +disable_irq (chip->client->irq); +regcache_cache_only (chip->regmap, true); + +return ret; }static void pca953x_save_context (struct pca953x_chip *chip)
drivers/gpio/gpio-pch.c +14 -14
@@ -97,7 +97,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)
@@ -106,7 +106,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);
@@ -114,7 +114,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)
@@ -132,7 +132,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)
@@ -146,7 +146,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 ; }
@@ -157,12 +157,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 ; }
@@ -264,7 +264,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 ));
@@ -276,7 +276,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 ; }
@@ -373,7 +373,7 @@ static int pch_gpio_probe(struct pci_dev *pdev, chip->ioh = id->driver_data; 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 (dev, &chip->gpio, chip);
@@ -406,9 +406,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 ; }
@@ -418,11 +418,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_drv.c +15 -0
@@ -2637,6 +2637,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);
@@ -2680,6 +2693,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_gtt_mgr.c +28 -2
@@ -219,7 +219,20 @@ static bool amdgpu_gtt_mgr_intersects(struct ttm_resource_manager *man, const struct ttm_place *place, size_t size) { -return !place->lpfn ||amdgpu_gtt_mgr_has_gart_addr (res); +const struct drm_mm_node *const node = &to_ttm_range_mgr_node (res)->mm_nodes[0 ]; +const u32 num_pages =PFN_UP (size); + +if (!place->lpfn) +return true; + +if (!amdgpu_gtt_mgr_has_gart_addr (res)) +return false; + +if (place->fpfn >= (node->start + num_pages) || + (place->lpfn && place->lpfn <= node->start)) +return false; + +return true; }/**
@@ -237,7 +250,20 @@ static bool amdgpu_gtt_mgr_compatible(struct ttm_resource_manager *man, const struct ttm_place *place, size_t size) { -return !place->lpfn ||amdgpu_gtt_mgr_has_gart_addr (res); +const struct drm_mm_node *const node = &to_ttm_range_mgr_node (res)->mm_nodes[0 ]; +const u32 num_pages =PFN_UP (size); + +if (!place->lpfn) +return true; + +if (!amdgpu_gtt_mgr_has_gart_addr (res)) +return false; + +if (node->start < place->fpfn || + (place->lpfn && (node->start + num_pages) > place->lpfn)) +return false; + +return true; }/**
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +12 -0
@@ -1976,6 +1976,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/amdkfd/kfd_chardev.c +7 -3
@@ -2977,10 +2977,14 @@ static int kfd_ioctl_set_debug_trap(struct file *filep, struct kfd_process *p, v goto out; } -/* Check if target is still PTRACED. */ +/* +* Verify debugger has permission to debug target process. +* For cross-process debugging, require active ptrace relationship. +* This applies to ALL operations to prevent unauthorized interference. +*/ rcu_read_lock (); -if (target != p && args->op !=KFD_IOC_DBG_TRAP_DISABLE - &&ptrace_parent (target->lead_thread) != current) { +if (target != p &&ptrace_parent (target->lead_thread) != current + && target->debugger_process != p) {pr_err ("PID %i is not PTRACED and cannot be debugged\n" , args->pid); r = -EPERM ; }
drivers/gpu/drm/amd/amdkfd/kfd_events.c +20 -3
@@ -520,6 +520,9 @@ int kfd_criu_restore_event(struct file *devkfd, ret =create_other_event (p, ev, &ev_priv->event_id);break ; +default : + ret = -EINVAL ; +break ; }mutex_unlock (&p->event_mutex);
@@ -541,15 +544,27 @@ int kfd_criu_checkpoint_events(struct kfd_process *p,int ret =0 ;struct kfd_event *ev;uint32_t ev_id; +uint32_t num_events; -uint32_t num_events =kfd_get_num_events (p); +/* Serialize the count and the walk below against concurrent event +* create/destroy. Those paths take only p->event_mutex, not the +* p->mutex held by the CRIU checkpoint caller, so without this the +* event_idr can grow between kfd_get_num_events() and the loop and the +* walk writes past the ev_privs allocation. +*/ +mutex_lock (&p->event_mutex); -if (!num_events) + num_events =kfd_get_num_events (p); +if (!num_events) { +mutex_unlock (&p->event_mutex);return 0 ; + } ev_privs =kvzalloc (num_events *sizeof (*ev_privs),GFP_KERNEL ); -if (!ev_privs) +if (!ev_privs) { +mutex_unlock (&p->event_mutex);return -ENOMEM ; + }idr_for_each_entry (&p->event_idr, ev, ev_id) {
@@ -590,6 +605,8 @@ int kfd_criu_checkpoint_events(struct kfd_process *p, i++; } +mutex_unlock (&p->event_mutex); + ret =copy_to_user (user_priv_data + *priv_data_offset, ev_privs, num_events *sizeof (*ev_privs));if (ret) {
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +1 -1
@@ -344,7 +344,7 @@ int pqm_create_queue(struct process_queue_manager *pqm, false);if (retval) {dev_err (dev->adev->dev,"failed to allocate process context bo\n" ); -return retval; + goto err_allocate_pqn; }memset (pdd->proc_ctx_cpu_ptr,0 ,AMDGPU_MES_PROC_CTX_SIZE ); }
drivers/gpu/drm/armada/armada_fbdev.c +1 -11
@@ -43,10 +43,10 @@ static int armada_fbdev_create(struct drm_fb_helper *fbh, struct drm_fb_helper_surface_size *sizes) {struct drm_device *dev = fbh->dev; +struct fb_info *info = fbh->info;struct drm_mode_fb_cmd2 mode;struct armada_framebuffer *dfb;struct armada_gem_object *obj; -struct fb_info *info;int size, ret;void *ptr;
@@ -87,12 +87,6 @@ static int armada_fbdev_create(struct drm_fb_helper *fbh,if (IS_ERR (dfb))return PTR_ERR (dfb); - info =drm_fb_helper_alloc_info (fbh); -if (IS_ERR (info)) { - ret =PTR_ERR (info); - goto err_fballoc; - } - info->fbops = &armada_fb_ops; info->fix.smem_start = obj->phys_addr; info->fix.smem_len = obj->obj.size;
@@ -107,10 +101,6 @@ static int armada_fbdev_create(struct drm_fb_helper *fbh, (unsigned long long)obj->phys_addr);return 0 ; - - err_fballoc: - dfb->fb.funcs->destroy (&dfb->fb); -return ret; } static int armada_fb_probe(struct drm_fb_helper *fbh,
drivers/gpu/drm/display/drm_dp_helper.c +12 -0
@@ -2930,6 +2930,18 @@ int drm_dp_get_pcon_max_frl_bw(const u8 dpcd[DP_RECEIVER_CAP_SIZE],int bw;u8 buf; +if (!drm_dp_is_branch (dpcd)) +return 0 ; + +if (dpcd[DP_DPCD_REV ] <0x11 ) +return 0 ; + +if ((dpcd[DP_DOWNSTREAMPORT_PRESENT ] &DP_DETAILED_CAP_INFO_AVAILABLE ) ==0 ) +return 0 ; + +if ((port_cap[0 ] &DP_DS_PORT_TYPE_MASK ) !=DP_DS_PORT_TYPE_HDMI ) +return 0 ; + buf = port_cap[2 ]; bw = buf &DP_PCON_MAX_FRL_BW ;
drivers/gpu/drm/drm_fb_helper.c +14 -27
83 lines not on this page · raw message
drivers/gpu/drm/drm_fbdev_dma.c +1 -11
@@ -78,10 +78,10 @@ static int drm_fbdev_dma_helper_fb_probe(struct drm_fb_helper *fb_helper, {struct drm_client_dev *client = &fb_helper->client;struct drm_device *dev = fb_helper->dev; +struct fb_info *info = fb_helper->info;struct drm_client_buffer *buffer;struct drm_gem_dma_object *dma_obj;struct drm_framebuffer *fb; -struct fb_info *info;u32 format;struct iosys_map map;int ret;
@@ -114,12 +114,6 @@ static int drm_fbdev_dma_helper_fb_probe(struct drm_fb_helper *fb_helper, fb_helper->buffer = buffer; fb_helper->fb = buffer->fb; - info =drm_fb_helper_alloc_info (fb_helper); -if (IS_ERR (info)) { - ret =PTR_ERR (info); - goto err_drm_client_buffer_vunmap; - } -drm_fb_helper_fill_info (info, fb_helper, sizes); info->fbops = &drm_fbdev_dma_fb_ops;
@@ -138,10 +132,6 @@ static int drm_fbdev_dma_helper_fb_probe(struct drm_fb_helper *fb_helper,return 0 ; -err_drm_client_buffer_vunmap: - fb_helper->fb =NULL ; - fb_helper->buffer =NULL ; -drm_client_buffer_vunmap (buffer); err_drm_client_buffer_delete:drm_client_framebuffer_delete (buffer);return ret;
drivers/gpu/drm/drm_fbdev_generic.c +2 -10
@@ -73,8 +73,8 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, {struct drm_client_dev *client = &fb_helper->client;struct drm_device *dev = fb_helper->dev; +struct fb_info *info = fb_helper->info;struct drm_client_buffer *buffer; -struct fb_info *info;size_t screen_size;void *screen_buffer;u32 format;
@@ -100,12 +100,6 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, goto err_drm_client_framebuffer_delete; } - info =drm_fb_helper_alloc_info (fb_helper); -if (IS_ERR (info)) { - ret =PTR_ERR (info); - goto err_vfree; - } -drm_fb_helper_fill_info (info, fb_helper, sizes); info->fbops = &drm_fbdev_generic_fb_ops;
@@ -122,12 +116,10 @@ static int drm_fbdev_generic_helper_fb_probe(struct drm_fb_helper *fb_helper, info->fbdefio = &fb_helper->fbdefio; ret =fb_deferred_io_init (info);if (ret) - goto err_drm_fb_helper_release_info; + goto err_vfree;return 0 ; -err_drm_fb_helper_release_info: -drm_fb_helper_release_info (fb_helper); err_vfree:vfree (screen_buffer); err_drm_client_framebuffer_delete:
drivers/gpu/drm/exynos/exynos_drm_fbdev.c +1 -8
@@ -60,18 +60,11 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,struct drm_fb_helper_surface_size *sizes, struct exynos_drm_gem *exynos_gem) { - struct fb_info *fbi; + struct fb_info *fbi = helper->info;struct drm_framebuffer *fb = helper->fb;unsigned int size = fb->width * fb->height * fb->format->cpp[0 ];unsigned long offset; - fbi =drm_fb_helper_alloc_info (helper); -if (IS_ERR (fbi)) { -DRM_DEV_ERROR (to_dma_dev (helper->dev), -"failed to allocate fb info.\n" ); -return PTR_ERR (fbi); - } - fbi->fbops = &exynos_drm_fb_ops;drm_fb_helper_fill_info (fbi, helper, sizes);
drivers/gpu/drm/gma500/fbdev.c +1 -12
@@ -110,7 +110,7 @@ static int psb_fbdev_fb_probe(struct drm_fb_helper *fb_helper,struct drm_device *dev = fb_helper->dev;struct drm_psb_private *dev_priv =to_drm_psb_private (dev);struct pci_dev *pdev =to_pci_dev (dev->dev); -struct fb_info *info; +struct fb_info *info = fb_helper->info;struct drm_framebuffer *fb;struct drm_mode_fb_cmd2 mode_cmd = { };int size;
@@ -165,12 +165,6 @@ static int psb_fbdev_fb_probe(struct drm_fb_helper *fb_helper, fb_helper->fb = fb; - info =drm_fb_helper_alloc_info (fb_helper); -if (IS_ERR (info)) { - ret =PTR_ERR (info); - goto err_drm_framebuffer_unregister_private; - } - info->fbops = &psb_fbdev_fb_ops;/* Accessed stolen memory directly */
@@ -194,11 +188,6 @@ static int psb_fbdev_fb_probe(struct drm_fb_helper *fb_helper,return 0 ; -err_drm_framebuffer_unregister_private: -drm_framebuffer_unregister_private (fb); - fb->obj[0 ] =NULL ; -drm_framebuffer_cleanup (fb); -kfree (fb); err_drm_gem_object_put:drm_gem_object_put (obj);return ret;
drivers/gpu/drm/i915/display/intel_display_core.h +3 -0
@@ -267,6 +267,9 @@ struct intel_wm { };struct intel_display { +/* drm device backpointer */ +struct drm_device *drm; +/* Display functions */ struct {/* Top level crtc-ish functions */
drivers/gpu/drm/i915/display/intel_display_device.c +3 -0
@@ -857,6 +857,9 @@ intel_display_device_probe(struct drm_i915_private *i915, bool has_gmdid,struct pci_dev *pdev =to_pci_dev (i915->drm.dev);int i; +/* Add drm device backpointer as early as possible. */ + i915->display.drm = &i915->drm; +if (has_gmdid)return probe_gmdid_display (i915, gmdid_ver, gmdid_rel, gmdid_step);
drivers/gpu/drm/i915/display/intel_display_types.h +40 -0
@@ -2112,4 +2112,44 @@ to_intel_frontbuffer(struct drm_framebuffer *fb) return fb ? to_intel_framebuffer(fb)->frontbuffer : NULL; } +/* +* Conversion functions/macros from various pointer types to struct +* intel_display pointer. +*/ +#define __drm_device_to_intel_display (p) \ + ((p) ? &to_i915(p)->display : NULL) +#define __device_to_intel_display (p) \ + __drm_device_to_intel_display(&kdev_to_i915(p)->drm) +#define __intel_connector_to_intel_display (p) \ + __drm_device_to_intel_display((p)->base.dev) +#define __intel_crtc_to_intel_display (p) \ + __drm_device_to_intel_display((p)->base.dev) +#define __intel_crtc_state_to_intel_display (p) \ + __drm_device_to_intel_display((p)->uapi.crtc->dev) +#define __intel_digital_port_to_intel_display (p) \ + __drm_device_to_intel_display((p)->base.base.dev) +#define __intel_dp_to_intel_display (p) \ + __drm_device_to_intel_display(dp_to_dig_port(p)->base.base.dev) +#define __intel_encoder_to_intel_display (p) \ + __drm_device_to_intel_display((p)->base.dev) +#define __intel_hdmi_to_intel_display (p) \ + __drm_device_to_intel_display(hdmi_to_dig_port(p)->base.base.dev) + +/* Helper for generic association. Map types to conversion functions/macros. */ +#define __assoc (type, p) \ + struct type: __##type##_to_intel_display((struct type *)(p)) + +/* Convert various pointer types to struct intel_display pointer. */ +#define to_intel_display (p) \ + _Generic(*p, \ + __assoc(drm_device, p), \ + __assoc(device, p), \ + __assoc(intel_connector, p), \ + __assoc(intel_crtc, p), \ + __assoc(intel_crtc_state, p), \ + __assoc(intel_digital_port, p), \ + __assoc(intel_dp, p), \ + __assoc(intel_encoder, p), \ + __assoc(intel_hdmi, p)) +#endif /* __INTEL_DISPLAY_TYPES_H__ */
drivers/gpu/drm/i915/display/intel_fbc.c +7 -2
@@ -223,6 +223,11 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_sreturn 0 ; } +static bool intel_fbc_has_fences (struct drm_i915_private *i915) +{ +return intel_gt_support_legacy_fencing (to_gt (i915)); +} +static u32 i8xx_fbc_ctl (struct intel_fbc *fbc) {const struct intel_fbc_state *fbc_state = &fbc->state;
@@ -608,7 +613,7 @@ static void ivb_fbc_activate(struct intel_fbc *fbc)else if (DISPLAY_VER (i915) ==9 )skl_fbc_program_cfb_stride (fbc); -if (intel_gt_support_legacy_fencing (to_gt (i915))) +if (intel_fbc_has_fences (i915))snb_fbc_program_fence (fbc); intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id),
@@ -992,7 +997,7 @@ static void intel_fbc_update_state(struct intel_atomic_state *state, fbc_state->fence_y_offset =intel_plane_fence_y_offset (plane_state);drm_WARN_ON (&i915->drm, plane_state->flags &PLANE_HAS_FENCE && - !intel_gt_support_legacy_fencing (to_gt (i915))); + !intel_fbc_has_fences (i915));if (plane_state->flags &PLANE_HAS_FENCE ) fbc_state->fence_id =i915_vma_fence_id (plane_state->ggtt_vma);
drivers/gpu/drm/i915/display/intel_fbdev.c +1 -8
@@ -218,7 +218,7 @@ static int intelfb_create(struct drm_fb_helper *helper, .type = I915_GTT_VIEW_NORMAL, };intel_wakeref_t wakeref; -struct fb_info *info; +struct fb_info *info = helper->info;struct i915_vma *vma;unsigned long flags =0 ;bool prealloc = false;
@@ -271,13 +271,6 @@ static int intelfb_create(struct drm_fb_helper *helper, goto out_unlock; } - info =drm_fb_helper_alloc_info (helper); -if (IS_ERR (info)) { -drm_err (&dev_priv->drm,"Failed to allocate fb_info (%pe)\n" , info); - ret =PTR_ERR (info); - goto out_unpin; - } - ifbdev->helper.fb = &ifbdev->fb->base; info->fbops = &intelfb_ops;
drivers/gpu/drm/i915/display/intel_hdcp.c +135 -131
757 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_vrr.c +8 -2
@@ -16,6 +16,9 @@ bool intel_vrr_is_capable(struct intel_connector *connector)struct drm_i915_private *i915 =to_i915 (connector->base.dev);struct intel_dp *intel_dp; +if (!HAS_VRR (i915)) +return false; +/* * DP Sink is capable of VRR video timings if * Ignore MSA bit is set in DPCD.
@@ -38,8 +41,11 @@ bool intel_vrr_is_capable(struct intel_connector *connector)return false; } -return HAS_VRR (i915) && - info->monitor_range.max_vfreq - info->monitor_range.min_vfreq >10 ; +if (!info->monitor_range.min_vfreq || !info->monitor_range.max_vfreq || + info->monitor_range.min_vfreq > info->monitor_range.max_vfreq) +return false; + +return info->monitor_range.max_vfreq - info->monitor_range.min_vfreq >10 ; }void
drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c +6 -1
@@ -494,6 +494,7 @@ static void mtk_disp_ovl_adaptor_master_unbind(struct device *dev)struct mtk_disp_ovl_adaptor *priv =dev_get_drvdata (dev); priv->children_bound = false; +component_unbind_all (dev, priv->mmsys_dev); }static const struct component_master_ops mtk_disp_ovl_adaptor_master_ops = {
@@ -520,12 +521,15 @@ static int mtk_disp_ovl_adaptor_probe(struct platform_device *pdev) priv->mmsys_dev = pdev->dev.platform_data; -component_master_add_with_match (dev, &mtk_disp_ovl_adaptor_master_ops, match); + ret =component_master_add_with_match (dev, &mtk_disp_ovl_adaptor_master_ops, match); +if (ret) +return dev_err_probe (dev, ret,"Failed to add component master\n" );pm_runtime_enable (dev); ret =component_add (dev, &mtk_disp_ovl_adaptor_comp_ops);if (ret !=0 ) { +component_master_del (dev, &mtk_disp_ovl_adaptor_master_ops);pm_runtime_disable (dev);dev_err (dev,"Failed to add component: %d\n" , ret); }
@@ -535,6 +539,7 @@ static int mtk_disp_ovl_adaptor_probe(struct platform_device *pdev)static int mtk_disp_ovl_adaptor_remove (struct platform_device *pdev) { +component_del (&pdev->dev, &mtk_disp_ovl_adaptor_comp_ops);component_master_del (&pdev->dev, &mtk_disp_ovl_adaptor_master_ops);pm_runtime_disable (&pdev->dev);return 0 ;
drivers/gpu/drm/mediatek/mtk_drm_crtc.c +3 -3
@@ -185,10 +185,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/msm/msm_fbdev.c +1 -8
@@ -70,9 +70,9 @@ static int msm_fbdev_create(struct drm_fb_helper *helper, {struct drm_device *dev = helper->dev;struct msm_drm_private *priv = dev->dev_private; +struct fb_info *fbi = helper->info;struct drm_framebuffer *fb =NULL ;struct drm_gem_object *bo; -struct fb_info *fbi =NULL ;uint64_t paddr;uint32_t format;int ret, pitch;
@@ -105,13 +105,6 @@ static int msm_fbdev_create(struct drm_fb_helper *helper, goto fail; } - fbi =drm_fb_helper_alloc_info (helper); -if (IS_ERR (fbi)) { -DRM_DEV_ERROR (dev->dev,"failed to allocate fb info\n" ); - ret =PTR_ERR (fbi); - goto fail; - } -DBG ("fbi=%p, dev=%p" , fbi, dev); helper->fb = fb;
drivers/gpu/drm/omapdrm/omap_fbdev.c +1 -8
@@ -131,9 +131,9 @@ static int omap_fbdev_create(struct drm_fb_helper *helper,struct omap_fbdev *fbdev =to_omap_fbdev (helper);struct drm_device *dev = helper->dev;struct omap_drm_private *priv = dev->dev_private; +struct fb_info *fbi = helper->info;struct drm_framebuffer *fb =NULL ;union omap_gem_size gsize; -struct fb_info *fbi =NULL ;struct drm_mode_fb_cmd2 mode_cmd = {0 };struct drm_gem_object *bo;dma_addr_t dma_addr;
@@ -199,13 +199,6 @@ static int omap_fbdev_create(struct drm_fb_helper *helper, goto fail; } - fbi =drm_fb_helper_alloc_info (helper); -if (IS_ERR (fbi)) { -dev_err (dev->dev,"failed to allocate fb info\n" ); - ret =PTR_ERR (fbi); - goto fail; - } -DBG ("fbi=%p, dev=%p" , fbi, dev); helper->fb = fb;
drivers/gpu/drm/radeon/radeon_fbdev.c +1 -12
@@ -207,7 +207,7 @@ static int radeon_fbdev_fb_helper_fb_probe(struct drm_fb_helper *fb_helper, {struct radeon_device *rdev = fb_helper->dev->dev_private;struct drm_mode_fb_cmd2 mode_cmd = { }; -struct fb_info *info; +struct fb_info *info = fb_helper->info;struct drm_gem_object *gobj;struct radeon_bo *rbo;struct drm_framebuffer *fb;
@@ -245,13 +245,6 @@ static int radeon_fbdev_fb_helper_fb_probe(struct drm_fb_helper *fb_helper,/* setup helper */ fb_helper->fb = fb; -/* okay we have an object now allocate the framebuffer */ - info =drm_fb_helper_alloc_info (fb_helper); -if (IS_ERR (info)) { - ret =PTR_ERR (info); - goto err_drm_framebuffer_unregister_private; - } - info->fbops = &radeon_fbdev_fb_ops;/* radeon resume is fragile and needs a vt switch to help it along */
@@ -277,10 +270,6 @@ static int radeon_fbdev_fb_helper_fb_probe(struct drm_fb_helper *fb_helper,return 0 ; -err_drm_framebuffer_unregister_private: - fb_helper->fb =NULL ; -drm_framebuffer_unregister_private (fb); -drm_framebuffer_cleanup (fb); err_kfree:kfree (fb); err_radeon_fbdev_destroy_pinned_object:
drivers/gpu/drm/renesas/Kconfig +1 -0
@@ -1,4 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-only source "drivers/gpu/drm/renesas/rcar-du/Kconfig" +source "drivers/gpu/drm/renesas/rz-du/Kconfig" source "drivers/gpu/drm/renesas/shmobile/Kconfig"
drivers/gpu/drm/renesas/Makefile +1 -0
@@ -1,4 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 obj-y += rcar-du/ +obj-y += rz-du/ obj-$(CONFIG_DRM_SHMOBILE) += shmobile/
drivers/gpu/drm/renesas/rcar-du/Kconfig +0 -8
@@ -60,14 +60,6 @@ config DRM_RCAR_MIPI_DSI select DRM_MIPI_DSI select RESET_CONTROLLER -config DRM_RZG2L_MIPI_DSI - tristate "RZ/G2L MIPI DSI Encoder Support" - depends on DRM && DRM_BRIDGE && OF - depends on ARCH_RENESAS || COMPILE_TEST - select DRM_MIPI_DSI - help - Enable support for the RZ/G2L Display Unit embedded MIPI DSI encoders. - config DRM_RCAR_VSP bool "R-Car DU VSP Compositor Support" if ARM default y if ARM64
drivers/gpu/drm/renesas/rcar-du/Makefile +0 -2
@@ -14,5 +14,3 @@ obj-$(CONFIG_DRM_RCAR_DU) += rcar-du-drm.o obj-$(CONFIG_DRM_RCAR_DW_HDMI) += rcar_dw_hdmi.o obj-$(CONFIG_DRM_RCAR_LVDS) += rcar_lvds.o obj-$(CONFIG_DRM_RCAR_MIPI_DSI) += rcar_mipi_dsi.o - -obj-$(CONFIG_DRM_RZG2L_MIPI_DSI) += rzg2l_mipi_dsi.o
drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi.c deleted +0 -816
816 lines not on this page · raw message
drivers/gpu/drm/renesas/rcar-du/rzg2l_mipi_dsi_regs.h deleted +0 -151
27 lines not on this page · raw message
drivers/gpu/drm/renesas/rz-du/Kconfig new file +8 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/renesas/rz-du/Makefile new file +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi.c new file +816 -0
816 lines not on this page · raw message
drivers/gpu/drm/renesas/rz-du/rzg2l_mipi_dsi_regs.h new file +151 -0
151 lines not on this page · raw message
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +18 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/hwmon/adt7470.c +92 -37
129 lines not on this page · raw message
drivers/media/i2c/imx219.c +332 -336
668 lines not on this page · raw message
drivers/net/can/ctucanfd/ctucanfd_base.c +9 -5
Lines of this file are not shown. View the raw message.
drivers/net/can/ctucanfd/ctucanfd_pci.c +2 -1
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/dsa/mt7530.c +20 -38
58 lines not on this page · 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/intel/e1000/e1000_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_ethtool.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_main.c +10 -0
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_pf.c +1 -1
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/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +15 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +42 -4
46 lines not on this page · raw message
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +10 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h +1 -1
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/phy/xilinx/phy-zynqmp.c +81 -49
130 lines not on this page · raw message
drivers/pinctrl/qcom/pinctrl-sc8280xp.c +11 -10
Lines of this file are not shown. View the raw message.
drivers/spi/spi-cadence.c +108 -21
129 lines not on this page · raw message
drivers/target/target_core_transport.c +10 -2
Lines of this file are not shown. View the raw message.
drivers/usb/gadget/function/f_tcm.c +164 -28
192 lines not on this page · raw message
drivers/usb/typec/ucsi/ucsi.c +70 -45
115 lines not on this page · raw message
fs/ceph/addr.c +153 -126
279 lines not on this page · raw message
fs/ceph/caps.c +410 -300
710 lines not on this page · raw message
fs/ceph/dir.c +138 -87
225 lines not on this page · raw message
fs/ceph/file.c +141 -104
245 lines not on this page · raw message
fs/ceph/inode.c +267 -218
485 lines not on this page · raw message
fs/ceph/locks.c +33 -24
57 lines not on this page · raw message
fs/ceph/mds_client.c +313 -241
554 lines not on this page · raw message
fs/ceph/snap.c +95 -79
174 lines not on this page · raw message
fs/ceph/super.c +40 -30
70 lines not on this page · raw message
fs/ceph/xattr.c +57 -39
96 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.
include/net/ip_vs.h +37 -8
45 lines not on this page · raw message
include/net/netfilter/nf_conntrack_expect.h +4 -1
Lines of this file are not shown. View the raw message.
net/bluetooth/mgmt.c +64 -20
84 lines not on this page · raw message
net/can/isotp.c +239 -94
333 lines not on this page · raw message
net/ipv6/netfilter/nf_conntrack_reasm.c +1 -1
Lines of this file are not shown. View the raw message.
net/mptcp/pm_userspace.c +43 -44
87 lines not on this page · raw message
net/netfilter/ipvs/ip_vs_core.c +87 -93
180 lines not on this page · raw message
net/netfilter/ipvs/ip_vs_proto_tcp.c +10 -38
48 lines not on this page · raw message
net/netfilter/ipvs/ip_vs_proto_udp.c +13 -41
54 lines not on this page · raw message
net/netfilter/ipvs/ip_vs_xmit.c +30 -12
42 lines not on this page · raw message
net/netfilter/nf_conntrack_standalone.c +1 -1
Lines of this file are not shown. View the raw message.
sound/pci/hda/patch_hdmi.c +42 -6
48 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/mm/mlock-random-test.c +1 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.