When using the macro le32_to_cpu(x), we need to correctly convert x to be
__le32 in case it is defined as u32 variable.

Signed-off-by: Oded Gabbay <oded.gab...@gmail.com>
---
 drivers/misc/habanalabs/habanalabs.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/habanalabs/habanalabs.h 
b/drivers/misc/habanalabs/habanalabs.h
index c39e07d665c4..75862be53c60 100644
--- a/drivers/misc/habanalabs/habanalabs.h
+++ b/drivers/misc/habanalabs/habanalabs.h
@@ -1107,13 +1107,13 @@ void hl_wreg(struct hl_device *hdev, u32 reg, u32 val);
                mb(); \
                (val) = *((u32 *) (uintptr_t) (addr)); \
                if (mem_written_by_device) \
-                       (val) = le32_to_cpu(val); \
+                       (val) = le32_to_cpu(*(__le32 *) &(val)); \
                if (cond) \
                        break; \
                if (timeout_us && ktime_compare(ktime_get(), __timeout) > 0) { \
                        (val) = *((u32 *) (uintptr_t) (addr)); \
                        if (mem_written_by_device) \
-                               (val) = le32_to_cpu(val); \
+                               (val) = le32_to_cpu(*(__le32 *) &(val)); \
                        break; \
                } \
                if (sleep_us) \
-- 
2.17.1

Reply via email to