linux-mips
[Top] [All Lists]

[PATCH] linux-2.4: br2684: allocation out of atomic context

To: Willy Tarreau <w@1wt.eu>
Subject: [PATCH] linux-2.4: br2684: allocation out of atomic context
From: Ralf Baechle <ralf@linux-mips.org>
Date: Mon, 29 Jun 2009 16:49:05 +0100
Cc: Frank Seidel <Frank.Seidel@sphairon.com>, linux-mips@linux-mips.org, netdev@vger.kernel.org
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.18 (2008-05-17)
From: Arne Redlich <redlicha@sphairon.com>

Moved GFP_Kernel allocation out of atomic context

Signed-off-by: Arne Redlich <redlicha@sphairon.com>
Signed-off-by: Frank Seidel <Frank.Seidel@sphairon.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
---
 net/atm/br2684.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

--- a/net/atm/br2684.c
+++ b/net/atm/br2684.c
@@ -509,6 +509,10 @@ Note: we do not have explicit unassign,
                MOD_DEC_USE_COUNT;
                return -EFAULT;
        }
+       brvcc = kmalloc(sizeof(struct br2684_vcc), GFP_KERNEL);
+       if (!brvcc)
+               return -ENOMEM;
+       memset(brvcc, 0, sizeof(struct br2684_vcc));
        write_lock_irq(&devs_lock);
        brdev = br2684_find_dev(&be.ifspec);
        if (brdev == NULL) {
@@ -532,11 +536,6 @@ Note: we do not have explicit unassign,
                err = -EINVAL;
                goto error;
        }
-       brvcc = kmalloc(sizeof(struct br2684_vcc), GFP_KERNEL);
-       if (!brvcc) {
-               err = -ENOMEM;
-               goto error;
-       }
        memset(brvcc, 0, sizeof(struct br2684_vcc));
        DPRINTK("br2684_regvcc vcc=%p, encaps=%d, brvcc=%p\n", atmvcc, 
be.encaps,
                brvcc);
@@ -567,6 +566,7 @@ Note: we do not have explicit unassign,
        return 0;
     error:
        write_unlock_irq(&devs_lock);
+       kfree(brvcc);
        MOD_DEC_USE_COUNT;
        return err;
 }

<Prev in Thread] Current Thread [Next in Thread>