Message ID | 20250117-qcom-ice-fix-dev-leak-v2-0-1ffa5b6884cb@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | soc: qcom: ice: fix dev reference leaked through of_qcom_ice_get | expand |
On Fri, Jan 17, 2025 at 02:18:49PM +0000, Tudor Ambarus wrote: > Hi! > > Recently I've been pointed to this driver for an example on how consumers > can get a pointer to the supplier's driver data and I noticed a leak. > > Callers of of_qcom_ice_get() leak the device reference taken by > of_find_device_by_node(). Introduce devm_of_qcom_ice_get(). > Exporting qcom_ice_put() is not done intentionally as the consumers need > the ICE intance for the entire life of their device. Update the consumers > to use the devm variant and make of_qcom_ice_get() static afterwards. > > This set touches mmc and scsi subsystems. Since the fix is trivial for > them, I'd suggest taking everything through the SoC tree with Acked-by > tags if people consider this fine. Note that the mmc and scsi patches > depend on the first patch that introduces devm_of_qcom_ice_get(). > > Thanks! > > Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> - Mani > --- > Changes in v2: > - add kernel doc for newly introduced devm_of_qcom_ice_get(). > - update cover letter and commit message of first patch. > - collect R-b and A-b tags. > - Link to v1: https://lore.kernel.org/r/20250116-qcom-ice-fix-dev-leak-v1-0-84d937683790@linaro.org > > --- > Tudor Ambarus (4): > soc: qcom: ice: introduce devm_of_qcom_ice_get > mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get > scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get > soc: qcom: ice: make of_qcom_ice_get() static > > drivers/mmc/host/sdhci-msm.c | 2 +- > drivers/soc/qcom/ice.c | 51 ++++++++++++++++++++++++++++++++++++++++++-- > drivers/ufs/host/ufs-qcom.c | 2 +- > include/soc/qcom/ice.h | 3 ++- > 4 files changed, 53 insertions(+), 5 deletions(-) > --- > base-commit: b323d8e7bc03d27dec646bfdccb7d1a92411f189 > change-id: 20250110-qcom-ice-fix-dev-leak-bbff59a964fb > > Best regards, > -- > Tudor Ambarus <tudor.ambarus@linaro.org> >
Hi! Recently I've been pointed to this driver for an example on how consumers can get a pointer to the supplier's driver data and I noticed a leak. Callers of of_qcom_ice_get() leak the device reference taken by of_find_device_by_node(). Introduce devm_of_qcom_ice_get(). Exporting qcom_ice_put() is not done intentionally as the consumers need the ICE intance for the entire life of their device. Update the consumers to use the devm variant and make of_qcom_ice_get() static afterwards. This set touches mmc and scsi subsystems. Since the fix is trivial for them, I'd suggest taking everything through the SoC tree with Acked-by tags if people consider this fine. Note that the mmc and scsi patches depend on the first patch that introduces devm_of_qcom_ice_get(). Thanks! Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org> --- Changes in v2: - add kernel doc for newly introduced devm_of_qcom_ice_get(). - update cover letter and commit message of first patch. - collect R-b and A-b tags. - Link to v1: https://lore.kernel.org/r/20250116-qcom-ice-fix-dev-leak-v1-0-84d937683790@linaro.org --- Tudor Ambarus (4): soc: qcom: ice: introduce devm_of_qcom_ice_get mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get soc: qcom: ice: make of_qcom_ice_get() static drivers/mmc/host/sdhci-msm.c | 2 +- drivers/soc/qcom/ice.c | 51 ++++++++++++++++++++++++++++++++++++++++++-- drivers/ufs/host/ufs-qcom.c | 2 +- include/soc/qcom/ice.h | 3 ++- 4 files changed, 53 insertions(+), 5 deletions(-) --- base-commit: b323d8e7bc03d27dec646bfdccb7d1a92411f189 change-id: 20250110-qcom-ice-fix-dev-leak-bbff59a964fb Best regards,