qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]