lkml.org 
[lkml]   [2011]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/4] PCI: data structure agnostic free list function
    Date
    replaced free_failed_list() with a free_list() call. free_list() can
    handle 'resource_list_x', 'resource_list' and any linked list
    linked through ->next

    Signed-off-by: Ram Pai <linuxram@us.ibm.com>
    ---
    drivers/pci/setup-bus.c | 27 ++++++++++++---------------
    1 files changed, 12 insertions(+), 15 deletions(-)

    diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
    index 2121215..bcf5752 100644
    --- a/drivers/pci/setup-bus.c
    +++ b/drivers/pci/setup-bus.c
    @@ -36,6 +36,16 @@ struct resource_list_x {
    unsigned long flags;
    };

    +#define free_list(type, head) do { \
    + struct type *list, *tmp; \
    + for (list = (head)->next; list;) { \
    + tmp = list; \
    + list = list->next; \
    + kfree(tmp); \
    + } \
    + (head)->next = NULL; \
    +} while (0)
    +
    static void add_to_failed_list(struct resource_list_x *head,
    struct pci_dev *dev, struct resource *res)
    {
    @@ -58,19 +68,6 @@ static void add_to_failed_list(struct resource_list_x *head,
    list->next = tmp;
    }

    -static void free_failed_list(struct resource_list_x *head)
    -{
    - struct resource_list_x *list, *tmp;
    -
    - for (list = head->next; list;) {
    - tmp = list;
    - list = list->next;
    - kfree(tmp);
    - }
    -
    - head->next = NULL;
    -}
    -
    static void __dev_sort_resources(struct pci_dev *dev,
    struct resource_list *head)
    {
    @@ -900,7 +897,7 @@ again:

    if (tried_times >= 2) {
    /* still fail, don't need to try more */
    - free_failed_list(&head);
    + free_list(resource_list_x, &head);
    goto enable_all;
    }

    @@ -931,7 +928,7 @@ again:

    list = list->next;
    }
    - free_failed_list(&head);
    + free_list(resource_list_x, &head);

    goto again;

    --
    1.6.5.2


    \
     
     \ /
      Last update: 2011-02-15 02:47    [W:3.233 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site