* [PATCH] xen frontend driver module autoloading
@ 2007-07-17 13:16 Gerd Hoffmann
2007-07-18 19:55 ` Jeremy Fitzhardinge
0 siblings, 1 reply; 4+ messages in thread
From: Gerd Hoffmann @ 2007-07-17 13:16 UTC (permalink / raw)
To: Xen Development Mailing List
[-- Attachment #1: Type: text/plain, Size: 223 bytes --]
Hi,
This patch (against 3.1-final) implements module autoloading for the xen
frontend drivers by adding a uevent function for the frontend xenbus and
some module aliases to the individual drivers.
please apply,
Gerd
[-- Attachment #2: xenpv-autoload.diff --]
[-- Type: text/x-patch, Size: 4284 bytes --]
---
linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c | 2 -
linux-2.6-xen-sparse/drivers/xen/fbfront/xenfb.c | 1
linux-2.6-xen-sparse/drivers/xen/fbfront/xenkbd.c | 1
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c | 1
linux-2.6-xen-sparse/drivers/xen/pcifront/xenbus.c | 1
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c | 25 +++++++++++++++++
6 files changed, 30 insertions(+), 1 deletion(-)
Index: xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
===================================================================
--- xenpv-3.1_15042.orig/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
+++ xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
@@ -874,7 +874,7 @@ static struct xenbus_device_id blkfront_
{ "vbd" },
{ "" }
};
-
+MODULE_ALIAS("xen:vbd");
static struct xenbus_driver blkfront = {
.name = "vbd",
Index: xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
===================================================================
--- xenpv-3.1_15042.orig/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
+++ xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
@@ -2075,6 +2075,7 @@ static struct xenbus_device_id netfront_
{ "vif" },
{ "" }
};
+MODULE_ALIAS("xen:vif");
static struct xenbus_driver netfront = {
Index: xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c
===================================================================
--- xenpv-3.1_15042.orig/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c
+++ xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c
@@ -165,6 +165,30 @@ static int read_backend_details(struct x
return read_otherend_details(xendev, "backend-id", "backend");
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+static int xenbus_uevent_frontend(struct device *dev, char **envp,
+ int num_envp, char *buffer, int buffer_size)
+{
+ struct xenbus_device *xdev;
+ int length = 0, i = 0;
+
+ if (dev == NULL)
+ return -ENODEV;
+ xdev = to_xenbus_device(dev);
+ if (xdev == NULL)
+ return -ENODEV;
+
+ /* stuff we want to pass to /sbin/hotplug */
+ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
+ "XENBUS_TYPE=%s", xdev->devicetype);
+ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
+ "XENBUS_PATH=%s", xdev->nodename);
+ add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &length,
+ "MODALIAS=xen:%s", xdev->devicetype);
+
+ return 0;
+}
+#endif
/* Bus type for frontend drivers. */
static struct xen_bus_type xenbus_frontend = {
@@ -180,6 +204,7 @@ static struct xen_bus_type xenbus_fronte
.probe = xenbus_dev_probe,
.remove = xenbus_dev_remove,
.shutdown = xenbus_dev_shutdown,
+ .uevent = xenbus_uevent_frontend,
#endif
},
.dev = {
Index: xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/fbfront/xenfb.c
===================================================================
--- xenpv-3.1_15042.orig/linux-2.6-xen-sparse/drivers/xen/fbfront/xenfb.c
+++ xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/fbfront/xenfb.c
@@ -718,6 +718,7 @@ static struct xenbus_device_id xenfb_ids
{ "vfb" },
{ "" }
};
+MODULE_ALIAS("xen:vfb");
static struct xenbus_driver xenfb = {
.name = "vfb",
Index: xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/fbfront/xenkbd.c
===================================================================
--- xenpv-3.1_15042.orig/linux-2.6-xen-sparse/drivers/xen/fbfront/xenkbd.c
+++ xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/fbfront/xenkbd.c
@@ -299,6 +299,7 @@ static struct xenbus_device_id xenkbd_id
{ "vkbd" },
{ "" }
};
+MODULE_ALIAS("xen:vkbd");
static struct xenbus_driver xenkbd = {
.name = "vkbd",
Index: xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/pcifront/xenbus.c
===================================================================
--- xenpv-3.1_15042.orig/linux-2.6-xen-sparse/drivers/xen/pcifront/xenbus.c
+++ xenpv-3.1_15042/linux-2.6-xen-sparse/drivers/xen/pcifront/xenbus.c
@@ -273,6 +273,7 @@ static struct xenbus_device_id xenpci_id
{"pci"},
{{0}},
};
+MODULE_ALIAS("xen:pci");
static struct xenbus_driver xenbus_pcifront_driver = {
.name = "pcifront",
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] xen frontend driver module autoloading
2007-07-17 13:16 [PATCH] xen frontend driver module autoloading Gerd Hoffmann
@ 2007-07-18 19:55 ` Jeremy Fitzhardinge
2007-07-19 11:10 ` Gerd Hoffmann
0 siblings, 1 reply; 4+ messages in thread
From: Jeremy Fitzhardinge @ 2007-07-18 19:55 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: Xen Development Mailing List
Gerd Hoffmann wrote:
> This patch (against 3.1-final) implements module autoloading for the xen
> frontend drivers by adding a uevent function for the frontend xenbus and
> some module aliases to the individual drivers.
>
Now that Xen is upstream, could you generate the corresponding patches
against mainline?
Thanks,
J
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] xen frontend driver module autoloading
2007-07-18 19:55 ` Jeremy Fitzhardinge
@ 2007-07-19 11:10 ` Gerd Hoffmann
2007-07-19 14:39 ` Jeremy Fitzhardinge
0 siblings, 1 reply; 4+ messages in thread
From: Gerd Hoffmann @ 2007-07-19 11:10 UTC (permalink / raw)
To: Jeremy Fitzhardinge; +Cc: Xen Development Mailing List
Jeremy Fitzhardinge wrote:
> Gerd Hoffmann wrote:
>> This patch (against 3.1-final) implements module autoloading for the xen
>> frontend drivers by adding a uevent function for the frontend xenbus and
>> some module aliases to the individual drivers.
>>
>
> Now that Xen is upstream,
Wow, finally, congratulations.
> could you generate the corresponding patches
> against mainline?
Ok, somewhat broader question then: What is the plan now? Does the
request to send patches against mainline mean that active development
happens only in mainline and the parvirt_ops patch queue? What happens
with the sparse tree in 3.1? What happens with the separate
2.6.18-based tree for unstable? Are they left as-is? Do they get
backports from mainline? How are bits handled which are not in the
paravirt_ops queue yet (dom0, x86_64, pvfb, ...)?
cheers,
Gerd
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] xen frontend driver module autoloading
2007-07-19 11:10 ` Gerd Hoffmann
@ 2007-07-19 14:39 ` Jeremy Fitzhardinge
0 siblings, 0 replies; 4+ messages in thread
From: Jeremy Fitzhardinge @ 2007-07-19 14:39 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: Xen Development Mailing List
Gerd Hoffmann wrote:
> Wow, finally, congratulations.
>
Thanks. "Now that Xen is upstream" has a certain sound, doesn't it?
> Ok, somewhat broader question then: What is the plan now? Does the
> request to send patches against mainline mean that active development
> happens only in mainline and the parvirt_ops patch queue? What happens
> with the sparse tree in 3.1?
No, I don't think this is a cut-over date. The upstream stuff is
obviously pretty immature compared to the xen-unstable code, so I guess
we'll need to maintain both while things get moved over. In this case
it was a no-brainer, since your patch is both simple and immediately
applicable to the upstreamed code.
> What happens with the separate
> 2.6.18-based tree for unstable? Are they left as-is? Do they get
> backports from mainline? How are bits handled which are not in the
> paravirt_ops queue yet (dom0, x86_64, pvfb, ...)?
Well, relatively simple things like devices can probably be queued up
for upstream pretty quickly, since they don't need much infrastructure
stuff. 64bit is waiting for us to sort out 64bit paravirt_ops, but
should be reasonably straightforward after that.
I've started looking at dom0; that will be... interesting. While it
would be nice to upstream, we might have to make to with a reasonably
maintainable out of tree patch for a while.
J
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-07-19 14:39 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-17 13:16 [PATCH] xen frontend driver module autoloading Gerd Hoffmann
2007-07-18 19:55 ` Jeremy Fitzhardinge
2007-07-19 11:10 ` Gerd Hoffmann
2007-07-19 14:39 ` Jeremy Fitzhardinge
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.