Loading drivers/usb/misc/rio500.c +15 −2 Original line number Diff line number Diff line Loading @@ -86,9 +86,22 @@ static int close_rio(struct inode *inode, struct file *file) { struct rio_usb_data *rio = &rio_instance; rio->isopen = 0; /* against disconnect() */ mutex_lock(&rio500_mutex); mutex_lock(&(rio->lock)); rio->isopen = 0; if (!rio->present) { /* cleanup has been delayed */ kfree(rio->ibuf); kfree(rio->obuf); rio->ibuf = NULL; rio->obuf = NULL; } else { dev_info(&rio->rio_dev->dev, "Rio closed.\n"); } mutex_unlock(&(rio->lock)); mutex_unlock(&rio500_mutex); return 0; } Loading Loading
drivers/usb/misc/rio500.c +15 −2 Original line number Diff line number Diff line Loading @@ -86,9 +86,22 @@ static int close_rio(struct inode *inode, struct file *file) { struct rio_usb_data *rio = &rio_instance; rio->isopen = 0; /* against disconnect() */ mutex_lock(&rio500_mutex); mutex_lock(&(rio->lock)); rio->isopen = 0; if (!rio->present) { /* cleanup has been delayed */ kfree(rio->ibuf); kfree(rio->obuf); rio->ibuf = NULL; rio->obuf = NULL; } else { dev_info(&rio->rio_dev->dev, "Rio closed.\n"); } mutex_unlock(&(rio->lock)); mutex_unlock(&rio500_mutex); return 0; } Loading