diff --git a/dp/wifi3.0/dp_tx_me.c b/dp/wifi3.0/dp_tx_me.c index 2c5d786abeaf..38e182b3ed94 100644 --- a/dp/wifi3.0/dp_tx_me.c +++ b/dp/wifi3.0/dp_tx_me.c @@ -72,8 +72,7 @@ dp_tx_me_init(struct dp_pdev *pdev) p = pdev->me_buf.freelist; for (i = 0; i < num_pool_elems-1; i++) { p->next = (struct dp_tx_me_buf_t *) - ((char *)p + pdev->me_buf.size + - sizeof(struct dp_tx_me_buf_t)); + ((char *)p + pdev->me_buf.size); p = p->next; } p->next = NULL; diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 201bfe77830b..f350f11eeea3 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -1140,11 +1140,13 @@ struct dp_invalid_peer_msg { /* * dp_tx_me_buf_t: ME buffer - * data: Destination Mac address * next: pointer to next buffer + * data: Destination Mac address */ struct dp_tx_me_buf_t { - uint8_t data[DP_MAC_ADDR_LEN]; + /* Note: ME buf pool initialization logic expects next pointer to + * be the first element. Dont add anything before next */ struct dp_tx_me_buf_t *next; + uint8_t data[DP_MAC_ADDR_LEN]; }; #endif /* _DP_TYPES_H_ */