Prepare to track skb metadata location independently of MAC header offset.
Following changes will make skb_metadata_set() record where metadata ends
relative to skb->head. Hence the helper must be called when skb->data
already points past the metadata area.
Adjust the driver to pull from skb->data before calling skb_metadata_set().
Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
---
drivers/net/ethernet/intel/igc/igc_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 728d7ca5338b..426b2cef5a1c 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -2024,8 +2024,8 @@ static struct sk_buff *igc_construct_skb(struct igc_ring *rx_ring,
ALIGN(headlen + metasize, sizeof(long)));
if (metasize) {
- skb_metadata_set(skb, metasize);
__skb_pull(skb, metasize);
+ skb_metadata_set(skb, metasize);
}
/* update all of the pointers */@@ -2752,8 +2752,8 @@ static struct sk_buff *igc_construct_skb_zc(struct igc_ring *ring,
ALIGN(totalsize, sizeof(long)));
if (metasize) {
- skb_metadata_set(skb, metasize);
__skb_pull(skb, metasize);
+ skb_metadata_set(skb, metasize);
}
if (ctx->rx_ts) {
--
2.43.0