Re: [PATCH V3 4/6] vDPA: !FEATURES_OK should not block querying device config space
From: Zhu, Lingshan <hidden>
Date: 2022-07-13 07:46:29
On 7/13/2022 1:23 PM, Michael S. Tsirkin wrote:
On Fri, Jul 01, 2022 at 10:12:49PM +0000, Parav Pandit wrote:quoted
quoted
From: Zhu Lingshan <redacted> Sent: Friday, July 1, 2022 9:28 AM Users may want to query the config space of a vDPA device, to choose a appropriate one for a certain guest. This means the users need to read the config space before FEATURES_OK, and the existence of config space contents does not depend on FEATURES_OK. The spec says: The device MUST allow reading of any device-specific configuration field before FEATURES_OK is set by the driver. This includes fields which arec> > conditional on feature bits, as long as those feature bits are offered by thequoted
quoted
device.
yes
quoted
quoted
Fixes: 30ef7a8ac8a07 (vdpa: Read device configuration only if FEATURES_OK)Fix is fine, but fixes tag needs correction described below. Above commit id is 13 letters should be 12. And It should be in format Fixes: 30ef7a8ac8a0 ("vdpa: Read device configuration only if FEATURES_OK")Yea you normally use --format='Fixes: %h (\"%s\")'
Thanks, but I will drop this fix tag, since Parav suggest I drop the fix tag of the 3/6 patch which reporting device feature bits to the upserspace(this fix is composed of several patches).
quoted
Please use checkpatch.pl script before posting the patches to catch these errors. There is a bot that looks at the fixes tag and identifies the right kernel version to apply this fix.I don't think checkpatch complains about this if for no other reason that sometimes the 6 byte hash is not enough.quoted
quoted
Signed-off-by: Zhu Lingshan <redacted> --- drivers/vdpa/vdpa.c | 8 -------- 1 file changed, 8 deletions(-)diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c index9b0e39b2f022..d76b22b2f7ae 100644--- a/drivers/vdpa/vdpa.c +++ b/drivers/vdpa/vdpa.c@@ -851,17 +851,9 @@ vdpa_dev_config_fill(struct vdpa_device *vdev,struct sk_buff *msg, u32 portid, { u32 device_id; void *hdr; - u8 status; int err; down_read(&vdev->cf_lock); - status = vdev->config->get_status(vdev); - if (!(status & VIRTIO_CONFIG_S_FEATURES_OK)) { - NL_SET_ERR_MSG_MOD(extack, "Features negotiation not completed"); - err = -EAGAIN; - goto out; - } - hdr = genlmsg_put(msg, portid, seq, &vdpa_nl_family, flags, VDPA_CMD_DEV_CONFIG_GET); if (!hdr) { -- 2.31.1