[<prev] [next>] [day] [month] [year] [list]
Message-ID: <7df17479-629f-21f8-8533-df38be69bd75@huawei.com>
Date: Fri, 10 Jan 2020 09:58:07 +0800
From: Zhiqiang Liu <liuzhiqiang26@...wei.com>
To: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
<dhowells@...hat.com>, <akpm@...ux-foundation.org>,
<torvalds@...ux-foundation.org>
CC: <bywxiaobai@....com>, Mingfangsen <mingfangsen@...wei.com>,
Guiyao <guiyao@...wei.com>, zhangsaisai <zhangsaisai@...wei.com>,
renxudong <renxudong1@...wei.com>
Subject: kdev_t: mask mi with MINORMASK in MKDEV macro
In MKDEV macro, if mi is larger than MINORMASK, the major will be
affected by mi. For example, set dev = MKDEV(2, (1U << MINORBITS)),
then MAJOR(dev) will be equal to 3, incorrectly.
Here, we mask mi with MINORMASK in MKDEV macro.
Signed-off-by: Zhiqiang Liu <liuzhiqiang26@...wei.com>
---
include/linux/kdev_t.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/kdev_t.h b/include/linux/kdev_t.h
index 85b5151911cf..40a9423720b2 100644
--- a/include/linux/kdev_t.h
+++ b/include/linux/kdev_t.h
@@ -9,7 +9,7 @@
#define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))
#define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))
-#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))
+#define MKDEV(ma, mi) (((ma) << MINORBITS) | ((mi) & MINORMASK))
#define print_dev_t(buffer, dev) \
sprintf((buffer), "%u:%u\n", MAJOR(dev), MINOR(dev))
--
2.19.1
Powered by blists - more mailing lists