Re: [PATCH 1/1] edac x38: new MC driver module

Hitoshi Mitake
2008-11-13T15:15:31Z

On Tue, 11 Nov 2008 15:11:40 +0900
Paul Mundt <lethal@linux-sh.org> wrote:

> On Sun, Nov 09, 2008 at 11:26:46AM -0800, Andrew Morton wrote:
> > (cc linux-arch)
> >
> > > It seems that architectures that provide readq/writeq are
> > > mips, parisc and x86 (and x86_64).
> > >
> There are more than that, grep arch/*/include also.
>
> In addition to mips, parisc, and x86, there is ia64, alpha, sh, and
> sparc.

I didn't noticed these functions, thanks.

>
> > #ifdef readq
> >
> > Is a suitable way of determining whether the architecture implements
> > readq and writeq. It isn't pretty, but it will suffice.
> >
> > A problem with it is that drivers will then do
> >
> > #ifndef readq
> > <provide a local implementation here>
> > #endif
> >
> > which rather sucks - we don't want lots of little private readq/writeq
> > implementations all over the tree.
> >
> > Perhaps it would be better to have a CONFIG_ARCH_HAS_READQ and to then
> > disable these drivers on the architectures which don't provide
> > readq/writeq support.
> >
> However this is handled, we don't want a rehash of the read/writes{b,w,l} fiasco.
>
> Allowing drivers to do their own local implementations of these things
> has always been a complete disaster. A Kconfig option will at least take
> care of having these craptastic ifdef lists for architectures in every
> driver that rolls its own implementation.
>
> Even a sub-optimal asm-generic version would be preferable, if the
> semantics are well enough defined and consistently adhered to.

I found nice source file, lib/iomap.c.
There are architecture independent read/write{b,w,l} (named like ioread8).

I want to implement architecture independent readq/writeq in lib/iomap.c .
Andrew told,

> Perhaps it would be better to have a CONFIG_ARCH_HAS_READQ and to then
> disable these drivers on the architectures which don't provide
> readq/writeq support.

But I want to use x38_edac.c on x86_32 environment,
and I think similar desire may occur in the future.

Is this way good enough? Request for comment.