Return-path: Received: from mail-we0-f174.google.com ([74.125.82.174]:49753 "EHLO mail-we0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752993Ab2ABVBI (ORCPT ); Mon, 2 Jan 2012 16:01:08 -0500 MIME-Version: 1.0 In-Reply-To: <4F0219AB.6010505@fastmail.fm> References: <4F02165C.1060400@fastmail.fm> <4F0219AB.6010505@fastmail.fm> From: Linus Torvalds Date: Mon, 2 Jan 2012 13:00:45 -0800 Message-ID: (sfid-20120102_220124_866995_494580F2) Subject: Re: loading firmware while usermodehelper disabled. To: Jack Stone Cc: Alan Stern , Oliver Neukum , Matthew Garrett , Dave Jones , Linux Kernel , Larry Finger , Chaoming Li , "John W. Linville" , Greg Kroah-Hartman , USB list , Linux Wireless List Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Mon, Jan 2, 2012 at 12:55 PM, Jack Stone wrote: > > The problem comes with knowing when to put the firmware - how do we tell > the generic driver that that device has firmware that might need to be > freed on disconnect. I don't know enough about USB to know if we can > tell if the same device has reconnected due to firmware being loaded or > if it was simply unplugged and a new device plugged in. Well, if we just have a 10-second timeout for the firmware flushing after the last "put" operation, we don't even care. It doesn't even *matter* if the device is a physically different device - if the driver loads the same firmware, it will be cached, and it will still be correct for that (physically different, but with the same firmware requirements) device. So even the whole "user switched devices around" issue is irrelevant. Of course, if the driver is some piece-of-crap that explicitly loads the wrong firmware for the device it manages, the firmware will be wrong, but hey, "Don't do that then". The drivers job very much includes being able to look at the device ID (whether USB or PCIe or PCMCIA) and figure out which firmware image it needs to load. Linus