• Mauro Carvalho Chehab's avatar
    media: dvb_frontend: fix locking issues at dvb_frontend_get_event() · 76d81243
    Mauro Carvalho Chehab authored
    As warned by smatch:
    	drivers/media/dvb-core/dvb_frontend.c:314 dvb_frontend_get_event() warn: inconsistent returns 'sem:&fepriv->sem'.
    	  Locked on:   line 288
    	               line 295
    	               line 306
    	               line 314
    	  Unlocked on: line 303
    
    The lock implementation for get event is wrong, as, if an
    interrupt occurs, down_interruptible() will fail, and the
    routine will call up() twice when userspace calls the ioctl
    again.
    
    The bad code is there since when Linux migrated to git, in
    2005.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
    76d81243
dvb_frontend.c 79 KB