Thread (7 messages) flat view 7 messages, 3 authors, 2015-10-03

Re: [PATCH 1/3] net: dsa: Use devm_ prefixed allocations

From: Felix Fietkau <hidden>
Date: 2015-10-03 12:39:36
Also in: lkml

On 2015-10-02 15:30, Neil Armstrong wrote:
On 10/02/2015 03:29 PM, Sergei Shtylyov wrote:
quoted
On 10/2/2015 1:48 PM, Neil Armstrong wrote:
quoted
To simplify and prevent memory leakage when unbinding, use
the devm_ memory allocation calls.

Tested-by: Andrew Lunn <andrew@lunn.ch>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Neil Armstrong <redacted>
---
  net/dsa/dsa.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
index c59fa5d..98f94c2 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -305,7 +305,7 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, struct device *parent)
      if (ret < 0)
          goto out;

-    ds->slave_mii_bus = mdiobus_alloc();
+    ds->slave_mii_bus = devm_mdiobus_alloc(parent);
      if (ds->slave_mii_bus == NULL) {
          ret = -ENOMEM;
          goto out;
@@ -400,7 +400,7 @@ dsa_switch_setup(struct dsa_switch_tree *dst, int index,
      /*
       * Allocate and initialise switch state.
       */
-    ds = kzalloc(sizeof(*ds) + drv->priv_size, GFP_KERNEL);
+    ds = devm_kzalloc(parent, sizeof(*ds) + drv->priv_size, GFP_KERNEL);
      if (ds == NULL)
          return ERR_PTR(-ENOMEM);
@@ -883,7 +883,7 @@ static int dsa_probe(struct platform_device *pdev)
          goto out;
      }

-    dst = kzalloc(sizeof(*dst), GFP_KERNEL);
+    dst = devm_kzalloc(&pdev->dev, sizeof(*dst), GFP_KERNEL);
      if (dst == NULL) {
          dev_put(dev);
          ret = -ENOMEM;
   Shouldn't you remove the correspoding kfree(), etc. calls?

MBR, Sergei
The corresponding kfree() calls were all missing.
Not in the error handling path. mdiobus_alloc has a corresponding
mdiobus_free in the same function.
The ds kzalloc in dsa_switch_setup has a kfree in dsa_switch_setup_one.

- Felix
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help