void device_handler_remove(struct device_handler *handler,
struct discover_device *device)
{
+ struct discover_boot_option *opt, *tmp;
unsigned int i;
for (i = 0; i < handler->n_devices; i++)
return;
}
+ /* Free any unresolved options, as they're currently allocated
+ * against the handler */
+ list_for_each_entry_safe(&handler->unresolved_boot_options,
+ opt, tmp, list) {
+ if (opt->device != device)
+ continue;
+ list_remove(&opt->list);
+ talloc_free(opt);
+ }
+
handler->n_devices--;
memmove(&handler->devices[i], &handler->devices[i + 1],
(handler->n_devices - i) * sizeof(handler->devices[0]));