Messages in this thread | | | Date | Thu, 18 Dec 2008 23:43:48 +0100 | From | Stefan Richter <> | Subject | Re: [PATCH 2/4] firewire: cdev: use an idr rather than a linked list for resources |
| |
Stefan Richter wrote on 2008-12-14: > From: Jay Fenlason <fenlason@redhat.com> > > The current code uses a linked list and a counter for storing > resources and the corresponding handle numbers. By changing to an idr > we can be safe from counter wrap-around giving two resources the same > handle. > > Furthermore, the deallocation ioctls now check whether the resource to > be freed is of the intended type. > > Signed-off-by: Jay Fenlason <fenlason@redhat.com> > > Some rework by Stefan R: > - The idr API documentation says we get an ID within 0...0x7fffffff. > Hence we can rest assured that idr handles fit into cdev handles. > - Fix some races. Add a client->in_shutdown flag for this purpose. > - Add allocation retry to add_client_resource(). > - It is possible to use idr_for_each() in fw_device_op_release(). > - Small style changes. > > Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Back to the drawing board. This patch breaks FCP for dvgrab, kino, gscanbus.
dvgrab: only works with -guid ... kino: shows live preview but can't list nor control camcorder gscanbus: segfaults if I click on the camera icon to bring up the info window with AV/C controls. -- Stefan Richter -=====-==--- ==-- =--=- http://arcgraph.de/sr/
| |