On 2014-03-05 16:50, Hartley Sweeten wrote:
But, it appears that this sanity check is really unnecessary:
+ if (!s->range_table && !s->range_table_list) {
dev_err(dev->class_dev, "(bug) no range type list!\n");
return -EINVAL;
}
The comedi_check_chanlist() function appears to only get called by code paths
that occur after a driver has been successfully attached to the comedi subsystem.
The attach will either be manually thru comedi_device_attach() or automatically
thru comedi_auto_config(). The last step for both attach methods it to call
comedi_device_postconfig().
comedi_device_postconfig() does some final cleanup of all the subdevices. This
cleanup initializes some of the subdevice members to default values if the driver
did not do it. One of these defaults is:
if (!s->range_table && !s->range_table_list)
s->range_table = &range_unknown;
So, any driver that does not initialize the 'range_table' or 'range_table_list' for
a subdevice will automatically get the 'range_table' initialized to 'range_unkown'
which is:
const struct comedi_lrange range_unknown = { 1, {{0, 1000000, UNIT_none} } };
So the sanity check above will always pass.
Ian, do you agree that this sanity check can be removed? If so, Fred do you want
to submit a follow up patch that removes it?
Yes, the sanity check can be removed.
--
-=( Ian Abbott @ MEV Ltd. E-mail: <abbotti@xxxxxxxxx> )=-
-=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel