Skip to contentSkip to conversation

drivers/ata/sata_svw.c: Compiler-noise reduction

PATCH New Andi Drebes 2 participants 2 messages Oct 15, 2006 – Oct 16, 2006

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drivers/ata/sata_svw.c: Compiler-noise reduction

During the compilation of the latest kernel-source from the git repository, I got those warnings:

drivers/ata/sata_svw.c: In function `k2_sata_tf_load':
drivers/ata/sata_svw.c:114: warning: passing arg 2 of writeb' makes pointer from integer without a cast drivers/ata/sata_svw.c:119: warning: passing arg 2 of writew' makes pointer from integer without a cast
...
drivers/ata/sata_svw.c:133: warning: passing arg 2 of writeb' makes pointer from integer without a cast drivers/ata/sata_svw.c: In function k2_sata_tf_read':
drivers/ata/sata_svw.c:145: warning: passing arg 1 of readw' makes pointer from integer without a cast drivers/ata/sata_svw.c:146: warning: passing arg 1 of readw' makes pointer from integer without a cast
...
drivers/ata/sata_svw.c:150: warning: passing arg 1 of `readw' makes pointer from integer without a cast

readw and writeb take a volatile void __iomem*, but the variables that are passed in k2_sata_tf_load and k2_sata_tf_read to writeb/readb are unsigned longs. Should the definition in libata.h be changed?

Here's a patch that reduces the noise during compilation. I'm not sure if this is the right way. The patch is only tested by compilation (I don't have any SATA hardware here).

---

drivers/ata/sata_svw.c +18 -18
index db32d15..502cf70 100644
@@ -111,26 +111,26 @@ static void k2_sata_tf_load(struct ata_p
 	unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
 
 	if (tf->ctl != ap->last_ctl) {
-		writeb(tf->ctl, ioaddr->ctl_addr);
+		writeb(tf->ctl, (void __iomem*)ioaddr->ctl_addr);
 		ap->last_ctl = tf->ctl;
 		ata_wait_idle(ap);
 	}
 	if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
-		writew(tf->feature | (((u16)tf->hob_feature) << 8), ioaddr->feature_addr);
-		writew(tf->nsect | (((u16)tf->hob_nsect) << 8), ioaddr->nsect_addr);
-		writew(tf->lbal | (((u16)tf->hob_lbal) << 8), ioaddr->lbal_addr);
-		writew(tf->lbam | (((u16)tf->hob_lbam) << 8), ioaddr->lbam_addr);
-		writew(tf->lbah | (((u16)tf->hob_lbah) << 8), ioaddr->lbah_addr);
+		writew(tf->feature | (((u16)tf->hob_feature) << 8), (void __iomem*)ioaddr->feature_addr);
+		writew(tf->nsect | (((u16)tf->hob_nsect) << 8), (void __iomem*)ioaddr->nsect_addr);
+		writew(tf->lbal | (((u16)tf->hob_lbal) << 8), (void __iomem*)ioaddr->lbal_addr);
+		writew(tf->lbam | (((u16)tf->hob_lbam) << 8), (void __iomem*)ioaddr->lbam_addr);
+		writew(tf->lbah | (((u16)tf->hob_lbah) << 8), (void __iomem*)ioaddr->lbah_addr);
 	} else if (is_addr) {
-		writew(tf->feature, ioaddr->feature_addr);
-		writew(tf->nsect, ioaddr->nsect_addr);
-		writew(tf->lbal, ioaddr->lbal_addr);
-		writew(tf->lbam, ioaddr->lbam_addr);
-		writew(tf->lbah, ioaddr->lbah_addr);
+		writew(tf->feature, (void __iomem*)ioaddr->feature_addr);
+		writew(tf->nsect, (void __iomem*)ioaddr->nsect_addr);
+		writew(tf->lbal, (void __iomem*)ioaddr->lbal_addr);
+		writew(tf->lbam, (void __iomem*)ioaddr->lbam_addr);
+		writew(tf->lbah, (void __iomem*)ioaddr->lbah_addr);
 	}
 
 	if (tf->flags & ATA_TFLAG_DEVICE)
-		writeb(tf->device, ioaddr->device_addr);
+		writeb(tf->device, (void __iomem*)ioaddr->device_addr);
 
 	ata_wait_idle(ap);
 }
