[POWERPC] More DCR native fixups
authorDavid Gibson <david@gibson.dropbear.id.au>
Thu, 15 Feb 2007 03:38:04 +0000 (14:38 +1100)
committerPaul Mackerras <paulus@samba.org>
Fri, 16 Feb 2007 03:00:19 +0000 (14:00 +1100)
Getting BenH's new EMAC driver working on 440GP, I found some more
problems in the native mode paths of the new DCR code:
- dcr_map() is supposed to return a dcr_host_t, but the native
version is a macro that doesn't expand to an expression.  With native
DCRs, dcr_host_t is an empty structure, so we just use a constructor
expression instead.
- dcr_unmap() uses {} instead of the safer do {} while (0)
idiom to implement a no-op

Here's a fix.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
include/asm-powerpc/dcr-native.h

index d7a1bc1551c603086c97a2ee1c85f9ad53803172..05af081222f6ba7c0a1ac8f8cf90b4def3cbb487 100644 (file)
@@ -26,8 +26,8 @@ typedef struct {} dcr_host_t;
 
 #define DCR_MAP_OK(host)       (1)
 
-#define dcr_map(dev, dcr_n, dcr_c)     {}
-#define dcr_unmap(host, dcr_n, dcr_c)  {}
+#define dcr_map(dev, dcr_n, dcr_c)     ((dcr_host_t){})
+#define dcr_unmap(host, dcr_n, dcr_c)  do {} while (0)
 #define dcr_read(host, dcr_n)          mfdcr(dcr_n)
 #define dcr_write(host, dcr_n, value)  mtdcr(dcr_n, value)