[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1421070898.28652.13.camel@mm-sol.com>
Date: Mon, 12 Jan 2015 15:54:58 +0200
From: "Ivan T. Ivanov" <iivanov@...sol.com>
To: Lars-Peter Clausen <lars@...afoo.de>
Cc: Jonathan Cameron <jic23@...nel.org>,
Hartmut Knaack <knaack.h@....de>,
Peter Meerwald <pmeerw@...erw.net>, linux-iio@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] iio: Simplify IIO provider access locking mechanism
On Fri, 2015-01-09 at 17:16 +0100, Lars-Peter Clausen wrote:
> On 01/09/2015 05:14 PM, Ivan T. Ivanov wrote:
> > On Fri, 2015-01-09 at 16:54 +0100, Lars-Peter Clausen wrote:
> > > On 01/09/2015 04:50 PM, Ivan T. Ivanov wrote:
> > > > On Fri, 2015-01-09 at 16:41 +0100, Lars-Peter Clausen wrote:
> > > > > On 01/09/2015 04:38 PM, Ivan T. Ivanov wrote:
> > > > > > Instead of checking whether provider module is still
> > > > > > loaded on every access to device just lock module to
> > > > > > memory when client get reference to provider device.
> > > > > >
> > > > >
> > > > > This has nothing to do with the module, it's about the device. In the Linux
> > > > > device driver model as device can be unbound at any time and the IIO
> > > > > framework needs to handle this.
> > > > >
> > > >
> > > > Hm. Probably i am missing something here, but is this
> > > > still true if we have reference to device structure?
> > >
> > > Yes, that only prevents the memory of device from being freed. But the
> > > device can still be unbound from the driver.
> > >
> > > Think of e.g. a USB device that is pulled from the USB connector. Nothing
> > > you can do in software about having the device disappear.
> > >
> >
> > Agree, but I think that the patch is still valid. Module
> > have to be pinned in memory as long as there are device
> > driver users.
>
> No, the idea of the Linux driver model is that you can remove the module of
> a driver at any time, which will unbind the device from the driver. Once you
> reinsert the module the device will be re-bound to the driver.
I will say that device can be unbind at any time and not that module be can
unload at any time. But yes, and I'm not saying the opposite. There are a
lot of examples in kernel, where you can not unload driver if it is used by
another driver. See kernel-haking.tmpl.
Probably I am still missing something :-)
Ivan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists