iopoll: redefined readx_poll_timeout macro to simplify the code
authorDejin Zheng <zhengdejin5@gmail.com>
Mon, 23 Mar 2020 15:05:52 +0000 (23:05 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 05:00:02 +0000 (22:00 -0700)
redefined readx_poll_timeout macro by read_poll_timeout to
simplify the code.

Signed-off-by: Dejin Zheng <zhengdejin5@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/iopoll.h

index 70f89b389648a3df463dd6f9fbc9ce17d5c44ceb..cb20c733b15aef49444497242be528b7edb33703 100644 (file)
  * macros defined below rather than this macro directly.
  */
 #define readx_poll_timeout(op, addr, val, cond, sleep_us, timeout_us)  \
-({ \
-       u64 __timeout_us = (timeout_us); \
-       unsigned long __sleep_us = (sleep_us); \
-       ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \
-       might_sleep_if((__sleep_us) != 0); \
-       for (;;) { \
-               (val) = op(addr); \
-               if (cond) \
-                       break; \
-               if (__timeout_us && \
-                   ktime_compare(ktime_get(), __timeout) > 0) { \
-                       (val) = op(addr); \
-                       break; \
-               } \
-               if (__sleep_us) \
-                       usleep_range((__sleep_us >> 2) + 1, __sleep_us); \
-       } \
-       (cond) ? 0 : -ETIMEDOUT; \
-})
+       read_poll_timeout(op, val, cond, sleep_us, timeout_us, false, addr)
 
 /**
  * readx_poll_timeout_atomic - Periodically poll an address until a condition is met or a timeout occurs