sparc64: mdesc: use __GFP_REPEAT action modifier for VM allocation
authorJag Raman <jag.raman@oracle.com>
Fri, 23 Jun 2017 18:58:33 +0000 (14:58 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sun, 25 Jun 2017 20:43:12 +0000 (13:43 -0700)
During MDESC handle allocation, use the __GFP_REPEAT flag instead of
__GFP_NOFAIL. If memory is not available, the caller expects a NULL
pointer instead of waiting until memory is allocated.

Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/kernel/mdesc.c

index 72aca731657f757a52749775df42a727b5b388fc..f0249691d0009f3255f05dc7d2935ed269d9e18b 100644 (file)
@@ -205,12 +205,10 @@ static struct mdesc_handle *mdesc_kmalloc(unsigned int mdesc_size)
        handle_size = (sizeof(struct mdesc_handle) -
                       sizeof(struct mdesc_hdr) +
                       mdesc_size);
+       base = kmalloc(handle_size + 15, GFP_KERNEL | __GFP_REPEAT);
+       if (!base)
+               return NULL;
 
-       /*
-        * Allocation has to succeed because mdesc update would be missed
-        * and such events are not retransmitted.
-        */
-       base = kmalloc(handle_size + 15, GFP_KERNEL | __GFP_NOFAIL);
        addr = (unsigned long)base;
        addr = (addr + 15UL) & ~15UL;
        hp = (struct mdesc_handle *) addr;