doc: fix broken references
[linux-2.6.git] / drivers / media / dvb / dvb-usb / a800.c
index f8e9bf1..b95a95e 100644 (file)
@@ -78,17 +78,26 @@ static struct rc_map_table rc_map_a800_table[] = {
 
 static int a800_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
 {
-       u8 key[5];
+       int ret;
+       u8 *key = kmalloc(5, GFP_KERNEL);
+       if (!key)
+               return -ENOMEM;
+
        if (usb_control_msg(d->udev,usb_rcvctrlpipe(d->udev,0),
                                0x04, USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, key, 5,
-                               2000) != 5)
-               return -ENODEV;
+                               2000) != 5) {
+               ret = -ENODEV;
+               goto out;
+       }
 
        /* call the universal NEC remote processor, to find out the key's state and event */
        dvb_usb_nec_rc_key_to_event(d,key,event,state);
        if (key[0] != 0)
                deb_rc("key: %x %x %x %x %x\n",key[0],key[1],key[2],key[3],key[4]);
-       return 0;
+       ret = 0;
+out:
+       kfree(key);
+       return ret;
 }
 
 /* USB Driver stuff */