[PATCH] scatterlist: define SG chain for arm architecture

FUJITA Tomonori fujita.tomonori at lab.ntt.co.jp
Sun Oct 3 07:34:05 EDT 2010


On Sun, 3 Oct 2010 12:28:39 +0100
Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:

> On Sun, Oct 03, 2010 at 08:02:52PM +0900, FUJITA Tomonori wrote:
> > On Fri, 1 Oct 2010 17:39:58 +0100
> > Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:
> > 
> > > On Fri, Oct 01, 2010 at 11:28:41AM -0500, Fernando Guzman Lugo wrote:
> > > > Define SG chain for ARM architecture in order to work
> > > > with big buffers. This patch is needed in order to
> > > > iovmm users can pass a big buffer to map it and ARM
> > > > architecture has not issues using SG chain.
> > > > 
> > > > This change was suggested by FUJITA Tomonori.
> > > 
> > > Have you audited all places where SG lists are used in the ARM
> > > architecture to ensure that SG chain support is safe?  (That
> > > goes for ARM generic code and ARM specific drivers.)
> > 
> > As far as I know, only SCSI actually uses SG chain feature (that is,
> > sending chained scatter lists). All SCSI drivers were converted when
> > we added SG chain feature. So what you need to care about is the dma
> > code.
> > 
> > There are only several files that actually use scatter list under
> > arch/arm.
> > 
> > >From a quick look, arch/arm/mm/dma-mapping.c,
> > arch/arm/common/dmabounce.c, arch/arm/kernel/dma.c, and
> > arch/arm/include/asm/dma-mapping.h looks fine.
> > 
> > arm/mach-imx/dma-v1.c also looks like to use chained sg API properly
> > (but this isn't used with SCSI, right?).
> > 
> > Seems that arch/arm/plat-omap/iovmm.c can handle the chained SG
> > too. It doesn't allocate the chained SG now though.
> 
> There's also RiscPC and its SCSI drivers could well be an issue for SG
> chaining.  They have to manually save the SCSI 'data pointer' (down to
> the byte position in the SG chain and be able to restore a previously
> saved point.)  This code was written before SG chaining ever appeared,
> and although it has been partly fixed up, it's probably buggy if SG
> chaining were to be enabled.

What SCSI drviers we need to fix?


> If it's just OMAP users who wish to enable SG chaining, then the sane
> thing to do would be to make the definition of the macro conditional
> on OMAP.

Yeah, that should work.



More information about the linux-arm-kernel mailing list