public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Chris Rankin <rankincj@yahoo.com>
Cc: Devin Heitmueller <dheitmueller@kernellabs.com>,
	linux-media@vger.kernel.org, Antti Palosaari <crope@iki.fi>
Subject: Re: [PATCH 2/2] EM28xx - fix deadlock when unplugging and replugging a DVB adapter
Date: Sat, 20 Aug 2011 08:02:37 -0700	[thread overview]
Message-ID: <4E4FCC8D.3070305@redhat.com> (raw)
In-Reply-To: <1313851233.95109.YahooMailClassic@web121704.mail.ne1.yahoo.com>

Em 20-08-2011 07:40, Chris Rankin escreveu:
> --- On Sat, 20/8/11, Mauro Carvalho Chehab <mchehab@redhat.com> wrote:
>> No. The extension load can happen after the usb probe
>> phase. In practice, the only case where the extension init will happen
>> together with the usb probe phase is when the em28xx modules are
>> compiled builtin
> 
> It also happens when someone plugs an adapter into the machine when the modules are already loaded. E.g. someone plugging a second adapter in, or unplugging and then replugging the same one.

Yes.

>> Maybe the proper fix would be to change the logic under
>> em28xx_usb_probe() to not hold dev->lock anymore when the device is
>> loading the extensions.
> 
> I could certainly write such a patch, although I only have a PCTV 290e adapter to test with.

We can test it on more devices.

> Is this problem unique to the em28xx-dvb module? How does the em28xx-alsa module get 
> away with creating ALSA devices without causing a similar race condition?

It might also affect alsa. Pulseaudio has the bad habit of opening the device. However,
the device lock is hold when the driver is changing the lock.

It should be noticed that the current mutex lock strategy is a workaround. The proper
solution is to work on resource lock library that could be used when the access of a
device via one API blocks the access of the same device using another API.

We had some discussions about that during the USB mini-summit on last Monday. We'll
probably discuss more about that during the Kernel Summit/media workshop.

Thanks,
Mauro


  reply	other threads:[~2011-08-20 15:02 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-18 17:52 [PATCH] Latest version of em28xx / em28xx-dvb patch for PCTV 290e Chris Rankin
2011-08-18 18:43 ` Devin Heitmueller
2011-08-18 18:44   ` Devin Heitmueller
2011-08-18 21:34     ` Chris Rankin
2011-08-18 22:11     ` Chris Rankin
2011-08-19  5:53       ` Mauro Carvalho Chehab
2011-08-20 11:08         ` [PATCH 1/6 ] EM28xx - pass correct buffer size to snprintf Chris Rankin
2011-08-20 11:14         ` [PATCH 2/6] Fix memory leak on disconnect or error Chris Rankin
2011-08-20 11:21         ` [PATCH 3/6] EM28xx - use atomic bit operations for devices-in-use mask Chris Rankin
2011-08-20 11:28         ` [PATCH 4/6] EM28xx - clean up resources should init fail Chris Rankin
2011-08-20 11:31         ` [PATCH 5/6] EM28xx - move printk lines outside mutex lock Chris Rankin
2011-08-20 11:37         ` [PATCH 6/6] EM28xx - don't sleep on disconnect Chris Rankin
2011-08-20 12:17           ` Mauro Carvalho Chehab
2011-08-20 13:46             ` Chris Rankin
2011-08-20 14:20               ` Mauro Carvalho Chehab
2011-08-20 19:01                 ` Chris Rankin
2011-08-20 11:42         ` [PATCH 1/2] EM28xx - fix race " Chris Rankin
2011-08-20 12:36           ` Sylwester Nawrocki
2011-08-20 11:46         ` [PATCH 2/2] EM28xx - fix deadlock when unplugging and replugging a DVB adapter Chris Rankin
2011-08-20 12:34           ` Mauro Carvalho Chehab
2011-08-20 14:40             ` Chris Rankin
2011-08-20 15:02               ` Mauro Carvalho Chehab [this message]
2011-08-20 22:38                 ` [PATCH 1/1] " Chris Rankin
2011-08-21 12:32                 ` Chris Rankin
2011-09-13 20:04                   ` Antti Palosaari
2011-09-13 20:47                     ` Chris Rankin
2011-08-18 22:28     ` [PATCH] Latest version of em28xx / em28xx-dvb patch for PCTV 290e Chris Rankin
2011-08-18 23:45     ` Chris Rankin
2011-08-19  0:12     ` Chris Rankin
2011-08-18 19:56   ` Chris Rankin
2011-08-19  1:01     ` Mauro Carvalho Chehab

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=4E4FCC8D.3070305@redhat.com \
    --to=mchehab@redhat.com \
    --cc=crope@iki.fi \
    --cc=dheitmueller@kernellabs.com \
    --cc=linux-media@vger.kernel.org \
    --cc=rankincj@yahoo.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox