+ devconf = pool_elt_at_index (conf->dev_confs, p[0]);
+ }
+
+ /* Enforce Device blacklist by vmbus_addr */
+ for (i = 0; i < vec_len (conf->blacklist_by_vmbus_addr); i++)
+ {
+ vlib_vmbus_addr_t *a1 = &conf->blacklist_by_vmbus_addr[i];
+ vlib_vmbus_addr_t *a2 = addr;
+ if (memcmp (a1, a2, sizeof (vlib_vmbus_addr_t)) == 0)
+ {
+ if (devconf == 0)
+ {
+ /* Device not whitelisted */
+ pool_get (conf->dev_confs, devconf);
+ mhash_set (&conf->device_config_index_by_vmbus_addr, addr,
+ devconf - conf->dev_confs, 0);
+ devconf->vmbus_addr = *addr;
+ devconf->dev_addr_type = VNET_DEV_ADDR_VMBUS;
+ devconf->is_blacklisted = 1;
+ goto skipped_vmbus;
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+
+ error = vlib_vmbus_bind_to_uio (addr);