Message ID | 20220203072735.189716-2-lingshan.zhu@intel.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | vDPA/ifcvf: implement shared IRQ feature | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
在 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@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;
On 2/14/2022 2:15 PM, Jason Wang wrote: > > 在 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@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 sure, can do. 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; >
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;
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@intel.com> --- drivers/vdpa/ifcvf/ifcvf_base.c | 36 -------------------------------- drivers/vdpa/ifcvf/ifcvf_base.h | 37 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 36 deletions(-)