patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] [PATCH v2 1/2] baseband/fpga_lte_fec: fix probing fatal failure
       [not found] <1571750177-387063-1-git-send-email-nicolas.chautru@intel.com>
@ 2019-10-22 13:16 ` Nicolas Chautru
  2019-10-22 13:16 ` [dpdk-stable] [PATCH v2 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register Nicolas Chautru
  1 sibling, 0 replies; 2+ messages in thread
From: Nicolas Chautru @ 2019-10-22 13:16 UTC (permalink / raw)
  To: akhil.goyal, dev; +Cc: ferruh.yigit, thomas, Nic Chautru, stable

From: Nic Chautru <nicolas.chautru@intel.com>

A change to PCI mapping assumption was missed earlier, this causes
probing to fail with the fpga_lte_fec PMD when checking for name
of the rte_driver (not set yet) instead of the rte_pci_driver.

Fixes: 391797f04208 ("drivers/bus: move driver assignment to end of probing")
Cc: thomas@monjalon.net
Cc: stable@dpdk.org

Signed-off-by: Nic Chautru <nicolas.chautru@intel.com>
---
 drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
index 7e05b94..2fc7f11 100644
--- a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
+++ b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
@@ -2307,7 +2307,7 @@ struct __rte_cache_aligned fpga_queue {
 
 /* Initialization Function */
 static void
-fpga_lte_fec_init(struct rte_bbdev *dev)
+fpga_lte_fec_init(struct rte_bbdev *dev, struct rte_pci_driver *drv)
 {
 	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
 
@@ -2318,7 +2318,7 @@ struct __rte_cache_aligned fpga_queue {
 	dev->dequeue_dec_ops = fpga_dequeue_dec;
 
 	((struct fpga_lte_fec_device *) dev->data->dev_private)->pf_device =
-			!strcmp(dev->device->driver->name,
+			!strcmp(drv->driver.name,
 					RTE_STR(FPGA_LTE_FEC_PF_DRIVER_NAME));
 	((struct fpga_lte_fec_device *) dev->data->dev_private)->mmio_base =
 			pci_dev->mem_resource[0].addr;
@@ -2331,7 +2331,7 @@ struct __rte_cache_aligned fpga_queue {
 }
 
 static int
-fpga_lte_fec_probe(struct rte_pci_driver *pci_drv __rte_unused,
+fpga_lte_fec_probe(struct rte_pci_driver *pci_drv,
 	struct rte_pci_device *pci_dev)
 {
 	struct rte_bbdev *bbdev = NULL;
@@ -2368,7 +2368,7 @@ struct __rte_cache_aligned fpga_queue {
 	bbdev->data->socket_id = pci_dev->device.numa_node;
 
 	/* Invoke FEC FPGA device initialization function */
-	fpga_lte_fec_init(bbdev);
+	fpga_lte_fec_init(bbdev, pci_drv);
 
 	rte_bbdev_log_debug("bbdev id = %u [%s]",
 			bbdev->data->dev_id, dev_name);
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [dpdk-stable] [PATCH v2 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register
       [not found] <1571750177-387063-1-git-send-email-nicolas.chautru@intel.com>
  2019-10-22 13:16 ` [dpdk-stable] [PATCH v2 1/2] baseband/fpga_lte_fec: fix probing fatal failure Nicolas Chautru
@ 2019-10-22 13:16 ` Nicolas Chautru
  1 sibling, 0 replies; 2+ messages in thread
From: Nicolas Chautru @ 2019-10-22 13:16 UTC (permalink / raw)
  To: akhil.goyal, dev; +Cc: ferruh.yigit, thomas, Nic Chautru, stable

From: Nic Chautru <nicolas.chautru@intel.com>

Polling of a MMIO register could misreport the actual value
set dynamically in hardware as the variable was not set explicitly
to volatile integer.

Fixes: efd453698c49 ("baseband/fpga_lte_fec: add driver for FEC on FPGA")
Cc: nicolas.chautru@intel.com
Cc: stable@dpdk.org

Signed-off-by: Nic Chautru <nicolas.chautru@intel.com>
---
 drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
index 2fc7f11..8bd10b4 100644
--- a/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
+++ b/drivers/baseband/fpga_lte_fec/fpga_lte_fec.c
@@ -889,7 +889,7 @@ struct __rte_cache_aligned fpga_queue {
 	 * completed. If completion flag is not updated within 1ms it is
 	 * considered as a failure.
 	 */
-	while (!(*((uint8_t *)d->flush_queue_status + q->q_idx) & payload)) {
+	while (!(*((volatile uint8_t *)d->flush_queue_status + q->q_idx) & payload)) {
 		if (counter > timeout) {
 			rte_bbdev_log(ERR, "FPGA Queue Flush failed for queue %d",
 					queue_id);
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-10-22 20:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1571750177-387063-1-git-send-email-nicolas.chautru@intel.com>
2019-10-22 13:16 ` [dpdk-stable] [PATCH v2 1/2] baseband/fpga_lte_fec: fix probing fatal failure Nicolas Chautru
2019-10-22 13:16 ` [dpdk-stable] [PATCH v2 2/2] baseband/fpga_lte_fec: fix to polling of MMIO register Nicolas Chautru

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).