Re: [PATCH 36/56] microblaze_v2: dma support

Geert Uytterhoeven
2008-05-06T09:49:08Z

On Tue, 6 May 2008, Michal Simek wrote:
> > On Mon, 5 May 2008, John Williams wrote:
> >>> +++ b/include/asm-microblaze/scatterlist.h
> >>> @@ -0,0 +1,21 @@
> >>> +/*
> >>> + * include/asm-microblaze/scatterlist.h
> >>> + *
> >>> + * This file is subject to the terms and conditions of the GNU General Public
> >>> + * License. See the file "COPYING" in the main directory of this archive
> >>> + * for more details.
> >>> + *
> >>> + * Copyright (C) 2006 Atmark Techno, Inc.
> >>> + */
> >>> +
> >>> +#ifndef _ASM_MICROBLAZE_SCATTERLIST_H
> >>> +#define _ASM_MICROBLAZE_SCATTERLIST_H
> >>> +
> >>> +struct scatterlist {
> >>> + unsigned long page_link;
> >>> + unsigned int offset;
> >>> + dma_addr_t dma_address;
> >>> + unsigned int length;
> >>> +};
> >>> +
> >>> +#endif /* _ASM_MICROBLAZE_SCATTERLIST_H */
> >> Is this worthy of promotion to asm-generic/scatterlist.h?
> >
> > after moving dma_address one position up in the structure, as dma_addr_t may be
> > 64-bit?
>
> dma_addr_t is defined in types.h. If your arch want to use 64bit addr, you can
> define it in types.h.

Sorry for not making myself clear: If unsigned long and dma_addr_t are 64-bit,
there may be a hole in between offset and dma_address, due to alignment
restrictions. So it's better to move dma_address up.

As dma_addr_t may be 64-bit even on 32-bit architectures, it may be best
to move it even to the start of the structure.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds