static void gve_tx_unmap_buf(struct device *dev, struct gve_tx_buffer_state *info)
 {
        if (info->skb) {
-               dma_unmap_single(dev, dma_unmap_addr(&info->buf, dma),
-                                dma_unmap_len(&info->buf, len),
+               dma_unmap_single(dev, dma_unmap_addr(info, dma),
+                                dma_unmap_len(info, len),
                                 DMA_TO_DEVICE);
-               dma_unmap_len_set(&info->buf, len, 0);
+               dma_unmap_len_set(info, len, 0);
        } else {
-               dma_unmap_page(dev, dma_unmap_addr(&info->buf, dma),
-                              dma_unmap_len(&info->buf, len),
+               dma_unmap_page(dev, dma_unmap_addr(info, dma),
+                              dma_unmap_len(info, len),
                               DMA_TO_DEVICE);
-               dma_unmap_len_set(&info->buf, len, 0);
+               dma_unmap_len_set(info, len, 0);
        }
 }
 
        struct gve_tx_buffer_state *info;
        bool is_gso = skb_is_gso(skb);
        u32 idx = tx->req & tx->mask;
-       struct gve_tx_dma_buf *buf;
        u64 addr;
        u32 len;
        int i;
                tx->dma_mapping_error++;
                goto drop;
        }
-       buf = &info->buf;
-       dma_unmap_len_set(buf, len, len);
-       dma_unmap_addr_set(buf, dma, addr);
+       dma_unmap_len_set(info, len, len);
+       dma_unmap_addr_set(info, dma, addr);
 
        payload_nfrags = shinfo->nr_frags;
        if (hlen < len) {
                        tx->dma_mapping_error++;
                        goto unmap_drop;
                }
-               buf = &tx->info[idx].buf;
                tx->info[idx].skb = NULL;
-               dma_unmap_len_set(buf, len, len);
-               dma_unmap_addr_set(buf, dma, addr);
+               dma_unmap_len_set(&tx->info[idx], len, len);
+               dma_unmap_addr_set(&tx->info[idx], dma, addr);
 
                gve_tx_fill_seg_desc(seg_desc, skb, is_gso, len, addr);
        }
 
                int j;
 
                for (j = 0; j < cur_state->num_bufs; j++) {
-                       struct gve_tx_dma_buf *buf = &cur_state->bufs[j];
-
                        if (j == 0) {
                                dma_unmap_single(tx->dev,
-                                                dma_unmap_addr(buf, dma),
-                                                dma_unmap_len(buf, len),
-                                                DMA_TO_DEVICE);
+                                       dma_unmap_addr(cur_state, dma[j]),
+                                       dma_unmap_len(cur_state, len[j]),
+                                       DMA_TO_DEVICE);
                        } else {
                                dma_unmap_page(tx->dev,
-                                              dma_unmap_addr(buf, dma),
-                                              dma_unmap_len(buf, len),
-                                              DMA_TO_DEVICE);
+                                       dma_unmap_addr(cur_state, dma[j]),
+                                       dma_unmap_len(cur_state, len[j]),
+                                       DMA_TO_DEVICE);
                        }
                }
                if (cur_state->skb) {
        const bool is_gso = skb_is_gso(skb);
        u32 desc_idx = tx->dqo_tx.tail;
 
-       struct gve_tx_pending_packet_dqo *pending_packet;
+       struct gve_tx_pending_packet_dqo *pkt;
        struct gve_tx_metadata_dqo metadata;
        s16 completion_tag;
        int i;
 
-       pending_packet = gve_alloc_pending_packet(tx);
-       pending_packet->skb = skb;
-       pending_packet->num_bufs = 0;
-       completion_tag = pending_packet - tx->dqo.pending_packets;
+       pkt = gve_alloc_pending_packet(tx);
+       pkt->skb = skb;
+       pkt->num_bufs = 0;
+       completion_tag = pkt - tx->dqo.pending_packets;
 
        gve_extract_tx_metadata_dqo(skb, &metadata);
        if (is_gso) {
 
        /* Map the linear portion of skb */
        {
-               struct gve_tx_dma_buf *buf =
-                       &pending_packet->bufs[pending_packet->num_bufs];
                u32 len = skb_headlen(skb);
                dma_addr_t addr;
 
                if (unlikely(dma_mapping_error(tx->dev, addr)))
                        goto err;
 
-               dma_unmap_len_set(buf, len, len);
-               dma_unmap_addr_set(buf, dma, addr);
-               ++pending_packet->num_bufs;
+               dma_unmap_len_set(pkt, len[pkt->num_bufs], len);
+               dma_unmap_addr_set(pkt, dma[pkt->num_bufs], addr);
+               ++pkt->num_bufs;
 
                gve_tx_fill_pkt_desc_dqo(tx, &desc_idx, skb, len, addr,
                                         completion_tag,
        }
 
        for (i = 0; i < shinfo->nr_frags; i++) {
-               struct gve_tx_dma_buf *buf =
-                       &pending_packet->bufs[pending_packet->num_bufs];
                const skb_frag_t *frag = &shinfo->frags[i];
                bool is_eop = i == (shinfo->nr_frags - 1);
                u32 len = skb_frag_size(frag);
                if (unlikely(dma_mapping_error(tx->dev, addr)))
                        goto err;
 
-               dma_unmap_len_set(buf, len, len);
-               dma_unmap_addr_set(buf, dma, addr);
-               ++pending_packet->num_bufs;
+               dma_unmap_len_set(pkt, len[pkt->num_bufs], len);
+               dma_unmap_addr_set(pkt, dma[pkt->num_bufs], addr);
+               ++pkt->num_bufs;
 
                gve_tx_fill_pkt_desc_dqo(tx, &desc_idx, skb, len, addr,
                                         completion_tag, is_eop, is_gso);
        return 0;
 
 err:
-       for (i = 0; i < pending_packet->num_bufs; i++) {
-               struct gve_tx_dma_buf *buf = &pending_packet->bufs[i];
-
+       for (i = 0; i < pkt->num_bufs; i++) {
                if (i == 0) {
-                       dma_unmap_single(tx->dev, dma_unmap_addr(buf, dma),
-                                        dma_unmap_len(buf, len),
+                       dma_unmap_single(tx->dev,
+                                        dma_unmap_addr(pkt, dma[i]),
+                                        dma_unmap_len(pkt, len[i]),
                                         DMA_TO_DEVICE);
                } else {
-                       dma_unmap_page(tx->dev, dma_unmap_addr(buf, dma),
-                                      dma_unmap_len(buf, len), DMA_TO_DEVICE);
+                       dma_unmap_page(tx->dev,
+                                      dma_unmap_addr(pkt, dma[i]),
+                                      dma_unmap_len(pkt, len[i]),
+                                      DMA_TO_DEVICE);
                }
        }
 
-       pending_packet->skb = NULL;
-       pending_packet->num_bufs = 0;
-       gve_free_pending_packet(tx, pending_packet);
+       pkt->skb = NULL;
+       pkt->num_bufs = 0;
+       gve_free_pending_packet(tx, pkt);
 
        return -1;
 }
 
 static void remove_from_list(struct gve_tx_ring *tx,
                             struct gve_index_list *list,
-                            struct gve_tx_pending_packet_dqo *pending_packet)
+                            struct gve_tx_pending_packet_dqo *pkt)
 {
        s16 prev_index, next_index;
 
-       prev_index = pending_packet->prev;
-       next_index = pending_packet->next;
+       prev_index = pkt->prev;
+       next_index = pkt->next;
 
        if (prev_index == -1) {
                /* Node is head */
 }
 
 static void gve_unmap_packet(struct device *dev,
-                            struct gve_tx_pending_packet_dqo *pending_packet)
+                            struct gve_tx_pending_packet_dqo *pkt)
 {
-       struct gve_tx_dma_buf *buf;
        int i;
 
        /* SKB linear portion is guaranteed to be mapped */
-       buf = &pending_packet->bufs[0];
-       dma_unmap_single(dev, dma_unmap_addr(buf, dma),
-                        dma_unmap_len(buf, len), DMA_TO_DEVICE);
-       for (i = 1; i < pending_packet->num_bufs; i++) {
-               buf = &pending_packet->bufs[i];
-               dma_unmap_page(dev, dma_unmap_addr(buf, dma),
-                              dma_unmap_len(buf, len), DMA_TO_DEVICE);
+       dma_unmap_single(dev, dma_unmap_addr(pkt, dma[0]),
+                        dma_unmap_len(pkt, len[0]), DMA_TO_DEVICE);
+       for (i = 1; i < pkt->num_bufs; i++) {
+               dma_unmap_page(dev, dma_unmap_addr(pkt, dma[i]),
+                              dma_unmap_len(pkt, len[i]), DMA_TO_DEVICE);
        }
-       pending_packet->num_bufs = 0;
+       pkt->num_bufs = 0;
 }
 
 /* Completion types and expected behavior: