Thread (5 messages) 5 messages, 3 authors, 2015-06-01

Re: [PATCH net] xen: netback: read hotplug script once at start of day.

From: Ian Campbell <hidden>
Date: 2015-06-01 08:53:55

On Fri, 2015-05-29 at 18:38 +0100, Wei Liu wrote:
On Fri, May 29, 2015 at 05:24:53PM +0100, Ian Campbell wrote:
[...]
quoted
 	if (be->vif != NULL)
 		return 0;
@@ -417,12 +409,23 @@ static int backend_create_xenvif(struct backend_info *be)
 		return (err < 0) ? err : -EINVAL;
 	}
 
+	script = xenbus_read(XBT_NIL, dev->nodename, "script", NULL);
+	if (IS_ERR(script)) {
+		int err = PTR_ERR(script);
+		xenbus_dev_fatal(dev, err, "reading script");
+		return err;
+	}
+
 	vif = xenvif_alloc(&dev->dev, dev->otherend_id, handle);
 	if (IS_ERR(vif)) {
 		err = PTR_ERR(vif);
 		xenbus_dev_fatal(dev, err, "creating interface");
+		kfree(script);
 		return err;
 	}
+
+	vif->hotplug_script = script;
+
IMO it's better we make xenvif_alloc accept a new parameter called
"script" then allocate vif->hotplug_script there. Then free
vif->hotplug_script in xenvif_free. This way it's less error prone
because all memory allocated for vif is managed in proper place -
xenvif_alloc and xenvif_free.
Well, except the allocation is still in xenbus_read via
backend_create_xenvif, but yes I think that refactoring would be an
improvement.

What about storing it in struct backend_info and setting/restoring in
netback_{probe,remove}? That might be best of all?

Ian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help