On Mon, May 11, 2020 at 11:13:28PM -0400, Dennis Dalessandro wrote: > From: Kaike Wan <kaike.wan@xxxxxxxxx> > > When kobject_init_and_add() returns an error in the function > qib_create_port_files(), the function kobject_put() is not called for > the corresponding kobject, which potentially leads to memory leak. > > This patch fixes the issue by calling kobject_put() even if > kobject_init_and_add() fails. In addition, the ppd->diagc_kobj is > released along with other kobjects when the sysfs is unregistered. > > Fixes: f931551bafe1 ("IB/qib: Add new qib driver for QLogic PCIe InfiniBand adapters") > Cc: <stable@xxxxxxxxxxxxxxx> > Suggested-by: Lin Yi <teroincn@xxxxxxxxx> > Reviewed-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx> > Signed-off-by: Kaike Wan <kaike.wan@xxxxxxxxx> > Signed-off-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx> > --- > drivers/infiniband/hw/qib/qib_sysfs.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > It is not "even if", the kobject_put() must be called if kobject_init_and_add() fails. Thanks, Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>