diff mbox

net: fix SONIC_READ definition

Message ID 495FB1CC.5090506@gmail.com
State Rejected, archived
Delegated to: David Miller
Headers show

Commit Message

roel kluin Jan. 3, 2009, 6:43 p.m. UTC
drivers/net/jazzsonic.c:56:
#define SONIC_READ(reg) (*((volatile unsigned int *)dev->base_addr+reg))

drivers/net/sonic.h:53:
#define SONIC_CAP0             0x24

so drivers/net/jazzsonic.c:143:
val = SONIC_READ(SONIC_CAP0-i);

becomes

val = (*((volatile unsigned int *)dev->base_addr+0x24-i));

That is wrong, isn't it?
------------->8---------8<------------------
Fix SONIC_READ definition

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
---
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

David Miller Jan. 5, 2009, 6:42 a.m. UTC | #1
From: Roel Kluin <roel.kluin@gmail.com>
Date: Sat, 03 Jan 2009 19:43:24 +0100

> drivers/net/jazzsonic.c:56:
> #define SONIC_READ(reg) (*((volatile unsigned int *)dev->base_addr+reg))
> 
> drivers/net/sonic.h:53:
> #define SONIC_CAP0             0x24
> 
> so drivers/net/jazzsonic.c:143:
> val = SONIC_READ(SONIC_CAP0-i);
> 
> becomes
> 
> val = (*((volatile unsigned int *)dev->base_addr+0x24-i));
> 
> That is wrong, isn't it?

The expression, both with and without the parentheses around "reg",
evaluate to the same final pointer value.

Compile a test program and look at the assembler output if you
don't believe me :-)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/jazzsonic.c b/drivers/net/jazzsonic.c
index 334ff9e..b872f23 100644
--- a/drivers/net/jazzsonic.c
+++ b/drivers/net/jazzsonic.c
@@ -53,7 +53,7 @@  static char jazz_sonic_string[] = "jazzsonic";
 /*
  * Macros to access SONIC registers
  */
-#define SONIC_READ(reg) (*((volatile unsigned int *)dev->base_addr+reg))
+#define SONIC_READ(reg) (*((volatile unsigned int *)dev->base_addr+(reg)))
 
 #define SONIC_WRITE(reg,val)						\
 do {									\