Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6
[deliverable/linux.git] / drivers / firewire / core-card.c
index f74edae5cb4cfce68726102cca77711865003bc5..e4864e894e4f84877cb9a6dfa8c9467194ee2e6b 100644 (file)
@@ -444,16 +444,13 @@ int fw_card_add(struct fw_card *card,
        card->guid = guid;
 
        mutex_lock(&card_mutex);
-       config_rom = generate_config_rom(card, &length);
-       list_add_tail(&card->link, &card_list);
-       mutex_unlock(&card_mutex);
 
+       config_rom = generate_config_rom(card, &length);
        ret = card->driver->enable(card, config_rom, length);
-       if (ret < 0) {
-               mutex_lock(&card_mutex);
-               list_del(&card->link);
-               mutex_unlock(&card_mutex);
-       }
+       if (ret == 0)
+               list_add_tail(&card->link, &card_list);
+
+       mutex_unlock(&card_mutex);
 
        return ret;
 }
This page took 0.024397 seconds and 5 git commands to generate.