Commit a5bbc7d9 authored by Ira Snyder's avatar Ira Snyder Committed by Mauro Carvalho Chehab

V4L/DVB (4849): Add missing spin_unlock to saa6588 decoder driver

Sparse noticed a lock imbalance in read_from_buf(). Further inspection shows
that the lock should not be held when the function exits.
This adds a spin_unlock_irqrestore(), so that every exit path of the
read_from_buf() function is consistent. The unlock was missing on an error
path.
Signed-off-by: default avatarIra W. Snyder <devel@irasnyder.com>
Signed-off-by: default avatarHans J. Koch <koch@hjk-az.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 30d9464c
...@@ -212,8 +212,10 @@ static void read_from_buf(struct saa6588 *s, struct rds_command *a) ...@@ -212,8 +212,10 @@ static void read_from_buf(struct saa6588 *s, struct rds_command *a)
if (rd_blocks > s->block_count) if (rd_blocks > s->block_count)
rd_blocks = s->block_count; rd_blocks = s->block_count;
if (!rd_blocks) if (!rd_blocks) {
spin_unlock_irqrestore(&s->lock, flags);
return; return;
}
for (i = 0; i < rd_blocks; i++) { for (i = 0; i < rd_blocks; i++) {
if (block_to_user_buf(s, buf_ptr)) { if (block_to_user_buf(s, buf_ptr)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment