[media] pwc: better usb disconnect handling
authorHans de Goede <hdegoede@redhat.com>
Mon, 6 Jun 2011 17:43:39 +0000 (14:43 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 21 Jun 2011 16:31:12 +0000 (13:31 -0300)
commit9a7b2d1f0eb0a6b674726c9a9d77ce83fd0b27fe
treef2fd1bad0dcfd8600cccdd9e5619a4a3a6c4d5ae
parente76e4706cf9051e4db12c3d4418fcfbb053fc463
[media] pwc: better usb disconnect handling

Unplugging a pwc cam while an app has the /dev/video# node open leads
to an oops in pwc_video_close when the app closes the node, because
the disconnect handler has free-ed the pdev struct pwc_video_close
tries to use. Instead of adding some sort of bandaid for this.
fix it properly using the v4l2 core's new(ish) behavior of keeping the
v4l2_dev structure around until both unregister has been called, and
all file handles referring  to it have been closed:

Embed the v4l2_dev structure in the pdev structure and define a v4l2 dev
release callback releasing the pdev structure (and thus also the embedded
v4l2 dev structure.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/pwc/pwc-ctrl.c
drivers/media/video/pwc/pwc-if.c
drivers/media/video/pwc/pwc.h