dmaengine: idxd: convert ats_dis to a wq flag
authorDave Jiang <dave.jiang@intel.com>
Sat, 17 Sep 2022 16:12:18 +0000 (09:12 -0700)
committerVinod Koul <vkoul@kernel.org>
Thu, 29 Sep 2022 17:16:08 +0000 (22:46 +0530)
Make wq attributes access consistent. Convert ats_dis to wq flag
WQ_FLAG_ATS_DISABLE.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Co-developed-by: Fenghua Yu <fenghua.yu@intel.com>
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Link: https://lore.kernel.org/r/20220917161222.2835172-2-fenghua.yu@intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/idxd/device.c
drivers/dma/idxd/idxd.h
drivers/dma/idxd/sysfs.c

index f0c7d6d..88986db 100644 (file)
@@ -384,10 +384,10 @@ static void idxd_wq_disable_cleanup(struct idxd_wq *wq)
        wq->type = IDXD_WQT_NONE;
        wq->threshold = 0;
        wq->priority = 0;
-       wq->ats_dis = 0;
        wq->enqcmds_retries = IDXD_ENQCMDS_RETRIES;
        clear_bit(WQ_FLAG_DEDICATED, &wq->flags);
        clear_bit(WQ_FLAG_BLOCK_ON_FAULT, &wq->flags);
+       clear_bit(WQ_FLAG_ATS_DISABLE, &wq->flags);
        memset(wq->name, 0, WQ_NAME_SIZE);
        wq->max_xfer_bytes = WQ_DEFAULT_MAX_XFER;
        wq->max_batch_size = WQ_DEFAULT_MAX_BATCH;
@@ -861,7 +861,7 @@ static int idxd_wq_config_write(struct idxd_wq *wq)
                wq->wqcfg->bof = 1;
 
        if (idxd->hw.wq_cap.wq_ats_support)
-               wq->wqcfg->wq_ats_disable = wq->ats_dis;
+               wq->wqcfg->wq_ats_disable = test_bit(WQ_FLAG_ATS_DISABLE, &wq->flags);
 
        /* bytes 12-15 */
        wq->wqcfg->max_xfer_shift = ilog2(wq->max_xfer_bytes);
index f527a7f..4e7e212 100644 (file)
@@ -133,6 +133,7 @@ enum idxd_wq_state {
 enum idxd_wq_flag {
        WQ_FLAG_DEDICATED = 0,
        WQ_FLAG_BLOCK_ON_FAULT,
+       WQ_FLAG_ATS_DISABLE,
 };
 
 enum idxd_wq_type {
@@ -209,7 +210,6 @@ struct idxd_wq {
        char name[WQ_NAME_SIZE + 1];
        u64 max_xfer_bytes;
        u32 max_batch_size;
-       bool ats_dis;
 };
 
 struct idxd_engine {
index 3325b16..8ff599e 100644 (file)
@@ -973,7 +973,7 @@ static ssize_t wq_ats_disable_show(struct device *dev, struct device_attribute *
 {
        struct idxd_wq *wq = confdev_to_wq(dev);
 
-       return sysfs_emit(buf, "%u\n", wq->ats_dis);
+       return sysfs_emit(buf, "%u\n", test_bit(WQ_FLAG_ATS_DISABLE, &wq->flags));
 }
 
 static ssize_t wq_ats_disable_store(struct device *dev, struct device_attribute *attr,
@@ -994,7 +994,10 @@ static ssize_t wq_ats_disable_store(struct device *dev, struct device_attribute
        if (rc < 0)
                return rc;
 
-       wq->ats_dis = ats_dis;
+       if (ats_dis)
+               set_bit(WQ_FLAG_ATS_DISABLE, &wq->flags);
+       else
+               clear_bit(WQ_FLAG_ATS_DISABLE, &wq->flags);
 
        return count;
 }