Skip to contentSkip to conversation

net: dm9000x: re-add casts to I/O pointers to fix gcc warnings

PATCH New Mike Frysinger 3 participants 3 messages Jul 5, 2010 – Jul 12, 2010 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 net: dm9000x: re-add casts to I/O pointers to fix gcc warnings

The DM9000 in/out helper functions were casting the register address when it was accessing things directly (pre commit a45dde2293c816138e53c). But when it was changed to using the in/out helpers, those casts were dropped because those functions don't take pointers. Even more recently, those functions were then changed to use the read/write helpers, but the casts were not re-added. This is necessary because the read/write helpers do take pointers. Otherwise we get a lot of warnings like:
dm9000x.c: In function 'dm9000_inblk_8bit':
dm9000x.c:172: warning: passing argument 1 of 'readb'
makes pointer from integer without a cast

---
 drivers/net/dm9000x.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
drivers/net/dm9000x.c +6 -6
index 137e41f..709f67a 100644
@@ -117,12 +117,12 @@ static void DM9000_iow(int reg, u8 value);
 
 /* DM9000 network board routine ---------------------------- */
 
-#define DM9000_outb(d,r) writeb(d, r)
-#define DM9000_outw(d,r) writew(d, r)
-#define DM9000_outl(d,r) writel(d, r)
-#define DM9000_inb(r) readb(r)
-#define DM9000_inw(r) readw(r)
-#define DM9000_inl(r) readl(r)
+#define DM9000_outb(d,r) writeb(d, (volatile u8 *)(r))
+#define DM9000_outw(d,r) writew(d, (volatile u16 *)(r))
+#define DM9000_outl(d,r) writel(d, (volatile u32 *)(r))
+#define DM9000_inb(r) readb((volatile u8 *)(r))
+#define DM9000_inw(r) readw((volatile u16 *)(r))
+#define DM9000_inl(r) readl((volatile u32 *)(r))
 
 #ifdef CONFIG_DM9000_DEBUG
 static void
Signature · 1 line
1.7.1.1
#1 lore raw

PATCH 1/1 net: dm9000x: re-add casts to I/O pointers to fix gcc warnings

Am 05.07.2010 08:29, schrieb Mike Frysinger:

Quoted 29 lines

The DM9000 in/out helper functions were casting the register address when it was accessing things directly (pre commit a45dde2293c816138e53c). But when it was changed to using the in/out helpers, those casts were dropped because those functions don't take pointers. Even more recently, those functions were then changed to use the read/write helpers, but the casts were not re-added. This is necessary because the read/write helpers do take pointers. Otherwise we get a lot of warnings like:
dm9000x.c: In function 'dm9000_inblk_8bit':
dm9000x.c:172: warning: passing argument 1 of 'readb'
makes pointer from integer without a cast

---
 drivers/net/dm9000x.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
drivers/net/dm9000x.c +0 -5
index 137e41f..709f67a 100644
@@ -117,12 +117,12 @@ static void DM9000_iow(int reg, u8 value);
 
 /* DM9000 network board routine ---------------------------- */
 
-#define DM9000_outb(d,r) writeb(d, r)
-#define DM9000_outw(d,r) writew(d, r)
-#define DM9000_outl(d,r) writel(d, r)
-#define DM9000_inb(r) readb(r)
-#define DM9000_inw(r) readw(r)

drivers/net/dm9000x.c static void DM9000_iow(int reg, u8 value); · line 128

Quoted 10 lines
drivers/net/dm9000x.c +6 -1
-#define DM9000_inl(r) readl(r)
+#define DM9000_outb(d,r) writeb(d, (volatile u8 *)(r))
+#define DM9000_outw(d,r) writew(d, (volatile u16 *)(r))
+#define DM9000_outl(d,r) writel(d, (volatile u32 *)(r))
+#define DM9000_inb(r) readb((volatile u8 *)(r))
+#define DM9000_inw(r) readw((volatile u16 *)(r))
+#define DM9000_inl(r) readl((volatile u32 *)(r))
 
 #ifdef CONFIG_DM9000_DEBUG
 static void

Hello,

tested on Devkit8000.

Thomas

Applied
#2 lore raw

PATCH 1/1 net: dm9000x: re-add casts to I/O pointers to fix gcc warnings

In reply to Mike Frysinger

Hi Mike,

Quoted 29 lines · Mike Frysinger

The DM9000 in/out helper functions were casting the register address when it was accessing things directly (pre commit a45dde2293c816138e53c). But when it was changed to using the in/out helpers, those casts were dropped because those functions don't take pointers. Even more recently, those functions were then changed to use the read/write helpers, but the casts were not re-added. This is necessary because the read/write helpers do take pointers. Otherwise we get a lot of warnings like:
dm9000x.c: In function 'dm9000_inblk_8bit':
dm9000x.c:172: warning: passing argument 1 of 'readb'
makes pointer from integer without a cast

---
  drivers/net/dm9000x.c |   12 ++++++------
  1 files changed, 6 insertions(+), 6 deletions(-)
drivers/net/dm9000x.c +0 -5
index 137e41f..709f67a 100644
@@ -117,12 +117,12 @@ static void DM9000_iow(int reg, u8 value);
 
  /* DM9000 network board routine ---------------------------- */
 
-#define DM9000_outb(d,r) writeb(d, r)
-#define DM9000_outw(d,r) writew(d, r)
-#define DM9000_outl(d,r) writel(d, r)
-#define DM9000_inb(r) readb(r)
-#define DM9000_inw(r) readw(r)

drivers/net/dm9000x.c static void DM9000_iow(int reg, u8 value); · line 128

Quoted 10 lines
drivers/net/dm9000x.c +6 -1
-#define DM9000_inl(r) readl(r)
+#define DM9000_outb(d,r) writeb(d, (volatile u8 *)(r))
+#define DM9000_outw(d,r) writew(d, (volatile u16 *)(r))
+#define DM9000_outl(d,r) writel(d, (volatile u32 *)(r))
+#define DM9000_inb(r) readb((volatile u8 *)(r))
+#define DM9000_inw(r) readw((volatile u16 *)(r))
+#define DM9000_inl(r) readl((volatile u32 *)(r))
 
  #ifdef CONFIG_DM9000_DEBUG
  static void

Applied to net repo.

thanks,
Ben