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.
Thanks, Enric
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;
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;
Hi Lee,
On 11/12/18 7:12, Lee Jones wrote:
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.
Ok.
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?
I think you have in mind this patch [1], right? Note that in this patch we're using devm_* for cros_ec driver, _not_ cros_ec_dev driver which is different. For the cros_ec_dev driver we need to take care with device managed allocations as explained in the last fix merged [2]. For the cros_ec_dev I was trying to no mix device managed allocations with non-device managed allocations, and as we can't use devm_kzalloc in this case, I thought that was worth use the mfd_add/mfd_remove functions like is now. Makes sense? What are your thoughts here?
Thanks, Enric
[1] https://lkml.org/lkml/2018/11/27/881 [2] https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git/commit/?h=for-mf...
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;
On Tue, 11 Dec 2018, Enric Balletbo i Serra wrote:
Hi Lee,
On 11/12/18 7:12, Lee Jones wrote:
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.
Ok.
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?
I think you have in mind this patch [1], right? Note that in this patch we're using devm_* for cros_ec driver, _not_ cros_ec_dev driver which is different.
Ah yes, that was it.
For the cros_ec_dev driver we need to take care with device managed allocations as explained in the last fix merged [2]. For the cros_ec_dev I was trying to no mix device managed allocations with non-device managed allocations, and as we can't use devm_kzalloc in this case, I thought that was worth use the mfd_add/mfd_remove functions like is now. Makes sense? What are your thoughts here?
The patch is fine then.
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.
Thanks, Enric
drivers/mfd/cros_ec_dev.c | 1 + 1 file changed, 1 insertion(+)
Applied, thanks.
linux-stable-mirror@lists.linaro.org