Re: [PATCH 1/1] Drivers: hv: vmbus: Don't leak memory when a channel is rescinded

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 23, 2017 at 03:29:24PM +0000, Dexuan Cui wrote:
> > From: linux-kernel-owner@xxxxxxxxxxxxxxx [mailto:linux-kernel-
> > owner@xxxxxxxxxxxxxxx] On Behalf Of kys@xxxxxxxxxxxxxxxxxxxxxx
> > Sent: Monday, March 13, 2017 11:01
> > To: gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > devel@xxxxxxxxxxxxxxxxxxxxxx; olaf@xxxxxxxxx; apw@xxxxxxxxxxxxx;
> > vkuznets@xxxxxxxxxx; jasowang@xxxxxxxxxx;
> > leann.ogasawara@xxxxxxxxxxxxx; marcelo.cerri@xxxxxxxxxxxxx
> > Cc: KY Srinivasan <kys@xxxxxxxxxxxxx>
> > Subject: [PATCH 1/1] Drivers: hv: vmbus: Don't leak memory when a channel
> > is rescinded
> > 
> > 
> > From: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
> > 
> > When we close a channel that has been rescinded, we will leak memory
> > since
> > vmbus_teardown_gpadl() returns an error. Fix this so that we can properly
> > cleanup the memory allocated to the ring buffers.
> > 
> > Fixes: ccb61f8a99e6 ("Drivers: hv: vmbus: Fix a rescind handling bug")
> > 
> > Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
> > ---
> >  drivers/hv/channel.c |   13 ++++++++-----
> >  1 files changed, 8 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
> > index 54075ac..e9b0fab 100644
> > --- a/drivers/hv/channel.c
> > +++ b/drivers/hv/channel.c
> > @@ -502,12 +502,15 @@ int vmbus_teardown_gpadl(struct vmbus_channel
> > *channel, u32 gpadl_handle)
> > 
> >         wait_for_completion(&info->waitevent);
> > 
> > -       if (channel->rescind) {
> > -               ret = -ENODEV;
> > -               goto post_msg_err;
> > -       }
> > -
> >  post_msg_err:
> > +       /*
> > +        * If the channel has been rescinded;
> > +        * we will be awakened by the rescind
> > +        * handler; set the error code to zero so we don't leak memory.
> > +        */
> > +       if (channel->rescind)
> > +               ret = 0;
> > +
> >         spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
> >         list_del(&info->msglistentry);
> >         spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags);
> > --
> 
> Hi Greg,
> Can you please apply the patch to the stable tree too?
> 
> The patch has been on char-misc.git tree's char-misc-linus branch:
> https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/commit/?h=char-misc-linus&id=5e030d5ce9d99a899b648413139ff65bab12b038
> but the patch lacks a "Cc: <stable@xxxxxxxxxxxxxxx>" tag.

When it goes into Linus's tree, email stable@xxxxxxxxxxxxxxx the git
commit id and the people there will be glad to pick it up (hint, it's
not just me...)

thanks,

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]