* [dpdk-kmods] windows/netuio: fix bar parsing @ 2022-08-02 19:10 Pallavi Kadam 2022-08-06 21:01 ` Dmitry Kozlyuk 2022-08-11 22:17 ` [dpdk-kmods v2] windows/netuio: fix BAR parsing Pallavi Kadam 0 siblings, 2 replies; 10+ messages in thread From: Pallavi Kadam @ 2022-08-02 19:10 UTC (permalink / raw) To: dev Cc: thomas, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, roretzla, qiao.liu, pallavi.kadam For certain PCIe devices, BAR values are not continuous. This patch maps all the BARs and avoids skipping the next BAR addresses. Fixes: e28aabd88279 ("windows/netuio: introduce NetUIO kernel driver") Cc: navasile@microsoft.com Signed-off-by: Qiao Liu <qiao.liu@intel.com> Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com> --- windows/netuio/netuio_dev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/windows/netuio/netuio_dev.c b/windows/netuio/netuio_dev.c index b2deb10..e2cac3e 100644 --- a/windows/netuio/netuio_dev.c +++ b/windows/netuio/netuio_dev.c @@ -172,6 +172,7 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R ULONG next_descriptor = 0; ULONG curr_bar = 0; ULONG prev_bar = 0; + BOOLEAN bar_done = FALSE; /* * ResourcesTranslated report MMIO BARs in the correct order, but their @@ -197,7 +198,8 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R for (INT bar_index = 0; bar_index < PCI_MAX_BAR; bar_index++) { prev_bar = curr_bar; curr_bar = pci_config.u.type0.BaseAddresses[bar_index]; - if (curr_bar == 0 || (prev_bar & PCI_TYPE_64BIT)) { + if (curr_bar == 0 || ((prev_bar & PCI_TYPE_64BIT) && (bar_done))) { + bar_done = FALSE; continue; } @@ -219,6 +221,7 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R ctx->bar[bar_index].virt_addr = MmMapIoSpace(descriptor->u.Memory.Start, descriptor->u.Memory.Length, MmNonCached); + bar_done = TRUE; if (ctx->bar[bar_index].virt_addr == NULL) { status = STATUS_INSUFFICIENT_RESOURCES; goto end; -- 2.31.1.windows.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-kmods] windows/netuio: fix bar parsing 2022-08-02 19:10 [dpdk-kmods] windows/netuio: fix bar parsing Pallavi Kadam @ 2022-08-06 21:01 ` Dmitry Kozlyuk 2022-08-08 20:40 ` Kadam, Pallavi 2022-08-09 0:33 ` Kadam, Pallavi 2022-08-11 22:17 ` [dpdk-kmods v2] windows/netuio: fix BAR parsing Pallavi Kadam 1 sibling, 2 replies; 10+ messages in thread From: Dmitry Kozlyuk @ 2022-08-06 21:01 UTC (permalink / raw) To: Pallavi Kadam Cc: dev, thomas, ranjit.menon, Narcisa.Vasile, roretzla, qiao.liu 2022-08-02 12:10 (UTC-0700), Pallavi Kadam: > For certain PCIe devices, BAR values are not continuous. > This patch maps all the BARs and avoids skipping the next BAR addresses. > > Fixes: e28aabd88279 ("windows/netuio: introduce NetUIO kernel driver") > Cc: navasile@microsoft.com > > Signed-off-by: Qiao Liu <qiao.liu@intel.com> > Signed-off-by: Pallavi Kadam <pallavi.kadam@intel.com> > --- > windows/netuio/netuio_dev.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/windows/netuio/netuio_dev.c b/windows/netuio/netuio_dev.c > index b2deb10..e2cac3e 100644 > --- a/windows/netuio/netuio_dev.c > +++ b/windows/netuio/netuio_dev.c > @@ -172,6 +172,7 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R > ULONG next_descriptor = 0; > ULONG curr_bar = 0; > ULONG prev_bar = 0; > + BOOLEAN bar_done = FALSE; > > /* > * ResourcesTranslated report MMIO BARs in the correct order, but their > @@ -197,7 +198,8 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R > for (INT bar_index = 0; bar_index < PCI_MAX_BAR; bar_index++) { > prev_bar = curr_bar; > curr_bar = pci_config.u.type0.BaseAddresses[bar_index]; > - if (curr_bar == 0 || (prev_bar & PCI_TYPE_64BIT)) { > + if (curr_bar == 0 || ((prev_bar & PCI_TYPE_64BIT) && (bar_done))) { > + bar_done = FALSE; > continue; > } > > @@ -219,6 +221,7 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R > ctx->bar[bar_index].virt_addr = MmMapIoSpace(descriptor->u.Memory.Start, > descriptor->u.Memory.Length, > MmNonCached); > + bar_done = TRUE; > if (ctx->bar[bar_index].virt_addr == NULL) { > status = STATUS_INSUFFICIENT_RESOURCES; > goto end; Hi Pallavi, In the first place, it was wrong to always test `prev_bar & PCI_TYPE_64BIT` because only the first BAR slot of a 64-bit BAR contains flags. The current code has a state to track (curr_bar, prev_bar), and the fix is complicating it even more without solving the root cause. I suggest a simpler fix (not tested!) that eliminates both the incorrectness and the state to maintain: diff --git a/windows/netuio/netuio_dev.c b/windows/netuio/netuio_dev.c index d4662b6..8761d31 100644 --- a/windows/netuio/netuio_dev.c +++ b/windows/netuio/netuio_dev.c @@ -273,8 +273,6 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R PCM_PARTIAL_RESOURCE_DESCRIPTOR descriptor; ULONG next_descriptor = 0; - ULONG curr_bar = 0; - ULONG prev_bar = 0; /* * ResourcesTranslated report MMIO BARs in the correct order, but their @@ -298,9 +296,9 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R * searching for the next MMIO resource each time. */ for (INT bar_index = 0; bar_index < PCI_MAX_BAR; bar_index++) { - prev_bar = curr_bar; - curr_bar = pci_config.u.type0.BaseAddresses[bar_index]; - if (curr_bar == 0 || (prev_bar & PCI_TYPE_64BIT)) { + ULONG bar_value = pci_config.u.type0.BaseAddresses[bar_index]; + + if (bar_value == 0) { continue; } @@ -339,6 +337,11 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R } ctx->dpdk_hw[bar_index].mem.size = ctx->bar[bar_index].size; + + // Skip the next BAR slot used by the current 64-bit address. + if (bar_value & PCI_TYPE_64BIT) { + bar_index++; + } } // for bar_index end_of_loop: ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-kmods] windows/netuio: fix bar parsing 2022-08-06 21:01 ` Dmitry Kozlyuk @ 2022-08-08 20:40 ` Kadam, Pallavi 2022-08-09 0:33 ` Kadam, Pallavi 1 sibling, 0 replies; 10+ messages in thread From: Kadam, Pallavi @ 2022-08-08 20:40 UTC (permalink / raw) To: Dmitry Kozlyuk Cc: dev, thomas, ranjit.menon, Narcisa.Vasile, roretzla, qiao.liu [-- Attachment #1: Type: text/plain, Size: 4057 bytes --] Hi Dmitry, On 8/6/2022 2:01 PM, Dmitry Kozlyuk wrote: > 2022-08-02 12:10 (UTC-0700), Pallavi Kadam: >> For certain PCIe devices, BAR values are not continuous. >> This patch maps all the BARs and avoids skipping the next BAR addresses. >> >> Fixes: e28aabd88279 ("windows/netuio: introduce NetUIO kernel driver") >> Cc:navasile@microsoft.com >> >> Signed-off-by: Qiao Liu<qiao.liu@intel.com> >> Signed-off-by: Pallavi Kadam<pallavi.kadam@intel.com> >> --- >> windows/netuio/netuio_dev.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/windows/netuio/netuio_dev.c b/windows/netuio/netuio_dev.c >> index b2deb10..e2cac3e 100644 >> --- a/windows/netuio/netuio_dev.c >> +++ b/windows/netuio/netuio_dev.c >> @@ -172,6 +172,7 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R >> ULONG next_descriptor = 0; >> ULONG curr_bar = 0; >> ULONG prev_bar = 0; >> + BOOLEAN bar_done = FALSE; >> >> /* >> * ResourcesTranslated report MMIO BARs in the correct order, but their >> @@ -197,7 +198,8 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R >> for (INT bar_index = 0; bar_index < PCI_MAX_BAR; bar_index++) { >> prev_bar = curr_bar; >> curr_bar = pci_config.u.type0.BaseAddresses[bar_index]; >> - if (curr_bar == 0 || (prev_bar & PCI_TYPE_64BIT)) { >> + if (curr_bar == 0 || ((prev_bar & PCI_TYPE_64BIT) && (bar_done))) { >> + bar_done = FALSE; >> continue; >> } >> >> @@ -219,6 +221,7 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R >> ctx->bar[bar_index].virt_addr = MmMapIoSpace(descriptor->u.Memory.Start, >> descriptor->u.Memory.Length, >> MmNonCached); >> + bar_done = TRUE; >> if (ctx->bar[bar_index].virt_addr == NULL) { >> status = STATUS_INSUFFICIENT_RESOURCES; >> goto end; > Hi Pallavi, > > In the first place, it was wrong to always test `prev_bar & PCI_TYPE_64BIT` > because only the first BAR slot of a 64-bit BAR contains flags. > The current code has a state to track (curr_bar, prev_bar), > and the fix is complicating it even more without solving the root cause. > I suggest a simpler fix (not tested!) > that eliminates both the incorrectness and the state to maintain: Thank you for these changes. Will test the patch and let you know. > > diff --git a/windows/netuio/netuio_dev.c b/windows/netuio/netuio_dev.c > index d4662b6..8761d31 100644 > --- a/windows/netuio/netuio_dev.c > +++ b/windows/netuio/netuio_dev.c > @@ -273,8 +273,6 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST > Resources, WDFCMRESLIST R > > PCM_PARTIAL_RESOURCE_DESCRIPTOR descriptor; > ULONG next_descriptor = 0; > - ULONG curr_bar = 0; > - ULONG prev_bar = 0; > > /* > * ResourcesTranslated report MMIO BARs in the correct order, but their > @@ -298,9 +296,9 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST > Resources, WDFCMRESLIST R > * searching for the next MMIO resource each time. > */ > for (INT bar_index = 0; bar_index < PCI_MAX_BAR; bar_index++) { > - prev_bar = curr_bar; > - curr_bar = pci_config.u.type0.BaseAddresses[bar_index]; > - if (curr_bar == 0 || (prev_bar & PCI_TYPE_64BIT)) { > + ULONG bar_value = pci_config.u.type0.BaseAddresses[bar_index]; > + > + if (bar_value == 0) { > continue; > } > > @@ -339,6 +337,11 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST > Resources, WDFCMRESLIST R > } > > ctx->dpdk_hw[bar_index].mem.size = ctx->bar[bar_index].size; > + > + // Skip the next BAR slot used by the current 64-bit address. > + if (bar_value & PCI_TYPE_64BIT) { > + bar_index++; > + } > } // for bar_index > end_of_loop: [-- Attachment #2: Type: text/html, Size: 4734 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-kmods] windows/netuio: fix bar parsing 2022-08-06 21:01 ` Dmitry Kozlyuk 2022-08-08 20:40 ` Kadam, Pallavi @ 2022-08-09 0:33 ` Kadam, Pallavi 2022-08-09 9:15 ` Dmitry Kozlyuk 1 sibling, 1 reply; 10+ messages in thread From: Kadam, Pallavi @ 2022-08-09 0:33 UTC (permalink / raw) To: Dmitry Kozlyuk Cc: dev, thomas, ranjit.menon, Narcisa.Vasile, roretzla, qiao.liu [-- Attachment #1: Type: text/plain, Size: 4156 bytes --] Hi Dmitry, On 8/6/2022 2:01 PM, Dmitry Kozlyuk wrote: > 2022-08-02 12:10 (UTC-0700), Pallavi Kadam: >> For certain PCIe devices, BAR values are not continuous. >> This patch maps all the BARs and avoids skipping the next BAR addresses. >> >> Fixes: e28aabd88279 ("windows/netuio: introduce NetUIO kernel driver") >> Cc:navasile@microsoft.com >> >> Signed-off-by: Qiao Liu<qiao.liu@intel.com> >> Signed-off-by: Pallavi Kadam<pallavi.kadam@intel.com> >> --- >> windows/netuio/netuio_dev.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/windows/netuio/netuio_dev.c b/windows/netuio/netuio_dev.c >> index b2deb10..e2cac3e 100644 >> --- a/windows/netuio/netuio_dev.c >> +++ b/windows/netuio/netuio_dev.c >> @@ -172,6 +172,7 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R >> ULONG next_descriptor = 0; >> ULONG curr_bar = 0; >> ULONG prev_bar = 0; >> + BOOLEAN bar_done = FALSE; >> >> /* >> * ResourcesTranslated report MMIO BARs in the correct order, but their >> @@ -197,7 +198,8 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R >> for (INT bar_index = 0; bar_index < PCI_MAX_BAR; bar_index++) { >> prev_bar = curr_bar; >> curr_bar = pci_config.u.type0.BaseAddresses[bar_index]; >> - if (curr_bar == 0 || (prev_bar & PCI_TYPE_64BIT)) { >> + if (curr_bar == 0 || ((prev_bar & PCI_TYPE_64BIT) && (bar_done))) { >> + bar_done = FALSE; >> continue; >> } >> >> @@ -219,6 +221,7 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R >> ctx->bar[bar_index].virt_addr = MmMapIoSpace(descriptor->u.Memory.Start, >> descriptor->u.Memory.Length, >> MmNonCached); >> + bar_done = TRUE; >> if (ctx->bar[bar_index].virt_addr == NULL) { >> status = STATUS_INSUFFICIENT_RESOURCES; >> goto end; > Hi Pallavi, > > In the first place, it was wrong to always test `prev_bar & PCI_TYPE_64BIT` > because only the first BAR slot of a 64-bit BAR contains flags. > The current code has a state to track (curr_bar, prev_bar), > and the fix is complicating it even more without solving the root cause. > I suggest a simpler fix (not tested!) > that eliminates both the incorrectness and the state to maintain: Thank you. This change works for us. Please let me know if you would like to submit this change as a new patch or if I should include it as a v2 of this same patch. > > diff --git a/windows/netuio/netuio_dev.c b/windows/netuio/netuio_dev.c > index d4662b6..8761d31 100644 > --- a/windows/netuio/netuio_dev.c > +++ b/windows/netuio/netuio_dev.c > @@ -273,8 +273,6 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST > Resources, WDFCMRESLIST R > > PCM_PARTIAL_RESOURCE_DESCRIPTOR descriptor; > ULONG next_descriptor = 0; > - ULONG curr_bar = 0; > - ULONG prev_bar = 0; > > /* > * ResourcesTranslated report MMIO BARs in the correct order, but their > @@ -298,9 +296,9 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST > Resources, WDFCMRESLIST R > * searching for the next MMIO resource each time. > */ > for (INT bar_index = 0; bar_index < PCI_MAX_BAR; bar_index++) { > - prev_bar = curr_bar; > - curr_bar = pci_config.u.type0.BaseAddresses[bar_index]; > - if (curr_bar == 0 || (prev_bar & PCI_TYPE_64BIT)) { > + ULONG bar_value = pci_config.u.type0.BaseAddresses[bar_index]; > + > + if (bar_value == 0) { > continue; > } > > @@ -339,6 +337,11 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST > Resources, WDFCMRESLIST R > } > > ctx->dpdk_hw[bar_index].mem.size = ctx->bar[bar_index].size; > + > + // Skip the next BAR slot used by the current 64-bit address. > + if (bar_value & PCI_TYPE_64BIT) { > + bar_index++; > + } > } // for bar_index > end_of_loop: [-- Attachment #2: Type: text/html, Size: 4842 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-kmods] windows/netuio: fix bar parsing 2022-08-09 0:33 ` Kadam, Pallavi @ 2022-08-09 9:15 ` Dmitry Kozlyuk 2022-08-11 22:21 ` Kadam, Pallavi 0 siblings, 1 reply; 10+ messages in thread From: Dmitry Kozlyuk @ 2022-08-09 9:15 UTC (permalink / raw) To: Kadam, Pallavi Cc: dev, thomas, ranjit.menon, Narcisa.Vasile, roretzla, qiao.liu 2022-08-08 17:33 (UTC-0700), Kadam, Pallavi: [...] > > Hi Pallavi, > > > > In the first place, it was wrong to always test `prev_bar & PCI_TYPE_64BIT` > > because only the first BAR slot of a 64-bit BAR contains flags. > > The current code has a state to track (curr_bar, prev_bar), > > and the fix is complicating it even more without solving the root cause. > > I suggest a simpler fix (not tested!) > > that eliminates both the incorrectness and the state to maintain: > > Thank you. This change works for us. > > Please let me know if you would like to submit this change as a new patch or if I should include it as a v2 of this same patch. Please send v2. You can include my Signed-off-by. You might also update the commit message and capitalize "BAR" in the title. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-kmods] windows/netuio: fix bar parsing 2022-08-09 9:15 ` Dmitry Kozlyuk @ 2022-08-11 22:21 ` Kadam, Pallavi 0 siblings, 0 replies; 10+ messages in thread From: Kadam, Pallavi @ 2022-08-11 22:21 UTC (permalink / raw) To: Dmitry Kozlyuk Cc: dev, thomas, ranjit.menon, Narcisa.Vasile, roretzla, qiao.liu [-- Attachment #1: Type: text/plain, Size: 857 bytes --] On 8/9/2022 2:15 AM, Dmitry Kozlyuk wrote: > 2022-08-08 17:33 (UTC-0700), Kadam, Pallavi: > [...] >>> Hi Pallavi, >>> >>> In the first place, it was wrong to always test `prev_bar & PCI_TYPE_64BIT` >>> because only the first BAR slot of a 64-bit BAR contains flags. >>> The current code has a state to track (curr_bar, prev_bar), >>> and the fix is complicating it even more without solving the root cause. >>> I suggest a simpler fix (not tested!) >>> that eliminates both the incorrectness and the state to maintain: >> Thank you. This change works for us. >> >> Please let me know if you would like to submit this change as a new patch or if I should include it as a v2 of this same patch. > Please send v2. > You can include my Signed-off-by. > You might also update the commit message and capitalize "BAR" in the title. Thanks, Dmitry. Have sent v2. [-- Attachment #2: Type: text/html, Size: 1568 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-kmods v2] windows/netuio: fix BAR parsing 2022-08-02 19:10 [dpdk-kmods] windows/netuio: fix bar parsing Pallavi Kadam 2022-08-06 21:01 ` Dmitry Kozlyuk @ 2022-08-11 22:17 ` Pallavi Kadam 2022-08-18 2:51 ` Liu, Qiao 2022-08-19 18:13 ` Menon, Ranjit 1 sibling, 2 replies; 10+ messages in thread From: Pallavi Kadam @ 2022-08-11 22:17 UTC (permalink / raw) To: dev Cc: thomas, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, roretzla, qiao.liu, pallavi.kadam Current code was always checking the 'prev_bar & PCI_TYPE_64BIT' though only the first BAR slot of a 64-bit BAR contains flags. Also for certain PCIe devices, BAR values were not continuous. This patch fixes this incorrectness and maps the BAR addresses correctly. Reported-by: Qiao Liu <qiao.liu@intel.com> Suggested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Tested-by: Pallavi Kadam <pallavi.kadam@intel.com> --- windows/netuio/netuio_dev.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/windows/netuio/netuio_dev.c b/windows/netuio/netuio_dev.c index b2deb10..073fac8 100644 --- a/windows/netuio/netuio_dev.c +++ b/windows/netuio/netuio_dev.c @@ -170,8 +170,6 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R PCM_PARTIAL_RESOURCE_DESCRIPTOR descriptor; ULONG next_descriptor = 0; - ULONG curr_bar = 0; - ULONG prev_bar = 0; /* * ResourcesTranslated report MMIO BARs in the correct order, but their @@ -195,9 +193,9 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R * searching for the next MMIO resource each time. */ for (INT bar_index = 0; bar_index < PCI_MAX_BAR; bar_index++) { - prev_bar = curr_bar; - curr_bar = pci_config.u.type0.BaseAddresses[bar_index]; - if (curr_bar == 0 || (prev_bar & PCI_TYPE_64BIT)) { + ULONG bar_value = pci_config.u.type0.BaseAddresses[bar_index]; + + if (bar_value == 0) { continue; } @@ -236,6 +234,11 @@ netuio_map_hw_resources(WDFDEVICE Device, WDFCMRESLIST Resources, WDFCMRESLIST R } ctx->dpdk_hw[bar_index].mem.size = ctx->bar[bar_index].size; + + // Skip the next BAR slot used by the current 64-bit address. + if (bar_value & PCI_TYPE_64BIT) { + bar_index++; + } } // for bar_index status = STATUS_SUCCESS; -- 2.31.1.windows.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-kmods v2] windows/netuio: fix BAR parsing 2022-08-11 22:17 ` [dpdk-kmods v2] windows/netuio: fix BAR parsing Pallavi Kadam @ 2022-08-18 2:51 ` Liu, Qiao 2022-08-19 18:13 ` Menon, Ranjit 1 sibling, 0 replies; 10+ messages in thread From: Liu, Qiao @ 2022-08-18 2:51 UTC (permalink / raw) To: Pallavi Kadam, dev Cc: thomas, ranjit.menon, dmitry.kozliuk, Narcisa.Vasile, roretzla 在 2022/8/12 6:17, Pallavi Kadam 写道: > Current code was always checking the 'prev_bar & PCI_TYPE_64BIT' > though only the first BAR slot of a 64-bit BAR contains flags. > Also for certain PCIe devices, BAR values were not continuous. > This patch fixes this incorrectness and maps the BAR addresses > correctly. > > Reported-by: Qiao Liu <qiao.liu@intel.com> > Suggested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> > Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> > Tested-by: Pallavi Kadam <pallavi.kadam@intel.com> > --- Acked-by: Qiao Liu <qiao.liu@intel.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-kmods v2] windows/netuio: fix BAR parsing 2022-08-11 22:17 ` [dpdk-kmods v2] windows/netuio: fix BAR parsing Pallavi Kadam 2022-08-18 2:51 ` Liu, Qiao @ 2022-08-19 18:13 ` Menon, Ranjit 2022-08-29 8:04 ` Thomas Monjalon 1 sibling, 1 reply; 10+ messages in thread From: Menon, Ranjit @ 2022-08-19 18:13 UTC (permalink / raw) To: Pallavi Kadam, dev Cc: thomas, dmitry.kozliuk, Narcisa.Vasile, roretzla, qiao.liu [-- Attachment #1: Type: text/plain, Size: 690 bytes --] On 8/11/2022 3:17 PM, Pallavi Kadam wrote: > Current code was always checking the 'prev_bar & PCI_TYPE_64BIT' > though only the first BAR slot of a 64-bit BAR contains flags. > Also for certain PCIe devices, BAR values were not continuous. > This patch fixes this incorrectness and maps the BAR addresses > correctly. > > Reported-by: Qiao Liu<qiao.liu@intel.com> > Suggested-by: Dmitry Kozlyuk<dmitry.kozliuk@gmail.com> > Signed-off-by: Dmitry Kozlyuk<dmitry.kozliuk@gmail.com> > Tested-by: Pallavi Kadam<pallavi.kadam@intel.com> > --- > windows/netuio/netuio_dev.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > Acked-by: Ranjit Menon <ranjit.menon@intel.com> [-- Attachment #2: Type: text/html, Size: 36862 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-kmods v2] windows/netuio: fix BAR parsing 2022-08-19 18:13 ` Menon, Ranjit @ 2022-08-29 8:04 ` Thomas Monjalon 0 siblings, 0 replies; 10+ messages in thread From: Thomas Monjalon @ 2022-08-29 8:04 UTC (permalink / raw) To: Pallavi Kadam, dmitry.kozliuk Cc: dev, Narcisa.Vasile, roretzla, qiao.liu, Menon, Ranjit 19/08/2022 20:13, Menon, Ranjit: > On 8/11/2022 3:17 PM, Pallavi Kadam wrote: > > Current code was always checking the 'prev_bar & PCI_TYPE_64BIT' > > though only the first BAR slot of a 64-bit BAR contains flags. > > Also for certain PCIe devices, BAR values were not continuous. > > This patch fixes this incorrectness and maps the BAR addresses > > correctly. > > > > Reported-by: Qiao Liu<qiao.liu@intel.com> > > Suggested-by: Dmitry Kozlyuk<dmitry.kozliuk@gmail.com> > > Signed-off-by: Dmitry Kozlyuk<dmitry.kozliuk@gmail.com> > > Tested-by: Pallavi Kadam<pallavi.kadam@intel.com> > > --- > > windows/netuio/netuio_dev.c | 13 ++++++++----- > > 1 file changed, 8 insertions(+), 5 deletions(-) > > > Acked-by: Ranjit Menon <ranjit.menon@intel.com> Applied, thanks. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-08-29 8:04 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-08-02 19:10 [dpdk-kmods] windows/netuio: fix bar parsing Pallavi Kadam 2022-08-06 21:01 ` Dmitry Kozlyuk 2022-08-08 20:40 ` Kadam, Pallavi 2022-08-09 0:33 ` Kadam, Pallavi 2022-08-09 9:15 ` Dmitry Kozlyuk 2022-08-11 22:21 ` Kadam, Pallavi 2022-08-11 22:17 ` [dpdk-kmods v2] windows/netuio: fix BAR parsing Pallavi Kadam 2022-08-18 2:51 ` Liu, Qiao 2022-08-19 18:13 ` Menon, Ranjit 2022-08-29 8:04 ` Thomas Monjalon
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).