Browse Source

V4L/DVB (7624): Avoid an oops if the board is not fully defined

Avoid an oops if the board is not fully defined.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth 17 years ago
parent
commit
9c26de555d

+ 1 - 0
drivers/media/video/au0828/au0828-core.c

@@ -217,6 +217,7 @@ static int au0828_usb_probe (struct usb_interface *interface,
 	au0828_dvb_register(dev);
 
 	_info("Registered device AU0828 [%s]\n",
+		au0828_boards[dev->board].name == NULL ? "Unset" :
 		au0828_boards[dev->board].name);
 
 	return 0;

+ 6 - 0
drivers/media/video/au0828/au0828-dvb.c

@@ -57,6 +57,9 @@ static void urb_completion(struct urb *purb)
 	struct au0828_dev *dev = purb->context;
 	int ptype = usb_pipetype(purb->pipe);
 
+	if (!dev)
+		return;
+
 	if (dev->urb_streaming == 0)
 		return;
 
@@ -310,6 +313,9 @@ void au0828_dvb_unregister(struct au0828_dev *dev)
 {
 	struct au0828_dvb *dvb = &dev->dvb;
 
+	if(dvb->frontend == NULL)
+		return;
+
 	dvb_net_release(&dvb->net);
 	dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_mem);
 	dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->fe_hw);