summaryrefslogtreecommitdiffstats
path: root/config/kernel-misc-minor.m4
blob: 3917e28ff63624b6caa09ba5180f76a69cb39d4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
dnl #
dnl # Determine an available miscellaneous minor number which can be used
dnl # for the /dev/zfs device.  This is needed because kernel module
dnl # auto-loading depends on registering a reserved non-conflicting minor
dnl # number.  Start with a large known available unreserved minor and work
dnl # our way down to lower value if a collision is detected.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_MISC_MINOR], [
	AC_MSG_CHECKING([for available /dev/zfs minor])

	for i in $(seq 249 -1 200); do
		if ! grep -q "^#define\s\+.*_MINOR\s\+.*$i" \
		    ${LINUX}/include/linux/miscdevice.h; then
			ZFS_MINOR="$i"
			AC_MSG_RESULT($ZFS_MINOR)
			AC_DEFINE_UNQUOTED([ZFS_MINOR], [$ZFS_MINOR],
			    [/dev/zfs minor])
			break
		fi
	done

	AS_IF([ test -z "$ZFS_MINOR"], [
		AC_MSG_ERROR([
	*** No available misc minor numbers available for use.])
	])
])