2014-02-18 05:18:27

by Lucas De Marchi

[permalink] [raw]
Subject: [PATCH v2] Bluetooth: allocate static minor for vhci

From: Lucas De Marchi <[email protected]>

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 <[email protected]>
---

Changes from v1:
- use minor=137, since 240 is reserved for local use

We talked about using 197, but that's being used by pxa3xx-gcu, too.

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.0


2014-02-18 07:01:21

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v2] Bluetooth: allocate static minor for vhci

Hi Lucas,

> 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 <[email protected]>
> ---
>
> Changes from v1:
> - use minor=137, since 240 is reserved for local use
>
> We talked about using 197, but that's being used by pxa3xx-gcu, too.

looks fine to me. If Kay and/or Greg want to ack it, then I take it through bluetooth-next tree.

Regards

Marcel

2014-02-18 17:31:46

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] Bluetooth: allocate static minor for vhci

On Mon, Feb 17, 2014 at 11:01:11PM -0800, Marcel Holtmann wrote:
> Hi Lucas,
>
> > 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 <[email protected]>
> > ---
> >
> > Changes from v1:
> > - use minor=137, since 240 is reserved for local use
> >
> > We talked about using 197, but that's being used by pxa3xx-gcu, too.
>
> looks fine to me. If Kay and/or Greg want to ack it, then I take it through bluetooth-next tree.

Acked-by: Greg Kroah-Hartman <[email protected]>

2014-02-18 17:49:48

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v2] Bluetooth: allocate static minor for vhci

Hi Lucas,

>>> 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 <[email protected]>
>>> ---
>>>
>>> Changes from v1:
>>> - use minor=137, since 240 is reserved for local use
>>>
>>> We talked about using 197, but that's being used by pxa3xx-gcu, too.
>>
>> looks fine to me. If Kay and/or Greg want to ack it, then I take it through bluetooth-next tree.
>
> Acked-by: Greg Kroah-Hartman <[email protected]>
>

patch has been applied to bluetooth-next tree.

Regards

Marcel