summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
5 dayssysctl: Split data conversion and file position handlingJoel Granados
Apply the conversions to the data in a new helper function (apply_conv_on_vec) while file position handling and argument validation stay in the original function. Rename function to proc_vec (from do_proc_vec). This is a prep commit to isolate the logic that needs to change to prevent partial sysctl vector writes. No functional change intended Reviewed-by: Bradley Morgan <include@grrlz.net> Signed-off-by: Joel Granados <joel.granados@kernel.org>
5 daysmmc: vub300: Remove the driver for the obsolete HWUlf Hansson
The Elan Digital Systems controller has been obsolete for many years. In fact, its corresponding driver that was introduced in 2011 only received one initial commit, but has since then never been actively maintained. In this regards, we have lately started to receive a lot of AI generated bug fixes as the driver is a real mess. Rather than continue this path instead of making a proper rework of the driver, which is what would be needed, let's just remove the driver altogether. Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Acked-by: Johan Hovold <johan@kernel.org> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Ulf Hansson <ulfh@kernel.org>
5 daysnet: bridge: mst: move switchdev call outside rcuNikolay Aleksandrov
This is a follow-up of one of sashiko's pre-existing bug reports. br_mst_set_state() calls switchdev_port_attr_set() for nonzero MSTIs while holding rcu_read_lock() which invokes the blocking switchdev notifier chain and may sleep. Nonzero MSTI changes come from netlink with rtnl held. Move the switchdev call before entering the rcu section and assert that rtnl is held. The call cannot be deferred because netlink needs its error and extack. Also DSA reads the old bridge MST state during the callback and checks it. A deferred callback will be late and will see the updated state. Fixes: 3a7c1661ae13 ("net: bridge: mst: fix vlan use-after-free") Signed-off-by: Nikolay Aleksandrov <razor@blackwall.org> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Link: https://patch.msgid.link/20260911105021.1385934-1-razor@blackwall.org Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysMerge branch 'net-enetc-sr-iov-improvements-and-enetc-v4-vf-support'Paolo Abeni
Wei Fang says: ==================== net: enetc: SR-IOV improvements and ENETC v4 VF support This series enhances SR-IOV support for ENETC v1 and adds VF support for ENETC v4. For ENETC v1, the trusted VF management and per-VF configuration query via ndo_get_vf_config() are added. For ENETC v4, preliminary VF support is introduced for i.MX94 and i.MX95 platforms. On the PF side, the series introduces trust level management and MAC address assignment for VFs, and implements ndo_get_vf_config() so that userspace tools such as 'ip link show' can query the current per-VF configuration. The PSI-to-VSI messaging infrastructure is extended to handle link status and link speed queries from VFs, enabling DPDK-owned VFs to obtain accurate link information from the PF. On the VF side, MAC address filtering is implemented via the VSI-to-PSI mailbox, supporting both unicast/multicast hash filters and promiscuous mode control. Since the ndo_set_rx_mode callback is invoked with BH disabled and is incompatible with the mailbox polling path, ndo_set_rx_mode_async is used instead. Link status notifications are also supported: the VF registers with the PF and receives PSI-to-VSI messages on every PF link transition, keeping the VF carrier state in sync without polling. VF Function Level Reset is handled explicitly to restore the PF-managed MAC promiscuous policy after each reset, since the hardware default after FLR enables promiscuous mode regardless of the policy set by the PF driver. Several preparatory refactors are included to share infrastructure between the PF and VF drivers, such as moving msg_task and mac_filter from struct enetc_pf into the common struct enetc_si. ==================== Link: https://patch.msgid.link/20260909100733.1139689-1-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: add ndo_get_vf_config() supportWei Fang
Without ndo_get_vf_config(), userspace tools such as 'ip link show' cannot query the current VF configuration from the PF. To support this, extend struct enetc_vf_state to track the per-VF VLAN and spoofchk settings, and update the corresponding setter callbacks to persist their state when the hardware is programmed. enetc_pf_get_vf_config() reads back the persisted state and reports MAC address, VLAN parameters, spoofchk, and trust state through struct ifla_vf_info. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-16-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: add PSI-to-VSI link status notification support for VFWei Fang
Let ENETC v4 VFs track PF link status through the PSI-to-VSI messaging channel. Add two enetc_si_ops hooks, vf_reg_link_status_notifier and vf_unreg_link_status_notifier, populated only in enetc4_vsi_ops; rev1 hardware is unaffected. A dedicated MSI-X vector on the VF handles incoming PSI-to-VSI messages. Its handler schedules a work item on an ordered workqueue that reads the notification via VSIMSGRR, updates the carrier state and sets congestion mode from the PF TX PAUSE state in the message. Reading VSIMSGRR also acknowledges the PF so it can send the next message. The workqueue is set up in enetc_vf_probe() and torn down in enetc_vf_remove(). On a VF, enetc_phylink_connect() registers the notifier with the PF and enetc_close() unregisters it. On registration the PF immediately sends the current link status and then broadcasts every later transition; if registration fails, fall back to the LS1028A behaviour and assert carrier unconditionally. Register the notifier only after the Tx/Rx resources are allocated in enetc_open(), because once registered the PF may queue si->msg_task via a link-up message. An error unwind cannot drain that work item, since enetc_open() and the work item both take the RTNL lock and waiting would deadlock; and as __LINK_STATE_START is set before ndo_open() runs, netif_running() stays true during the unwind, so the queued work could still call netif_carrier_on() and leave carrier 'on' after a failed open. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-15-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: implement ndo_set_rx_mode_async for ENETC v4 VFWei Fang
An ENETC VF sends MAC filter changes to the PF over the VSI mailbox, whose send path may sleep for up to 200ms waiting for completion. Since the legacy ndo_set_rx_mode runs in atomic context, use ndo_set_rx_mode_async instead, which runs from a workqueue under rtnl_lock and receives pre-snapshotted unicast and multicast address lists from the core. Add two helpers built on the VSI mailbox: - enetc_vf_set_mac_promisc() sends a promiscuous mode message for a given filter type (unicast, multicast or both). - enetc_vf_set_mac_hash_filter() sends the 64-bit MAC hash filter table, built from the snapshotted address lists. The callback picks the configuration from the current netdev flags: - IFF_PROMISC: enable promiscuous mode for both unicast and multicast. - IFF_ALLMULTI: enable multicast promiscuous mode, disable unicast promiscuous mode and apply a unicast hash filter. - otherwise: disable promiscuous mode and apply both unicast and multicast hash filters. These requests are subject to the PF-side ENETC_VF_FLAG_TRUSTED check. For an untrusted VF (the default) the PF denies promiscuous mode and unicast hash filtering, so only the multicast hash filter is applied, limited to ENETC_VF_MC_HASH_BITS_MAX buckets. Mark a VF trusted via 'ip link set <pf> vf N trust on' for the full behaviour. Set IFF_UNICAST_FLT for ENETC v4 VFs so the stack does not needlessly fall back to full promiscuous mode; whether a unicast hash filter is actually programmed still depends on the PF trust policy. Since a denied request always fails, map -EOPNOTSUPP, -EACCES and -EPERM to 0 so the core does not retry an operation that can never succeed. ENETC v1 (LS1028A) does not support VF-to-PF MAC filter messaging and keeps using the legacy ndev ops. On VF removal, disable promiscuous mode and clear the MAC filters, so that stale configuration does not persist if the VF is later bound to another driver. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-14-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: add VF support for i.MX94 and i.MX95Wei Fang
Add VF support for the i.MX94 and i.MX95 platforms. Compared to the LS1028A ENETC, the VF device ID is updated to 0xef00, so add it to the VF driver's PCI device ID table. Also add the enetc4 SI ops and VF driver data, and wire up .sriov_configure for the enetc4 PF driver so that VFs can be created and torn down on these SoCs. The number of VFs is not decided by the driver. It is determined by each ENETC instance's SR-IOV hardware capability, reported through the PCI SR-IOV TotalVFs field and configured by the SoC integration and device tree. The driver derives it from pci_sriov_get_totalvfs() in enetc_init_sriov_resources(); an instance that advertises zero VFs simply cannot enable SR-IOV. So there is no driver-side revision or device-ID check bounding the VF count. For reference, the per-instance VF capability on these SoCs is: - i.MX95 (v4.1): each ENETC instance supports 2 VFs. - i.MX94 (v4.3) has two kinds of ENETC: - standalone ENETC, the same instance type as on i.MX95, but on i.MX94 it advertises no VFs; - internal ENETC connected to the CPU port of the NETC switch, which supports 3 VFs. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-13-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: restore VF MAC promiscuous mode after FLR for ENETC v4Wei Fang
On ENETC v4, when VF performs a PCI FLR, it resets PSIPMMR[SIn_MAC_UP] and PSIPMMR[SIn_MAC_MP] bits, which control the unicast and multicast promiscuous mode for the corresponding SI. The reset (default) value of these bits enables promiscuous mode, meaning that after a VF FLR, the SI is left in promiscuous mode regardless of the configuration set by the PF driver prior to the reset. This is a potential security vulnerability: a malicious VM could deliberately trigger a VF FLR to force promiscuous mode on its SI, allowing it to capture network traffic not destined for that VF. To mitigate this, make the following changes: - Add ENETC_VF_FLAG_UC_PROMISC and ENETC_VF_FLAG_MC_PROMISC to enetc_vf_flags to track the PF-managed promiscuous mode state for each VF. - Update enetc_msg_set_vf_mac_promisc_mode() to keep these flags in sync whenever a VF requests a promiscuous mode change via messaging. - Update enetc_pf_set_vf_trust() to clear both promisc flags when a VF is untrusted, so that a subsequent FLR cannot restore promiscuous mode that the PF has already revoked. - Add a vf_flr_handler callback to enetc_pf_ops. The ENETC v4 implementation re-applies the tracked UC/MC promiscuous mode settings to the hardware after each FLR, ensuring the hardware state matches the PF-managed policy rather than the insecure reset default. - Add enetc_vf_flr_handler() in enetc_msg.c to detect FLR events via the PSIIDR register and dispatch to the vf_flr_handler callback. Invoke it at the start of enetc_msg_task() before processing VF messages. - Enable FLR interrupts in PSIIER only when a vf_flr_handler callback is registered, keeping ENETC v1 behavior unchanged. Signed-off-by: Wei Fang <wei.fang@nxp.com> Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-12-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: simplify and rename PSIIER enable/disable helpersWei Fang
The PSIIER register controls two categories of interrupt sources: message-receive (MR) interrupts, which fire when a VF sends a mailbox message to the PSI, and VF FLR interrupts, which fire when a VF performs a Function Level Reset. The current helpers enetc_msg_enable_mr_int() and enetc_msg_disable_mr_int() use a read-modify-write sequence to update only the MR bits in PSIIER, intending to preserve any other bits that may be set. However, VF FLR interrupt support is not yet implemented, so PSIIER only ever holds MR interrupt bits at this point. The read-modify-write is therefore unnecessary overhead. Simplify enetc_disable_psiier_interrupts() to write 0 directly to PSIIER, disabling all interrupt sources at once, and simplify enetc_enable_psiier_interrupts() to write the MR mask directly without reading the current register value first. Rename both helpers from the MR-specific names to names that reflect their true scope, i.e. managing all PSIIER interrupt sources rather than just the MR bits. This prepares the code for a future patch that adds VF FLR interrupt support, at which point enetc_enable_psiier_interrupts() will be extended to also set the corresponding FLR bits. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-11-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: add MAC address filtering support for VFs of ENETC v4Wei Fang
ENETC v4 VF hardware supports MAC address filtering, but the underlying resources (the PSIPMMR register and per-SI hash filter tables) are owned by the PF. Add VSI-to-PSI mailbox messages so a VF can request MAC filter configuration from the PF, using two new command IDs under the existing MAC filter class (0x20): 1. ENETC_MSG_SET_MAC_HASH_TABLE (cmd_id 3): program the unicast and/or multicast MAC hash filter table. Unicast filtering is only allowed for a trusted VF, since it could be used to receive traffic destined for other SIs. Multicast filtering is allowed even for an untrusted VF, but limited to ENETC_VF_MC_HASH_BITS_MAX (8) buckets, enough for basic operation such as IPv6 neighbor discovery and mDNS; a trusted VF may use all 64 buckets. 2. ENETC_MSG_SET_MAC_PROMISC_MODE (cmd_id 5): enable or disable unicast/ multicast promiscuous mode, and optionally flush the hash filter table. Enabling promiscuous mode requires a trusted VF; flushing the table alone does not. The PSIPMMR register is a shared resource accessed by both enetc4_pf_set_rx_mode() and the VF message handler via a non-atomic read-modify-write, so protect these accesses with si->gen_lock to avoid lost updates on SMP. When a VF loses trusted status via ndo_set_vf_trust(), clear its unicast hash filter and disable promiscuous mode so it cannot receive traffic beyond its allowed scope. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-10-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: move mac_filter from struct enetc_pf to struct enetc_siWei Fang
The mac_filter array currently resides in struct enetc_pf and is used to track unicast and multicast MAC address filters for the PF. Since struct enetc_si is the common structure shared between the PF and VF drivers, move mac_filter into struct enetc_si to prepare for MAC filter support in the VF driver. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-9-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: add .ndo_set_vf_mac() to the enetc v4 driverWei Fang
Add .ndo_set_vf_mac() to the enetc v4 driver to configure the MAC addresses of VFs. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-8-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: relocate enetc_pf_set_vf_mac() for common PF supportWei Fang
Move enetc_pf_set_vf_mac() into enetc-pf-common driver as a generic interface for both ENETC v1 and v4 PF driver to use. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-7-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: use enetc_set_si_hw_addr() to set VF MAC addressWei Fang
Prepare for moving enetc_pf_set_vf_mac() into the enetc-pf-common driver by replacing enetc_pf_set_primary_mac_addr() with enetc_set_si_hw_addr(). This makes the VF primary MAC configuration path generic and allows future enetc v4 PF driver to reuse the same interface. Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-6-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: add link speed message support to PF driverWei Fang
When a VF is driven by DPDK, its user space application needs accurate link speed information to make correct forwarding and configuration decisions. Add link speed message support so the PF replies with the current link speed when it receives a get-link-speed message from a VF. Use a new message class 0x81 (ENETC_MSG_CLASS_ID_LINK_SPEED). The PSI-to-VSI message is 16 bits: the high 8 bits are the class ID and the low 8 bits are the speed code, so up to 255 speed values are supported (ENETC_MSG_SPEED_MAX = 0xff). Instead of enumerating every speed above 5Gbps, use a formula so future high speeds need no enum or switch changes: speed_code = (link_speed - 5000) / 1000 + ENETC_MSG_SPEED_5G The speed is read via phylink_ethtool_ksettings_get() rather than the speed passed to the mac_link_up() callback. When the MAC has a PCS layer, mac_link_up() reports the PCS link speed, which may differ from the external PHY link speed; phylink_ethtool_ksettings_get() returns the actual external link speed. Unlike the link status message (class 0x80), the get-link-speed message is only permitted for trusted VFs. Reading the speed requires the PF to take rtnl_lock(), so an untrusted VF spamming this query could cause rtnl_lock contention and starve routine network configuration on the host. An untrusted VF therefore receives a permission-deny response; a VF can be marked trusted via 'ip link set <pf> vf N trust on'. Note that link speed change notification is not supported yet. Signed-off-by: Wei Fang <wei.fang@nxp.com> Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-5-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: add link status message support to PF driverWei Fang
Add a mechanism for VFs to learn the PF link state, using message class 0x80 (ENETC_MSG_CLASS_ID_LINK_STATUS) with three VSI-to-PSI commands: 1. ENETC_MSG_GET_CURRENT_LINK_STATUS: the VF queries the current PF link status synchronously. This is intended for DPDK-owned VFs and is not used by the Linux VF driver. 2. ENETC_MSG_REGISTER_LINK_CHANGE_NOTIFIER: the VF registers for link change notification. The PF then reports the current link status and notifies the VF on every later link change. 3. ENETC_MSG_UNREGISTER_LINK_CHANGE_NOTIFIER: the VF unregisters. The PSI-to-VSI notification is 16 bits wide: the upper 8 bits carry the class ID and the lower 8 bits the class code. Bit 0 of the class code indicates the link state (1 = down, 0 = up) and bit 1 indicates whether TX PAUSE is enabled on the PF. The TX PAUSE state is included so a VF can decide whether to enable congestion mode on its RX BD rings, which only works when the PF can actually send PAUSE frames. Notifications are sent through the ENETC_PSIMSGSR register. Since sending a notification may take a long time, as it polls the per-VF message status bits, the actual transmission is deferred to an ordered workqueue rather than running in the phylink link_up/link_down callbacks. The link_status_ms_mask tracks the VFs registered for notification and is cleared when SR-IOV is disabled. Export enetc_pf_notify_vf_link_up() and enetc_pf_notify_vf_link_down() for the PF phylink callbacks. Through this, VFs can perceive the link status and report it to upper layers such as the kernel network stack, containers and virtual machines. Currently only the ENETC v4 driver supports this feature; v1 does not. And the SR-IOV feature of ENETC v4 will be added by subsequent patches. Signed-off-by: Wei Fang <wei.fang@nxp.com> Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-4-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: move msg_task and msg_int_name to struct enetc_siWei Fang
The ENETC PF currently uses msg_task and msg_int_name in struct enetc_pf to handle VSI-to-PSI mailbox messages via a workqueue and a dedicated interrupt. PSI-to-VSI message support will be added to the VF driver, which will require the same mechanism: a message interrupt and a workqueue handler. Since struct enetc_si is the common structure shared between PF and VF, move msg_task and msg_int_name from struct enetc_pf to struct enetc_si to allow both drivers to use them without duplication. Also relocate the ENETC_INT_NAME_MAX macro definition ahead of struct enetc_si so it can be used for the msg_int_name array declaration. Signed-off-by: Wei Fang <wei.fang@nxp.com> Reviewed-by: Claudiu Manoil <claudiu.manoil@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-3-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysnet: enetc: add trusted VF supportClaudiu Manoil
Some mailbox messages require a higher privilege level to be executed on behalf of the requesting VF. Introduce a trusted VF flag (ENETC_VF_FLAG_TRUSTED) and wire up the ndo_set_vf_trust callback via enetc_pf_set_vf_trust(), which is shared between the enetc and enetc4 PF drivers. Trust is a PF/host-side policy bound to the VF index, decoupled from whether SR-IOV is enabled. It may be set on a slot before SR-IOV is enabled so a trusted VF can apply configuration right at init time, and it is intentionally preserved across an SR-IOV disable/enable cycle. The bounds check uses pf->total_vfs, the hardware maximum and the size of pf->vf_state[], so pre-configuring an uninstantiated slot is in-bounds. If a slot may be reassigned to another guest, the admin clears trust with "ip link set <dev> vf <N> trust off". The first message gated on trust is the VF primary MAC address change. An untrusted VF that attempts to set its own MAC address will receive a ENETC_MSG_CLASS_ID_PERMISSION_DENY response and the hardware will not be programmed. This prevents a malicious VM from setting the VF address to the MAC address of other VFs or the PF and eavesdropping on the traffic of other SIs, and it stops a malicious VM from arbitrarily changing the VF MAC address to achieve MAC address spoofing and bypass security policies. This does not regress VF bring-up. The PF programs a valid primary MAC into every VF slot at probe, and the VF loads it from its own SIPMAR0/1 registers. Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com> Signed-off-by: Wei Fang <wei.fang@nxp.com> Link: https://patch.msgid.link/20260909100733.1139689-2-wei.fang@oss.nxp.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
5 daysALSA: vx: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-24-hemanth.selam@gmail.com
5 daysALSA: trident: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-23-hemanth.selam@gmail.com
5 daysALSA: hdsp: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-22-hemanth.selam@gmail.com
5 daysALSA: rme32: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-21-hemanth.selam@gmail.com
5 daysALSA: riptide: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-20-hemanth.selam@gmail.com
5 daysALSA: pcxhr: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-19-hemanth.selam@gmail.com
5 daysALSA: lx6464es: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-18-hemanth.selam@gmail.com
5 daysALSA: echoaudio: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-17-hemanth.selam@gmail.com
5 daysALSA: cs46xx: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-16-hemanth.selam@gmail.com
5 daysALSA: cs4281: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-15-hemanth.selam@gmail.com
5 daysALSA: aw2: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-14-hemanth.selam@gmail.com
5 daysALSA: au88x0: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-13-hemanth.selam@gmail.com
5 daysALSA: ac97: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-12-hemanth.selam@gmail.com
5 daysALSA: ppc: tumbler: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-11-hemanth.selam@gmail.com
5 daysALSA: hal2: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-10-hemanth.selam@gmail.com
5 daysALSA: opti9xx: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-9-hemanth.selam@gmail.com
5 daysALSA: firewire: bebob: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-8-hemanth.selam@gmail.com
5 daysALSA: emux: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-7-hemanth.selam@gmail.com
5 daysALSA: emu10k1: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-6-hemanth.selam@gmail.com
5 daysALSA: i2c: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-5-hemanth.selam@gmail.com
5 daysALSA: usb-audio: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-4-hemanth.selam@gmail.com
5 daysALSA: hda: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-3-hemanth.selam@gmail.com
5 daysALSA: core: seq: oss: fix typos in commentsHemanth Selam
Correct spelling mistakes in comments. No functional change. Signed-off-by: Hemanth Selam <hemanth.selam@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260915084424.1007757-2-hemanth.selam@gmail.com
5 daysmedia: i2c: og01a1b: power off sensor on removeGuangshuo Li
og01a1b_probe() powers the sensor on explicitly before identifying and initializing it. After a successful probe, runtime PM is enabled and pm_runtime_idle() is used to allow the runtime suspend callback to power the sensor off. The probe error path explicitly calls og01a1b_power_off(), but the normal remove path only disables runtime PM. pm_runtime_disable() does not guarantee that an active device is runtime suspended, so the sensor can remain powered when the driver is removed. This also leaves the xvclk enable performed by og01a1b_power_on() unbalanced. After disabling runtime PM, check whether the device is already suspended. If it is still active, power the sensor off explicitly and update the runtime PM state accordingly. Avoid powering it off again when runtime suspend has already done so. This issue was found by manual code inspection. Fixes: a95ffde28783 ("media: i2c: og01a1b: Add support of xvclk supply clock in power management") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
5 daysmedia: i2c: ar0521: remove duplicate media entity cleanupGuangshuo Li
The error path taken when ar0521_power_on() fails calls media_entity_cleanup() at the disable label and then falls through to the entity_cleanup label, where media_entity_cleanup() is called again. There is no need to clean up the media entity twice. Remove the first call and let all error paths converge on the common entity_cleanup label. This issue was found by manual code inspection. Fixes: 852b50aeed15 ("media: On Semi AR0521 sensor driver") Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
5 daysmedia: i2c: alvium-csi2: balance runtime PM usage count on removeGuangshuo Li
alvium_probe() increments the runtime PM usage count with pm_runtime_get_noresume() before enabling runtime PM. The probe error path correctly balances this reference with pm_runtime_put_noidle(), but the normal remove path only disables runtime PM. pm_runtime_disable() does not decrement the usage count, so a successful probe followed by driver removal leaves the runtime PM usage count unbalanced. Add the missing pm_runtime_put_noidle() to the remove path, matching the existing probe error cleanup. This issue was found by manual code inspection. Fixes: 0a7af872915e ("media: i2c: Add support for alvium camera") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
4 daysmedia: sun6i-csi: bridge: Use V4L2 subdev active stateArash Golgol
Use the V4L2 subdev active state API to store the active format. This simplifies the driver not only by dropping the bridge mbus_format field, but it also allows dropping the bridge lock, replaced with the state lock. Previously, capture accessed bridge private state directly. After moving to framework-managed state, resolve the format through the subdev pad API. The sun6i-csi-bridge hardware does not perform any format conversion. Enforce identical formats on the sink and source pads in the set_fmt() and init_state() callbacks. Signed-off-by: Arash Golgol <arash.golgol@gmail.com> Reviewed-by: Paul Kocialkowski <paulk@sys-base.io> Tested-by: Paul Kocialkowski <paulk@sys-base.io> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
4 daysmedia: sun8i-a83t-mipi-csi2: Use V4L2 subdev active stateArash Golgol
Use the V4L2 subdev active state API to store the active format. This simplifies the driver not only by dropping the bridge mbus_format field, but it also allows dropping the bridge lock, replaced with the state lock. The sun8i-a83t-mipi-csi2 hardware does not perform any format conversion. Enforce identical formats on the sink and source pads in the set_fmt() and init_state() callbacks. Signed-off-by: Arash Golgol <arash.golgol@gmail.com> Reviewed-by: Paul Kocialkowski <paulk@sys-base.io> Tested-by: Paul Kocialkowski <paulk@sys-base.io> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
4 daysmedia: sun6i-mipi-csi2: Use V4L2 subdev active stateArash Golgol
Use the V4L2 subdev active state API to store the active format. This simplifies the driver not only by dropping the bridge mbus_format field, but it also allows dropping the bridge lock, replaced with the state lock. The sun6i-mipi-csi2 hardware does not perform any format conversion. Enforce identical formats on the sink and source pads in the set_fmt() and init_state() callbacks. Signed-off-by: Arash Golgol <arash.golgol@gmail.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Kocialkowski <paulk@sys-base.io> Tested-by: Paul Kocialkowski <paulk@sys-base.io> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
5 daysata: libata-core: Fix the ata_host_register() kdocNiklas Cassel
ata_host_register() does not start the ports of the host, it requires them to have been started already: /* host must have been started */ if (!(host->flags & ATA_HOST_STARTED)) { dev_err(host->dev, "BUG: trying to register unstarted host\n"); WARN_ON(1); return -EINVAL; } Fix the kdoc accordingly, and fix the grammar of the last sentence while at it. Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Link: https://lore.kernel.org/r/20260915084127.692494-14-cassel@kernel.org Signed-off-by: Niklas Cassel <cassel@kernel.org>
5 daysata: libata: Do not leave ata_host_stop() registered when activation failsNiklas Cassel
ata_host_start() registers ata_host_stop() as a devres action as soon as it has succeeded, which hands the release of the host resources over to devres: ->port_stop() and ->host_stop() are then called by the driver core when probe() fails. ata_host_activate() and ahci_host_activate_multi_irqs() can both fail after ata_host_start() has succeeded, e.g. if devm_request_irq() or ata_host_register() fails, and they return the error with the devres action still registered. A driver which releases the host resources in its probe() error path therefore releases them twice: once itself and once through ->host_stop(). All ahci-platform drivers are in that situation, e.g. ahci_probe() calls ahci_platform_disable_resources() while ahci_host_stop() does the same through devres. This gives refcount underflow warnings from the clk, regulator and phy cores and, for shared resources, can disable resources which are still in use by other devices. Add ata_host_undo_start(), which stops the ports and drops the devres action without calling ->host_stop(), and call it from both activation helpers when they fail. Releasing the host resources on failure is then always left to the caller, which is what all callers having a probe() error path already assume. This changes the semantics for the drivers which implement ->host_stop() while also completely lacking error handling for the activate host call. Add activate host error handling for sata_qstor and sata_fsl. For sata_fsl this also means that hcr_base and host_priv are now released when activating the host fails, which ->host_stop() did not do when ata_host_start() itself failed. Note that ata_pci_sff_activate_host() is deliberately left as is: none of its callers releases the host resources in its probe() error path, they all rely on ->host_stop() being called by devres, including ata_pci_init_one(), which releases the devres group of the host itself. Fixes: 1896b15eddb4 ("ahci_platform: perform platform exit in host_stop() hook") Cc: stable@vger.kernel.org Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Link: https://lore.kernel.org/r/20260915084127.692494-13-cassel@kernel.org Signed-off-by: Niklas Cassel <cassel@kernel.org>