Re: SCSI breakage on non-cache coherent architectures

Benjamin Herrenschmidt
2007-11-20T02:36:22Z

On Mon, 2007-11-19 at 18:10 -0800, Roland Dreier wrote:
>
> I wrapped this ugliness up inside the macro back in what I posted in
> 2002 (http://lkml.org/lkml/2002/6/12/234):
>
> #define __dma_buffer __dma_buffer_line(__LINE__)
> #define __dma_buffer_line(line) __dma_buffer_expand_line(line)
> #define __dma_buffer_expand_line(line) \
> __attribute__ ((aligned(L1_CACHE_BYTES))); \
> char __dma_pad_ ## line [0] __attribute__
> ((aligned(L1_CACHE_BYTES)))
>
> then you just need to tag the actual member like:
>
> char foo[3] __dma_buffer;

That's actually not too bad ...

I'm having a problem with reverting SCSI to use an allocation for the
sense buffer, because it can fail and the new scso_eh_prep_cmnd() isn't
supposed to return a failure. I've changed that but now I get into
trying to fix the various drivers that use it without checking the
result code and it's becoming much more complicated than initially
thought.

So I may do the above instead and revive your patch.

Any objection ? James ? David ?

Cheers,
Ben.