lkml.org 
[lkml]   [2000]   [Oct]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PROPOSED PATCH] ATM refcount + firestream
    On Sat, Oct 28, 2000 at 11:50:22AM -0400, Brian Gerst wrote:
    > Philipp Rumpf wrote:
    > >
    > > On Sat, Oct 28, 2000 at 09:55:21AM -0400, Brian Gerst wrote:
    > > > Yes, but they can be called (and sleep) with module refcount == 0. This
    > > > is because the file descripter used to perform the ioctl isn't directly
    > > > associated with the network device, thereby not incrementing the
    > > > refcount on open.
    > >
    > > According to my proposal, it is perfectly safe to call a function in a module
    > > while the module's use count is 0. This function would typically look like this:
    > >
    > > foo()
    > > {
    > > MOD_INC_USE_COUNT;
    > >
    > > copy_*_user() (or anything else that sleeps);
    > >
    > > MOD_DEC_USE_COUNT;
    > >
    > > return bar;
    > > }
    > >
    > > The only difference to the "old" module scheme is that the above currently isn't
    > > safe on SMP systems.
    >
    > This will only work while the kernel is not preemptable. Once the
    > kernel thread can be rescheduled, all bets are off.

    The implementation will need adjusting for preemptable kernel threads. The
    concept still works fine.

    > With or without your patch, the network ioctls are unsafe, since they
    > don't currently do refcounting at all.

    I was under the impression most network ioctls didn't sleep.

    > Adding it in the layer above thTe
    > driver is the easier and cleaner solution.

    I disagree. I dislike special-casing inter-module calls (and that's not even
    taking into account that the current implementation of an inter-module call is
    quite ugly).
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 12:45    [W:0.024 / U:29.820 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site