Thread (42 messages) 42 messages, 7 authors, 2016-04-14

[PATCH v3 15/16] usb: musb: da8xx: Use devm in probe

From: david@lechnology.com (David Lechner)
Date: 2016-03-31 22:28:50
Also in: linux-devicetree, lkml

On 03/31/2016 05:21 PM, Bin Liu wrote:
quoted
-	glue = kzalloc(sizeof(*glue), GFP_KERNEL);
+	glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
  	if (!glue) {
  		dev_err(&pdev->dev, "failed to allocate glue context\n");
-		goto err0;
+		return -ENOMEM;
  	}

-	clk = clk_get(&pdev->dev, "usb20");
+	clk = devm_clk_get(&pdev->dev, "usb20");
  	if (IS_ERR(clk)) {
  		dev_err(&pdev->dev, "failed to get clock\n");
-		ret = PTR_ERR(clk);
-		goto err3;
+		return PTR_ERR(clk);
memory leak due to not kfree(glue).
It is my understanding that since glue is allocated with devm_kzalloc(), 
that if the probe function returns and error, glue and everything else 
allocated with devm_* will be automatically freed.

If this is not the case, wouldn't devm_kfree() be the appropriate 
function instead?

quoted
@@ -576,8 +569,6 @@ static int da8xx_remove(struct platform_device *pdev)
  	platform_device_unregister(glue->musb);
  	usb_phy_generic_unregister(glue->phy);
  	clk_disable(glue->clk);
-	clk_put(glue->clk);
-	kfree(glue);
Doesn't match with $subject, I'd put them into a seperate patch.

I disagree. Since these are now automatically freed because of changes 
in the probe function, these changes belong in the same patch.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help