On Monday 19 January 2009, Sergei Shtylyov wrote: > Hello, I wrote: > > >>>> Someone should fix hw_regs_t to neither be a typedef, nor > >>>> use "unsigned long" where it should use "void __iomem *". > >>>> > >>> It cannot use pointers of course -- as the addresses can be I/O > >>> ports. > >>> > >> > >> It could use the ioread*() calls, which take pointers > >> and handle both types of I/O in a type-safe manner. > >> > > > > Probably they can... though using those would only slow down > > register access on x86. > > ... and cause code bloat due to switching to real function calls from > inlines which now should render into in/out isns. OTOH it would allow to unify a lot of 'if (hwif->host_flags & IDE_HFLAG_MMIO)' cases so the code may even shrink. I also suspect that register access slow down is most likely negligable (we can always measure and check it). The real reason for not using ioread*() and co. is that not all archs support them (though I checked some time ago, maybe they do now?) and we don't want to break IDE support for them. Thanks, Bart -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html