xen: make use of xenbus_read_unsigned() in xen-kbdfront

Use xenbus_read_unsigned() instead of xenbus_scanf() when possible.
This requires to change the type of the reads from int to unsigned,
but these cases have been wrong before: negative values are not allowed
for the modified cases.

Cc: dmitry.torokhov@gmail.com
Cc: linux-input@vger.kernel.org

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: David Vrabel <david.vrabel@citrix.com>
This commit is contained in:
Juergen Gross 2016-10-31 14:58:40 +01:00
Родитель 0240933469
Коммит 81362c6f15
1 изменённых файлов: 5 добавлений и 8 удалений

Просмотреть файл

@ -108,7 +108,8 @@ static irqreturn_t input_handler(int rq, void *dev_id)
static int xenkbd_probe(struct xenbus_device *dev, static int xenkbd_probe(struct xenbus_device *dev,
const struct xenbus_device_id *id) const struct xenbus_device_id *id)
{ {
int ret, i, abs; int ret, i;
unsigned int abs;
struct xenkbd_info *info; struct xenkbd_info *info;
struct input_dev *kbd, *ptr; struct input_dev *kbd, *ptr;
@ -127,8 +128,7 @@ static int xenkbd_probe(struct xenbus_device *dev,
if (!info->page) if (!info->page)
goto error_nomem; goto error_nomem;
if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-abs-pointer", "%d", &abs) < 0) abs = xenbus_read_unsigned(dev->otherend, "feature-abs-pointer", 0);
abs = 0;
if (abs) { if (abs) {
ret = xenbus_write(XBT_NIL, dev->nodename, ret = xenbus_write(XBT_NIL, dev->nodename,
"request-abs-pointer", "1"); "request-abs-pointer", "1");
@ -322,11 +322,8 @@ static void xenkbd_backend_changed(struct xenbus_device *dev,
case XenbusStateInitWait: case XenbusStateInitWait:
InitWait: InitWait:
ret = xenbus_scanf(XBT_NIL, info->xbdev->otherend, if (xenbus_read_unsigned(info->xbdev->otherend,
"feature-abs-pointer", "%d", &val); "feature-abs-pointer", 0)) {
if (ret < 0)
val = 0;
if (val) {
ret = xenbus_write(XBT_NIL, info->xbdev->nodename, ret = xenbus_write(XBT_NIL, info->xbdev->nodename,
"request-abs-pointer", "1"); "request-abs-pointer", "1");
if (ret) if (ret)