Message ID | 1566362796-5399-1-git-send-email-wenwen@cs.uga.edu |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [v2] qed: Add cleanup in qed_slowpath_start() | expand |
> -----Original Message----- > From: Wenwen Wang <wenwen@cs.uga.edu> > Sent: Wednesday, August 21, 2019 10:17 AM > To: Wenwen Wang <wenwen@cs.uga.edu> > Cc: Sudarsana Reddy Kalluru <skalluru@marvell.com>; Ariel Elior > <aelior@marvell.com>; GR-everest-linux-l2 <GR-everest-linux- > l2@marvell.com>; David S. Miller <davem@davemloft.net>; open > list:QLOGIC QL4xxx ETHERNET DRIVER <netdev@vger.kernel.org>; open list > <linux-kernel@vger.kernel.org> > Subject: [PATCH v2] qed: Add cleanup in qed_slowpath_start() > > If qed_mcp_send_drv_version() fails, no cleanup is executed, leading to > memory leaks. To fix this issue, introduce the label 'err4' to perform the > cleanup work before returning the error. > > Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu> > --- > drivers/net/ethernet/qlogic/qed/qed_main.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c > b/drivers/net/ethernet/qlogic/qed/qed_main.c > index 829dd60..1efff7f 100644 > --- a/drivers/net/ethernet/qlogic/qed/qed_main.c > +++ b/drivers/net/ethernet/qlogic/qed/qed_main.c > @@ -1325,7 +1325,7 @@ static int qed_slowpath_start(struct qed_dev > *cdev, > &drv_version); > if (rc) { > DP_NOTICE(cdev, "Failed sending drv version > command\n"); > - return rc; > + goto err4; > } > } > > @@ -1333,6 +1333,8 @@ static int qed_slowpath_start(struct qed_dev > *cdev, > > return 0; > > +err4: > + qed_ll2_dealloc_if(cdev); > err3: > qed_hw_stop(cdev); > err2: > -- > 2.7.4 Acked-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
From: Wenwen Wang <wenwen@cs.uga.edu> Date: Tue, 20 Aug 2019 23:46:36 -0500 > If qed_mcp_send_drv_version() fails, no cleanup is executed, leading to > memory leaks. To fix this issue, introduce the label 'err4' to perform the > cleanup work before returning the error. > > Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu> Applied.
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c index 829dd60..1efff7f 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_main.c +++ b/drivers/net/ethernet/qlogic/qed/qed_main.c @@ -1325,7 +1325,7 @@ static int qed_slowpath_start(struct qed_dev *cdev, &drv_version); if (rc) { DP_NOTICE(cdev, "Failed sending drv version command\n"); - return rc; + goto err4; } } @@ -1333,6 +1333,8 @@ static int qed_slowpath_start(struct qed_dev *cdev, return 0; +err4: + qed_ll2_dealloc_if(cdev); err3: qed_hw_stop(cdev); err2:
If qed_mcp_send_drv_version() fails, no cleanup is executed, leading to memory leaks. To fix this issue, introduce the label 'err4' to perform the cleanup work before returning the error. Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu> --- drivers/net/ethernet/qlogic/qed/qed_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)