sata_svw: Fix __iomem related warnings
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
Quoted 2 lines · Benjamin Herrenschmidt
This patch adds some (ugly) casts to
sata_svwto 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.
Quoted 6 lines · Christoph Hellwig
Quoted 2 lines · Benjamin Herrenschmidt
This patch adds some (ugly) casts to
sata_svwto 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_addrshould get a__iomemattribute
Wrong. Read the code.
Jeff