Messages in this thread Patch in this message | | | From | Cheah Kok Cheong <> | Subject | [PATCH 2/2] Staging: comedi: comedi_fops: Fix "out of minor numbers for board device files" | Date | Sun, 5 Mar 2017 03:22:33 +0800 |
| |
If comedi module is loaded with the following max allowed parameter [comedi_num_legacy_minors=48], subsequent loading of an auto-configured device will fail.
In this case a default to auto-configuration comedi_test module failed to load with the following messages.
comedi_test comedi_testd: ran out of minor numbers for board device files comedi_test comedi_testd: driver 'comedi_test' could not create device. comedi_test: unable to auto-configure device
This is due to changes in commit 38b9722a4414 ("staging: comedi: avoid releasing legacy minors automatically") which will not allocate a minor number when comedi_num_legacy_minors equals COMEDI_NUM_BOARD_MINORS. COMEDI_NUM_BOARD_MINORS is defined to be 0x30 which is 48.
This goes for a simple fix which limit comedi_num_legacy_minors to 47 instead of tinkering with comedi_alloc_board_minor() and comedi_release_hardware_device().
Fix: commit 38b9722a4414 ("staging: comedi: avoid releasing legacy minors automatically")
Signed-off-by: Cheah Kok Cheong <thrust73@gmail.com> --- drivers/staging/comedi/comedi_fops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c index 354d264..339854f 100644 --- a/drivers/staging/comedi/comedi_fops.c +++ b/drivers/staging/comedi/comedi_fops.c @@ -2857,9 +2857,9 @@ static int __init comedi_init(void) pr_info("version " COMEDI_RELEASE " - http://www.comedi.org\n"); - if (comedi_num_legacy_minors > COMEDI_NUM_BOARD_MINORS) { + if (comedi_num_legacy_minors >= COMEDI_NUM_BOARD_MINORS) { pr_err("invalid value for module parameter \"comedi_num_legacy_minors\". Valid values are 0 through %i.\n", - COMEDI_NUM_BOARD_MINORS); + COMEDI_NUM_BOARD_MINORS - 1); return -EINVAL; } -- 2.7.4
| |