提交 f02b089e 编写于 作者: T Tingwei Zhang 提交者: Greg Kroah-Hartman

coresight: cti: Increase reference count when enabling cti

CTI device is enabled when associated coresight device is enabled.
Increase the module and device reference count for CTI device
when it's enabled. This can prevent CTI device be removed or
module be unloaded when CTI device is enabled by an active trace
session.
Signed-off-by: NMike Leach <mike.leach@linaro.org>
Signed-off-by: NTingwei Zhang <tingwei@codeaurora.org>
Signed-off-by: NMathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20200928163513.70169-21-mathieu.poirier@linaro.orgSigned-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 f2ccc7b7
...@@ -241,19 +241,30 @@ coresight_control_assoc_ectdev(struct coresight_device *csdev, bool enable) ...@@ -241,19 +241,30 @@ coresight_control_assoc_ectdev(struct coresight_device *csdev, bool enable)
{ {
int ect_ret = 0; int ect_ret = 0;
struct coresight_device *ect_csdev = csdev->ect_dev; struct coresight_device *ect_csdev = csdev->ect_dev;
struct module *mod;
if (!ect_csdev) if (!ect_csdev)
return 0; return 0;
if ((!ect_ops(ect_csdev)->enable) || (!ect_ops(ect_csdev)->disable)) if ((!ect_ops(ect_csdev)->enable) || (!ect_ops(ect_csdev)->disable))
return 0; return 0;
mod = ect_csdev->dev.parent->driver->owner;
if (enable) { if (enable) {
ect_ret = ect_ops(ect_csdev)->enable(ect_csdev); if (try_module_get(mod)) {
if (!ect_ret) ect_ret = ect_ops(ect_csdev)->enable(ect_csdev);
csdev->ect_enabled = true; if (ect_ret) {
module_put(mod);
} else {
get_device(ect_csdev->dev.parent);
csdev->ect_enabled = true;
}
} else
ect_ret = -ENODEV;
} else { } else {
if (csdev->ect_enabled) { if (csdev->ect_enabled) {
ect_ret = ect_ops(ect_csdev)->disable(ect_csdev); ect_ret = ect_ops(ect_csdev)->disable(ect_csdev);
put_device(ect_csdev->dev.parent);
module_put(mod);
csdev->ect_enabled = false; csdev->ect_enabled = false;
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册