I'm afraid you are the one who is wrong. The IDE layer is duplicating aWhat IDE indirection you're talking about anyway?
generic level of indirection with its own code - purely because IDE
pre-dates that core functionality. The whole IDE layer indirection can go
away because Linux has caught up with the needs of the IDE layer.
As I said earlier ide_mm_inb etc via the function pointers tf_inb/tf_outb
etc.
Ah... at least they don't have additional address checks that ioread*()/iowrite*() have...
into two different versions of the functions like ide_tf_read as surelyGiven how small those functions are it might even be worth rolling them
it costs more to call them (in size) than to inline the two for those
functions?
Indeed.