All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/4] chardev: add additional check for minor range overlap
@ 2019-04-05 11:27 Chengguang Xu
  2019-04-05 11:27 ` [PATCH v3 2/4] chardev: add a check for given minor range Chengguang Xu
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Chengguang Xu @ 2019-04-05 11:27 UTC (permalink / raw)
  To: gregkh, dan.carpenter; +Cc: linux-fsdevel, viro, linux-kernel, Chengguang Xu

Current overlap checking cannot correctly handle
a case which is baseminor < existing baseminor &&
baseminor + minorct > existing baseminor + minorct.

Signed-off-by: Chengguang Xu <cgxu519@gmx.com>
---
v1->v2:
- Split fix and cleanup patches.
- Remove printing minor range in chrdev_show().

 fs/char_dev.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/fs/char_dev.c b/fs/char_dev.c
index a279c58fe360..8a63cfa29005 100644
--- a/fs/char_dev.c
+++ b/fs/char_dev.c
@@ -159,6 +159,12 @@ __register_chrdev_region(unsigned int major, unsigned int baseminor,
 			ret = -EBUSY;
 			goto out;
 		}
+
+		if (new_min < old_min && new_max > old_max) {
+			ret = -EBUSY;
+			goto out;
+		}
+
 	}

 	cd->next = *cp;
--
2.20.1


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

end of thread, other threads:[~2019-04-05 12:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-05 11:27 [PATCH v3 1/4] chardev: add additional check for minor range overlap Chengguang Xu
2019-04-05 11:27 ` [PATCH v3 2/4] chardev: add a check for given minor range Chengguang Xu
2019-04-05 11:27 ` [PATCH v3 3/4] chardev: code cleanup for __register_chrdev_region() Chengguang Xu
2019-04-05 12:32   ` Greg KH
2019-04-05 12:52     ` Chengguang Xu
2019-04-05 11:27 ` [PATCH v3 4/4] chardev: update comment based on the code Chengguang Xu
2019-04-05 12:32 ` [PATCH v3 1/4] chardev: add additional check for minor range overlap Greg KH

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.