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.