Jason Wang
2022-Feb-14 06:15 UTC
[PATCH V4 1/4] vDPA/ifcvf: implement IO read/write helpers in the header file
? 2022/2/3 ??3:27, Zhu Lingshan ??:> re-implement IO read/write helpers in the header file, so that > they can be utilized among modules. > > Signed-off-by: Zhu Lingshan <lingshan.zhu at intel.com>I wonder if we can simply use include/linux/virtio_pci_modern.h. The accessors vp_ioreadX/writeX() there were decoupled from the virtio_pci_modern_device structure. Thanks> --- > drivers/vdpa/ifcvf/ifcvf_base.c | 36 -------------------------------- > drivers/vdpa/ifcvf/ifcvf_base.h | 37 +++++++++++++++++++++++++++++++++ > 2 files changed, 37 insertions(+), 36 deletions(-) > > diff --git a/drivers/vdpa/ifcvf/ifcvf_base.c b/drivers/vdpa/ifcvf/ifcvf_base.c > index 7d41dfe48ade..397692ae671c 100644 > --- a/drivers/vdpa/ifcvf/ifcvf_base.c > +++ b/drivers/vdpa/ifcvf/ifcvf_base.c > @@ -10,42 +10,6 @@ > > #include "ifcvf_base.h" > > -static inline u8 ifc_ioread8(u8 __iomem *addr) > -{ > - return ioread8(addr); > -} > -static inline u16 ifc_ioread16 (__le16 __iomem *addr) > -{ > - return ioread16(addr); > -} > - > -static inline u32 ifc_ioread32(__le32 __iomem *addr) > -{ > - return ioread32(addr); > -} > - > -static inline void ifc_iowrite8(u8 value, u8 __iomem *addr) > -{ > - iowrite8(value, addr); > -} > - > -static inline void ifc_iowrite16(u16 value, __le16 __iomem *addr) > -{ > - iowrite16(value, addr); > -} > - > -static inline void ifc_iowrite32(u32 value, __le32 __iomem *addr) > -{ > - iowrite32(value, addr); > -} > - > -static void ifc_iowrite64_twopart(u64 val, > - __le32 __iomem *lo, __le32 __iomem *hi) > -{ > - ifc_iowrite32((u32)val, lo); > - ifc_iowrite32(val >> 32, hi); > -} > - > struct ifcvf_adapter *vf_to_adapter(struct ifcvf_hw *hw) > { > return container_of(hw, struct ifcvf_adapter, vf); > diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h b/drivers/vdpa/ifcvf/ifcvf_base.h > index c486873f370a..949b4fb9d554 100644 > --- a/drivers/vdpa/ifcvf/ifcvf_base.h > +++ b/drivers/vdpa/ifcvf/ifcvf_base.h > @@ -42,6 +42,43 @@ > #define ifcvf_private_to_vf(adapter) \ > (&((struct ifcvf_adapter *)adapter)->vf) > > +static inline u8 ifc_ioread8(u8 __iomem *addr) > +{ > + return ioread8(addr); > +} > + > +static inline u16 ifc_ioread16(__le16 __iomem *addr) > +{ > + return ioread16(addr); > +} > + > +static inline u32 ifc_ioread32(__le32 __iomem *addr) > +{ > + return ioread32(addr); > +} > + > +static inline void ifc_iowrite8(u8 value, u8 __iomem *addr) > +{ > + iowrite8(value, addr); > +} > + > +static inline void ifc_iowrite16(u16 value, __le16 __iomem *addr) > +{ > + iowrite16(value, addr); > +} > + > +static inline void ifc_iowrite32(u32 value, __le32 __iomem *addr) > +{ > + iowrite32(value, addr); > +} > + > +static inline void ifc_iowrite64_twopart(u64 val, > + __le32 __iomem *lo, __le32 __iomem *hi) > +{ > + ifc_iowrite32((u32)val, lo); > + ifc_iowrite32(val >> 32, hi); > +} > + > struct vring_info { > u64 desc; > u64 avail;