On Tue, Apr 26, 2005 at 10:43:36AM +0400, Evgeniy Polyakov wrote: > On Mon, 2005-04-25 at 15:22 -0500, Dmitry Torokhov wrote: > > On 4/25/05, Evgeniy Polyakov <johnpol at 2ka.mipt.ru> wrote: > > > While thinking about locking schema > > > with respect to sysfs files I recalled, > > > why I implemented such a logic - > > > now one can _always_ remove _any_ module > > > [corresponding object is removed from accessible > > > pathes and waits untill all exsting users are gone], > > > which is very good - I really like it in networking model, > > > while with whole device driver model > > > if we will read device's file very quickly > > > in several threads we may end up not unloading it at all. > > > > I am sorrry, that is complete bull*. sysfs also allows removing > > modules at an arbitrary time (and usually without annoying "waiting > > for refcount" at that)... You just seem to not understand how driver > > code works, thus the need of inventing your own schema. > > Ok, let's try again - now with explanation, > since it looks like you did not even try to understand what I said. > If you will remove objects from ->remove() callback > you may end up with rmmod being stuck. Yes, and that is acceptable. networking implemented their own locking method to allow unloading of their drivers in such a manner. No other subsystem is going to do that kind of implementation, so Dmitry is correct here. thanks, greg k-h