Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

snsc: restore IRQs on error path in scdrv_write()

This bug is as old as git. We need to be calling spin_unlock_irqrestore()
instead of regular spin_unlock() here.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Dan Carpenter and committed by
Greg Kroah-Hartman
da191c28 dd5c472a

+1 -1
+1 -1
drivers/char/snsc.c
··· 285 285 DECLARE_WAITQUEUE(wait, current); 286 286 287 287 if (file->f_flags & O_NONBLOCK) { 288 - spin_unlock(&sd->sd_wlock); 288 + spin_unlock_irqrestore(&sd->sd_wlock, flags); 289 289 up(&sd->sd_wbs); 290 290 return -EAGAIN; 291 291 }