Message ID | 20210408112305.1022247-1-yebin10@huawei.com |
---|---|
State | New |
Headers | show |
Series | [-next,v2] usbip: vudc: fix missing unlock on error in usbip_sockfd_store() | expand |
On Thu, Apr 08, 2021 at 07:23:05PM +0800, Ye Bin wrote: > Add the missing unlock before return from function usbip_sockfd_store() > in the error handling case. > > Fixes: bd8b82042269 ("usbip: vudc synchronize sysfs code paths") > Reported-by: Hulk Robot <hulkci@huawei.com> > Signed-off-by: Ye Bin <yebin10@huawei.com> > --- > drivers/usb/usbip/vudc_sysfs.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/usb/usbip/vudc_sysfs.c b/drivers/usb/usbip/vudc_sysfs.c > index f7633ee655a1..d1cf6b51bf85 100644 > --- a/drivers/usb/usbip/vudc_sysfs.c > +++ b/drivers/usb/usbip/vudc_sysfs.c > @@ -156,12 +156,14 @@ static ssize_t usbip_sockfd_store(struct device *dev, > tcp_rx = kthread_create(&v_rx_loop, &udc->ud, "vudc_rx"); > if (IS_ERR(tcp_rx)) { > sockfd_put(socket); > + mutex_unlock(&udc->ud.sysfs_lock); > return -EINVAL; > } > tcp_tx = kthread_create(&v_tx_loop, &udc->ud, "vudc_tx"); > if (IS_ERR(tcp_tx)) { > kthread_stop(tcp_rx); > sockfd_put(socket); > + mutex_unlock(&udc->ud.sysfs_lock); > return -EINVAL; > } > > -- > 2.25.4 > This breaks the build, are you sure you tested it???
Sorry. I build kernel image with follow config and commit base on linux-next: commit:e99d8a849517 config: make allmodconfig I can build kernel image without errors. So, what build error did you encounter? On 2021/4/9 22:04, Greg KH wrote: > On Thu, Apr 08, 2021 at 07:23:05PM +0800, Ye Bin wrote: >> Add the missing unlock before return from function usbip_sockfd_store() >> in the error handling case. >> >> Fixes: bd8b82042269 ("usbip: vudc synchronize sysfs code paths") >> Reported-by: Hulk Robot <hulkci@huawei.com> >> Signed-off-by: Ye Bin <yebin10@huawei.com> >> --- >> drivers/usb/usbip/vudc_sysfs.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/usb/usbip/vudc_sysfs.c b/drivers/usb/usbip/vudc_sysfs.c >> index f7633ee655a1..d1cf6b51bf85 100644 >> --- a/drivers/usb/usbip/vudc_sysfs.c >> +++ b/drivers/usb/usbip/vudc_sysfs.c >> @@ -156,12 +156,14 @@ static ssize_t usbip_sockfd_store(struct device *dev, >> tcp_rx = kthread_create(&v_rx_loop, &udc->ud, "vudc_rx"); >> if (IS_ERR(tcp_rx)) { >> sockfd_put(socket); >> + mutex_unlock(&udc->ud.sysfs_lock); >> return -EINVAL; >> } >> tcp_tx = kthread_create(&v_tx_loop, &udc->ud, "vudc_tx"); >> if (IS_ERR(tcp_tx)) { >> kthread_stop(tcp_rx); >> sockfd_put(socket); >> + mutex_unlock(&udc->ud.sysfs_lock); >> return -EINVAL; >> } >> >> -- >> 2.25.4 >> > This breaks the build, are you sure you tested it??? > > . >
On Mon, Apr 12, 2021 at 03:00:03PM +0800, yebin wrote: > Sorry. I build kernel image with follow config and commit base on > linux-next: > commit:e99d8a849517 > config: make allmodconfig > I can build kernel image without errors. So, what build error did you > encounter? Ah, I missed that this was only in my usb-linus branch, which is now in Linus's tree, so I can take this, sorry for the noise... greg k-h
diff --git a/drivers/usb/usbip/vudc_sysfs.c b/drivers/usb/usbip/vudc_sysfs.c index f7633ee655a1..d1cf6b51bf85 100644 --- a/drivers/usb/usbip/vudc_sysfs.c +++ b/drivers/usb/usbip/vudc_sysfs.c @@ -156,12 +156,14 @@ static ssize_t usbip_sockfd_store(struct device *dev, tcp_rx = kthread_create(&v_rx_loop, &udc->ud, "vudc_rx"); if (IS_ERR(tcp_rx)) { sockfd_put(socket); + mutex_unlock(&udc->ud.sysfs_lock); return -EINVAL; } tcp_tx = kthread_create(&v_tx_loop, &udc->ud, "vudc_tx"); if (IS_ERR(tcp_tx)) { kthread_stop(tcp_rx); sockfd_put(socket); + mutex_unlock(&udc->ud.sysfs_lock); return -EINVAL; }
Add the missing unlock before return from function usbip_sockfd_store() in the error handling case. Fixes: bd8b82042269 ("usbip: vudc synchronize sysfs code paths") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Ye Bin <yebin10@huawei.com> --- drivers/usb/usbip/vudc_sysfs.c | 2 ++ 1 file changed, 2 insertions(+)