[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v7 06/13] s390x/css: device support for s390-ccw
From: |
Dong Jia Shi |
Subject: |
Re: [Qemu-devel] [PATCH v7 06/13] s390x/css: device support for s390-ccw passthrough |
Date: |
Mon, 15 May 2017 10:22:26 +0800 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
* Alex Williamson <address@hidden> [2017-05-11 15:13:56 -0600]:
[...]
> > diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
> > new file mode 100644
> > index 0000000..b1aadcd
> > --- /dev/null
> > +++ b/hw/s390x/s390-ccw.c
> > @@ -0,0 +1,138 @@
> > +/*
> > + * s390 CCW Assignment Support
> > + *
> > + * Copyright 2017 IBM Corp
> > + * Author(s): Dong Jia Shi <address@hidden>
> > + * Xiao Feng Ren <address@hidden>
> > + * Pierre Morel <address@hidden>
> > + *
> > + * This work is licensed under the terms of the GNU GPL, version 2
> > + * or (at your option) any later version. See the COPYING file in the
> > + * top-level directory.
> > + */
> > +#include "qemu/osdep.h"
> > +#include "qapi/error.h"
> > +#include "hw/sysbus.h"
> > +#include "libgen.h"
> > +#include "hw/s390x/css.h"
> > +#include "hw/s390x/css-bridge.h"
> > +#include "s390-ccw.h"
> > +
> > +static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
> > + char *sysfsdev,
> > + Error **errp)
> > +{
> > + unsigned int cssid, ssid, devid;
> > + char dev_path[PATH_MAX] = {0}, *tmp;
> > +
> > + if (!sysfsdev) {
> > + error_setg(errp, "No host device provided");
> > + error_append_hint(errp,
> > + "Use -device
> > vfio-ccw,sysfsdev=PATH_TO_DEVICE\n");
> > + return;
> > + }
> > +
> > + if (!realpath(sysfsdev, dev_path)) {
> > + error_setg_errno(errp, errno, "Host device '%s' not found",
> > sysfsdev);
> > + return;
> > + }
> > +
> > + cdev->mdevid = g_strdup(basename(dev_path));
> > +
> > + tmp = basename(dirname(dev_path));
> > + sscanf(tmp, "%2x.%1x.%4x", &cssid, &ssid, &devid);
>
>
> Seems like an oversight not to check this return value.
>
>
Hi Alex,
As I replied to Eric in v6, this is safe, since the format of the input
is an interface that the kernel provides for the userland program.
Anyway, I will add a check since both of you question it.
> > +
> > + cdev->hostid.cssid = cssid;
> > + cdev->hostid.ssid = ssid;
> > + cdev->hostid.devid = devid;
> > + cdev->hostid.valid = true;
> > +}
> > +
>
--
Dong Jia Shi
- [Qemu-devel] [PATCH v7 02/13] vfio: linux-headers update for vfio-ccw, (continued)
[Qemu-devel] [PATCH v7 06/13] s390x/css: device support for s390-ccw passthrough, Dong Jia Shi, 2017/05/04
[Qemu-devel] [PATCH v7 04/13] s390x/css: realize css_sch_build_schib, Dong Jia Shi, 2017/05/04
[Qemu-devel] [PATCH v7 07/13] vfio/ccw: vfio based subchannel passthrough driver, Dong Jia Shi, 2017/05/04
[Qemu-devel] [PATCH v7 08/13] vfio/ccw: get io region info, Dong Jia Shi, 2017/05/04
[Qemu-devel] [PATCH v7 09/13] vfio/ccw: get irqs info and set the eventfd fd, Dong Jia Shi, 2017/05/04