@@ -142,12 +142,12 @@ static void k2_sata_tf_read(struct ata_p
 	u16 nsect, lbal, lbam, lbah, feature;
 
 	tf->command = k2_stat_check_status(ap);
-	tf->device = readw(ioaddr->device_addr);
-	feature = readw(ioaddr->error_addr);
-	nsect = readw(ioaddr->nsect_addr);
-	lbal = readw(ioaddr->lbal_addr);
-	lbam = readw(ioaddr->lbam_addr);
-	lbah = readw(ioaddr->lbah_addr);
+	tf->device = readw((void __iomem*)ioaddr->device_addr);
+	feature = readw((void __iomem*)ioaddr->error_addr);
+	nsect = readw((void __iomem*)ioaddr->nsect_addr);
+	lbal = readw((void __iomem*)ioaddr->lbal_addr);
+	lbam = readw((void __iomem*)ioaddr->lbam_addr);
+	lbah = readw((void __iomem*)ioaddr->lbah_addr);
 
 	tf->feature = feature;
 	tf->nsect = nsect;

_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors

#1 lore raw

PATCH 1/1 drivers/ata/sata_svw.c: Compiler-noise reduction

During the compilation of the latest kernel-source from the git repository, I got those warnings:

drivers/ata/sata_svw.c: In function `k2_sata_tf_load':
drivers/ata/sata_svw.c:114: warning: passing arg 2 of writeb' makes pointer from integer without a cast drivers/ata/sata_svw.c:119: warning: passing arg 2 of writew' makes pointer from integer without a cast
...
drivers/ata/sata_svw.c:133: warning: passing arg 2 of writeb' makes pointer from integer without a cast drivers/ata/sata_svw.c: In function k2_sata_tf_read':
drivers/ata/sata_svw.c:145: warning: passing arg 1 of readw' makes pointer from integer without a cast drivers/ata/sata_svw.c:146: warning: passing arg 1 of readw' makes pointer from integer without a cast
...
drivers/ata/sata_svw.c:150: warning: passing arg 1 of `readw' makes pointer from integer without a cast

readw and writeb take a volatile void __iomem*, but the variables that are passed in k2_sata_tf_load and k2_sata_tf_read to writeb/readb are unsigned longs. Should the definition in libata.h be changed?

Here's a patch that reduces the noise during compilation. I'm not sure if this is the right way. The patch is only tested by compilation (I don't have any SATA hardware here).

---

drivers/ata/sata_svw.c +18 -18
index db32d15..502cf70 100644
@@ -111,26 +111,26 @@ static void k2_sata_tf_load(struct ata_p
 	unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
 
 	if (tf->ctl != ap->last_ctl) {
-		writeb(tf->ctl, ioaddr->ctl_addr);
+		writeb(tf->ctl, (void __iomem*)ioaddr->ctl_addr);
 		ap->last_ctl = tf->ctl;
 		ata_wait_idle(ap);
 	}
 	if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
-		writew(tf->feature | (((u16)tf->hob_feature) << 8), ioaddr->feature_addr);
-		writew(tf->nsect | (((u16)tf->hob_nsect) << 8), ioaddr->nsect_addr);
-		writew(tf->lbal | (((u16)tf->hob_lbal) << 8), ioaddr->lbal_addr);
-		writew(tf->lbam | (((u16)tf->hob_lbam) << 8), ioaddr->lbam_addr);
-		writew(tf->lbah | (((u16)tf->hob_lbah) << 8), ioaddr->lbah_addr);
+		writew(tf->feature | (((u16)tf->hob_feature) << 8), (void __iomem*)ioaddr->feature_addr);
+		writew(tf->nsect | (((u16)tf->hob_nsect) << 8), (void __iomem*)ioaddr->nsect_addr);
+		writew(tf->lbal | (((u16)tf->hob_lbal) << 8), (void __iomem*)ioaddr->lbal_addr);
+		writew(tf->lbam | (((u16)tf->hob_lbam) << 8), (void __iomem*)ioaddr->lbam_addr);
+		writew(tf->lbah | (((u16)tf->hob_lbah) << 8), (void __iomem*)ioaddr->lbah_addr);
 	} else if (is_addr) {
-		writew(tf->feature, ioaddr->feature_addr);
-		writew(tf->nsect, ioaddr->nsect_addr);
-		writew(tf->lbal, ioaddr->lbal_addr);
-		writew(tf->lbam, ioaddr->lbam_addr);
-		writew(tf->lbah, ioaddr->lbah_addr);
+		writew(tf->feature, (void __iomem*)ioaddr->feature_addr);
+		writew(tf->nsect, (void __iomem*)ioaddr->nsect_addr);
+		writew(tf->lbal, (void __iomem*)ioaddr->lbal_addr);
+		writew(tf->lbam, (void __iomem*)ioaddr->lbam_addr);
+		writew(tf->lbah, (void __iomem*)ioaddr->lbah_addr);
 	}
 
 	if (tf->flags & ATA_TFLAG_DEVICE)
-		writeb(tf->device, ioaddr->device_addr);
+		writeb(tf->device, (void __iomem*)ioaddr->device_addr);
 
 	ata_wait_idle(ap);
 }
@@ -142,12 +142,12 @@ static void k2_sata_tf_read(struct ata_p
 	u16 nsect, lbal, lbam, lbah, feature;
 
 	tf->command = k2_stat_check_status(ap);
-	tf->device = readw(ioaddr->device_addr);
-	feature = readw(ioaddr->error_addr);
-	nsect = readw(ioaddr->nsect_addr);
-	lbal = readw(ioaddr->lbal_addr);
-	lbam = readw(ioaddr->lbam_addr);
-	lbah = readw(ioaddr->lbah_addr);
+	tf->device = readw((void __iomem*)ioaddr->device_addr);
+	feature = readw((void __iomem*)ioaddr->error_addr);
+	nsect = readw((void __iomem*)ioaddr->nsect_addr);
+	lbal = readw((void __iomem*)ioaddr->lbal_addr);
+	lbam = readw((void __iomem*)ioaddr->lbam_addr);
+	lbah = readw((void __iomem*)ioaddr->lbah_addr);
 
 	tf->feature = feature;
 	tf->nsect = nsect;

_______________________________________________
Kernel-janitors mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/kernel-janitors