diff options
Diffstat (limited to 'drivers/dma/idxd/cdev.c')
| -rw-r--r-- | drivers/dma/idxd/cdev.c | 4 | 
1 files changed, 2 insertions, 2 deletions
| diff --git a/drivers/dma/idxd/cdev.c b/drivers/dma/idxd/cdev.c index 1d7347825b95..df47be612ebb 100644 --- a/drivers/dma/idxd/cdev.c +++ b/drivers/dma/idxd/cdev.c @@ -204,6 +204,7 @@ static int idxd_wq_cdev_dev_setup(struct idxd_wq *wq)  	minor = ida_simple_get(&cdev_ctx->minor_ida, 0, MINORMASK, GFP_KERNEL);  	if (minor < 0) {  		rc = minor; +		kfree(dev);  		goto ida_err;  	} @@ -212,7 +213,6 @@ static int idxd_wq_cdev_dev_setup(struct idxd_wq *wq)  	rc = device_register(dev);  	if (rc < 0) {  		dev_err(&idxd->pdev->dev, "device register failed\n"); -		put_device(dev);  		goto dev_reg_err;  	}  	idxd_cdev->minor = minor; @@ -221,8 +221,8 @@ static int idxd_wq_cdev_dev_setup(struct idxd_wq *wq)   dev_reg_err:  	ida_simple_remove(&cdev_ctx->minor_ida, MINOR(dev->devt)); +	put_device(dev);   ida_err: -	kfree(dev);  	idxd_cdev->dev = NULL;  	return rc;  } |