Re: [PATCH] vdpa: allow a 32 bit vq alignment

From: Zhu, Lingshan
Date: Fri Apr 10 2020 - 02:24:46 EST



On 4/10/2020 2:21 PM, Jason Wang wrote:
Cc Ling Shan.

On 2020/4/10 äå4:28, Michael S. Tsirkin wrote:
get_vq_align returns u16 now, but that's not enough for
systems/devices with 64K pages. All callers assign it to
a u32 variable anyway, so let's just change the return
value type to u32.

Cc: "Zhu, Lingshan" <lingshan.zhu@xxxxxxxxx>
Reported-by: Arnd Bergmann <arnd@xxxxxxxx>
Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
---
 drivers/vdpa/ifcvf/ifcvf_main.c | 2 +-
 drivers/vdpa/vdpa_sim/vdpa_sim.c | 2 +-
 include/linux/vdpa.h | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c
index 28d9e5de5675..abf6a061cab6 100644
--- a/drivers/vdpa/ifcvf/ifcvf_main.c
+++ b/drivers/vdpa/ifcvf/ifcvf_main.c
@@ -226,7 +226,7 @@ static u32 ifcvf_vdpa_get_vendor_id(struct vdpa_device *vdpa_dev)
ÂÂÂÂÂ return IFCVF_SUBSYS_VENDOR_ID;
 }
 -static u16 ifcvf_vdpa_get_vq_align(struct vdpa_device *vdpa_dev)
+static u32 ifcvf_vdpa_get_vq_align(struct vdpa_device *vdpa_dev)
 {
ÂÂÂÂÂ return IFCVF_QUEUE_ALIGNMENT;
 }
diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim.c b/drivers/vdpa/vdpa_sim/vdpa_sim.c
index 72863d01a12a..7957d2d41fc4 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim.c
@@ -435,7 +435,7 @@ static u64 vdpasim_get_vq_state(struct vdpa_device *vdpa, u16 idx)
ÂÂÂÂÂ return vrh->last_avail_idx;
 }
 -static u16 vdpasim_get_vq_align(struct vdpa_device *vdpa)
+static u32 vdpasim_get_vq_align(struct vdpa_device *vdpa)
 {
ÂÂÂÂÂ return VDPASIM_QUEUE_ALIGN;
 }
diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
index 733acfb7ef84..5453af87a33e 100644
--- a/include/linux/vdpa.h
+++ b/include/linux/vdpa.h
@@ -164,7 +164,7 @@ struct vdpa_config_ops {
ÂÂÂÂÂ u64 (*get_vq_state)(struct vdpa_device *vdev, u16 idx);
 Â /* Device ops */
-ÂÂÂ u16 (*get_vq_align)(struct vdpa_device *vdev);
+ÂÂÂ u32 (*get_vq_align)(struct vdpa_device *vdev);
ÂÂÂÂÂ u64 (*get_features)(struct vdpa_device *vdev);
ÂÂÂÂÂ int (*set_features)(struct vdpa_device *vdev, u64 features);
ÂÂÂÂÂ void (*set_config_cb)(struct vdpa_device *vdev,

looks good to me

Thanks,
BR
Zhu Lingshan