Skip to contentSkip to conversation

sata_svw: Fix __iomem related warnings

PATCH In review Benjamin Herrenschmidt 3 participants 3 messages Sep 13, 2004 SCSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sata_svw: Fix __iomem related warnings

This patch adds some (ugly) casts to sata_svw to remove the warnings generated by the new iomem stuff.

===== drivers/scsi/sata_svw.c 1.23 vs edited =====

drivers/scsi/sata_svw.c +24 -19
@@ -103,26 +103,31 @@
 	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);
 }
@@ -133,14 +138,14 @@
 	struct ata_ioports *ioaddr = &ap->ioaddr;
 	u16 nsect, lbal, lbam, lbah;
 
-	nsect = tf->nsect = readw(ioaddr->nsect_addr);
-	lbal = tf->lbal = readw(ioaddr->lbal_addr);
-	lbam = tf->lbam = readw(ioaddr->lbam_addr);
-	lbah = tf->lbah = readw(ioaddr->lbah_addr);
-	tf->device = readw(ioaddr->device_addr);
+	nsect = tf->nsect = readw((void __iomem *)ioaddr->nsect_addr);
+	lbal = tf->lbal = readw((void __iomem *)ioaddr->lbal_addr);
+	lbam = tf->lbam = readw((void __iomem *)ioaddr->lbam_addr);
+	lbah = tf->lbah = readw((void __iomem *)ioaddr->lbah_addr);
+	tf->device = readw((void __iomem *)ioaddr->device_addr);
 
 	if (tf->flags & ATA_TFLAG_LBA48) {
-		tf->hob_feature = readw(ioaddr->error_addr) >> 8;
+		tf->hob_feature = readw((void __iomem *)ioaddr->error_addr) >> 8;
 		tf->hob_nsect = nsect >> 8;
 		tf->hob_lbal = lbal >> 8;
 		tf->hob_lbam = lbam >> 8;
@@ -151,7 +156,7 @@
 
 static u8 k2_stat_check_status(struct ata_port *ap)
 {
-       	return readl((void *) ap->ioaddr.status_addr);
+       	return readl((void __iomem *) ap->ioaddr.status_addr);
 }
 
 #ifdef CONFIG_PPC_OF
#1 lore raw
Quoted 2 lines · Benjamin Herrenschmidt

This patch adds some (ugly) casts to sata_svw to remove the warnings generated by the new iomem stuff.

Umm, maybe it's just me - but shouldn't you fix them properly?

drivers/scsi/sata_svw.c line 106

Quoted 3 lines
drivers/scsi/sata_svw.c +1 -1
-		writeb(tf->ctl, ioaddr->ctl_addr);
+		writeb(tf->ctl, (void __iomem *)ioaddr->ctl_addr);

e.g. ioaddr->ctl_addr should get a __iomem attribute

drivers/scsi/sata_svw.c line 120

Quoted 10 lines
drivers/scsi/sata_svw.c +10 -0
+		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);

dito for all the others.

just hacking around the annotations with casts seems ather pointless.

#2 lore raw
Quoted 6 lines · Christoph Hellwig
Quoted 2 lines · Benjamin Herrenschmidt

This patch adds some (ugly) casts to sata_svw to remove the warnings generated by the new iomem stuff.

Quoted 8 lines

Umm, maybe it's just me - but shouldn't you fix them properly?

drivers/scsi/sata_svw.c line 106

Quoted 2 lines
drivers/scsi/sata_svw.c +1 -1
-		writeb(tf->ctl, ioaddr->ctl_addr);
+		writeb(tf->ctl, (void __iomem *)ioaddr->ctl_addr);

e.g. ioaddr->ctl_addr should get a __iomem attribute

Wrong. Read the code.

Jeff