Messages in this thread Patch in this message | | | From | Michael Thalmeier <> | Subject | [PATCH] usb: chipidea: core: check before accessing ci_role in ci_role_show | Date | Fri, 19 May 2017 10:32:09 +0200 |
| |
ci_role BUGs when the role is >= CI_ROLE_END. This is the case while the role is changing.
Signed-off-by: Michael Thalmeier <michael.thalmeier@hale.at> --- drivers/usb/chipidea/core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c index 9e217b1..fe4fe24 100644 --- a/drivers/usb/chipidea/core.c +++ b/drivers/usb/chipidea/core.c @@ -843,7 +843,10 @@ static ssize_t ci_role_show(struct device *dev, struct device_attribute *attr, { struct ci_hdrc *ci = dev_get_drvdata(dev); - return sprintf(buf, "%s\n", ci_role(ci)->name); + if (ci->role != CI_ROLE_END) + return sprintf(buf, "%s\n", ci_role(ci)->name); + + return 0; } static ssize_t ci_role_store(struct device *dev, -- 2.9.2
| |