diff --git a/drivers/char/raw.c b/drivers/char/raw.c
index 96adf28a17e43b309d8af6858d695015c84cc6d1..20d90e6a6e50fb41dfdd2601b1ae6617c40a6070 100644
--- a/drivers/char/raw.c
+++ b/drivers/char/raw.c
@@ -90,6 +90,7 @@ static int raw_open(struct inode *inode, struct file *filp)
 	blkdev_put(bdev, filp->f_mode);
 out:
 	mutex_unlock(&raw_mutex);
+	unlock_kernel();
 	return err;
 }