| From 996f6bacb5695070e1a581df0983adeeaa1e4336 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 22 Mar 2021 16:37:29 -0700 |
| Subject: dmaengine: idxd: fix opcap sysfs attribute output |
| |
| From: Dave Jiang <dave.jiang@intel.com> |
| |
| [ Upstream commit ea6a5735d2a61b938a302eb3629272342a9e7c46 ] |
| |
| The operation capability register is 256bits. The current output only |
| prints out the first 64bits. Fix to output the entire 256bits. The current |
| code omits operation caps from IAX devices. |
| |
| Fixes: c52ca478233c ("dmaengine: idxd: add configuration component of driver") |
| Reported-by: Lucas Van <lucas.van@intel.com> |
| Signed-off-by: Dave Jiang <dave.jiang@intel.com> |
| Link: https://lore.kernel.org/r/161645624963.2003736.829798666998490151.stgit@djiang5-desk3.ch.intel.com |
| Signed-off-by: Vinod Koul <vkoul@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/dma/idxd/sysfs.c | 8 +++++++- |
| 1 file changed, 7 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/dma/idxd/sysfs.c b/drivers/dma/idxd/sysfs.c |
| index fb97c9f319a5..b3ab86ced355 100644 |
| --- a/drivers/dma/idxd/sysfs.c |
| +++ b/drivers/dma/idxd/sysfs.c |
| @@ -1259,8 +1259,14 @@ static ssize_t op_cap_show(struct device *dev, |
| { |
| struct idxd_device *idxd = |
| container_of(dev, struct idxd_device, conf_dev); |
| + int i, rc = 0; |
| + |
| + for (i = 0; i < 4; i++) |
| + rc += sysfs_emit_at(buf, rc, "%#llx ", idxd->hw.opcap.bits[i]); |
| |
| - return sprintf(buf, "%#llx\n", idxd->hw.opcap.bits[0]); |
| + rc--; |
| + rc += sysfs_emit_at(buf, rc, "\n"); |
| + return rc; |
| } |
| static DEVICE_ATTR_RO(op_cap); |
| |
| -- |
| 2.30.2 |
| |