> -----Original Message----- > From: Wenwen Wang <wen...@cs.uga.edu> > Sent: Wednesday, August 21, 2019 10:17 AM > To: Wenwen Wang <wen...@cs.uga.edu> > Cc: Sudarsana Reddy Kalluru <skall...@marvell.com>; Ariel Elior > <ael...@marvell.com>; GR-everest-linux-l2 <GR-everest-linux- > l...@marvell.com>; David S. Miller <da...@davemloft.net>; open > list:QLOGIC QL4xxx ETHERNET DRIVER <net...@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 <wen...@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 <skall...@marvell.com>