All the Xen backend drivers are assigned to a special bus type
xen-backend. This allows userspace to load the modules on request.
This patch defines xen-backend:* aliases on the modules and exports this
names through modalias and uevent.
Signed-off-by: Bastian Blank <[email protected]>
---
drivers/block/xen-blkback/blkback.c | 1 +
drivers/net/xen-netback/netback.c | 1 +
drivers/xen/xenbus/xenbus_probe.c | 3 ++-
drivers/xen/xenbus/xenbus_probe_backend.c | 3 +++
4 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index 5cf2993..ed62008 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -824,3 +824,4 @@ static int __init xen_blkif_init(void)
module_init(xen_blkif_init);
MODULE_LICENSE("Dual BSD/GPL");
+MODULE_ALIAS("xen-backend:vbd");
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index 0e4851b..fd00f25 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -1743,3 +1743,4 @@ failed_init:
module_init(netback_init);
MODULE_LICENSE("Dual BSD/GPL");
+MODULE_ALIAS("xen-backend:vif");
diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 2ed0b04..bd2f90c 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -393,7 +393,8 @@ static ssize_t devtype_show(struct device *dev,
static ssize_t modalias_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
- return sprintf(buf, "xen:%s\n", to_xenbus_device(dev)->devicetype);
+ return sprintf(buf, "%s:%s\n", dev->bus->name,
+ to_xenbus_device(dev)->devicetype);
}
struct device_attribute xenbus_dev_attrs[] = {
diff --git a/drivers/xen/xenbus/xenbus_probe_backend.c b/drivers/xen/xenbus/xenbus_probe_backend.c
index ec510e5..60adf91 100644
--- a/drivers/xen/xenbus/xenbus_probe_backend.c
+++ b/drivers/xen/xenbus/xenbus_probe_backend.c
@@ -107,6 +107,9 @@ static int xenbus_uevent_backend(struct device *dev,
if (xdev == NULL)
return -ENODEV;
+ if (add_uevent_var(env, "MODALIAS=xen-backend:%s", xdev->devicetype))
+ return -ENOMEM;
+
/* stuff we want to pass to /sbin/hotplug */
if (add_uevent_var(env, "XENBUS_TYPE=%s", xdev->devicetype))
return -ENOMEM;
--
1.7.5.4
On Fri, 2011-06-24 at 22:51 +0100, Bastian Blank wrote:
> All the Xen backend drivers are assigned to a special bus type
> xen-backend. This allows userspace to load the modules on request.
>
> This patch defines xen-backend:* aliases on the modules and exports this
> names through modalias and uevent.
Excellent, this was a big missing piece of functionality for distros.
Thanks!
> Signed-off-by: Bastian Blank <[email protected]>
Acked-by: Ian Campbell <[email protected]>
> ---
> drivers/block/xen-blkback/blkback.c | 1 +
> drivers/net/xen-netback/netback.c | 1 +
> drivers/xen/xenbus/xenbus_probe.c | 3 ++-
> drivers/xen/xenbus/xenbus_probe_backend.c | 3 +++
> 4 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
> index 5cf2993..ed62008 100644
> --- a/drivers/block/xen-blkback/blkback.c
> +++ b/drivers/block/xen-blkback/blkback.c
> @@ -824,3 +824,4 @@ static int __init xen_blkif_init(void)
> module_init(xen_blkif_init);
>
> MODULE_LICENSE("Dual BSD/GPL");
> +MODULE_ALIAS("xen-backend:vbd");
> diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
> index 0e4851b..fd00f25 100644
> --- a/drivers/net/xen-netback/netback.c
> +++ b/drivers/net/xen-netback/netback.c
> @@ -1743,3 +1743,4 @@ failed_init:
> module_init(netback_init);
>
> MODULE_LICENSE("Dual BSD/GPL");
> +MODULE_ALIAS("xen-backend:vif");
> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
> index 2ed0b04..bd2f90c 100644
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -393,7 +393,8 @@ static ssize_t devtype_show(struct device *dev,
> static ssize_t modalias_show(struct device *dev,
> struct device_attribute *attr, char *buf)
> {
> - return sprintf(buf, "xen:%s\n", to_xenbus_device(dev)->devicetype);
> + return sprintf(buf, "%s:%s\n", dev->bus->name,
> + to_xenbus_device(dev)->devicetype);
> }
>
> struct device_attribute xenbus_dev_attrs[] = {
> diff --git a/drivers/xen/xenbus/xenbus_probe_backend.c b/drivers/xen/xenbus/xenbus_probe_backend.c
> index ec510e5..60adf91 100644
> --- a/drivers/xen/xenbus/xenbus_probe_backend.c
> +++ b/drivers/xen/xenbus/xenbus_probe_backend.c
> @@ -107,6 +107,9 @@ static int xenbus_uevent_backend(struct device *dev,
> if (xdev == NULL)
> return -ENODEV;
>
> + if (add_uevent_var(env, "MODALIAS=xen-backend:%s", xdev->devicetype))
> + return -ENOMEM;
> +
> /* stuff we want to pass to /sbin/hotplug */
> if (add_uevent_var(env, "XENBUS_TYPE=%s", xdev->devicetype))
> return -ENOMEM;
On Fri, Jun 24, 2011 at 11:51:55PM +0200, Bastian Blank wrote:
> All the Xen backend drivers are assigned to a special bus type
> xen-backend. This allows userspace to load the modules on request.
Is there a specific version of udev that would take advantage of this?
>
> This patch defines xen-backend:* aliases on the modules and exports this
> names through modalias and uevent.
>
> Signed-off-by: Bastian Blank <[email protected]>
> ---
> drivers/block/xen-blkback/blkback.c | 1 +
> drivers/net/xen-netback/netback.c | 1 +
> drivers/xen/xenbus/xenbus_probe.c | 3 ++-
> drivers/xen/xenbus/xenbus_probe_backend.c | 3 +++
> 4 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
> index 5cf2993..ed62008 100644
> --- a/drivers/block/xen-blkback/blkback.c
> +++ b/drivers/block/xen-blkback/blkback.c
> @@ -824,3 +824,4 @@ static int __init xen_blkif_init(void)
> module_init(xen_blkif_init);
>
> MODULE_LICENSE("Dual BSD/GPL");
> +MODULE_ALIAS("xen-backend:vbd");
> diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
> index 0e4851b..fd00f25 100644
> --- a/drivers/net/xen-netback/netback.c
> +++ b/drivers/net/xen-netback/netback.c
> @@ -1743,3 +1743,4 @@ failed_init:
> module_init(netback_init);
>
> MODULE_LICENSE("Dual BSD/GPL");
> +MODULE_ALIAS("xen-backend:vif");
> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
> index 2ed0b04..bd2f90c 100644
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -393,7 +393,8 @@ static ssize_t devtype_show(struct device *dev,
> static ssize_t modalias_show(struct device *dev,
> struct device_attribute *attr, char *buf)
> {
> - return sprintf(buf, "xen:%s\n", to_xenbus_device(dev)->devicetype);
> + return sprintf(buf, "%s:%s\n", dev->bus->name,
> + to_xenbus_device(dev)->devicetype);
> }
>
> struct device_attribute xenbus_dev_attrs[] = {
> diff --git a/drivers/xen/xenbus/xenbus_probe_backend.c b/drivers/xen/xenbus/xenbus_probe_backend.c
> index ec510e5..60adf91 100644
> --- a/drivers/xen/xenbus/xenbus_probe_backend.c
> +++ b/drivers/xen/xenbus/xenbus_probe_backend.c
> @@ -107,6 +107,9 @@ static int xenbus_uevent_backend(struct device *dev,
> if (xdev == NULL)
> return -ENODEV;
>
> + if (add_uevent_var(env, "MODALIAS=xen-backend:%s", xdev->devicetype))
> + return -ENOMEM;
> +
> /* stuff we want to pass to /sbin/hotplug */
> if (add_uevent_var(env, "XENBUS_TYPE=%s", xdev->devicetype))
> return -ENOMEM;
> --
> 1.7.5.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
On Mon, Jun 27, 2011 at 12:13:27PM -0400, Konrad Rzeszutek Wilk wrote:
> On Fri, Jun 24, 2011 at 11:51:55PM +0200, Bastian Blank wrote:
> > All the Xen backend drivers are assigned to a special bus type
> > xen-backend. This allows userspace to load the modules on request.
> Is there a specific version of udev that would take advantage of this?
Was there a version within the last three years that can't? The patch is
tested and udev does its work.
Bastian
--
Pain is a thing of the mind. The mind can be controlled.
-- Spock, "Operation -- Annihilate!" stardate 3287.2
On Mon, Jun 27, 2011 at 06:37:29PM +0200, Bastian Blank wrote:
> On Mon, Jun 27, 2011 at 12:13:27PM -0400, Konrad Rzeszutek Wilk wrote:
> > On Fri, Jun 24, 2011 at 11:51:55PM +0200, Bastian Blank wrote:
> > > All the Xen backend drivers are assigned to a special bus type
> > > xen-backend. This allows userspace to load the modules on request.
> > Is there a specific version of udev that would take advantage of this?
>
> Was there a version within the last three years that can't? The patch is
> tested and udev does its work.
Ok, that answers that question. Queue up for 3.1
On Mon, Jun 27, 2011 at 12:51:09PM -0400, Konrad Rzeszutek Wilk wrote:
> On Mon, Jun 27, 2011 at 06:37:29PM +0200, Bastian Blank wrote:
> > On Mon, Jun 27, 2011 at 12:13:27PM -0400, Konrad Rzeszutek Wilk wrote:
> > > On Fri, Jun 24, 2011 at 11:51:55PM +0200, Bastian Blank wrote:
> > > > All the Xen backend drivers are assigned to a special bus type
> > > > xen-backend. This allows userspace to load the modules on request.
> > > Is there a specific version of udev that would take advantage of this?
> >
> > Was there a version within the last three years that can't? The patch is
> > tested and udev does its work.
>
> Ok, that answers that question. Queue up for 3.1
Ugh actually no I can't.
Bastian,
Can you re-submit these two patches (and stick on Acked-by Ian on them) and
split the "xen: Add alias to autoload backend driver" in three patches:
1) the xen-netback (and copy David Miller)
2) the xen-blkback (and copy Jens Axboe)
3) the xenbus one
and add Acked-by on the two backends from me and from Ian?
That should be five patches total.
I will take the xenbus patches and have them in a 3.1 branch and the
backends patches will go to the appropiate maintainer.
Thanks!
On Mon, Jun 27, 2011 at 12:57:11PM -0400, Konrad Rzeszutek Wilk wrote:
> Ugh actually no I can't.
Why? It does not actually change things.
> Can you re-submit these two patches (and stick on Acked-by Ian on them) and
> split the "xen: Add alias to autoload backend driver" in three patches:
> 1) the xen-netback (and copy David Miller)
> 2) the xen-blkback (and copy Jens Axboe)
> 3) the xenbus one
That is silly.
> That should be five patches total.
No, 2+2 is 4, not five.
Bastian
--
Each kiss is as the first.
-- Miramanee, Kirk's wife, "The Paradise Syndrome",
stardate 4842.6
On Mon, Jun 27, 2011 at 07:23:05PM +0200, Bastian Blank wrote:
> On Mon, Jun 27, 2011 at 12:57:11PM -0400, Konrad Rzeszutek Wilk wrote:
> > Ugh actually no I can't.
>
> Why? It does not actually change things.
>
> > Can you re-submit these two patches (and stick on Acked-by Ian on them) and
> > split the "xen: Add alias to autoload backend driver" in three patches:
> > 1) the xen-netback (and copy David Miller)
> > 2) the xen-blkback (and copy Jens Axboe)
> > 3) the xenbus one
>
> That is silly.
Please do it.
>
> > That should be five patches total.
>
> No, 2+2 is 4, not five.
Right. Got my math wrong.
On Mon, Jun 27, 2011 at 01:34:47PM -0400, Konrad Rzeszutek Wilk wrote:
> On Mon, Jun 27, 2011 at 07:23:05PM +0200, Bastian Blank wrote:
> > On Mon, Jun 27, 2011 at 12:57:11PM -0400, Konrad Rzeszutek Wilk wrote:
> > > Ugh actually no I can't.
> >
> > Why? It does not actually change things.
There are two ways of doing this:
1). Split the patch in three b/c:
The backends are owned by different maintainers. The xen-netback
is owned by David Miller and he is the one that will take the patch and send
it to Linus during the next merge window. The xen-blkback is the same thing -
Jens will take it (or I can stick it in my #stable/for-jens branch and ask
him to pull everything there). Either way, for both backends, those two
folks are the ones that Linus will take the patch from - not me.
I am going to take the xenbus patches and ask Linus to pull them.
In other words, this last patch crosses three different maintainers - hence
you can either split the patch in three parts.
2). Ask each of the maintainers (David, Jens) to give you an Ack so that
this patch has both of them and then I can send it directly to Linus.