All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/3] staging: unisys: unregister chardev on error
@ 2015-03-27  9:56 Sudip Mukherjee
  2015-03-27  9:56 ` [PATCH v2 2/3] staging: unisys: use error codes Sudip Mukherjee
  2015-03-27  9:56 ` [PATCH v2 3/3] staging: unisys: remove forward declaration Sudip Mukherjee
  0 siblings, 2 replies; 3+ messages in thread
From: Sudip Mukherjee @ 2015-03-27  9:56 UTC (permalink / raw)
  To: Benjamin Romer, David Kershner, Greg Kroah-Hartman
  Cc: sparmaintainer, devel, linux-kernel, Sudip Mukherjee

after registering the major numbers if the cdev_add fails then we were
not releasing the major numbers. now we are doing that.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
---

v2: removed extra space

 drivers/staging/unisys/visorchipset/file.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/unisys/visorchipset/file.c b/drivers/staging/unisys/visorchipset/file.c
index 39b19af..074c285 100644
--- a/drivers/staging/unisys/visorchipset/file.c
+++ b/drivers/staging/unisys/visorchipset/file.c
@@ -65,8 +65,10 @@ visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
 			return -1;
 	}
 	rc = cdev_add(&file_cdev, MKDEV(MAJOR(major_dev), 0), 1);
-	if (rc  < 0)
+	if (rc < 0) {
+		unregister_chrdev_region(major_dev, 1);
 		return -1;
+	}
 	return 0;
 }
 
-- 
1.8.1.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v2 2/3] staging: unisys: use error codes
  2015-03-27  9:56 [PATCH v2 1/3] staging: unisys: unregister chardev on error Sudip Mukherjee
@ 2015-03-27  9:56 ` Sudip Mukherjee
  2015-03-27  9:56 ` [PATCH v2 3/3] staging: unisys: remove forward declaration Sudip Mukherjee
  1 sibling, 0 replies; 3+ messages in thread
From: Sudip Mukherjee @ 2015-03-27  9:56 UTC (permalink / raw)
  To: Benjamin Romer, David Kershner, Greg Kroah-Hartman
  Cc: sparmaintainer, devel, linux-kernel, Sudip Mukherjee

we were just returning -1 to the calling function which was again
returning that if the module failed to load. Now we are returning the
actual error codes.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
---

v2: removed extra space

 drivers/staging/unisys/visorchipset/file.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/unisys/visorchipset/file.c b/drivers/staging/unisys/visorchipset/file.c
index 074c285..552febc 100644
--- a/drivers/staging/unisys/visorchipset/file.c
+++ b/drivers/staging/unisys/visorchipset/file.c
@@ -56,18 +56,20 @@ visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
 	cdev_init(&file_cdev, &visorchipset_fops);
 	file_cdev.owner = THIS_MODULE;
 	if (MAJOR(major_dev) == 0) {
+		rc = alloc_chrdev_region(&major_dev, 0, 1, MYDRVNAME);
 		/* dynamic major device number registration required */
-		if (alloc_chrdev_region(&major_dev, 0, 1, MYDRVNAME) < 0)
-			return -1;
+		if (rc < 0)
+			return rc;
 	} else {
 		/* static major device number registration required */
-		if (register_chrdev_region(major_dev, 1, MYDRVNAME) < 0)
-			return -1;
+		rc = register_chrdev_region(major_dev, 1, MYDRVNAME);
+		if (rc < 0)
+			return rc;
 	}
 	rc = cdev_add(&file_cdev, MKDEV(MAJOR(major_dev), 0), 1);
 	if (rc < 0) {
 		unregister_chrdev_region(major_dev, 1);
-		return -1;
+		return rc;
 	}
 	return 0;
 }
-- 
1.8.1.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v2 3/3] staging: unisys: remove forward declaration
  2015-03-27  9:56 [PATCH v2 1/3] staging: unisys: unregister chardev on error Sudip Mukherjee
  2015-03-27  9:56 ` [PATCH v2 2/3] staging: unisys: use error codes Sudip Mukherjee
@ 2015-03-27  9:56 ` Sudip Mukherjee
  1 sibling, 0 replies; 3+ messages in thread
