/* We need a callback because we cannot invoked device_unregister() inside vmbus_probe() since vmbus_probe() may be invoked inside device_register() i.e. we cannot call device_unregister() inside device_register()  */
static void vmbus_probe_failed_cb(struct work_struct *context)
/* We need a callback because we cannot invoked device_unregister() inside vmbus_probe() since vmbus_probe() may be invoked inside device_register() i.e. we cannot call device_unregister() inside device_register()  */
static void vmbus_probe_failed_cb(struct work_struct *context)
{
	struct device_context *device_ctx = (struct device_context *)context;
	DPRINT_ENTER(VMBUS_DRV);
	device_unregister(&device_ctx->device);
	DPRINT_EXIT(VMBUS_DRV);
}