greybus: connection: fix non-atomic allocations under spin lock
authorJohan Hovold <johan@hovoldconsulting.com>
Thu, 12 Feb 2015 03:22:47 +0000 (11:22 +0800)
committerGreg Kroah-Hartman <greg@kroah.com>
Thu, 12 Feb 2015 03:42:26 +0000 (11:42 +0800)
Use GFP_ATOMIC for IDA memory allocations under spin lock, which must
not sleep.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/connection.c

index c805022..5f60e83 100644 (file)
@@ -63,7 +63,7 @@ static bool gb_connection_hd_cport_id_alloc(struct gb_connection *connection)
        int id;
 
        spin_lock_irq(&gb_connections_lock);
-       id = ida_simple_get(ida, 0, HOST_DEV_CPORT_ID_MAX, GFP_KERNEL);
+       id = ida_simple_get(ida, 0, HOST_DEV_CPORT_ID_MAX, GFP_ATOMIC);
        spin_unlock_irq(&gb_connections_lock);
        if (id < 0)
                return false;