[media] xc5000: fix memory corruption when unplugging device
authorDevin Heitmueller <dheitmueller@kernellabs.com>
Tue, 23 Sep 2014 00:30:46 +0000 (21:30 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 8 Apr 2015 17:49:59 +0000 (14:49 -0300)
commit856260a57cdfa5c121c7b7a6e816409bab07885c
tree19f9fd92f9f2be2a72a68453ab07e8b069207609
parent09bf4a858d72a632dd12a61bda1d5272d67b2ce9
[media] xc5000: fix memory corruption when unplugging device

This patch addresses a regression introduced in the following patch:

commit 5264a522a597032c009f9143686ebf0fa4e244fb
Author: Shuah Khan <shuahkh@osg.samsung.com>
    [media] media: tuner xc5000 - release firmwware from xc5000_release()

The "priv" struct is actually reference counted, so the xc5000_release()
function gets called multiple times for hybrid devices.  Because
release_firmware() was always being called, it would work fine as expected
on the first call but then the second call would corrupt aribtrary memory.

Set the pointer to NULL after releasing so that we don't call
release_firmware() twice.

This problem was detected in the HVR-950q where plugging/unplugging the
device multiple times would intermittently show panics in completely
unrelated areas of the kernel.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/tuners/xc5000.c