search for: ifcvf_start_datapath

Displaying 11 results from an estimated 11 matches for "ifcvf_start_datapath".

2023 Mar 31
1
[PATCH 3/5] retire ifcvf_start_datapath and ifcvf_add_status
Rather than former lazy-initialization mechanism, now the virtqueue operations and driver_features related ops access the virtio registers directly to take immediate actions. So ifcvf_start_datapath() should retire. ifcvf_add_status() is retierd because we should not change device status by a vendor driver's decision, this driver should only set device status which is from virito drivers upon vdpa_ops.set_status() Signed-off-by: Zhu Lingshan <lingshan.zhu at intel.com> --- drivers...
2020 May 12
1
[PATCH] ifcvf: move IRQ request/free to status change handlers
...get this. >> >> >> >>> + >>> +??????????? return ret; >>> +??????? } >>> + >>> +??????? vf->vring[i].irq = irq; >>> +??? } >>> + >>> +??? return 0; >>> +} >>> + >>> ? static int ifcvf_start_datapath(void *private) >>> ? { >>> ????? struct ifcvf_hw *vf = ifcvf_private_to_vf(private); >>> @@ -118,9 +172,12 @@ static void ifcvf_vdpa_set_status(struct >>> vdpa_device *vdpa_dev, u8 status) >>> ? { >>> ????? struct ifcvf_adapter *adapter; >&g...
2023 Mar 31
7
[PATCH 0/5] vDPA/ifcvf: implement immediate initialization mechanism
...mer store-load process, the virtio operations like vq ops would take immediate actions by access the virtio registers. This series also implement irq synchronization in the reset routine Zhu Lingshan (5): virt queue ops take immediate actions get_driver_features from virito registers retire ifcvf_start_datapath and ifcvf_add_status synchronize irqs in the reset routine a vendor driver should not set _CONFIG_S_FAILED drivers/vdpa/ifcvf/ifcvf_base.c | 162 +++++++++++++++++++------------- drivers/vdpa/ifcvf/ifcvf_base.h | 16 ++-- drivers/vdpa/ifcvf/ifcvf_main.c | 97 ++++--------------- 3 files cha...
2023 May 08
6
[PATCH V2 0/5] vDPA/ifcvf: implement immediate initialization mechanism
...n the reset routine Changes from V1: 1)pull device status in devce_reset (Jason) 2)simplify the procedure which sycn irqs (Jason) 3)fix typos(Michael) Zhu Lingshan (5): vDPA/ifcvf: virt queue ops take immediate actions vDPA/ifcvf: get_driver_features from virtio registers vDPA/ifcvf: retire ifcvf_start_datapath and ifcvf_add_status vDPA/ifcvf: synchronize irqs in the reset routine vDPA/ifcvf: a vendor driver should not set _CONFIG_S_FAILED drivers/vdpa/ifcvf/ifcvf_base.c | 146 ++++++++++++++++++-------------- drivers/vdpa/ifcvf/ifcvf_base.h | 17 ++-- drivers/vdpa/ifcvf/ifcvf_main.c | 98 ++++----...
2020 May 13
0
[PATCH V2] ifcvf: move IRQ request/free to status change handlers
...ring[i]); > + if (ret) { > + IFCVF_ERR(pdev, > + "Failed to request irq for vq %d\n", i); > + ifcvf_free_irq(adapter, i); > + > + return ret; > + } > + > + vf->vring[i].irq = irq; > + } > + > + return 0; > +} > + > static int ifcvf_start_datapath(void *private) > { > struct ifcvf_hw *vf = ifcvf_private_to_vf(private); > @@ -118,17 +172,34 @@ static void ifcvf_vdpa_set_status(struct vdpa_device *vdpa_dev, u8 status) > { > struct ifcvf_adapter *adapter; > struct ifcvf_hw *vf; > + u8 status_old; > + int ret...
2020 May 11
0
[PATCH] ifcvf: move IRQ request/free to status change handlers
...ifcvf_free_irq(adapter, i); I'm not sure this unwind is correct. It looks like we should loop and call devm_free_irq() for virtqueue [0, i); > + > + return ret; > + } > + > + vf->vring[i].irq = irq; > + } > + > + return 0; > +} > + > static int ifcvf_start_datapath(void *private) > { > struct ifcvf_hw *vf = ifcvf_private_to_vf(private); > @@ -118,9 +172,12 @@ static void ifcvf_vdpa_set_status(struct vdpa_device *vdpa_dev, u8 status) > { > struct ifcvf_adapter *adapter; > struct ifcvf_hw *vf; > + u8 status_old; > + int ret;...
2019 Oct 21
0
[RFC 2/2] vhost: IFC VF vdpa layer
...v_device *mdev) >>> +{ >>> +??? return IFCVF_VENDOR_ID; >>> +} >>> + >>> +static u16 ifcvf_mdev_get_vq_align(struct mdev_device *mdev) >>> +{ >>> +??? return IFCVF_QUEUE_ALIGNMENT; >>> +} >>> + >>> +static int ifcvf_start_datapath(void *private) >>> +{ >>> +??? int i, ret; >>> +??? struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(private); >>> + >>> +??? for (i = 0; i < (IFCVF_MAX_QUEUE_PAIRS * 2); i++) { >>> +??????? if (!vf->vring[i].ready) >>> +??????????? break;...
2020 Apr 02
0
[PATCH v2 -next] vdpa: remove unused variables 'ifcvf' and 'ifcvf_lm'
...t;msix_config); diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c index 8d54dc5b08d2..28d9e5de5675 100644 --- a/drivers/vdpa/ifcvf/ifcvf_main.c +++ b/drivers/vdpa/ifcvf/ifcvf_main.c @@ -31,11 +31,9 @@ static irqreturn_t ifcvf_intr_handler(int irq, void *arg) static int ifcvf_start_datapath(void *private) { struct ifcvf_hw *vf = ifcvf_private_to_vf(private); - struct ifcvf_adapter *ifcvf; u8 status; int ret; - ifcvf = vf_to_adapter(vf); vf->nr_vring = IFCVF_MAX_QUEUE_PAIRS * 2; ret = ifcvf_start_hw(vf); if (ret < 0) { -- 2.17.1
2019 Oct 16
0
[RFC 2/2] vhost: IFC VF vdpa layer
...n IFCVF_DEVICE_ID; > +} > + > +static u32 ifcvf_mdev_get_vendor_id(struct mdev_device *mdev) > +{ > + return IFCVF_VENDOR_ID; > +} > + > +static u16 ifcvf_mdev_get_vq_align(struct mdev_device *mdev) > +{ > + return IFCVF_QUEUE_ALIGNMENT; > +} > + > +static int ifcvf_start_datapath(void *private) > +{ > + int i, ret; > + struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(private); > + > + for (i = 0; i < (IFCVF_MAX_QUEUE_PAIRS * 2); i++) { > + if (!vf->vring[i].ready) > + break; Looks like error should be returned here? > + > + if (!vf->vring[...
2019 Nov 06
0
[PATCH 2/2] IFC VDPA layer
...ifcvf_mdev_get_vq_align(struct mdev_device *mdev) > +{ > + return IFCVF_QUEUE_ALIGNMENT; > +} > + > +static u64 ifcvf_mdev_get_mdev_features(struct mdev_device *mdev) > +{ > + return VIRTIO_MDEV_F_VERSION_1; > +} We've decide to remove this API. > + > +static int ifcvf_start_datapath(void *private) > +{ > + struct ifcvf_hw *vf = IFC_PRIVATE_TO_VF(private); > + struct ifcvf_adapter *ifcvf; > + int i, ret = 0; > + > + ifcvf = container_of(vf, struct ifcvf_adapter, vf); > + > + for (i = 0; i < IFCVF_MAX_QUEUE_PAIRS * 2; i++) { > + if (!vf->vring[i...
2023 Jul 03
1
[GIT PULL] virtio: features, fixes, cleanups
...e free unused buffs virtio_bt: call scheduler when we free unused buffs vhost: Make parameter name match of vhost_get_vq_desc() Zhu Lingshan (8): vDPA/ifcvf: virt queue ops take immediate actions vDPA/ifcvf: get_driver_features from virtio registers vDPA/ifcvf: retire ifcvf_start_datapath and ifcvf_add_status vDPA/ifcvf: synchronize irqs in the reset routine vDPA/ifcvf: a vendor driver should not set _CONFIG_S_FAILED vDPA/ifcvf: dynamic allocate vq data stores vDPA/ifcvf: detect and report max allowed vq size vDPA/ifcvf: implement new accessors for vq_s...