public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Pekka Enberg <penberg@gmail.com>
To: "Bouchard, Sebastien" <Sebastien.Bouchard@ca.kontron.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Lorenzini, Mario" <mario.lorenzini@ca.kontron.com>,
	Pekka Enberg <penberg@cs.helsinki.fi>
Subject: Re: Patch of a new driver for kernel 2.4.x that need review
Date: Wed, 22 Jun 2005 22:43:40 +0300	[thread overview]
Message-ID: <84144f020506221243163d06a2@mail.gmail.com> (raw)
In-Reply-To: <5009AD9521A8D41198EE00805F85F18F067F6A36@sembo111.teknor.com>

Hi,

Some comments below. Please note that I am more familiar with 2.6 so
some of these might not apply.

                       Pekka

On 6/22/05, Bouchard, Sebastien <Sebastien.Bouchard@ca.kontron.com> wrote:
> --- 2.4.31-ori/drivers/char/tlclk.c     Wed Dec 31 19:00:00 1969
> +++ 2.4.31-mod/drivers/char/tlclk.c     Wed Jun 22 09:43:10 2005
> +/* Telecom clock I/O register definition */
> +#define TLCLK_BASE 0xa08
> +#define TLCLK_REG0 TLCLK_BASE
> +#define TLCLK_REG1 TLCLK_BASE+1
> +#define TLCLK_REG2 TLCLK_BASE+2
> +#define TLCLK_REG3 TLCLK_BASE+3
> +#define TLCLK_REG4 TLCLK_BASE+4
> +#define TLCLK_REG5 TLCLK_BASE+5
> +#define TLCLK_REG6 TLCLK_BASE+6
> +#define TLCLK_REG7 TLCLK_BASE+7

Please use enums instead.

> +/*
> +*  Function : Module I/O functions
> +*  Description : Almost all the control stuff is done here, check I/O dn
> for help.
> +*/

Please use kerneldoc format.

> +static struct file_operations tlclk_fops = {
> +       read:tlclk_read,
> +       write:tlclk_write,
> +       ioctl:tlclk_ioctl,
> +       open:tlclk_open,
> +       release:tlclk_release,

Please use C99 struct initializers.

> +
> +};
> +/*
> +* Function : Module Initialisation
> +* Description : Called at module loading,
> +* all the OS registering stuff is her
> +*/
> +static int __init
> +tlclk_init(void)
> +{
> +       alarm_events = kmalloc(sizeof (struct tlclk_alarms), GFP_KERNEL);
> +
> +       if(!alarm_events)
> +                  return -EBUSY;
> +
> +   memset(alarm_events, 0, sizeof (struct tlclk_alarms));
> +
> +/* Read telecom clock IRQ number (Set by BIOS) */
> +
> +       telclk_interrupt = (inb(TLCLK_REG7) & 0x0f);
> +
> +       printk(KERN_WARNING "telclock: Reserving I/O region...\n");
> +
> +       if (check_region(TLCLK_BASE, 8)) {
> +               printk(KERN_ERR
> +                      "telclock: I/O region already used by another
> driver!\n");
> +               return -EBUSY;

You're leaking alarm_events here.

> +       } else {
> +               request_region(TLCLK_BASE, 8, "telclock");

Please put nominal case first (i.e. make this the first block). 

> +       }
> +
> +/* DEVFS or NOT? */
> +
> +#ifdef CONFIG_DEVFS_FS
> +       devfs_handle = devfs_register(NULL, "telclock",
> +                                     DEVFS_FL_AUTO_DEVNUM, TLCLK_MAJOR,
> +                                     0,
> +                                     S_IFCHR | S_IRUGO | S_IWUGO,
> +                                     &tlclk_fops, NULL);
> +       if (!devfs_handle)
> +               return -EBUSY;

You're leaking alarm_events and reserved region here. (Use gotos for
error handling, btw.)

> +#else
> +       tlclk_major = register_chrdev(tlclk_major, "telclock", &tlclk_fops);
> +
> +       if (tlclk_major < 0) {
> +               printk(KERN_ERR "telclock: can't get major! %d\n",
> tlclk_major);
> +               return tlclk_major;

Same as before plus leaking devfs handle.

> +       }
> +#endif
> +
> +       init_timer(&switchover_timer);
> +       switchover_timer.function = switchover_timeout;
> +       switchover_timer.data = 0;
> +
> +       return 0;
> +}

> diff -ruN 2.4.31-ori/drivers/char/tlclk.h 2.4.31-mod/drivers/char/tlclk.h
> --- 2.4.31-ori/drivers/char/tlclk.h     Wed Dec 31 19:00:00 1969
> +++ 2.4.31-mod/drivers/char/tlclk.h     Wed Jun 22 09:43:10 2005
> +/* Ioctl definitions  */
> +
> +/* Use 0xA1 as magic number */
> +#define TLCLK_IOC_MAGIC 0xA1
> +
> +/*Hardware Reset of the PLL */
> +
> +#define RESET_ON 0x00
> +#define RESET_OFF 0x01

Please use enums instead (applies to other parts of this file too).

  reply	other threads:[~2005-06-22 19:44 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-22 15:12 Patch of a new driver for kernel 2.4.x that need review Bouchard, Sebastien
2005-06-22 19:43 ` Pekka Enberg [this message]
2005-06-22 20:32   ` Willy Tarreau
2005-06-22 20:59     ` Bill Gatliff
2005-06-22 21:58       ` Willy Tarreau
2005-06-23  4:58       ` Pekka Enberg
2005-06-23  4:16     ` Pekka J Enberg
2005-06-23  4:49       ` Willy Tarreau
2005-07-06 21:11         ` Mark Gross
2005-07-07  6:00           ` Pekka J Enberg
2005-07-07  6:50             ` Dmitry Torokhov
2005-07-07  6:55               ` Pekka J Enberg
2005-07-07  7:13                 ` Dmitry Torokhov
2005-07-07  7:43                   ` Pekka J Enberg
2005-07-07  6:10           ` Pekka J Enberg
2005-06-22 20:04 ` Pekka Enberg
2005-06-23 21:42   ` Alan Cox
2005-06-22 21:18 ` Jesper Juhl
2005-07-06 21:14 ` Mark Gross
2005-07-06 22:49   ` randy_dunlap
2005-07-06 22:57   ` Greg KH
2005-08-08 15:35   ` Mark Gross
2005-08-09  7:17     ` Pekka Enberg
2005-08-09 16:56     ` Mark Gross
2005-08-09 17:51       ` Nishanth Aravamudan
  -- strict thread matches above, loose matches on Subject: below --
2005-07-07  8:15 moreau francis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=84144f020506221243163d06a2@mail.gmail.com \
    --to=penberg@gmail.com \
    --cc=Sebastien.Bouchard@ca.kontron.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mario.lorenzini@ca.kontron.com \
    --cc=penberg@cs.helsinki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox