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.
It won't shrink as much as it will grow.
I also suspect that register access slow
down is most likely negligable (we can always measure and check it).
I'd agree here but code bloat won't be as negligible considering the
IDE code's predominant use of I/O ports on x86.
After looking at the current code, the generic IDE code would actually
benefit from such change, while the most of the controller drivers will only
be subject to the code bloat.
MBR, Sergei
--
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