/* The current device is removed, the USB layer tell us to shut it down...  */
static void kingsun_disconnect(struct usb_interface *intf)
/* The current device is removed, the USB layer tell us to shut it down...  */
static void kingsun_disconnect(struct usb_interface *intf)
{
	struct kingsun_cb *kingsun = usb_get_intfdata(intf);
	if (!kingsun)
		return;
	unregister_netdev(kingsun->netdev);
	if (kingsun->tx_urb != NULL) {
		usb_kill_urb(kingsun->tx_urb);
		usb_free_urb(kingsun->tx_urb);
		kingsun->tx_urb = NULL;
	}
	if (kingsun->rx_urb != NULL) {
		usb_kill_urb(kingsun->rx_urb);
		usb_free_urb(kingsun->rx_urb);
		kingsun->rx_urb = NULL;
	}
	kfree(kingsun->out_buf);
	kfree(kingsun->in_buf);
	free_netdev(kingsun->netdev);
	usb_set_intfdata(intf, NULL);
}