On 01/06/2017 10:05 AM, Juergen Gross wrote: > Today a Xenstore watch event is delivered via a callback function > declared as: > > void (*callback)(struct xenbus_watch *, > const char **vec, unsigned int len); > > As all watch events only ever come with two parameters (path and token) > changing the prototype to: > > void (*callback)(struct xenbus_watch *, > const char *path, const char *token); > > is the natural thing to do. > > Apply this change and adapt all users. > > Cc: konrad.w...@oracle.com > Cc: roger....@citrix.com > Cc: wei.l...@citrix.com > Cc: paul.durr...@citrix.com > Cc: net...@vger.kernel.org > > Signed-off-by: Juergen Gross <jgr...@suse.com>
> > @@ -903,24 +902,24 @@ static int process_msg(void) > body[msg->hdr.len] = '\0'; > > if (msg->hdr.type == XS_WATCH_EVENT) { > - msg->u.watch.vec = split(body, msg->hdr.len, > - &msg->u.watch.vec_size); > - if (IS_ERR(msg->u.watch.vec)) { > - err = PTR_ERR(msg->u.watch.vec); > + if (count_strings(body, msg->hdr.len) != 2) { > + err = -EINVAL; xenbus_write_watch() returns -EILSEQ when this type of error is encountered so perhaps for we should return the same error here. Either way Reviewed-by: Boris Ostrovsky <boris.ostrov...@oracle.com>