lkml.org 
[lkml]   [2007]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: refcounting drivers' data structures used in sysfs buffers
    On Fri, 9 Mar 2007, Oliver Neukum wrote:

    > Am Donnerstag, 8. März 2007 17:02 schrieb Alan Stern:
    > > On Thu, 8 Mar 2007, Oliver Neukum wrote:
    > >
    > > > Hi,
    > > >
    > > > after a lightning bolt from high above I've been looking into refcounting
    > > > the data structures drivers use to provide the data used to refill sysfs
    > > > buffers. I've come to the following conclusion.
    > > >
    > > > 1. struct sysfs_buffer must have a struct kref * and probably a destructor
    > > > pointer
    > > > 2. drivers must be able to pass these pointers through an extended
    > > > device_create_file()
    > > > 3. Drivers must use refcounting if they want to use attributes
    > > > 4. read/write/poll must do refcounting
    > > >
    > > > I am not sure where to store the pointers. struct sysfs_dirent() looks
    > > > like the obvious choice. Comments?
    > >
    > > Can you explain the reasoning that led to these conclusions? And what
    > > exactly was your lightning bolt?
    >
    > The old race between disconnect and IO to attribute via sysfs again.
    > If I cannot disassociate the drivers from the buffers in the buffers, drivers
    > must not deallocate the data necessary to answer sysfs callbacks while
    > a buffer exists.

    Why wouldn't you be able to dissociate a driver from a buffer? That was
    the whole point of adding .orphan to sysfs_buffer and creating
    sysfs_buffer_collection -- it was supposed to solve exactly this race.

    Alan Stern

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-03-09 17:35    [W:0.023 / U:0.304 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site