Re: [PATCH] M68k IDE updates

From: Linus Torvalds (torvalds@transmeta.com)
Date: Mon Apr 14 2003 - 12:44:01 EST


On Mon, 14 Apr 2003, Paul Mackerras wrote:
>
> Since __ide_mm_insw doesn't get told whether it is transferring normal
> sector data or drive ID data, it can't necessarily do the right thing
> in both situations.

Can we please then just separate the two functions out into "fetch sector
data" and "fetch drive ID"? And NOT playing with another frigging broken
passed-down flag that people get wrong and isn't obvious what it does
anyway? It's a lot easier to do

        /* On sane architectures, data and ID are accessed the same */
        #define ide_fetch_sector_data(...) __ide_fetch_data(..)
        #define ide_fetch_id_data(...) __ide_fetch_data(..)

than it is to carry a flag around and having to remember to get it right
in every place this is used.

It's more efficient too, but the _clarity_ and lack of dynamic flags is a
hell of a lot more important.

And stupid architectures that may have to re-implement (and possible
duplicate) the ID fetch code only have themselves to blame. Although it
might easily be as simple as

        /*
         * The PCI bus is wired up the wrong way, we need to byteswap
         * the ID results after they come back
         */
        static inline xxx ide_fetch_id_data(...)
        {
                __ide_fetch_data(..)
                bswap_id_data(..)
        }

and please keep this in some m68k-specific file instead of forcing
_everybody_ to know about the braindamage.

                Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Apr 15 2003 - 22:00:31 EST