greybus: protocol.c: fix a kernel panic caused by __gb_protocol_register
authorAlexandre Bailon <abailon@baylibre.com>
Thu, 22 Jan 2015 07:23:37 +0000 (15:23 +0800)
committerGreg Kroah-Hartman <greg@kroah.com>
Thu, 22 Jan 2015 13:15:23 +0000 (21:15 +0800)
__gb_protocol_register check if the protocol is not already registred,
and then register it. It register in existing->lists but at this point,
existing is always NULL (we exist just before if not).
Use gb_protocols instead.

Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/protocol.c

index ae8ab21ee920484ee69708f72222b0a93c85e7f3..400f733864749a48fc11c81b52204bd825376369 100644 (file)
@@ -70,7 +70,7 @@ int __gb_protocol_register(struct gb_protocol *protocol, struct module *module)
         * We need to insert the protocol here, before the existing one
         * (or before the head if we searched the whole list)
         */
-       list_add_tail(&protocol->links, &existing->links);
+       list_add_tail(&protocol->links, &gb_protocols);
        spin_unlock_irq(&gb_protocols_lock);
 
        pr_info("Registered %s protocol.\n", protocol->name);