]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: keembay - Add missing check after sg_nents_for_len()
authorThomas Fourier <fourier.thomas@gmail.com>
Mon, 28 Jul 2025 12:03:30 +0000 (14:03 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sat, 16 Aug 2025 09:22:46 +0000 (17:22 +0800)
sg_nents_for_len() returns an int which is negative in case of error.

Fixes: 472b04444cd3 ("crypto: keembay - Add Keem Bay OCS HCU driver")
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/intel/keembay/keembay-ocs-hcu-core.c

index 8f9e21ced0fe1e89d698408947b826e17944a054..48281d88226038aff61ec0106c9cadcb04601862 100644 (file)
@@ -232,7 +232,7 @@ static int kmb_ocs_dma_prepare(struct ahash_request *req)
        struct device *dev = rctx->hcu_dev->dev;
        unsigned int remainder = 0;
        unsigned int total;
-       size_t nents;
+       int nents;
        size_t count;
        int rc;
        int i;
@@ -253,6 +253,9 @@ static int kmb_ocs_dma_prepare(struct ahash_request *req)
        /* Determine the number of scatter gather list entries to process. */
        nents = sg_nents_for_len(req->src, rctx->sg_data_total - remainder);
 
+       if (nents < 0)
+               return nents;
+
        /* If there are entries to process, map them. */
        if (nents) {
                rctx->sg_dma_nents = dma_map_sg(dev, req->src, nents,