[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen-kbdfront: correct return value checks on xenbus_scanf()
On Thu, Jul 07, 2016 at 01:53:40AM -0600, Jan Beulich wrote: > Only a positive return value indicates success. If I am reading this correctly xenbus_scanf() guarantees that it will not return 0. From include/xen/xenbus.h: /* Single read and scanf: returns -errno or num scanned if > 0. */ __scanf(4, 5) int xenbus_scanf(struct xenbus_transaction t, const char *dir, const char *node, const char *fmt, ...); and the code matches: ... /* Distinctive errno. */ if (ret == 0) return -ERANGE; return ret; > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > --- > drivers/input/misc/xen-kbdfront.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > --- 4.7-rc6-xenbus_scanf.orig/drivers/input/misc/xen-kbdfront.c > +++ 4.7-rc6-xenbus_scanf/drivers/input/misc/xen-kbdfront.c > @@ -127,7 +127,8 @@ static int xenkbd_probe(struct xenbus_de > if (!info->page) > goto error_nomem; > > - if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-abs-pointer", "%d", > &abs) < 0) > + if (xenbus_scanf(XBT_NIL, dev->otherend, > + "feature-abs-pointer", "%d", &abs) <= 0) > abs = 0; > if (abs) { > ret = xenbus_printf(XBT_NIL, dev->nodename, > @@ -324,7 +325,7 @@ static void xenkbd_backend_changed(struc > InitWait: > ret = xenbus_scanf(XBT_NIL, info->xbdev->otherend, > "feature-abs-pointer", "%d", &val); > - if (ret < 0) > + if (ret <= 0) > val = 0; > if (val) { > ret = xenbus_printf(XBT_NIL, info->xbdev->nodename, > > Thanks. -- Dmitry _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |