This series of patches reorganizes the comedi core module somewhat. My main aim was originally to implement proper reference counting for comedi devices and get rid of various race conditions related to removal of devices. I haven't got that far yet due to time constraints but I have got as far as simplifying the data structures used by the core, eliminating the `struct comedi_file_info` type, which seems like a natural break point. I plan to come back to the reference counting stuff later, but have real (payed) work to do in the meantime and I don't want my existing patches to go stale. (Besides, this series of patches is starting to get a bit long already!) 01) staging: comedi: check comedi_auto_config() params 02) staging: comedi: no need to zero out comedi_file_info_table[] 03) staging: comedi: remove memset() call from comedi_device_init() 04) staging: comedi: adjust module count on device cleanup 05) staging: comedi: refactor comedi_free_board_minor() 06) staging: comedi: add comedi_release_hardware_device() 07) staging: comedi: call comedi_release_hardware_device() on error 08) staging: comedi: make comedi_free_board_minor() static 09) staging: comedi: change comedi_alloc_board_minor() to return pointer 10) staging: comedi: pre-lock mutex on creation of comedi device 11) staging: comedi: avoid releasing legacy minors automatically 12) staging: comedi: no need to evade comedi_auto_unconfig() 13) staging: comedi: remove manually unconfigured dynamic devices 14) staging: comedi: avoid forward declarations 15) staging: comedi: simplify driver module counting 16) staging: comedi: put module _after_ detach 17) staging: comedi: replace __comedi_device_detach() 18) staging: comedi: move detach out of post-config 19) staging: comedi: set hw_dev in comedi_alloc_board_minor() 20) staging: comedi: change comedi_file_info_table_lock to mutex 21) staging: comedi: move COMEDI_NUM_MINORS and COMEDI_FIRST_SUBDEVICE_MINOR 22) staging: comedi: remove COMEDI_FIRST_SUBDEVICE_MINOR 23) staging: comedi: separate board and subdevice minor tables 24) staging: comedi: remove comedi_clear_minor() 25) staging: comedi: remove hardware_device from struct comedi_device_info 26) staging: comedi: rename dev parameter of device attribute functions 27) staging: comedi: get mutex before subdevice in attribute functions 28) staging: comedi: use minor device number in attribute functions 29) staging: comedi: change comedi_read/write_subdevice() parameters 30) staging: comedi: reduce use of struct comedi_file_info 31) staging: comedi: refactor comedi_dev_from_minor() 32) staging: comedi: remove comedi_clear_subdevice_minor() 33) staging: comedi: remove comedi_file_info_from_board_minor() 34) staging: comedi: simplify comedi_subdevice_minor_table[] 35) staging: comedi: simplify comedi_board_minor_table[] 36) staging: comedi: remove struct comedi_file_info 37) staging: comedi: add comedi_clear_board_dev() drivers/staging/comedi/comedi_fops.c | 527 ++++++++++++++++++------------- drivers/staging/comedi/comedi_internal.h | 5 +- drivers/staging/comedi/comedidev.h | 2 - drivers/staging/comedi/drivers.c | 80 ++--- 4 files changed, 346 insertions(+), 268 deletions(-) _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel