On Fri, 9 Oct 2009 14:29:19 -0700 Bruce B wrote: > > On Oct 9, 2009, at 2:23 PM, Randy Dunlap wrote: > > > On Fri, 9 Oct 2009 14:11:38 -0700 Bruce Beare wrote: > > > >> --- > >> drivers/staging/comedi/drivers/serial2002.c | 342 ++++++++++ > >> +--------------- > >> 1 files changed, 145 insertions(+), 197 deletions(-) > >> > >> diff --git a/drivers/staging/comedi/drivers/serial2002.c b/drivers/ > >> staging/comedi/drivers/serial2002.c > >> index a219679..0232186 100644 > >> --- a/drivers/staging/comedi/drivers/serial2002.c > >> +++ b/drivers/staging/comedi/drivers/serial2002.c > >> @@ -413,34 +408,37 @@ static void serial_2002_open(struct > >> comedi_device *dev) > >> int min; > >> int max; > >> }; > >> + struct config_data_t { > >> + struct config_t dig_in_config[32]; > >> + struct config_t dig_out_config[32]; > >> + struct config_t chan_in_config[32]; > >> + struct config_t chan_out_config[32]; > >> + } *config_data = NULL; > >> > >> - struct config_t dig_in_config[32]; > >> - struct config_t dig_out_config[32]; > >> - struct config_t chan_in_config[32]; > >> - struct config_t chan_out_config[32]; > >> int i; > >> + config_data = kmalloc(sizeof(struct config_data_t), GFP_KERNEL); > > > > what happens when the kmalloc() fails?? > > Nothing good. The driver ignores the return code in numerous places > and the open routine in this case is defined to be a void return. > I considered it to be a general cleanup subject for this driver at a > later date. I would say sooner than later. > >> > >> for (i = 0; i < 32; i++) { > >> - dig_in_config[i].kind = 0; > >> - dig_in_config[i].bits = 0; > >> - dig_in_config[i].min = 0; > >> - dig_in_config[i].max = 0; > >> - dig_out_config[i].kind = 0; > >> - dig_out_config[i].bits = 0; > >> - dig_out_config[i].min = 0; > >> - dig_out_config[i].max = 0; > >> - chan_in_config[i].kind = 0; > >> - chan_in_config[i].bits = 0; > >> - chan_in_config[i].min = 0; > >> - chan_in_config[i].max = 0; > >> - chan_out_config[i].kind = 0; > >> - chan_out_config[i].bits = 0; > >> - chan_out_config[i].min = 0; > >> - chan_out_config[i].max = 0; > >> + config_data->dig_in_config[i].kind = 0; > >> + config_data->dig_in_config[i].bits = 0; > >> + config_data->dig_in_config[i].min = 0; > >> + config_data->dig_in_config[i].max = 0; > >> + config_data->dig_out_config[i].kind = 0; > >> + config_data->dig_out_config[i].bits = 0; > >> + config_data->dig_out_config[i].min = 0; > >> + config_data->dig_out_config[i].max = 0; > >> + config_data->chan_in_config[i].kind = 0; > >> + config_data->chan_in_config[i].bits = 0; > >> + config_data->chan_in_config[i].min = 0; > >> + config_data->chan_in_config[i].max = 0; > >> + config_data->chan_out_config[i].kind = 0; > >> + config_data->chan_out_config[i].bits = 0; > >> + config_data->chan_out_config[i].min = 0; > >> + config_data->chan_out_config[i].max = 0; > >> } --- ~Randy _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel