All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Neukum <oliver@neukum.org>
To: "Michael Büsch" <m@bues.ch>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Alan Stern <stern@rowland.harvard.edu>,
	Matthew Garrett <mjg@redhat.com>, Dave Jones <davej@redhat.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Larry Finger <Larry.Finger@lwfinger.net>,
	Chaoming Li <chaoming_li@realsil.com.cn>,
	"John W. Linville" <linville@tuxdriver.com>,
	"Greg Kroah-Hartman" <gregkh@suse.de>,
	USB list <linux-usb@vger.kernel.org>,
	Linux Wireless List <linux-wireless@vger.kernel.org>
Subject: Re: loading firmware while usermodehelper disabled.
Date: Mon, 2 Jan 2012 08:56:25 +0100	[thread overview]
Message-ID: <201201020856.26235.oliver@neukum.org> (raw)
In-Reply-To: <20120101223913.3ff57d0f@milhouse>

Am Sonntag, 1. Januar 2012, 22:39:13 schrieb Michael Büsch:

> These change-id-on-bootstrap devices usually work like this,
> as far as I know:
> 
> probe bootstrap device (switches hw to real device)

And you will find no driver if the firmware is uploaded in user space.
udev runs a firmware loader that uses libusb. usb_modeswitch
presents you with the same problem.

> probe real device (firmware is loaded)

The real driver will often be generic and have no idea the device
needs firmware to turn it into a functional generic device. And we really don't
want to contaminate the generic drivers with that information.

So we'd need

a) kernel infrastructure to track "shadow" drivers for firmware upload
b) a heuristic to decide when a device underwent a virtual replug

> Suspend machine
> Resume machine
> usb detects that the device is "gone"
> probe/resume bootstrap device (switches hw to real device)

We need a way to verify this is really the device which we need firmware
for.

> probe/resume real device (No need to fetch fw from userspace. It's already cached)

Now we need to wait for the firmware upload to take effect. How long?
And we need to hold off telling the driver that its device was disconnected. 

> What did I get wrong?

In addition you now need logic to tell the "shadow" drivers that a device
is gone so that they can free the firmware. Oh and of course you will need
to refcount firmware (but we probably need to do that anyway)

	Regards
		Oliver

  parent reply	other threads:[~2012-01-02  8:33 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-30 23:54 loading firmware while usermodehelper disabled Dave Jones
2011-12-31  0:22 ` Linus Torvalds
2011-12-31  0:40   ` Matthew Garrett
2011-12-31 15:33     ` Alan Stern
2011-12-31 15:59       ` Oliver Neukum
2012-01-01  2:21         ` Alan Stern
2012-01-01 12:22           ` Oliver Neukum
2012-01-01 16:17             ` Alan Stern
2012-01-01 16:25               ` Michael Büsch
2012-01-01 20:30               ` Linus Torvalds
2012-01-01 21:27                 ` Oliver Neukum
2012-01-01 21:39                   ` Michael Büsch
2012-01-02  3:33                     ` Matthew Garrett
2012-01-02  7:56                     ` Oliver Neukum [this message]
2012-01-02  4:17                 ` Marek Vasut
2012-01-02  5:35                   ` Gábor Stefanik
2012-01-02  8:38                     ` Marek Vasut
2012-01-02 16:54                 ` Alan Stern
2012-01-02 20:41                   ` Jack Stone
2012-01-02 20:48                     ` Linus Torvalds
2012-01-02 20:55                       ` Jack Stone
2012-01-02 21:00                         ` Linus Torvalds
2012-01-02 21:09                           ` Jack Stone
2012-01-02 21:23                             ` Linus Torvalds
2012-01-02 21:31                               ` Jack Stone
2012-01-02 21:52                                 ` Marek Vasut
2012-01-02 21:57                                   ` Jack Stone
2012-01-02 22:31                                     ` Marek Vasut
2012-01-02 23:25                                       ` Jack Stone
2012-01-03  0:31                                         ` Marek Vasut
2012-01-03  0:44                                           ` Jack Stone
2012-01-03  0:58                                             ` Alan Cox
2012-01-03  7:17                                               ` Marek Vasut
2012-01-03  7:41                                             ` Oliver Neukum
2012-01-03  0:35                                 ` Alan Cox
2012-01-03  0:50                           ` Alan Cox
2012-01-02 21:19                       ` Matthew Garrett
2012-01-02 21:26                         ` Jack Stone
2012-01-03  0:42                           ` Alan Cox
2012-01-03 11:57                             ` Oliver Neukum
2012-01-03 12:19                               ` Jack Stone
2012-01-03 13:20                                 ` Alan Cox
2012-01-03 13:30                                   ` Oliver Neukum
2012-01-03 13:36                                     ` Alan Cox
2012-01-02 21:27                         ` Linus Torvalds
2012-01-02 21:50                           ` Matthew Garrett
2012-01-02 22:03                             ` Linus Torvalds
2012-01-02 22:12                               ` Matthew Garrett
2012-01-02 22:19                                 ` Linus Torvalds
2012-01-02 22:29                                   ` Matthew Garrett
2012-01-02 22:46                                     ` Linus Torvalds
2012-01-02 23:00                                       ` Matthew Garrett
2012-01-02 23:31                                         ` Jack Stone
2012-01-03  0:13                                           ` Matthew Garrett
2012-01-03  0:20                                             ` Alan Cox
2012-01-03  0:37                                               ` Matthew Garrett
2012-01-03  0:22                                             ` Jack Stone
2012-01-03  0:31                                               ` Alan Cox
2012-01-03  0:41                                                 ` Jack Stone
2012-01-03  0:38                                               ` Matthew Garrett
2012-01-03  0:47                                                 ` Alan Cox
2012-01-03  0:18                                           ` Alan Cox
2012-01-03  8:26                                             ` Ingo Molnar
2012-01-03  2:45                             ` Alan Stern
2012-01-03  3:25                               ` Matthew Garrett
2012-01-03  5:53                                 ` Linus Torvalds
2012-01-03 11:50                                   ` Oliver Neukum
2012-01-03 15:16                                     ` Alan Stern
2012-01-03 12:24                                   ` Matthew Garrett
2012-01-03 16:29                                     ` Linus Torvalds
2012-01-03 15:09                                 ` Alan Stern
2012-01-03  9:16                             ` Alexander E. Patrakov
2012-01-03  9:16                               ` Alexander E. Patrakov
2012-01-03  9:24                               ` david
2012-01-03 13:43                               ` Alan Cox
2012-01-03 14:12                               ` Bernd Petrovitsch
2012-01-03  0:00                           ` Alan Cox
2012-01-02 23:50                       ` Alan Cox
2012-01-02 23:53                     ` Alan Cox
2011-12-31 16:27       ` Matthew Garrett
2011-12-31 14:20   ` Martin Schleier
2011-12-31 18:39   ` Marek Vasut
2012-01-01  9:48     ` Oliver Neukum
2012-01-01  9:54       ` Marek Vasut
2012-01-01 12:28         ` Oliver Neukum
2012-01-01 16:32           ` Marek Vasut
2012-01-01 17:06             ` Marek Vasut
2012-01-01 20:39             ` Alan Cox
2012-01-01 20:50               ` Michael Büsch
2012-01-02  3:24                 ` Marek Vasut
2012-01-02  3:29               ` Marek Vasut
2012-01-01  3:49   ` Larry Finger
2012-01-01 22:45   ` Jack Stone
  -- strict thread matches above, loose matches on Subject: below --
2011-12-31 15:01 drahemmaps
2011-12-31 19:29 ` Linus Torvalds
2011-12-31 20:15   ` Matthew Garrett
2011-12-31 20:26     ` Linus Torvalds

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=201201020856.26235.oliver@neukum.org \
    --to=oliver@neukum.org \
    --cc=Larry.Finger@lwfinger.net \
    --cc=chaoming_li@realsil.com.cn \
    --cc=davej@redhat.com \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=m@bues.ch \
    --cc=mjg@redhat.com \
    --cc=stern@rowland.harvard.edu \
    --cc=torvalds@linux-foundation.org \
    /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.