On Fri, Mar 29, 2024 at 10:48:25PM +0800, Zhu, Lingshan wrote: > > > On 3/20/2024 12:04 AM, Stefano Garzarella wrote: > > On Mon, Feb 19, 2024 at 02:55:58AM +0800, Zhu Lingshan wrote: > > > This commit allows reporting the max size of any > > > single segment of virtio-block devices to user space. > > > > > > Signed-off-by: Zhu Lingshan <lingshan.zhu@xxxxxxxxx> > > > --- > > > drivers/vdpa/vdpa.c | 17 +++++++++++++++++ > > > include/uapi/linux/vdpa.h | 1 + > > > 2 files changed, 18 insertions(+) > > > > > > diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c > > > index d5ccb618de2b..ee1472d32b0d 100644 > > > --- a/drivers/vdpa/vdpa.c > > > +++ b/drivers/vdpa/vdpa.c > > > @@ -956,6 +956,20 @@ vdpa_dev_blk_capacity_config_fill(struct > > > sk_buff *msg, > > > val_u64, VDPA_ATTR_PAD); > > > } > > > > > > +static int > > > +vdpa_dev_blk_seg_size_config_fill(struct sk_buff *msg, u64 features, > > > + const struct virtio_blk_config *config) > > > +{ > > > + u32 val_u32; > > > + > > > + if ((features & BIT_ULL(VIRTIO_BLK_F_SIZE_MAX)) == 0) > > > + return 0; > > > + > > > + val_u32 = __virtio32_to_cpu(true, config->size_max); > > > + > > > + return nla_put_u32(msg, VDPA_ATTR_DEV_BLK_CFG_SEG_SIZE, val_u32); > > > > Should we call this VDPA_ATTR_DEV_BLK_CFG_SIZE_MAX ? > I have tried this before, but this macro is too long causing a odd format in > the header file. > > I can change this since you point this out. This is uapi means we should > merge the > fix during the RC release before 6.9 official. > > @MST, does the process work for you? I'm fine applying a fixup patch. Yes it's preferable to make changed before the release. > > > > > +} > > > + > > > static int vdpa_dev_blk_config_fill(struct vdpa_device *vdev, > > > struct sk_buff *msg) > > > { > > > @@ -973,6 +987,9 @@ static int vdpa_dev_blk_config_fill(struct > > > vdpa_device *vdev, > > > if (vdpa_dev_blk_capacity_config_fill(msg, &config)) > > > return -EMSGSIZE; > > > > > > + if (vdpa_dev_blk_seg_size_config_fill(msg, features_device, > > > &config)) > > > + return -EMSGSIZE; > > > + > > > return 0; > > > } > > > > > > diff --git a/include/uapi/linux/vdpa.h b/include/uapi/linux/vdpa.h > > > index 1bf69226cb96..586bce3c906a 100644 > > > --- a/include/uapi/linux/vdpa.h > > > +++ b/include/uapi/linux/vdpa.h > > > @@ -57,6 +57,7 @@ enum vdpa_attr { > > > VDPA_ATTR_DEV_FEATURES, /* u64 */ > > > > > > VDPA_ATTR_DEV_BLK_CFG_CAPACITY, /* u64 */ > > > + VDPA_ATTR_DEV_BLK_CFG_SEG_SIZE, /* u32 */ > > > > > > /* new attributes must be added above here */ > > > VDPA_ATTR_MAX, > > > -- > > > 2.39.3 > > > > > > > > > >