usb: configfs: synchronize the secure and udc_name state
The gadget driver unregister/probe is not allowed to reentry for the same udc. As the conditions for gadget driver unregister/probe entry, gadget secure and udc_name status should be synchronized. Otherwise, in old implement code logic, there is still a chance to fall into trouble of gadget driver unregister/probe reentry for the same udc. Change-Id: I6eb30a36eab84afd656f5bee9678e8d44933c6bc Signed-off-by: Yonghua Yan <yanyh2@motorola.com> Reviewed-on: https://gerrit.mot.com/1287442 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Yuecai Liu <liuyc20@motorola.com> Reviewed-by: Jianqi Yang <yangj@motorola.com> Submit-Approved: Jira Key Reviewed-on: https://gerrit.mot.com/1338870 Reviewed-by: Huosheng Liao <liaohs@motorola.com> Reviewed-on: https://gerrit.mot.com/1449122 Reviewed-on: https://gerrit.mot.com/1511640 Reviewed-by: Zonghua Liu <a17671@motorola.com> Reviewed-by: Wang Wang <wangwang1@lenovo.com>
This commit is contained in:
1 parent
a4fd173df1
commit
a3db809d7c
1 file changed
+6
-2
@@ -1791,15 +1791,19 @@ static ssize_t secure_store(struct device *pdev, struct device_attribute *attr,
|
||||
mode = !!mode;
|
||||
if (mode == gi->secure)
|
||||
return count;
|
||||
|
||||
mutex_lock(&gi->lock);
|
||||
|
||||
gi->secure = mode;
|
||||
|
||||
if (!gi->composite.gadget_driver.udc_name)
|
||||
if (!gi->composite.gadget_driver.udc_name) {
|
||||
mutex_unlock(&gi->lock);
|
||||
return count;
|
||||
}
|
||||
pr_debug("Secure Store , UDC = %s, secure = %d\n",
|
||||
gi->composite.gadget_driver.udc_name,
|
||||
gi->secure);
|
||||
|
||||
mutex_lock(&gi->lock);
|
||||
if (gi->secure) {
|
||||
ret = usb_gadget_unregister_driver(
|
||||
&gi->composite.gadget_driver);
|
||||
|
||||
Reference in new issue
Block a user