]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
greybus: pass gfp_flags for message allocation
authorAlex Elder <elder@linaro.org>
Tue, 18 Nov 2014 19:26:54 +0000 (13:26 -0600)
committerGreg Kroah-Hartman <greg@kroah.com>
Tue, 18 Nov 2014 20:53:38 +0000 (12:53 -0800)
The only reason gb_operation_message_init() gets its "outbound"
argument is so we can determine what allocation flags to use.
Just pass the flags in directly instead.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/operation.c

index 705b195dfe015e1d9fe68281a94fa88990e6b20e..96f4c689e998d8398007a111bdd8498fa59a2f76 100644 (file)
@@ -230,13 +230,12 @@ static void operation_timeout(struct work_struct *work)
  */
 static int gb_operation_message_init(struct gb_operation *operation,
                                        u8 type, size_t size,
-                                       bool request, bool outbound)
+                                       bool request, gfp_t gfp_flags)
 {
        struct gb_connection *connection = operation->connection;
        struct greybus_host_device *hd = connection->hd;
        struct gb_message *message;
        struct gb_operation_msg_hdr *header;
-       gfp_t gfp_flags = request && !outbound ? GFP_ATOMIC : GFP_KERNEL;
 
        if (size > GB_OPERATION_MESSAGE_SIZE_MAX)
                return -E2BIG;
@@ -311,13 +310,13 @@ struct gb_operation *gb_operation_create(struct gb_connection *connection,
        operation->connection = connection;
 
        ret = gb_operation_message_init(operation, type, request_size,
-                                               true, outgoing);
+                                               true, gfp_flags);
        if (ret)
                goto err_cache;
 
        if (outgoing) {
                ret = gb_operation_message_init(operation, type, response_size,
-                                               false, false);
+                                               false, GFP_KERNEL);
                if (ret)
                        goto err_request;
        }