From: Sudip Mukherjee @ 2015-03-27  9:56 UTC (permalink / raw)
  To: Benjamin Romer, David Kershner, Greg Kroah-Hartman
  Cc: sparmaintainer, devel, linux-kernel, Sudip Mukherjee

rearranged the functions to get rid of the forward declarations.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
---

v2: removed extra space

 drivers/staging/unisys/visorchipset/file.c | 80 ++++++++++++++----------------
 1 file changed, 37 insertions(+), 43 deletions(-)

diff --git a/drivers/staging/unisys/visorchipset/file.c b/drivers/staging/unisys/visorchipset/file.c
index 552febc..479447a 100644
--- a/drivers/staging/unisys/visorchipset/file.c
+++ b/drivers/staging/unisys/visorchipset/file.c
@@ -31,49 +31,6 @@
 static struct cdev file_cdev;
 static struct visorchannel **file_controlvm_channel;
 
-static int visorchipset_open(struct inode *inode, struct file *file);
-static int visorchipset_release(struct inode *inode, struct file *file);
-static int visorchipset_mmap(struct file *file, struct vm_area_struct *vma);
-static long visorchipset_ioctl(struct file *file, unsigned int cmd,
-				unsigned long arg);
-
-static const struct file_operations visorchipset_fops = {
-	.owner = THIS_MODULE,
-	.open = visorchipset_open,
-	.read = NULL,
-	.write = NULL,
-	.unlocked_ioctl = visorchipset_ioctl,
-	.release = visorchipset_release,
-	.mmap = visorchipset_mmap,
-};
-
-int
-visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
-{
-	int rc = 0;
-
-	file_controlvm_channel = controlvm_channel;
-	cdev_init(&file_cdev, &visorchipset_fops);
-	file_cdev.owner = THIS_MODULE;
-	if (MAJOR(major_dev) == 0) {
-		rc = alloc_chrdev_region(&major_dev, 0, 1, MYDRVNAME);
-		/* dynamic major device number registration required */
-		if (rc < 0)
-			return rc;
-	} else {
-		/* static major device number registration required */
-		rc = register_chrdev_region(major_dev, 1, MYDRVNAME);
-		if (rc < 0)
-			return rc;
-	}
-	rc = cdev_add(&file_cdev, MKDEV(MAJOR(major_dev), 0), 1);
-	if (rc < 0) {
-		unregister_chrdev_region(major_dev, 1);
-		return rc;
-	}
-	return 0;
-}
-
 void
 visorchipset_file_cleanup(dev_t major_dev)
 {
@@ -164,3 +121,40 @@ static long visorchipset_ioctl(struct file *file, unsigned int cmd,
 		return -EFAULT;
 	}
 }
+
+static const struct file_operations visorchipset_fops = {
+	.owner = THIS_MODULE,
+	.open = visorchipset_open,
+	.read = NULL,
+	.write = NULL,
+	.unlocked_ioctl = visorchipset_ioctl,
+	.release = visorchipset_release,
+	.mmap = visorchipset_mmap,
+};
+
+int
+visorchipset_file_init(dev_t major_dev, struct visorchannel **controlvm_channel)
+{
+	int rc = 0;
+
+	file_controlvm_channel = controlvm_channel;
+	cdev_init(&file_cdev, &visorchipset_fops);
+	file_cdev.owner = THIS_MODULE;
+	if (MAJOR(major_dev) == 0) {
+		rc = alloc_chrdev_region(&major_dev, 0, 1, MYDRVNAME);
+		/* dynamic major device number registration required */
+		if (rc < 0)
+			return rc;
+	} else {
+		/* static major device number registration required */
+		rc = register_chrdev_region(major_dev, 1, MYDRVNAME);
+		if (rc < 0)
+			return rc;
+	}
+	rc = cdev_add(&file_cdev, MKDEV(MAJOR(major_dev), 0), 1);
+	if (rc < 0) {
+		unregister_chrdev_region(major_dev, 1);
+		return rc;
+	}
+	return 0;
+}
-- 
1.8.1.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-03-27  9:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-27  9:56 [PATCH v2 1/3] staging: unisys: unregister chardev on error Sudip Mukherjee
2015-03-27  9:56 ` [PATCH v2 2/3] staging: unisys: use error codes Sudip Mukherjee
2015-03-27  9:56 ` [PATCH v2 3/3] staging: unisys: remove forward declaration Sudip Mukherjee

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.