unsigned long flags;
};
-#define free_list(type, head) do { \
- struct type *dev_res, *tmp; \
- list_for_each_entry_safe(dev_res, tmp, head, list) { \
- list_del(&dev_res->list); \
- kfree(dev_res); \
- } \
-} while (0)
+static void free_list(struct list_head *head)
+{
+ struct pci_dev_resource *dev_res, *tmp;
+
+ list_for_each_entry_safe(dev_res, tmp, head, list) {
+ list_del(&dev_res->list);
+ kfree(dev_res);
+ }
+}
int pci_realloc_enable = 0;
#define pci_realloc_enabled() pci_realloc_enable
/* Save original start, end, flags etc at first */
list_for_each_entry(dev_res, head, list) {
if (add_to_list(&save_head, dev_res->dev, dev_res->res, 0, 0)) {
- free_list(pci_dev_resource, &save_head);
+ free_list(&save_head);
goto requested_and_reassign;
}
}
/* Remove head list from realloc_head list */
list_for_each_entry(dev_res, head, list)
remove_from_list(realloc_head, dev_res->res);
- free_list(pci_dev_resource, &save_head);
- free_list(pci_dev_resource, head);
+ free_list(&save_head);
+ free_list(head);
return;
}
- free_list(pci_dev_resource, &local_fail_head);
+ free_list(&local_fail_head);
/* Release assigned resource */
list_for_each_entry(dev_res, head, list)
if (dev_res->res->parent)
res->end = save_res->end;
res->flags = save_res->flags;
}
- free_list(pci_dev_resource, &save_head);
+ free_list(&save_head);
requested_and_reassign:
/* Satisfy the must-have resource requests */
requests */
if (realloc_head)
reassign_resources_sorted(realloc_head, head);
- free_list(pci_dev_resource, head);
+ free_list(head);
}
static void pdev_assign_resources_sorted(struct pci_dev *dev,
*/
failed_type &= type_mask;
if ((failed_type == IORESOURCE_IO) || (tried_times >= pci_try_num)) {
- free_list(pci_dev_resource, &fail_head);
+ free_list(&fail_head);
goto enable_and_dump;
}
if (fail_res->dev->subordinate)
res->flags = 0;
}
- free_list(pci_dev_resource, &fail_head);
+ free_list(&fail_head);
goto again;
if (tried_times >= 2) {
/* still fail, don't need to try more */
- free_list(pci_dev_resource, &fail_head);
+ free_list(&fail_head);
goto enable_all;
}
if (fail_res->dev->subordinate)
res->flags = 0;
}
- free_list(pci_dev_resource, &fail_head);
+ free_list(&fail_head);
goto again;