linux-mips
[Top] [All Lists]

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

To: "linux-mips@linux-mips.org" <linux-mips@linux-mips.org>
Subject: [PATCH] linux-2.4: br2684: allocation out of atomic context
From: Frank Seidel <Frank.Seidel@sphairon.com>
Date: Mon, 29 Jun 2009 14:25:48 +0200
Cc: "Seidel, Frank" <Frank.Seidel@sphairon.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.21 (X11/20090318)
Author: 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>
---
 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>