aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2008-08-30 17:11:40 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-12 07:36:57 -0400
commitfe15f13679bf52bb5c8acb8b4847e6d73ba62c17 (patch)
tree2b64c12e10c0ca892e3cf9307059e5e682780316 /drivers/media
parent157afbc0de7d99cde39a5525b4c43acd4e02ef82 (diff)
V4L/DVB (8895): pvrusb2: Fail gracefully if an alien USB ID is used
The driver includes an internal table specifying additional information on a per device-type basis. This works great until somebody tries to run-time associate another USB ID with the driver. This change should hopefully allow the driver to fail gracefully under such a circumstance. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index c8dedbab6e3..a7d636f3f9b 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -1915,7 +1915,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
1915 const struct usb_device_id *devid) 1915 const struct usb_device_id *devid)
1916{ 1916{
1917 unsigned int idx,cnt1,cnt2,m; 1917 unsigned int idx,cnt1,cnt2,m;
1918 struct pvr2_hdw *hdw; 1918 struct pvr2_hdw *hdw = NULL;
1919 int valid_std_mask; 1919 int valid_std_mask;
1920 struct pvr2_ctrl *cptr; 1920 struct pvr2_ctrl *cptr;
1921 const struct pvr2_device_desc *hdw_desc; 1921 const struct pvr2_device_desc *hdw_desc;
@@ -1925,6 +1925,16 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
1925 1925
1926 hdw_desc = (const struct pvr2_device_desc *)(devid->driver_info); 1926 hdw_desc = (const struct pvr2_device_desc *)(devid->driver_info);
1927 1927
1928 if (hdw_desc == NULL) {
1929 pvr2_trace(PVR2_TRACE_INIT, "pvr2_hdw_create:"
1930 " No device description pointer,"
1931 " unable to continue.");
1932 pvr2_trace(PVR2_TRACE_INIT, "If you have a new device type,"
1933 " please contact Mike Isely <isely@pobox.com>"
1934 " to get it included in the driver\n");
1935 goto fail;
1936 }
1937
1928 hdw = kzalloc(sizeof(*hdw),GFP_KERNEL); 1938 hdw = kzalloc(sizeof(*hdw),GFP_KERNEL);
1929 pvr2_trace(PVR2_TRACE_INIT,"pvr2_hdw_create: hdw=%p, type \"%s\"", 1939 pvr2_trace(PVR2_TRACE_INIT,"pvr2_hdw_create: hdw=%p, type \"%s\"",
1930 hdw,hdw_desc->description); 1940 hdw,hdw_desc->description);