Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5bfc43a0b65a11ca1e9edfa0c2bd34ce43da0346
Commit:     5bfc43a0b65a11ca1e9edfa0c2bd34ce43da0346
Parent:     402b310cb6e523779149139b20f46899a890e963
Author:     Bjorn Helgaas <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 16 23:31:09 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Wed Oct 17 08:43:04 2007 -0700

    PNP: simplify PNP card error handling
    
    No functional change; just return errors early instead of putting the main
    part of the function inside an "if" statement.
    
    Signed-off-by: Bjorn Helgaas <[EMAIL PROTECTED]>
    Cc: Adam Belay <[EMAIL PROTECTED]>
    Cc: Len Brown <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 drivers/pnp/card.c |   57 ++++++++++++++++++++++++++-------------------------
 1 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c
index fae2891..3b48aef 100644
--- a/drivers/pnp/card.c
+++ b/drivers/pnp/card.c
@@ -197,33 +197,34 @@ int pnp_add_card(struct pnp_card *card)
        card->dev.bus = NULL;
        card->dev.release = &pnp_release_card;
        error = device_register(&card->dev);
-
-       if (error == 0) {
-               pnp_interface_attach_card(card);
-               spin_lock(&pnp_lock);
-               list_add_tail(&card->global_list, &pnp_cards);
-               list_add_tail(&card->protocol_list, &card->protocol->cards);
-               spin_unlock(&pnp_lock);
-
-               /* we wait until now to add devices in order to ensure the 
drivers
-                * will be able to use all of the related devices on the card
-                * without waiting any unresonable length of time */
-               list_for_each(pos, &card->devices) {
-                       struct pnp_dev *dev = card_to_pnp_dev(pos);
-                       __pnp_add_device(dev);
-               }
-
-               /* match with card drivers */
-               list_for_each_safe(pos, temp, &pnp_card_drivers) {
-                       struct pnp_card_driver *drv =
-                           list_entry(pos, struct pnp_card_driver,
-                                      global_list);
-                       card_probe(card, drv);
-               }
-       } else
+       if (error) {
                pnp_err("sysfs failure, card '%s' will be unavailable",
                        card->dev.bus_id);
-       return error;
+               return error;
+       }
+
+       pnp_interface_attach_card(card);
+       spin_lock(&pnp_lock);
+       list_add_tail(&card->global_list, &pnp_cards);
+       list_add_tail(&card->protocol_list, &card->protocol->cards);
+       spin_unlock(&pnp_lock);
+
+       /* we wait until now to add devices in order to ensure the drivers
+        * will be able to use all of the related devices on the card
+        * without waiting an unreasonable length of time */
+       list_for_each(pos, &card->devices) {
+               struct pnp_dev *dev = card_to_pnp_dev(pos);
+               __pnp_add_device(dev);
+       }
+
+       /* match with card drivers */
+       list_for_each_safe(pos, temp, &pnp_card_drivers) {
+               struct pnp_card_driver *drv =
+                   list_entry(pos, struct pnp_card_driver,
+                              global_list);
+               card_probe(card, drv);
+       }
+       return 0;
 }
 
 /**
@@ -291,14 +292,15 @@ struct pnp_dev *pnp_request_card_device(struct 
pnp_card_link *clink,
        struct pnp_card *card;
 
        if (!clink || !id)
-               goto done;
+               return NULL;
+
        card = clink->card;
        drv = clink->driver;
        if (!from) {
                pos = card->devices.next;
        } else {
                if (from->card != card)
-                       goto done;
+                       return NULL;
                pos = from->card_list.next;
        }
        while (pos != &card->devices) {
@@ -308,7 +310,6 @@ struct pnp_dev *pnp_request_card_device(struct 
pnp_card_link *clink,
                pos = pos->next;
        }
 
-done:
        return NULL;
 
 found:
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to