crypto: scomp - Disable BH when taking per-cpu spin lock

Disable BH when taking per-cpu spin locks.  This isn't an issue
right now because the only user zswap calls scomp from process
context.  However, if scomp is called from softirq context the
spin lock may dead-lock.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
pull/1188/head
Herbert Xu 2025-03-09 10:43:19 +08:00
parent 3d72ad46a2
commit cff12830e2
1 changed files with 2 additions and 2 deletions

View File

@ -182,7 +182,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
dlen = req->dlen;
scratch = raw_cpu_ptr(&scomp_scratch);
spin_lock(&scratch->lock);
spin_lock_bh(&scratch->lock);
if (sg_nents(req->src) == 1 && !PageHighMem(sg_page(req->src))) {
src = page_to_virt(sg_page(req->src)) + req->src->offset;
@ -230,7 +230,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
}
}
out:
spin_unlock(&scratch->lock);
spin_unlock_bh(&scratch->lock);
return ret;
}