mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 21:53:44 +00:00
vDPA: !FEATURES_OK should not block querying device config space
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 are conditional on feature bits, as long as those feature bits are offered by the device. Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com> Message-Id: <20220722115309.82746-5-lingshan.zhu@intel.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
378b2e9568
commit
a34bed37fc
@ -846,17 +846,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) {
|
||||
|
Loading…
Reference in New Issue
Block a user