704-04-v6.4-net-mvneta-move-tso_build_hdr-into-mvneta_tso_put_hd.patch 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. From 210ca75d4949f1ace8ea53a75148806cc28224a0 Mon Sep 17 00:00:00 2001
  2. From: "Russell King (Oracle)" <[email protected]>
  3. Date: Mon, 3 Apr 2023 19:30:35 +0100
  4. Subject: [PATCH 4/5] net: mvneta: move tso_build_hdr() into
  5. mvneta_tso_put_hdr()
  6. Move tso_build_hdr() into mvneta_tso_put_hdr() so that all the TSO
  7. header building code is in one place.
  8. Signed-off-by: Russell King (Oracle) <[email protected]>
  9. ---
  10. drivers/net/ethernet/marvell/mvneta.c | 22 +++++++++++-----------
  11. 1 file changed, 11 insertions(+), 11 deletions(-)
  12. --- a/drivers/net/ethernet/marvell/mvneta.c
  13. +++ b/drivers/net/ethernet/marvell/mvneta.c
  14. @@ -2592,19 +2592,24 @@ err_drop_frame:
  15. return rx_done;
  16. }
  17. -static inline void
  18. -mvneta_tso_put_hdr(struct sk_buff *skb, struct mvneta_tx_queue *txq)
  19. +static void mvneta_tso_put_hdr(struct sk_buff *skb, struct mvneta_tx_queue *txq,
  20. + struct tso_t *tso, int size, bool is_last)
  21. {
  22. - int hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb);
  23. + int tso_offset, hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb);
  24. struct mvneta_tx_buf *buf = &txq->buf[txq->txq_put_index];
  25. struct mvneta_tx_desc *tx_desc;
  26. + char *hdr;
  27. +
  28. + tso_offset = txq->txq_put_index * TSO_HEADER_SIZE;
  29. +
  30. + hdr = txq->tso_hdrs + tso_offset;
  31. + tso_build_hdr(skb, hdr, tso, size, is_last);
  32. tx_desc = mvneta_txq_next_desc_get(txq);
  33. tx_desc->data_size = hdr_len;
  34. tx_desc->command = mvneta_skb_tx_csum(skb);
  35. tx_desc->command |= MVNETA_TXD_F_DESC;
  36. - tx_desc->buf_phys_addr = txq->tso_hdrs_phys +
  37. - txq->txq_put_index * TSO_HEADER_SIZE;
  38. + tx_desc->buf_phys_addr = txq->tso_hdrs_phys + tso_offset;
  39. buf->type = MVNETA_TYPE_TSO;
  40. buf->skb = NULL;
  41. @@ -2697,17 +2702,12 @@ static int mvneta_tx_tso(struct sk_buff
  42. total_len = skb->len - hdr_len;
  43. while (total_len > 0) {
  44. - char *hdr;
  45. -
  46. data_left = min_t(int, skb_shinfo(skb)->gso_size, total_len);
  47. total_len -= data_left;
  48. desc_count++;
  49. /* prepare packet headers: MAC + IP + TCP */
  50. - hdr = txq->tso_hdrs + txq->txq_put_index * TSO_HEADER_SIZE;
  51. - tso_build_hdr(skb, hdr, &tso, data_left, total_len == 0);
  52. -
  53. - mvneta_tso_put_hdr(skb, txq);
  54. + mvneta_tso_put_hdr(skb, txq, &tso, data_left, total_len == 0);
  55. while (data_left > 0) {
  56. int size;