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>
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;
}
}
out:
- spin_unlock(&scratch->lock);
+ spin_unlock_bh(&scratch->lock);
return ret;
}