Re: speakup issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux