summaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/comedi_fops.c
diff options
context:
space:
mode:
authorFrank Mori Hess2008-12-15 14:44:45 +0100
committerGreg Kroah-Hartman2009-04-03 23:53:52 +0200
commita3cb729ef4a192f04179f780122df78ef1ffe779 (patch)
tree086bf22cf7404c7604d205224d00b2e952158553 /drivers/staging/comedi/comedi_fops.c
parentStaging: comedi: Fixed minor numbers for subdevice files. (diff)
downloadkernel-qcow2-linux-a3cb729ef4a192f04179f780122df78ef1ffe779.tar.gz
kernel-qcow2-linux-a3cb729ef4a192f04179f780122df78ef1ffe779.tar.xz
kernel-qcow2-linux-a3cb729ef4a192f04179f780122df78ef1ffe779.zip
Staging: comedi: Added some validation of comedi module parameter values.
Cc: Ian Abbott <abbotti@mev.co.uk> Cc: David Schleef <ds@schleef.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/comedi/comedi_fops.c')
-rw-r--r--drivers/staging/comedi/comedi_fops.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
index ed9f2bb88752..1464f550a5af 100644
--- a/drivers/staging/comedi/comedi_fops.c
+++ b/drivers/staging/comedi/comedi_fops.c
@@ -1911,6 +1911,22 @@ static int __init comedi_init(void)
printk(KERN_INFO "comedi: version " COMEDI_RELEASE
" - http://www.comedi.org\n");
+ if (comedi_num_legacy_minors < 0 ||
+ comedi_num_legacy_minors > COMEDI_NUM_BOARD_MINORS) {
+ printk(KERN_ERR "comedi: error: invalid value for module "
+ "parameter \"comedi_num_legacy_minors\". Valid values "
+ "are 0 through %i.\n", COMEDI_NUM_BOARD_MINORS);
+ return -EINVAL;
+ }
+
+ /*
+ * comedi is unusable if both comedi_autoconfig and
+ * comedi_num_legacy_minors are zero, so we might as well adjust the
+ * defaults in that case
+ */
+ if (comedi_autoconfig == 0 && comedi_num_legacy_minors == 0)
+ comedi_num_legacy_minors = 16;
+
memset(comedi_file_info_table, 0,
sizeof(struct comedi_device_file_info *) * COMEDI_NUM_MINORS);