Message ID | 1592808805-2437-1-git-send-email-mkshah@codeaurora.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 1a53ce9ab4faeb841b33d62d23283dc76c0e7c5a |
Headers | show |
Series | soc: qcom: rpmh-rsc: Set suppress_bind_attrs flag | expand |
Quoting Maulik Shah (2020-06-21 23:53:25) > rpmh-rsc driver is fairly core to system and should not be removable > once its probed. However it allows to unbind driver from sysfs using > below command which results into a crash on sc7180. What is the crash? The world falls apart because rpmh APIs start referencing pointers that point to freed memory? > > echo 18200000.rsc > /sys/bus/platform/drivers/rpmh/unbind > > Lets prevent unbind at runtime by setting suppress_bind_attrs flag. Ok. But when the Android module brigade comes knocking they'll have to revert this change and solve this problem too. Have fun! > > Signed-off-by: Maulik Shah <mkshah@codeaurora.org> > --- Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Hi, Thanks for the review Stephen. On 6/22/2020 2:33 PM, Stephen Boyd wrote: > Quoting Maulik Shah (2020-06-21 23:53:25) >> rpmh-rsc driver is fairly core to system and should not be removable >> once its probed. However it allows to unbind driver from sysfs using >> below command which results into a crash on sc7180. > What is the crash? The world falls apart because rpmh APIs start > referencing pointers that point to freed memory? Yes. > >> echo 18200000.rsc > /sys/bus/platform/drivers/rpmh/unbind >> >> Lets prevent unbind at runtime by setting suppress_bind_attrs flag. > Ok. But when the Android module brigade comes knocking they'll have to > revert this change and solve this problem too. Have fun! No should not need to revert this change. Even if rpmh-rsc is planned to be loadable module for android, Once loaded it should be disallowed to be removed. same is the case for PDC irqchip as well. these drivers are core to the system and shouldn't be allowed to rmmod/unbind. Thanks, Maulik > >> Signed-off-by: Maulik Shah <mkshah@codeaurora.org> >> --- > Reviewed-by: Stephen Boyd <swboyd@chromium.org>
On Mon 22 Jun 02:03 PDT 2020, Stephen Boyd wrote: > Quoting Maulik Shah (2020-06-21 23:53:25) > > rpmh-rsc driver is fairly core to system and should not be removable > > once its probed. However it allows to unbind driver from sysfs using > > below command which results into a crash on sc7180. > > What is the crash? The world falls apart because rpmh APIs start > referencing pointers that point to freed memory? > Presumably the devm_of_platform_populate() will cause said drivers to be dismantled as well - but I think it's safe to say that that code path isn't well tested... I've applied the patch, but would have preferred that some time was spent to make sure that things are unloadable as well. Regards, Bjorn > > > > echo 18200000.rsc > /sys/bus/platform/drivers/rpmh/unbind > > > > Lets prevent unbind at runtime by setting suppress_bind_attrs flag. > > Ok. But when the Android module brigade comes knocking they'll have to > revert this change and solve this problem too. Have fun! > > > > > Signed-off-by: Maulik Shah <mkshah@codeaurora.org> > > --- > > Reviewed-by: Stephen Boyd <swboyd@chromium.org>
diff --git a/drivers/soc/qcom/rpmh-rsc.c b/drivers/soc/qcom/rpmh-rsc.c index 076fd27..752a561 100644 --- a/drivers/soc/qcom/rpmh-rsc.c +++ b/drivers/soc/qcom/rpmh-rsc.c @@ -1023,6 +1023,7 @@ static struct platform_driver rpmh_driver = { .driver = { .name = "rpmh", .of_match_table = rpmh_drv_match, + .suppress_bind_attrs = true, }, };
rpmh-rsc driver is fairly core to system and should not be removable once its probed. However it allows to unbind driver from sysfs using below command which results into a crash on sc7180. echo 18200000.rsc > /sys/bus/platform/drivers/rpmh/unbind Lets prevent unbind at runtime by setting suppress_bind_attrs flag. Signed-off-by: Maulik Shah <mkshah@codeaurora.org> --- drivers/soc/qcom/rpmh-rsc.c | 1 + 1 file changed, 1 insertion(+)