Subject: Re: dw_mmc build broken in next-20130220 (was Re: [PATCH v3 2/2] lib/scatterlist: use page iterator in the mapping iterator)

From: Imre Deak <[email-masked]>
Date: Wed, 20 Feb 2013 20:41:57 +0200

On Wed, 2013-02-20 at 16:42 +0000, James Hogan wrote:
> On 13 February 2013 15:10, Imre Deak <[email-masked]> wrote:
> > For better code reuse use the newly added page iterator to iterate
> > through the pages. The offset, length within the page is still
> > calculated by the mapping iterator as well as the actual mapping.
> > Idea from Tejun Heo <[email-masked]>.
> >
> > Signed-off-by: Imre Deak <[email-masked]>
> > ---
> >  include/linux/scatterlist.h |    6 +++---
> >  lib/scatterlist.c           |   46 ++++++++++++++++++++-----------------------
> >  2 files changed, 24 insertions(+), 28 deletions(-)
> >
> > diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
> > index 788a853..a6cd692 100644
> > --- a/include/linux/scatterlist.h
> > +++ b/include/linux/scatterlist.h
> > @@ -295,9 +295,9 @@ struct sg_mapping_iter {
> >         size_t                  consumed;       /* number of consumed bytes */
> >
> >         /* these are internal states, keep away */
> > -       struct scatterlist      *__sg;          /* current entry */
> > -       unsigned int            __nents;        /* nr of remaining entries */
> > -       unsigned int            __offset;       /* offset within sg */
> > +       unsigned int            __offset;       /* offset within page */
> > +       struct sg_page_iter     __piter;        /* page iterator */
> > +       unsigned int            __remaining;    /* remaining bytes on page */
> >         unsigned int            __flags;
> >  };
> 
> Hi,
> 
> FYI, in next-20130220 this appears to break the build of the dw_mmc driver:
> drivers/mmc/host/dw_mmc.c In function 'dw_mci_read_data_pio':
> drivers/mmc/host/dw_mmc.c +1457 : error: 'struct sg_mapping_iter' has
> no member named '__sg'
> drivers/mmc/host/dw_mmc.c In function 'dw_mci_write_data_pio':
> drivers/mmc/host/dw_mmc.c +1512 : error: 'struct sg_mapping_iter' has
> no member named '__sg'

My fault, I haven't noticed this user of the field. It could be fixed by
using __piter.sg instead of __sg. I will follow up with v4 of this patch
including this change.

--Imre