<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, Oct 17, 2026 at 9:49 PM Alexander Goodkind <<a href="mailto:alex@goodkind.io">alex@goodkind.io</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Use memcpy to copy each firmware command word into a local uint32_t<br>
before writing it to the card. Replace the uint32_t pointer reads in<br>
bnxt_hwrm_send_message() with byte access.<br>
<br>
Fixes: 1cd45aeb3270 ("net/bnxt: support Stratus VF device")<br>
Cc: <a href="mailto:stable@dpdk.org" target="_blank">stable@dpdk.org</a><br>
<br>
Signed-off-by: Alexander Goodkind <<a href="mailto:alex@goodkind.io" target="_blank">alex@goodkind.io</a>><br>
---<br>
<br>
VPP could not initialize the interfaces on my PowerEdge XR11 with a<br>
Broadcom BCM57504 card, using SR-IOV virtual functions inside an Ubuntu<br>
LXC container on Proxmox. The debugger showed an empty command header<br>
immediately before the driver wrote it to the card.<br>
<br>
The original pointer reads violate GCC's strict-aliasing rule [1].<br>
The patched driver initialized the interfaces and transferred packets<br>
with DPDK 26.03.0 and VPP 26.06-release. Separate build and software<br>
tests passed against the current Broadcom source.<br>
<br>
[1] <a href="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html" rel="noreferrer" target="_blank">https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html</a><br>
<br>
.mailmap | 1 +<br>
drivers/net/bnxt/bnxt_hwrm.c | 11 +++++++----<br>
2 files changed, 8 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/.mailmap b/.mailmap<br>
index 5d1df79860..3143e642b5 100644<br>
--- a/.mailmap<br>
+++ b/.mailmap<br>
@@ -65,6 +65,7 @@ Alex Zelezniak <<a href="mailto:alexz@att.com" target="_blank">alexz@att.com</a>><br>
Alexander Bechikov <<a href="mailto:asb.tyum@gmail.com" target="_blank">asb.tyum@gmail.com</a>><br>
Alexander Belyakov <<a href="mailto:abelyako@gmail.com" target="_blank">abelyako@gmail.com</a>><br>
Alexander Chernavin <<a href="mailto:achernavin@netgate.com" target="_blank">achernavin@netgate.com</a>><br>
+Alexander Goodkind <<a href="mailto:alex@goodkind.io" target="_blank">alex@goodkind.io</a>><br>
Alexander Guy <<a href="mailto:alexander@andern.org" target="_blank">alexander@andern.org</a>><br>
Alexander Kozyrev <<a href="mailto:akozyrev@nvidia.com" target="_blank">akozyrev@nvidia.com</a>> <<a href="mailto:akozyrev@mellanox.com" target="_blank">akozyrev@mellanox.com</a>><br>
Alexander Matushevsky <<a href="mailto:matua@amazon.com" target="_blank">matua@amazon.com</a>><br>
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c<br>
index ab1521953a..573a33b2de 100644<br>
--- a/drivers/net/bnxt/bnxt_hwrm.c<br>
+++ b/drivers/net/bnxt/bnxt_hwrm.c<br>
@@ -483,7 +483,7 @@ static int bnxt_hwrm_send_message(struct bnxt *bp,<br>
void *msg,<br>
unsigned int i;<br>
struct input *req = msg;<br>
struct output *resp = bp->hwrm_cmd_resp_addr;<br>
- uint32_t *data = msg;<br>
+ const uint8_t *data = msg;<br>
uint8_t *bar;<br>
uint8_t *valid;<br>
uint16_t max_req_len = bp->max_req_len;<br>
@@ -526,7 +526,7 @@ static int bnxt_hwrm_send_message(struct bnxt *bp,<br>
void *msg,<br>
short_input.req_addr =<br>
rte_cpu_to_le_64(bp->hwrm_short_cmd_req_dma_addr);<br>
<br>
- data = (uint32_t *)&short_input;<br>
+ data = (const uint8_t *)&short_input;<br>
msg_len = sizeof(short_input);<br>
<br>
max_req_len = BNXT_HWRM_SHORT_REQ_LEN;<br>
@@ -534,9 +534,12 @@ static int bnxt_hwrm_send_message(struct bnxt<br>
*bp, void *msg,<br>
<br>
/* Write request msg to hwrm channel */<br>
for (i = 0; i < msg_len; i += 4) {<br>
+ uint32_t request_word;<br>
+<br>
bar = (uint8_t *)bp->bar0 + bar_offset + i;<br>
- rte_write32(*data, bar);<br>
- data++;<br>
+ memcpy(&request_word, data, sizeof(request_word));<br>
+ rte_write32(request_word, bar);<br>
+ data += sizeof(request_word);<br>
}<br>
<br>
/* Zero the rest of the request space */<br>
<br>
base-commit: af80aca47b05d46f4a5e1951de3ce8372bd726b6<br>
--</blockquote><div> <span style="font-family:Calibri;font-size:11pt;background-color:transparent">Acked-by: Kishore
Padmanabha <<a href="mailto:kishore.padmanabha@broadcom.com">kishore.padmanabha@broadcom.com</a>></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <br>
2.54.0 (Apple Git-157)<br>
</blockquote></div></div>