[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 27/40] hw/net/net_rx_pkt: Enforce alignment for eth_header
From: |
Akihiko Odaki |
Subject: |
[PATCH 27/40] hw/net/net_rx_pkt: Enforce alignment for eth_header |
Date: |
Fri, 14 Apr 2023 20:37:24 +0900 |
eth_strip_vlan and eth_strip_vlan_ex refers to ehdr_buf as struct
eth_header. Enforce alignment for the structure.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
hw/net/net_rx_pkt.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/hw/net/net_rx_pkt.c b/hw/net/net_rx_pkt.c
index 6125a063d7..1de42b4f51 100644
--- a/hw/net/net_rx_pkt.c
+++ b/hw/net/net_rx_pkt.c
@@ -23,7 +23,10 @@
struct NetRxPkt {
struct virtio_net_hdr virt_hdr;
- uint8_t ehdr_buf[sizeof(struct eth_header) + sizeof(struct vlan_header)];
+ struct {
+ struct eth_header eth;
+ struct vlan_header vlan;
+ } ehdr_buf;
struct iovec *vec;
uint16_t vec_len_total;
uint16_t vec_len;
@@ -89,7 +92,7 @@ net_rx_pkt_pull_data(struct NetRxPkt *pkt,
if (pkt->ehdr_buf_len) {
net_rx_pkt_iovec_realloc(pkt, iovcnt + 1);
- pkt->vec[0].iov_base = pkt->ehdr_buf;
+ pkt->vec[0].iov_base = &pkt->ehdr_buf;
pkt->vec[0].iov_len = pkt->ehdr_buf_len;
pkt->tot_len = pllen + pkt->ehdr_buf_len;
@@ -120,7 +123,7 @@ void net_rx_pkt_attach_iovec(struct NetRxPkt *pkt,
assert(pkt);
if (strip_vlan) {
- pkt->ehdr_buf_len = eth_strip_vlan(iov, iovcnt, iovoff, pkt->ehdr_buf,
+ pkt->ehdr_buf_len = eth_strip_vlan(iov, iovcnt, iovoff, &pkt->ehdr_buf,
&ploff, &tci);
} else {
pkt->ehdr_buf_len = 0;
@@ -142,7 +145,7 @@ void net_rx_pkt_attach_iovec_ex(struct NetRxPkt *pkt,
if (strip_vlan) {
pkt->ehdr_buf_len = eth_strip_vlan_ex(iov, iovcnt, iovoff, vet,
- pkt->ehdr_buf,
+ &pkt->ehdr_buf,
&ploff, &tci);
} else {
pkt->ehdr_buf_len = 0;
--
2.40.0
- [PATCH 23/40] igb: Share common VF constants, (continued)
- [PATCH 23/40] igb: Share common VF constants, Akihiko Odaki, 2023/04/14
- [PATCH 21/40] vmxnet3: Reset packet state after emptying Tx queue, Akihiko Odaki, 2023/04/14
- [PATCH 24/40] igb: Fix igb_mac_reg_init alignment, Akihiko Odaki, 2023/04/14
- [PATCH 25/40] net/eth: Use void pointers, Akihiko Odaki, 2023/04/14
- [PATCH 26/40] net/eth: Always add VLAN tag, Akihiko Odaki, 2023/04/14
- [PATCH 28/40] tests/qtest/libqos/igb: Set GPIE.Multiple_MSIX, Akihiko Odaki, 2023/04/14
- [PATCH 27/40] hw/net/net_rx_pkt: Enforce alignment for eth_header,
Akihiko Odaki <=
- [PATCH 29/40] igb: Implement MSI-X single vector mode, Akihiko Odaki, 2023/04/14
- [PATCH 30/40] igb: Implement igb-specific oversize check, Akihiko Odaki, 2023/04/14
- [PATCH 31/40] igb: Use UDP for RSS hash, Akihiko Odaki, 2023/04/14
- [PATCH 38/40] vmxnet3: Do not depend on PC, Akihiko Odaki, 2023/04/14
- [PATCH 37/40] igb: Implement Tx timestamp, Akihiko Odaki, 2023/04/14