Message ID | 1341461663-13434-1-git-send-email-nab@linux-iscsi.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, 2012-07-05 at 04:14 +0000, Nicholas A. Bellinger wrote: > From: Nicholas Bellinger <nab@linux-iscsi.org> > > The SGL memory allocated during vhost_scsi_map_iov_to_sgl() setup was never > getting freed during tv_cmd completion -> release path. Fix this up by releasing > tv_cmd->tvc_sgl in vhost_scsi_free_cmd() ahead of tv_cmd descriptor free. > > Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> > Cc: Zhi Yong Wu <wuzhy@cn.ibm.com> > Cc: Michael S. Tsirkin <mst@redhat.com> > Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> > --- > drivers/vhost/tcm_vhost.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c > index cd86633..9692153 100644 > --- a/drivers/vhost/tcm_vhost.c > +++ b/drivers/vhost/tcm_vhost.c > @@ -387,6 +387,8 @@ static void vhost_scsi_free_cmd(struct tcm_vhost_cmd *tv_cmd) > u32 i; > for (i = 0; i < tv_cmd->tvc_sgl_count; i++) > put_page(sg_page(&tv_cmd->tvc_sgl[i])); > + > + kfree(tv_cmd->tvc_sgl); > } > > kfree(tv_cmd); Reviewed-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c index cd86633..9692153 100644 --- a/drivers/vhost/tcm_vhost.c +++ b/drivers/vhost/tcm_vhost.c @@ -387,6 +387,8 @@ static void vhost_scsi_free_cmd(struct tcm_vhost_cmd *tv_cmd) u32 i; for (i = 0; i < tv_cmd->tvc_sgl_count; i++) put_page(sg_page(&tv_cmd->tvc_sgl[i])); + + kfree(tv_cmd->tvc_sgl); } kfree(tv_cmd);