[PATCH net v6 0/4] net: phy: dp83640: fix shared clock lifetime and probe error cleanup
Xuanqiang Luo <[email protected]>
| Newsgroups | org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
From: Xuanqiang Luo <[email protected]> The DP83640 driver shares one PTP clock between all PHYs on the same MII bus. Its driver-local clock lookup and removal scheme can leak the shared clock on probe failure or free it while another probe is acquiring it. This series moves the shared clock to the PHY package infrastructure. Patch 1 adds PHY package locking helpers. Patch 2 embeds the pin configuration in the shared clock. Patch 3 clears per-PHY state when PTP clock registration fails. Patch 4 fixes the shared clock lifetime using the PHY package infrastructure. --- Changes: v6: Patch 4: - Correct the author and Signed-off-by email address. - Add Reviewed-by tag. (Andrew Lunn.) v5: https://lore.kernel.org/all/[email protected]/ Patch 1 ~ 3: - Add Reviewed-by tags. (Andrew Lunn.) Patch 4: - Replace devm_phy_package_join() with explicit phy_package_join() and phy_package_leave(). (Andrew Lunn.) v4: https://lore.kernel.org/all/[email protected]/ Patch 1 (new): - Add PHY package locking helpers for shared package data. (Andrew Lunn.) Patch 2 (new): - Split the pin configuration storage change into a separate patch and clarify that the pin functions remain configurable at runtime. (Andrew Lunn.) - Clarify the locking comments for pin_config. (Sashiko.) Patch 3 (new): - Split the PTP registration failure cleanup into a separate patch. Patch 4: - Use the PHY package locking helpers instead of accessing the MII bus shared lock directly. (Andrew Lunn.) - Adapt the lifetime fix to the preparatory changes split into separate patches. (Andrew Lunn.) v3: https://lore.kernel.org/all/[email protected]/ - Drop the Suggested-by tag. (Jakub Kicinski.) - Set err to -ENOMEM on the kzalloc_obj() failure path. (Sashiko.) - Let devres handle cleanup on driver detach instead of explicitly releasing the action from .remove(). (Jakub Kicinski.) v2: https://lore.kernel.org/all/[email protected]/ - Replace the driver-local clock list and kref with the PHY package API. (Jakub Kicinski.) - Use devres to avoid leaking the new package reference on later PHY core initialization failures. - Embed the pin configuration in the package private data to simplify lifetime management. v1: https://lore.kernel.org/all/[email protected]/ Xuanqiang Luo (4): net: phy: add PHY package locking helpers net: phy: dp83640: embed pin configuration in clock net: phy: dp83640: clear state after PTP registration failure net: phy: dp83640: fix per-bus clock lifetime drivers/net/phy/dp83640.c | 131 +++++++++------------------------- drivers/net/phy/phy_package.c | 23 ++++++ drivers/net/phy/phylib.h | 2 + drivers/ptp/Kconfig | 1 + 4 files changed, 61 insertions(+), 96 deletions(-) -- 2.43.0