Message ID | 1399590299-32746-1-git-send-email-tim.gardner@canonical.com |
---|---|
State | New |
Headers | show |
This seems to be fairly straightforward. Signed-off-by: Chris J Arges <chris.j.arges@canonical.com> On 05/08/2014 06:04 PM, Tim Gardner wrote: > From: Lucas De Marchi <lucas.demarchi@intel.com> > > BugLink: http://bugs.launchpad.net/bugs/1317336 > > 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> > (cherry picked from commit b075dd40c95d11c2c8690f6c4d6232fc0d9e7f56) > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > --- > 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 80b7241..fce9398 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 7b16738..59095e6 100644 > --- a/drivers/bluetooth/hci_vhci.c > +++ b/drivers/bluetooth/hci_vhci.c > @@ -352,7 +352,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) > @@ -378,3 +378,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 f7eaf2d..e5db611 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 >
On Thu, May 08, 2014 at 10:16:28PM -0500, Chris J Arges wrote: > This seems to be fairly straightforward. > > Signed-off-by: Chris J Arges <chris.j.arges@canonical.com> > > On 05/08/2014 06:04 PM, Tim Gardner wrote: > > From: Lucas De Marchi <lucas.demarchi@intel.com> > > > > BugLink: http://bugs.launchpad.net/bugs/1317336 > > > > 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> > > (cherry picked from commit b075dd40c95d11c2c8690f6c4d6232fc0d9e7f56) > > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > > --- > > 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 80b7241..fce9398 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 7b16738..59095e6 100644 > > --- a/drivers/bluetooth/hci_vhci.c > > +++ b/drivers/bluetooth/hci_vhci.c > > @@ -352,7 +352,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) > > @@ -378,3 +378,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 f7eaf2d..e5db611 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 > > Ick, static minors, really? If they are needed then this does indeed look to do what is claimed. Acked-by: Andy Whitcroft <apw@canonical.com> -apw
diff --git a/Documentation/devices.txt b/Documentation/devices.txt index 80b7241..fce9398 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 7b16738..59095e6 100644 --- a/drivers/bluetooth/hci_vhci.c +++ b/drivers/bluetooth/hci_vhci.c @@ -352,7 +352,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) @@ -378,3 +378,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 f7eaf2d..e5db611 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