crypto: acomp - Be more careful with request flags
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 13 Feb 2023 03:10:05 +0000 (11:10 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 10 Mar 2023 11:10:09 +0000 (19:10 +0800)
The request flags for acompress is split into two parts.  Part of
it may be set by the user while the other part (ALLOC_OUTPUT) is
managed by the API.

This patch makes the split more explicit by not touching the other
bits at all in the two "set" functions that let the user modify the
flags.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
include/crypto/acompress.h

index e4bc96528902e51432aabf66dd7e8595618ea22e..c14cfc9a3b795849868ab18bc11906a2e6dd4d9a 100644 (file)
@@ -219,7 +219,8 @@ static inline void acomp_request_set_callback(struct acomp_req *req,
 {
        req->base.complete = cmpl;
        req->base.data = data;
-       req->base.flags = flgs;
+       req->base.flags &= CRYPTO_ACOMP_ALLOC_OUTPUT;
+       req->base.flags |= flgs & ~CRYPTO_ACOMP_ALLOC_OUTPUT;
 }
 
 /**
@@ -246,6 +247,7 @@ static inline void acomp_request_set_params(struct acomp_req *req,
        req->slen = slen;
        req->dlen = dlen;
 
+       req->flags &= ~CRYPTO_ACOMP_ALLOC_OUTPUT;
        if (!req->dst)
                req->flags |= CRYPTO_ACOMP_ALLOC_OUTPUT;
 }