On Mon, 10 Dec 2018, Enric Balletbo i Serra wrote:
The driver adds different MFD child devices via mfd_add_devices() and hence it is required to call mfd_remove_devices() to remove MFD child devices.
Fixes: 5e0115581bbc ("cros_ec: Move cros_ec_dev module to drivers/mfd") Cc: stable@vger.kernel.org Signed-off-by: Enric Balletbo i Serra enric.balletbo@collabora.com
Hi Lee,
I saw that you send a mfd-fixes pull request this morning, so sorry in advance for sending this too late. This was broken since the driver moved from platform/chrome to mfd (and probably before that), so it's an old problem. Note that I plan to send a patch series that depends on this to apply cleanly. If the patch is fine with you and there is any possibility to go in this version that will be good, if not, let me know if you prefer queue this in your for-next branch or if you prefer I include the patch on the series I plan to send on top of it to not mess things.
It wouldn't have made the v4.20-rcs anyway. Even if you did send it earlier. I only send fixes to that -rcs which fix issues introduced during the current release cycle.
If memory serves, doesn't this driver now (or will in the very near future) use devm_* for device creation? That would make this patch either incorrect (should be devm_mfd_remove_devices() if really required) or moot?
drivers/mfd/cros_ec_dev.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c index b99a194ce5a4..2d0fee488c5a 100644 --- a/drivers/mfd/cros_ec_dev.c +++ b/drivers/mfd/cros_ec_dev.c @@ -499,6 +499,7 @@ static int ec_device_remove(struct platform_device *pdev) cros_ec_debugfs_remove(ec);
- mfd_remove_devices(ec->dev); cdev_del(&ec->cdev); device_unregister(&ec->class_dev); return 0;