The purpose of barrier() is to prevent reordering by the compiler.
Since the compiler does not reorder calls to non-pure functions,
remove the barrier() calls from skd_reg_{read,write}{32,64}().

Since pr_debug() is able to report file name and line number
information, remove __FILE__ and __LINE__ from the pr_debug() calls.

Signed-off-by: Bart Van Assche <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Hannes Reinecke <[email protected]>
Cc: Johannes Thumshirn <[email protected]>
---
 drivers/block/skd_main.c | 42 ++++++++++--------------------------------
 1 file changed, 10 insertions(+), 32 deletions(-)

diff --git a/drivers/block/skd_main.c b/drivers/block/skd_main.c
index 53c84c846a5e..54c6711a42d1 100644
--- a/drivers/block/skd_main.c
+++ b/drivers/block/skd_main.c
@@ -341,49 +341,27 @@ struct skd_device {
 
 static inline u32 skd_reg_read32(struct skd_device *skdev, u32 offset)
 {
-       u32 val;
-
-       if (likely(skdev->dbg_level < 2))
-               return readl(skdev->mem_map[1] + offset);
-       else {
-               barrier();
-               val = readl(skdev->mem_map[1] + offset);
-               barrier();
-               pr_debug("%s:%s:%d offset %x = %x\n",
-                        skdev->name, __func__, __LINE__, offset, val);
-               return val;
-       }
+       u32 val = readl(skdev->mem_map[1] + offset);
 
+       if (unlikely(skdev->dbg_level >= 2))
+               pr_debug("%s offset %x = %x\n", skdev->name, offset, val);
+       return val;
 }
 
 static inline void skd_reg_write32(struct skd_device *skdev, u32 val,
                                   u32 offset)
 {
-       if (likely(skdev->dbg_level < 2)) {
-               writel(val, skdev->mem_map[1] + offset);
-               barrier();
-       } else {
-               barrier();
-               writel(val, skdev->mem_map[1] + offset);
-               barrier();
-               pr_debug("%s:%s:%d offset %x = %x\n",
-                        skdev->name, __func__, __LINE__, offset, val);
-       }
+       writel(val, skdev->mem_map[1] + offset);
+       if (unlikely(skdev->dbg_level >= 2))
+               pr_debug("%s offset %x = %x\n", skdev->name, offset, val);
 }
 
 static inline void skd_reg_write64(struct skd_device *skdev, u64 val,
                                   u32 offset)
 {
-       if (likely(skdev->dbg_level < 2)) {
-               writeq(val, skdev->mem_map[1] + offset);
-               barrier();
-       } else {
-               barrier();
-               writeq(val, skdev->mem_map[1] + offset);
-               barrier();
-               pr_debug("%s:%s:%d offset %x = %016llx\n",
-                        skdev->name, __func__, __LINE__, offset, val);
-       }
+       writeq(val, skdev->mem_map[1] + offset);
+       if (unlikely(skdev->dbg_level >= 2))
+               pr_debug("%s offset %x = %016llx\n", skdev->name, offset, val);
 }
 
 
-- 
2.14.0

Reply via email to