[PATCH 3/5] crypto: ccp: Treat bitmap size as allocation failure

From: Yury Norov

Date: Wed Jul 08 2026 - 22:04:31 EST


bitmap_find_next_zero_area() uses an out-of-range return value to
indicate failure. Accept only offsets strictly below the bitmap size so
the callers do not depend on the exact failure sentinel.

Signed-off-by: Yury Norov <ynorov@xxxxxxxxxx>
---
drivers/crypto/ccp/ccp-dev-v3.c | 2 +-
drivers/crypto/ccp/ccp-dev-v5.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/ccp/ccp-dev-v3.c b/drivers/crypto/ccp/ccp-dev-v3.c
index fe69053b2394..60a133e23e5f 100644
--- a/drivers/crypto/ccp/ccp-dev-v3.c
+++ b/drivers/crypto/ccp/ccp-dev-v3.c
@@ -28,7 +28,7 @@ static u32 ccp_alloc_ksb(struct ccp_cmd_queue *cmd_q, unsigned int count)
ccp->sb_count,
ccp->sb_start,
count, 0);
- if (start <= ccp->sb_count) {
+ if (start < ccp->sb_count) {
bitmap_set(ccp->sb, start, count);

mutex_unlock(&ccp->sb_mutex);
diff --git a/drivers/crypto/ccp/ccp-dev-v5.c b/drivers/crypto/ccp/ccp-dev-v5.c
index 7b73332d6aa1..e18ddb881bf5 100644
--- a/drivers/crypto/ccp/ccp-dev-v5.c
+++ b/drivers/crypto/ccp/ccp-dev-v5.c
@@ -25,6 +25,7 @@
static u32 ccp_lsb_alloc(struct ccp_cmd_queue *cmd_q, unsigned int count)
{
struct ccp_device *ccp;
+ unsigned int nbits = MAX_LSB_CNT * LSB_SIZE;
int start;

/* First look at the map for the queue */
@@ -43,11 +44,10 @@ static u32 ccp_lsb_alloc(struct ccp_cmd_queue *cmd_q, unsigned int count)
for (;;) {
mutex_lock(&ccp->sb_mutex);

- start = (u32)bitmap_find_next_zero_area(ccp->lsbmap,
- MAX_LSB_CNT * LSB_SIZE,
+ start = (u32)bitmap_find_next_zero_area(ccp->lsbmap, nbits,
0,
count, 0);
- if (start <= MAX_LSB_CNT * LSB_SIZE) {
+ if (start < nbits) {
bitmap_set(ccp->lsbmap, start, count);

mutex_unlock(&ccp->sb_mutex);
--
2.53.0