On Thu, Aug 15, 2019 at 4:51 PM David Miller <da...@davemloft.net> wrote: > > From: Wenwen Wang <wen...@cs.uga.edu> > Date: Thu, 15 Aug 2019 16:46:05 -0400 > > > On Thu, Aug 15, 2019 at 4:42 PM David Miller <da...@davemloft.net> wrote: > >> > >> From: Wenwen Wang <wen...@cs.uga.edu> > >> Date: Thu, 15 Aug 2019 16:03:39 -0400 > >> > >> > On Thu, Aug 15, 2019 at 3:34 PM David Miller <da...@davemloft.net> wrote: > >> >> > >> >> From: Wenwen Wang <wen...@cs.uga.edu> > >> >> Date: Tue, 13 Aug 2019 20:33:45 -0500 > >> >> > >> >> > In pch_gbe_set_ringparam(), if netif_running() returns false, > >> >> > 'tx_old' and > >> >> > 'rx_old' are not deallocated, leading to memory leaks. To fix this > >> >> > issue, > >> >> > move the free statements after the if branch. > >> >> > > >> >> > Signed-off-by: Wenwen Wang <wen...@cs.uga.edu> > >> >> > >> >> Why would they be "deallocated"? They are still assigned to > >> >> adapter->tx_ring and adapter->rx_ring. > >> > > >> > 'adapter->tx_ring' and 'adapter->rx_ring' has been covered by newly > >> > allocated 'txdr' and 'rxdr' respectively before this if statement. > >> > >> That only happens inside of the if() statement, that's why rx_old and > >> tx_old are only freed in that code path. > > > > That happens not only inside of the if statement, but also before the > > if statement, just after 'txdr' and 'rxdr' are allocated. > > Then the assignments inside of the if() statement are redundant. > > Something doesn't add up here, please make the code consistent.
Thanks for your suggestion! I will remove the assignments inside of the if() statement. Wenwen