From a3823dd74a1ad943afe894d9533769a52c19d6b3 Mon Sep 17 00:00:00 2001 From: Karol Lewandowski Date: Wed, 16 Jan 2013 11:36:08 +0100 Subject: [PATCH] vdpram: Simplify cdev operations Change-Id: I0d4a5f211997f69111ed79b1192e17fa38bb555e --- drivers/char/vdpram.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/drivers/char/vdpram.c b/drivers/char/vdpram.c index 609472dfe9dc..8d1a29893ee1 100755 --- a/drivers/char/vdpram.c +++ b/drivers/char/vdpram.c @@ -580,26 +580,19 @@ long vdpram_ioctl(struct file* filp, unsigned int cmd, unsigned long arg) */ static void vdpram_setup_cdev(struct vdpram_dev *dev, int index) { - int err, devno = vdpram_devno + index; - - if (index % 2 ==0) { - dev->flag = 1; - cdev_init(&dev->cdev, &vdpram_even_fops); - dev->cdev.owner = THIS_MODULE; - err = cdev_add (&dev->cdev, devno, 1); - dev->index = index; - } - else { - dev->flag = 0; - cdev_init(&dev->cdev, &vdpram_odd_fops); - dev->cdev.owner = THIS_MODULE; - err = cdev_add (&dev->cdev, devno, 1); - dev->index = index; - } + dev_t node = MKDEV(vdpram_major, index); + int err; + int is_odd = index & 1; // "index % 2" equivalent + + dev->flag = !is_odd; + cdev_init(&dev->cdev, is_odd ? &vdpram_odd_fops : &vdpram_even_fops); + dev->cdev.owner = THIS_MODULE; + err = cdev_add (&dev->cdev, node, 1); + dev->index = index; /* Fail gracefully if need be */ if (err) - printk(KERN_NOTICE "Error %d adding deive%d\n", err, index); + printk(KERN_NOTICE "Error %d adding device%d\n", err, index); } -- 2.34.1