From: Phil Carmody <[email protected]>

cp_{to,fm}_usr break if between an if and an else (with no {}).

http://www.faqs.org/faqs/C-faq/abridged/
10.4: What's the best way to write a multi-statement macro?
A:    #define Func() do {stmt1; stmt2; ... } while(0) /* (no trailing ;) */

Signed-off-by: Phil Carmody <[email protected]>
---
 drivers/dsp/bridge/pmgr/wcd.c |   42 ++++++++++++++++++++++------------------
 1 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/drivers/dsp/bridge/pmgr/wcd.c b/drivers/dsp/bridge/pmgr/wcd.c
index 86812c6..da0467c 100644
--- a/drivers/dsp/bridge/pmgr/wcd.c
+++ b/drivers/dsp/bridge/pmgr/wcd.c
@@ -147,25 +147,29 @@
 
 /* Following two macros should ideally have do{}while(0) */
 
-#define cp_fm_usr(dest, src, status, elements)    \
-    if (DSP_SUCCEEDED(status)) {\
-           if (unlikely(src == NULL) ||                                \
-               unlikely(copy_from_user(dest, src, elements * 
sizeof(*(dest))))) { \
-               GT_1trace(WCD_debugMask, GT_7CLASS, \
-               "copy_from_user failed, src=0x%x\n", src);  \
-               status = DSP_EPOINTER ; \
-       } \
-    }
-
-#define cp_to_usr(dest, src, status, elements)    \
-    if (DSP_SUCCEEDED(status)) {\
-           if (unlikely(dest == NULL) ||                               \
-               unlikely(copy_to_user(dest, src, elements * sizeof(*(src))))) { 
\
-               GT_1trace(WCD_debugMask, GT_7CLASS, \
-               "copy_to_user failed, dest=0x%x\n", dest); \
-               status = DSP_EPOINTER ;\
-       } \
-    }
+#define cp_fm_usr(dest, src, status, elements) \
+do {                                           \
+  if (DSP_SUCCEEDED(status)) {                 \
+    if (unlikely((src) == NULL) ||             \
+      unlikely(copy_from_user(dest, src, (elements) * sizeof(*(dest))))) { \
+        GT_1trace(WCD_debugMask, GT_7CLASS,    \
+         "copy_from_user failed, src=0x%x\n", src);    \
+      (status) = DSP_EPOINTER ;                        \
+    }                                          \
+  }                                            \
+} while (0)
+
+#define cp_to_usr(dest, src, status, elements) \
+do {                                           \
+  if (DSP_SUCCEEDED(status)) {                 \
+    if (unlikely((dest) == NULL) ||            \
+      unlikely(copy_to_user(dest, src, (elements) * sizeof(*(src))))) { \
+        GT_1trace(WCD_debugMask, GT_7CLASS,    \
+          "copy_to_user failed, dest=0x%x\n", dest);   \
+        (status) = DSP_EPOINTER ;              \
+    }                                          \
+  }                                            \
+} while (0)
 
 /* Device IOCtl function pointer */
 struct WCD_Cmd {
-- 
1.6.2.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to