skb_unlink(skb); 
skb_unlink(skb, &bfusb->pending_q); 
static int bfusb_rx_submit(struct bfusb *bfusb, struct urb *urb){	struct bfusb_scb *scb;	struct sk_buff *skb;	int err, pipe, size = HCI_MAX_FRAME_SIZE + 32;	BT_DBG("bfusb %p urb %p", bfusb, urb);	if (!urb && !(urb = usb_alloc_urb(0, GFP_ATOMIC)))		return -ENOMEM;	if (!(skb = bt_skb_alloc(size, GFP_ATOMIC))) {		usb_free_urb(urb);		return -ENOMEM;	}	skb->dev = (void *) bfusb;	scb = (struct bfusb_scb *) skb->cb;	scb->urb = urb;	pipe = usb_rcvbulkpipe(bfusb->udev, bfusb->bulk_in_ep);	usb_fill_bulk_urb(urb, bfusb->udev, pipe, skb->data, size,			bfusb_rx_complete, skb);	skb_queue_tail(&bfusb->pending_q, skb);	err = usb_submit_urb(urb, GFP_ATOMIC);	if (err) {		BT_ERR("%s bulk rx submit failed urb %p err %d",					bfusb->hdev->name, urb, err);		skb_unlink(skb);		kfree_skb(skb);		usb_free_urb(urb);	}	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8728b834b226ffcf2c94a58530090e292af2a7bf/bfusb.c/buggy/drivers/bluetooth/bfusb.c