]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: qat - fix seq_file position update in adf_ring_next()
authorGiovanni Cabiddu <giovanni.cabiddu@intel.com>
Mon, 14 Jul 2025 07:10:29 +0000 (08:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:22:35 +0000 (16:22 +0200)
[ Upstream commit 6908c5f4f066a0412c3d9a6f543a09fa7d87824b ]

The `adf_ring_next()` function in the QAT debug transport interface
fails to correctly update the position index when reaching the end of
the ring elements. This triggers the following kernel warning when
reading ring files, such as
/sys/kernel/debug/qat_c6xx_<D:B:D:F>/transport/bank_00/ring_00:

   [27725.022965] seq_file: buggy .next function adf_ring_next [intel_qat] did not update position index

Ensure that the `*pos` index is incremented before returning NULL when
after the last element in the ring is found, satisfying the seq_file API
requirements and preventing the warning.

Fixes: a672a9dc872e ("crypto: qat - Intel(R) QAT transport code")
Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Ahsan Atta <ahsan.atta@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/qat/qat_common/adf_transport_debug.c

index e6bdbd3c9b1f26cc6b075a0e4250399128dcac95..b0a553d680dc30876023050c5c82e8e234082b04 100644 (file)
@@ -31,8 +31,10 @@ static void *adf_ring_next(struct seq_file *sfile, void *v, loff_t *pos)
        struct adf_etr_ring_data *ring = sfile->private;
 
        if (*pos >= (ADF_SIZE_TO_RING_SIZE_IN_BYTES(ring->ring_size) /
-                    ADF_MSG_SIZE_TO_BYTES(ring->msg_size)))
+                    ADF_MSG_SIZE_TO_BYTES(ring->msg_size))) {
+               (*pos)++;
                return NULL;
+       }
 
        return ring->base_addr +
                (ADF_MSG_SIZE_TO_BYTES(ring->msg_size) * (*pos)++);