[PATCH] UIO: make MAX_UIO_MAPS configurable by menuconfig

From: Qiang Su
Date: Fri Mar 06 2020 - 02:11:47 EST


Now each uio device can only support 5 memory entry. It is
far from enough for some big system. On the other hand, the
hard-coded style is not flexible.
Consider the marco is used as array index, so we set a range
for the config in menuconfig. The range is set as 1 to 512.
The default value is still 5 to keep consistent with current
code.

Signed-off-by: Qiang Su <suqiang4@xxxxxxxxxx>
---
drivers/uio/Kconfig | 9 +++++++++
include/linux/uio_driver.h | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/uio/Kconfig b/drivers/uio/Kconfig
index 202ee81cfc2b..31c53f1dd86a 100644
--- a/drivers/uio/Kconfig
+++ b/drivers/uio/Kconfig
@@ -165,4 +165,13 @@ config UIO_HV_GENERIC
to network and storage devices from userspace.

If you compile this as a module, it will be called uio_hv_generic.
+
+config UIO_MAX_UIO_MAPS
+ depends on UIO
+ int "Maximum of memory nodes each uio device support(1-512)"
+ range 1 512
+ default 5
+ help
+ make the max number of uio device configurable.
+
endif
diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
index 01081c4726c0..efdf8f6bf8bf 100644
--- a/include/linux/uio_driver.h
+++ b/include/linux/uio_driver.h
@@ -44,7 +44,7 @@ struct uio_mem {
struct uio_map *map;
};

-#define MAX_UIO_MAPS 5
+#define MAX_UIO_MAPS CONFIG_MAX_UIO_MAPS

struct uio_portio;

--
2.12.3