All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
To: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Lorenzo Bianconi <lorenzo@kernel.org>,
	nbd@nbd.name, linux-wireless@vger.kernel.org
Subject: Re: [PATCH] mt76: usb: fix possible memory leak during suspend/resume
Date: Fri, 12 Apr 2019 18:27:48 +0200	[thread overview]
Message-ID: <20190412162746.GC3156@localhost.localdomain> (raw)
In-Reply-To: <20190412153509.GB3156@localhost.localdomain>

[-- Attachment #1: Type: text/plain, Size: 2259 bytes --]

> > On Fri, Apr 12, 2019 at 02:27:16PM +0200, Lorenzo Bianconi wrote:
> > > Disable mt76u_tx_tasklet at the end of mt76u_stop_queues in order to
> > > properly deallocate all pending skbs during suspend/resume phase
> > 
> > On suspend/resume tx skb's are processed after tasklet_enable()
> > in resume callback. There is issue with device removal though
> > (during suspend or otherwise).
> 
> Hi Stanislaw,
> 
> I guess the right moment to deallocate the skbs is during suspend since resume
> can happen in very far future
> 
> > 
> > > Fixes: b40b15e1521f ("mt76: add usb support to mt76 layer")
> > > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> > > ---
> > >  drivers/net/wireless/mediatek/mt76/usb.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/net/wireless/mediatek/mt76/usb.c b/drivers/net/wireless/mediatek/mt76/usb.c
> > > index a3acc070063a..575207133775 100644
> > > --- a/drivers/net/wireless/mediatek/mt76/usb.c
> > > +++ b/drivers/net/wireless/mediatek/mt76/usb.c
> > > @@ -842,10 +842,10 @@ static void mt76u_stop_tx(struct mt76_dev *dev)
> > >  void mt76u_stop_queues(struct mt76_dev *dev)
> > >  {
> > >  	tasklet_disable(&dev->usb.rx_tasklet);
> > > -	tasklet_disable(&dev->usb.tx_tasklet);
> > > -
> > >  	mt76u_stop_rx(dev);
> > > +
> > >  	mt76u_stop_tx(dev);
> > > +	tasklet_disable(&dev->usb.tx_tasklet);
> > 
> > If tasklet is scheduled and we disable it and never enable, we end up
> > with infinite loop in tasklet_action_common(). This patch make the
> > problem less reproducible since tasklet_disable() is moved after
> > usb_kill_urb() -> tasklet_schedule(), but it is still possible.
> 
> I can see the point here. Maybe we can just run tasklet_kill instead of
> tasklet_disable here (at least for tx one)

I think it is enough even for rx side since usb_kill_urb() will wait the end of
mt76u_complete_rx() and tasklet_kill() will wait for the completion of
mt76u_rx_tasklet(). We will need to remove tasklet_enable in resume routines.

Regards,
Lorenzo

> 
> Regards,
> Lorenzo
> 
> > 
> > I comprehansive have fix for that, but giving it more testing.
> > Please drop this patch.
> > 
> > Stanislaw



[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

  reply	other threads:[~2019-04-12 16:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1555071870.git.lorenzo@kernel.org>
2019-04-12 12:27 ` [PATCH] mt76: usb: fix possible memory leak during suspend/resume Lorenzo Bianconi
2019-04-12 14:54   ` Stanislaw Gruszka
2019-04-12 15:35     ` Lorenzo Bianconi
2019-04-12 16:27       ` Lorenzo Bianconi [this message]
2019-04-13  8:30         ` Stanislaw Gruszka
2019-04-13 10:10           ` Lorenzo Bianconi
2019-04-15 11:53             ` Stanislaw Gruszka
2019-04-15 15:04               ` Lorenzo Bianconi
2019-04-16  8:04                 ` Stanislaw Gruszka
2019-04-16  8:12                   ` Lorenzo Bianconi
2019-04-16  8:27                     ` Stanislaw Gruszka
2019-04-16  8:33                       ` Lorenzo Bianconi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190412162746.GC3156@localhost.localdomain \
    --to=lorenzo.bianconi@redhat.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=lorenzo@kernel.org \
    --cc=nbd@nbd.name \
    --cc=sgruszka@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.