Currently, the aim-cdev is returning different error codes for the same root cause. This patch is needed to get rid of the module's inconsistency when reporting errors. Signed-off-by: Christian Gromm <christian.gromm@xxxxxxxxxxxxx> --- drivers/staging/most/aim-cdev/cdev.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/staging/most/aim-cdev/cdev.c b/drivers/staging/most/aim-cdev/cdev.c index de4f76a..6ca2440 100644 --- a/drivers/staging/most/aim-cdev/cdev.c +++ b/drivers/staging/most/aim-cdev/cdev.c @@ -130,7 +130,7 @@ static int aim_open(struct inode *inode, struct file *filp) if (!c->dev) { pr_info("WARN: Device is destroyed\n"); mutex_unlock(&c->io_mutex); - return -EBUSY; + return -ENODEV; } if (c->access_ref) { @@ -201,7 +201,7 @@ static ssize_t aim_write(struct file *filp, const char __user *buf, } if (unlikely(!c->dev)) { - ret = -EPIPE; + ret = -ENODEV; goto unlock; } @@ -256,7 +256,7 @@ aim_read(struct file *filp, char __user *buf, size_t count, loff_t *offset) /* make sure we don't submit to gone devices */ if (unlikely(!c->dev)) { mutex_unlock(&c->io_mutex); - return -EIO; + return -ENODEV; } to_copy = min_t(size_t, @@ -366,7 +366,7 @@ static int aim_rx_completion(struct mbo *mbo) spin_lock(&c->unlink); if (!c->access_ref || !c->dev) { spin_unlock(&c->unlink); - return -EFAULT; + return -ENODEV; } kfifo_in(&c->fifo, &mbo, 1); spin_unlock(&c->unlink); @@ -499,6 +499,8 @@ static struct most_aim cdev_aim = { static int __init mod_init(void) { + int err; + pr_info("init()\n"); INIT_LIST_HEAD(&channel_list); @@ -506,16 +508,17 @@ static int __init mod_init(void) ida_init(&minor_id); if (alloc_chrdev_region(&aim_devno, 0, 50, "cdev") < 0) - return -EIO; + return -ENOMEM; major = MAJOR(aim_devno); aim_class = class_create(THIS_MODULE, "most_cdev_aim"); if (IS_ERR(aim_class)) { pr_err("no udev support\n"); + err = PTR_ERR(aim_class); goto free_cdev; } - - if (most_register_aim(&cdev_aim)) + err = most_register_aim(&cdev_aim); + if (err) goto dest_class; return 0; @@ -523,7 +526,7 @@ dest_class: class_destroy(aim_class); free_cdev: unregister_chrdev_region(aim_devno, 1); - return -EIO; + return err; } static void __exit mod_exit(void) -- 1.9.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel