Hi Julien,

> -----Original Message-----
> From: Xen-devel <xen-devel-boun...@lists.xenproject.org> On Behalf Of Julien
> Grall
> Sent: 2022年2月27日 3:30
> To: xen-devel@lists.xenproject.org
> Cc: Julien Grall <jgr...@amazon.com>; Stefano Stabellini
> <sstabell...@kernel.org>; Bertrand Marquis <bertrand.marq...@arm.com>;
> Volodymyr Babchuk <volodymyr_babc...@epam.com>
> Subject: Re: [PATCH v3 05/19] xen/arm: mm: Add support for the contiguous bit
> 
> Hi,
> 
> On 21/02/2022 10:22, Julien Grall wrote:
> > @@ -1333,21 +1386,34 @@ static int xen_pt_update(unsigned long virt,
> >       while ( left )
> >       {
> >           unsigned int order, level;
> > +        unsigned int nr_contig;
> > +        unsigned int new_flags;
> >
> >           level = xen_pt_mapping_level(vfn, mfn, left, flags);
> >           order = XEN_PT_LEVEL_ORDER(level);
> >
> >           ASSERT(left >= BIT(order, UL));
> >
> > -        rc = xen_pt_update_entry(root, pfn_to_paddr(vfn), mfn, level, 
> > flags);
> > -        if ( rc )
> > -            break;
> > +        /*
> > +         * Check if we can set the contiguous mapping and update the
> > +         * flags accordingly.
> > +         */
> > +        nr_contig = xen_pt_check_contig(vfn, mfn, level, left, flags);
> > +        new_flags = flags | ((nr_contig > 1) ? _PAGE_CONTIG : 0);
> >
> > -        vfn += 1U << order;
> > -        if ( !mfn_eq(mfn, INVALID_MFN) )
> > -            mfn = mfn_add(mfn, 1U << order);
> > +        for ( ; nr_contig > 0; nr_contig-- )
> > +        {
> > +            rc = xen_pt_update_entry(root, pfn_to_paddr(vfn), mfn, level,
> > +                                     new_flags);
> > +            if ( rc )
> > +                break;
> >
> > -        left -= (1U << order);
> > +            vfn += 1U << order;
> > +            if ( !mfn_eq(mfn, INVALID_MFN) )
> > +                mfn = mfn_add(mfn, 1U << order);
> > +
> > +            left -= (1U << order);
> > +        }
> 
> I forgot to add:
> 
> if ( rc )
>    break;
> 
> Without it, the outer loop will never exit in case of an error.
> 
> Cheers,
> 
> --
> Julien Grall

Yep, I am happy with that.

Reviewed-by: Hongda Deng <hongda.d...@arm.com>

Cheers,
---
Hongda

Reply via email to