mirror of https://gitee.com/openkylin/linux.git
staging: vt6655: add handling memory leak on vnt_start()
There was no code for handling memory leaks of device_init_rings() and request_irq(). It needs to free allocated memory in the device_init_rings() , when request_irq() would be failed. Add freeing sequences of irq and device init rings. Signed-off-by: Ji-Hun Kim <ji_hun.kim@samsung.com> Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5341ee0adb
commit
1dc751a5b5
|
@ -1237,13 +1237,13 @@ static int vnt_start(struct ieee80211_hw *hw)
|
|||
IRQF_SHARED, "vt6655", priv);
|
||||
if (ret) {
|
||||
dev_dbg(&priv->pcid->dev, "failed to start irq\n");
|
||||
return ret;
|
||||
goto err_free_rings;
|
||||
}
|
||||
|
||||
dev_dbg(&priv->pcid->dev, "call device init rd0 ring\n");
|
||||
ret = device_init_rd0_ring(priv);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err_free_irq;
|
||||
ret = device_init_rd1_ring(priv);
|
||||
if (ret)
|
||||
goto err_free_rd0_ring;
|
||||
|
@ -1269,6 +1269,10 @@ static int vnt_start(struct ieee80211_hw *hw)
|
|||
device_free_rd1_ring(priv);
|
||||
err_free_rd0_ring:
|
||||
device_free_rd0_ring(priv);
|
||||
err_free_irq:
|
||||
free_irq(priv->pcid->irq, priv);
|
||||
err_free_rings:
|
||||
device_free_rings(priv);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue