Btw, this code isn't horrible. It uses small functions and it's
readable. It's just needs small cleanups throughout...
Get rid of the global variable called "synth". That's a bad name
for a global and it's shadowed by local variables named "synth" so
it creates confusion.
Don't do "pr_warn("synth probe\n");" on the success path.
As much as possible get rid of forward declarations.
Some of the 80 character line breaks were done in a funny way.
What is this code?
#if defined(__powerpc__) || defined(__alpha__)
cval >>= 8;
#else /* !__powerpc__ && !__alpha__ */
cval >>= 4;
#endif /* !__powerpc__ && !__alpha__ */
Delete commented out code.
The file scoped variable "timeouts" is only used in one function.
It could be declared as a static variable locally in that function.
/*
* this is cut&paste from 8250.h. Get rid of the structure, the definitions
* and this whole broken driver.
*/
We go to a lot of effort to print out this message which just tells
you that adds no information:
if (failed) {
pr_info("%s: not found\n", synth->long_name);
return -ENODEV;
}
synth_add() has a memory corrupting off-by-one bug.
The code returns -1 (which means "permission denied") instead of
returning standard error codes.
The author of this code doesn't like break statements and uses
compound conditions to avoid them.
426 for (i = 0; i < MAXSYNTHS && synths[i] != NULL; i++)
427 /* synth_remove() is responsible for rotating the array
down */
428 if (in_synth == synths[i]) {
429 mutex_unlock(&spk_mutex);
430 return 0;
431 }
432 if (i == MAXSYNTHS) {
433 pr_warn("Error: attempting to add a synth past end of
array\n");
434 mutex_unlock(&spk_mutex);
435 return -1;
436 }
Unless there is a special reason then for loops should be written
in the canonical format. Use curly braces for readability when
there is a multi-line loop even if they are not needed
syntactically.
for (i = 0; i < ARRAY_SIZE(synths); i++) {
/* synth_remove() is responsible for rotating the array down */
if (synths[i] == in_synth) {
mutex_unlock(&spk_mutex);
return 0;
}
if (synths[i] == NULL)
break;
}
if (i == ARRAY_SIZE(synths)) {
pr_warn("Error: attempting to add a synth past end of array\n");
mutex_unlock(&spk_mutex);
return -ENOMEM;
}
Pretty much where ever you look there is something to clean up.
Fortunately, it's mostly small things.
Sparse has a few things it complains about.
regards,
dan carpenter
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel