From: Ian Abbott Date: Thu, 4 Apr 2013 13:59:18 +0000 (+0100) Subject: staging: comedi: add comedi_clear_board_dev() X-Git-Tag: omap-for-v3.10/dt-fixes-for-merge-window~137^2~270 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db210da268ec537f8944ea5bc490184a6707c8a2;p=pandora-kernel.git staging: comedi: add comedi_clear_board_dev() Add local function `comedi_clear_board_dev()` as a safer alternative to `comedi_clear_board_minor()` when we already have a pointer to a `struct comedi_device`. It uses the board minor device number stored in the `struct comedi_device` (which must have already been initialized) and only clears the entry in `comedi_board_minor_table[]` if it points to the specified `struct comedi_device`. Rather than returning the old table entry, it returns `true` if the entry matched (and so has just been cleared) and returns `false` otherwise. Call `comedi_clear_board_dev()` instead of `comedi_clear_board_minor()` in `comedi_unlocked_ioctl()` (in the code that frees a dynamically allocated comedi device detached by the `COMEDI_DEVCONFIG` ioctl). That ought to return `true` but check it just in case before freeing the device. There is still a race condition here which needs to be dealt with once we've implemented reference counting for `struct comedi_device`s. Signed-off-by: Ian Abbott Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- Reading git-diff-tree failed