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.
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