lkml.org 
[lkml]   [2008]   [Sep]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [RFC v4][PATCH 5/9] Memory managemnet (restore)
    From
    Date
    On Tue, 2008-09-09 at 03:42 -0400, Oren Laadan wrote:
    > +/**
    > + * cr_vma_read_pages_vaddrs - read addresses of pages to page-array chain
    > + * @ctx - restart context
    > + * @npages - number of pages
    > + */
    > +static int cr_vma_read_pages_vaddrs(struct cr_ctx *ctx, int npages)
    > +{
    > + struct cr_pgarr *pgarr;
    > + int nr, ret;
    > +
    > + while (npages) {
    > + pgarr = cr_pgarr_prep(ctx);
    > + if (!pgarr)
    > + return -ENOMEM;
    > + nr = min(npages, (int) pgarr->nr_free);
    > + ret = cr_kread(ctx, pgarr->vaddrs, nr * sizeof(unsigned long));
    > + if (ret < 0)
    > + return ret;
    > + pgarr->nr_free -= nr;
    > + pgarr->nr_used += nr;
    > + npages -= nr;
    > + }
    > + return 0;
    > +}

    cr_pgarr_prep() can return a partially full pgarr, right? Won't the
    cr_kread() always start at the beginning of the pgarr->vaddrs[] array?
    Seems to me like it will clobber things from the last call.

    -- Dave



    \
     
     \ /
      Last update: 2008-09-10 21:35    [W:0.036 / U:116.736 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site