RE: [PATCH] vdpa: allow vdpa dev_del management operation to return failure

From: Parav Pandit
Date: Wed Jun 08 2022 - 06:43:58 EST



> From: Dawar, Gautam <gautam.dawar@xxxxxxx>
> Sent: Wednesday, June 8, 2022 6:30 AM
> To: Jason Wang <jasowang@xxxxxxxxxx>
> Cc: netdev <netdev@xxxxxxxxxxxxxxx>; linux-net-drivers (AMD-Xilinx) <linux-
> net-drivers@xxxxxxx>; Anand, Harpreet <harpreet.anand@xxxxxxx>;
> Michael S. Tsirkin <mst@xxxxxxxxxx>; Zhu Lingshan
> <lingshan.zhu@xxxxxxxxx>; Xie Yongji <xieyongji@xxxxxxxxxxxxx>; Eli
> Cohen <elic@xxxxxxxxxx>; Parav Pandit <parav@xxxxxxxxxx>; Si-Wei Liu <si-
> wei.liu@xxxxxxxxxx>; Stefano Garzarella <sgarzare@xxxxxxxxxx>; Wan
> Jiabing <wanjiabing@xxxxxxxx>; Dan Carpenter
> <dan.carpenter@xxxxxxxxxx>; virtualization <virtualization@lists.linux-
> foundation.org>; linux-kernel <linux-kernel@xxxxxxxxxxxxxxx>
> Subject: RE: [PATCH] vdpa: allow vdpa dev_del management operation to
> return failure
>
> [AMD Official Use Only - General]
>
> Hi Gautam:
> [GD>>] Hi Jason,
>
> On Fri, Jun 3, 2022 at 6:34 PM Gautam Dawar <gautam.dawar@xxxxxxx>
> wrote:
> >
> > Currently, the vdpa_nl_cmd_dev_del_set_doit() implementation allows
> > returning a value to depict the operation status but the return type
> > of dev_del() callback is void. So, any error while deleting the vdpa
> > device in the vdpa parent driver can't be returned to the management
> > layer.
>
> I wonder under which cognition we can hit an error in dev_del()?
> [GD>>] In the AMD-Xilinx vDPA driver, on receiving vdpa device deletion
> request, I try to identify if the vdpa device is in use by any virtio-net driver
> (through any vdpa bus driver) by looking at the vdpa device status value. In
> case the vdpa device status is >= VIRTIO_CONFIG_S_DRIVER, -EBUSY is
> returned.
> This is to avoid side-effects as noted in
> https://bugzilla.kernel.org/show_bug.cgi?id=213179 caused by deleting the
> vdpa device when it is being used.
> >
User should be able to delete the device anytime.
Upper layers who are unable to perform teardown sequence should be fixed.