projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
195967c
)
dmaengine: idxd: fix off by one on cdev dwq refcount
author
Dave Jiang
<dave.jiang@intel.com>
Thu, 12 Mar 2020 16:23:53 +0000
(09:23 -0700)
committer
Vinod Koul
<vkoul@kernel.org>
Mon, 23 Mar 2020 06:02:06 +0000
(11:32 +0530)
The refcount check for dedicated workqueue (dwq) is off by one and allows
more than 1 user to open the char device. Fix check so only a single user
can open the device.
Fixes: 42d279f9137a ("dmaengine: idxd: add char driver to expose submission portal to userland")
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link:
https://lore.kernel.org/r/158403020187.10208.14117394394540710774.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/idxd/cdev.c
patch
|
blob
|
history
diff --git
a/drivers/dma/idxd/cdev.c
b/drivers/dma/idxd/cdev.c
index df47be612ebb09f5b7c25fb1abb6767be190c093..989b7a25ca6144d34df05e6ab92fda3089812096 100644
(file)
--- a/
drivers/dma/idxd/cdev.c
+++ b/
drivers/dma/idxd/cdev.c
@@
-81,9
+81,9
@@
static int idxd_cdev_open(struct inode *inode, struct file *filp)
dev = &idxd->pdev->dev;
idxd_cdev = &wq->idxd_cdev;
- dev_dbg(dev, "%s called
\n", __func__
);
+ dev_dbg(dev, "%s called
: %d\n", __func__, idxd_wq_refcount(wq)
);
- if (idxd_wq_refcount(wq) >
1
&& wq_dedicated(wq))
+ if (idxd_wq_refcount(wq) >
0
&& wq_dedicated(wq))
return -EBUSY;
ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);