/* This is called when the USB stack does a usb_{bus,device}_{add,remove}() so we can do WUSB specific handling. It is called with [for the case of USB_DEVICE_{ADD,REMOVE} with the usb_dev locked.  */
int wusb_usb_ncb(struct notifier_block *nb, unsigned long val, void *priv)
/* This is called when the USB stack does a usb_{bus,device}_{add,remove}() so we can do WUSB specific handling. It is called with [for the case of USB_DEVICE_{ADD,REMOVE} with the usb_dev locked.  */
int wusb_usb_ncb(struct notifier_block *nb, unsigned long val, void *priv)
{
	int result = NOTIFY_OK;
	switch (val) {
	case USB_DEVICE_ADD:
		wusb_dev_add_ncb(priv);
		break;
	case USB_DEVICE_REMOVE:
		wusb_dev_rm_ncb(priv);
		break;
	case USB_BUS_ADD:
	case USB_BUS_REMOVE:
		break;
	default:
		WARN_ON(1);
		result = NOTIFY_BAD;
	};
	return result;
}