Re: [PATCH] virtio_pci: modify ENOENT to EINVAL
From: Jason Wang <hidden>
Date: 2022-11-10 03:48:45
Also in:
lkml
On Thu, Nov 10, 2022 at 11:31 AM Angus Chen [off-list ref] wrote:
Hi Jason.quoted
-----Original Message----- From: Jason Wang <redacted> Sent: Wednesday, November 2, 2022 1:34 PM To: Angus Chen <redacted> Cc: mst@redhat.com; virtualization@lists.linux-foundation.org; linux-kernel@vger.kernel.org; lingshan.zhu@intel.com Subject: Re: [PATCH] virtio_pci: modify ENOENT to EINVAL On Tue, Nov 1, 2022 at 7:17 PM Angus Chen [off-list ref] wrote:quoted
Virtio_crypto use max_data_queues+1 to setup vqs, we use vp_modern_get_num_queues to protect the vq range in setup_vq. We could enter index >= vp_modern_get_num_queues(mdev) in setup_vq if common->num_queues is not set well,and it return -ENOENT. It is better to use -EINVAL instead.I'm not sure I get this. It would be better to describe: 1) what kind of issues can we see if we return -ENOENT 2) why -EINVAL can help in this case ThanksThank you for your reply. We use a robot to test our dpu to get the return value of probe. We often get ENOENT form ' setup_vq ' function because of device error. Most of time, my device can't handle queue_enable well. This time,we get 'ENOENT' because the device set max_data_queues bigger than num_queues.
Ok, I see, ENOENT is not very popular on linux but I'm not sure it's worth bothering.
I think EINVAL is used when the value of some parameter is wrong. Btw,it not a big deal,I can modify the robot to workaround.
Btw, the error code is not a part of the ABI, so depending on that is kind of fragile. Thanks
quoted
quoted
Signed-off-by: Angus Chen <redacted> --- drivers/virtio/virtio_pci_modern.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/virtio/virtio_pci_modern.cb/drivers/virtio/virtio_pci_modern.cquoted
index c3b9f2761849..edf2e18014cd 100644--- a/drivers/virtio/virtio_pci_modern.c +++ b/drivers/virtio/virtio_pci_modern.c@@ -303,7 +303,7 @@ static struct virtqueue *setup_vq(structvirtio_pci_device *vp_dev,quoted
int err; if (index >= vp_modern_get_num_queues(mdev)) - return ERR_PTR(-ENOENT); + return ERR_PTR(-EINVAL); /* Check if queue is either not available or already active. */ num = vp_modern_get_queue_size(mdev, index); -- 2.25.1
_______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization