summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-rt/0001-Bluetooth-allocate-static-minor-for-vhci.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kernels/linux-libre-rt/0001-Bluetooth-allocate-static-minor-for-vhci.patch')
-rw-r--r--kernels/linux-libre-rt/0001-Bluetooth-allocate-static-minor-for-vhci.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/kernels/linux-libre-rt/0001-Bluetooth-allocate-static-minor-for-vhci.patch b/kernels/linux-libre-rt/0001-Bluetooth-allocate-static-minor-for-vhci.patch
new file mode 100644
index 000000000..557da37ce
--- /dev/null
+++ b/kernels/linux-libre-rt/0001-Bluetooth-allocate-static-minor-for-vhci.patch
@@ -0,0 +1,74 @@
+From 5d77ba2d26110c678b40fd723866a17d4036de12 Mon Sep 17 00:00:00 2001
+From: Lucas De Marchi <lucas.demarchi@intel.com>
+Date: Tue, 18 Feb 2014 02:19:26 -0300
+Subject: [PATCH 01/10] 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>
+---
+ Documentation/devices.txt | 1 +
+ drivers/bluetooth/hci_vhci.c | 3 ++-
+ include/linux/miscdevice.h | 1 +
+ 3 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Documentation/devices.txt b/Documentation/devices.txt
+index 10378cc..04356f5 100644
+--- a/Documentation/devices.txt
++++ b/Documentation/devices.txt
+@@ -353,6 +353,7 @@ Your cooperation is appreciated.
+ 133 = /dev/exttrp External device trap
+ 134 = /dev/apm_bios Advanced Power Management BIOS
+ 135 = /dev/rtc Real Time Clock
++ 137 = /dev/vhci Bluetooth virtual HCI driver
+ 139 = /dev/openprom SPARC OpenBoot PROM
+ 140 = /dev/relay8 Berkshire Products Octal relay card
+ 141 = /dev/relay16 Berkshire Products ISO-16 relay card
+diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c
+index 1ef6990..add1c6a 100644
+--- a/drivers/bluetooth/hci_vhci.c
++++ b/drivers/bluetooth/hci_vhci.c
+@@ -359,7 +359,7 @@ static const struct file_operations vhci_fops = {
+ static struct miscdevice vhci_miscdev= {
+ .name = "vhci",
+ .fops = &vhci_fops,
+- .minor = MISC_DYNAMIC_MINOR,
++ .minor = VHCI_MINOR,
+ };
+
+ static int __init vhci_init(void)
+@@ -385,3 +385,4 @@ MODULE_DESCRIPTION("Bluetooth virtual HCI driver ver " VERSION);
+ MODULE_VERSION(VERSION);
+ MODULE_LICENSE("GPL");
+ MODULE_ALIAS("devname:vhci");
++MODULE_ALIAS_MISCDEV(VHCI_MINOR);
+diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
+index 3737f72..7bb6148 100644
+--- a/include/linux/miscdevice.h
++++ b/include/linux/miscdevice.h
+@@ -23,6 +23,7 @@
+ #define TEMP_MINOR 131 /* Temperature Sensor */
+ #define RTC_MINOR 135
+ #define EFI_RTC_MINOR 136 /* EFI Time services */
++#define VHCI_MINOR 137
+ #define SUN_OPENPROM_MINOR 139
+ #define DMAPI_MINOR 140 /* DMAPI */
+ #define NVRAM_MINOR 144
+--
+1.9.2
+