Re: [PATCH] spmi: Add check for remove callback in spmi_drv_remove API

From: Jishnu Prakash
Date: Wed Dec 21 2022 - 00:39:39 EST


Hi Greg

On 12/13/2022 8:39 PM, Greg KH wrote:
On Tue, Dec 13, 2022 at 07:12:10PM +0530, Jishnu Prakash wrote:
Hi Greg

Hi, please do not top-post :(

These are two SPMI drivers without remove callbacks defined:

drivers/mfd/qcom-spmi-pmic.c
drivers/mfd/hi6421-spmi-pmic.c

Great, they should be fixed up now, right?


Our QCOM SPMI PMIC driver allocates resources in its probe using only devm_() APIs and does not require any other cleanup. It doesn't seem right to add an empty remove callback to it just to avoid this crash, it
seems the better solution architecturally is to call the remove function only if it's defined.

In addition, I could see that other buses like PCI and AMBA do check for the remove API being defined for their drivers before calling it:

AMBA example: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/amba/bus.c#n328

PCI example: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/pci/pci-driver.c#n474


We made this change after noticing an issue internally with the first one
above, there was a crash when trying to remove it with rmmod, which is fixed
by this change.

Then please say that in the changelog text, otherwise we have no idea
_why_ this is needed. All you said was "add this new check _IF_" and we
have no idea what the answer to "if" is :(


I have uploaded the change with an updated title and commit text, can you please have a look?

thanks,

greg k-h
Thanks,
Jishnu