From 0be048cbc66e0cc98e9578769afede9fe103806b Mon Sep 17 00:00:00 2001 From: Mark Hounschell Date: Wed, 28 May 2014 16:17:55 -0400 Subject: [PATCH] staging: dgap: Simplify dgap_find_config Simplify ugly dgap_find_config function Signed-off-by: Mark Hounschell Tested-by: Mark Hounschell Signed-off-by: Greg Kroah-Hartman --- drivers/staging/dgap/dgap.c | 78 +++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 7912d9865e22..09e247855c91 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -7354,51 +7354,53 @@ static struct cnode *dgap_find_config(int type, int bus, int slot) prev = p; p = p->next; - if (p->type == BNODE) { + if (p->type != BNODE) + continue; - if (p->u.board.type == type) { + if (p->u.board.type != type) + continue; - if (p->u.board.v_pcibus && - p->u.board.pcibus != bus) - continue; - if (p->u.board.v_pcislot && - p->u.board.pcislot != slot) - continue; + if (p->u.board.v_pcibus && + p->u.board.pcibus != bus) + continue; - found = p; - /* - * Keep walking thru the list till we - * find the next board. - */ - while (p->next) { - prev2 = p; - p = p->next; - if (p->type == BNODE) { + if (p->u.board.v_pcislot && + p->u.board.pcislot != slot) + continue; - /* - * Mark the end of our 1 board - * chain of configs. - */ - prev2->next = NULL; + found = p; + /* + * Keep walking thru the list till we + * find the next board. + */ + while (p->next) { + prev2 = p; + p = p->next; - /* - * Link the "next" board to the - * previous board, effectively - * "unlinking" our board from - * the main config. - */ - prev->next = p; + if (p->type != BNODE) + continue; - return found; - } - } - /* - * It must be the last board in the list. - */ - prev->next = NULL; - return found; - } + /* + * Mark the end of our 1 board + * chain of configs. + */ + prev2->next = NULL; + + /* + * Link the "next" board to the + * previous board, effectively + * "unlinking" our board from + * the main config. + */ + prev->next = p; + + return found; } + /* + * It must be the last board in the list. + */ + prev->next = NULL; + return found; } return NULL; }