aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@intel.com>2014-02-18 00:19:26 -0500
committerMarcel Holtmann <marcel@holtmann.org>2014-02-18 12:49:04 -0500
commitb075dd40c95d11c2c8690f6c4d6232fc0d9e7f56 (patch)
treeaa1b247224669876a1fda5ce414a45984139a902
parent2426f3a5945ce1dfdb04aaf26748a987be49ff7c (diff)
Bluetooth: allocate static minor for vhci
Commit bfacbb9 (Bluetooth: Use devname:vhci module alias for virtual HCI driver) added the module alias to hci_vhci module so it's possible to create the /dev/vhci node. However creating an alias without specifying the minor doesn't allow us to create the node ahead, triggerring module auto-load when it's first accessed. Starting with depmod from kmod 16 we started to warn if there's a devname alias without specifying the major and minor. Let's do the same done for uhid, kvm, fuse and others, specifying a fixed minor. In systems with systemd as the init the following will happen: on early boot systemd will call "kmod static-nodes" to read /lib/modules/$(uname -r)/modules.devname and then create the nodes. When first accessed these "dead" nodes will trigger the module loading. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r--Documentation/devices.txt1
-rw-r--r--drivers/bluetooth/hci_vhci.c3
-rw-r--r--include/linux/miscdevice.h1
3 files changed, 4 insertions, 1 deletions
diff --git a/Documentation/devices.txt b/Documentation/devices.txt
index 10378cc48374..04356f5bc3af 100644
--- a/Documentation/devices.txt
+++ b/Documentation/devices.txt
@@ -353,6 +353,7 @@ Your cooperation is appreciated.
353 133 = /dev/exttrp External device trap 353 133 = /dev/exttrp External device trap
354 134 = /dev/apm_bios Advanced Power Management BIOS 354 134 = /dev/apm_bios Advanced Power Management BIOS
355 135 = /dev/rtc Real Time Clock 355 135 = /dev/rtc Real Time Clock
356 137 = /dev/vhci Bluetooth virtual HCI driver
356 139 = /dev/openprom SPARC OpenBoot PROM 357 139 = /dev/openprom SPARC OpenBoot PROM
357 140 = /dev/relay8 Berkshire Products Octal relay card 358 140 = /dev/relay8 Berkshire Products Octal relay card
358 141 = /dev/relay16 Berkshire Products ISO-16 relay card 359 141 = /dev/relay16 Berkshire Products ISO-16 relay card
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
index 1ef6990a5c7e..add1c6a72063 100644
--- a/drivers/bluetooth/hci_vhci.c
+++ b/drivers/bluetooth/hci_vhci.c
@@ -359,7 +359,7 @@ static const struct file_operations vhci_fops = {
359static struct miscdevice vhci_miscdev= { 359static struct miscdevice vhci_miscdev= {
360 .name = "vhci", 360 .name = "vhci",
361 .fops = &vhci_fops, 361 .fops = &vhci_fops,
362 .minor = MISC_DYNAMIC_MINOR, 362 .minor = VHCI_MINOR,
363}; 363};
364 364
365static int __init vhci_init(void) 365static int __init vhci_init(void)
@@ -385,3 +385,4 @@ MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
385MODULE_VERSION(VERSION); 385MODULE_VERSION(VERSION);
386MODULE_LICENSE("GPL"); 386MODULE_LICENSE("GPL");
387MODULE_ALIAS("devname:vhci"); 387MODULE_ALIAS("devname:vhci");
388MODULE_ALIAS_MISCDEV(VHCI_MINOR);
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
index 3737f7218f51..7bb6148d990f 100644
--- a/include/linux/miscdevice.h
+++ b/include/linux/miscdevice.h
@@ -23,6 +23,7 @@
23#define TEMP_MINOR 131 /* Temperature Sensor */ 23#define TEMP_MINOR 131 /* Temperature Sensor */
24#define RTC_MINOR 135 24#define RTC_MINOR 135
25#define EFI_RTC_MINOR 136 /* EFI Time services */ 25#define EFI_RTC_MINOR 136 /* EFI Time services */
26#define VHCI_MINOR 137
26#define SUN_OPENPROM_MINOR 139 27#define SUN_OPENPROM_MINOR 139
27#define DMAPI_MINOR 140 /* DMAPI */ 28#define DMAPI_MINOR 140 /* DMAPI */
28#define NVRAM_MINOR 144 29#define NVRAM_MINOR 144