On Mon, Sep 21, 2015 at 08:58:23PM +0200, Stephan Mueller wrote:
>
> +/*
> + * Fast forward the SGL to the "end" length minus SEMIBSIZE.
> + * The start in the SGL defined by the fast-forward is returned with
> + * the walk variable
> + */
> +static void crypto_kw_scatterlist_ff(struct scatter_walk *walk,
> +                                  struct scatterlist *sg,
> +                                  unsigned int end)
> +{
> +     unsigned int skip = 0;
> +
> +     /* The caller should only operate on full SEMIBLOCKs. */
> +     BUG_ON(end < SEMIBSIZE);
> +
> +     skip = end - SEMIBSIZE;
> +     while (sg) {
> +             if (sg->length > skip) {
> +                     scatterwalk_start(walk, sg);
> +                     scatterwalk_advance(walk, skip);
> +                     break;
> +             } else
> +                     skip -= sg->length;
> +
> +             sg = sg_next(sg);
> +     }
> +}

This looks very slow but it's conceptually nice and I like it :)
I'll apply this today.

Thanks,
-- 
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to