diff --git a/drivers/ethernet/eth_sam_gmac_priv.h b/drivers/ethernet/eth_sam_gmac_priv.h index 4eee362d126..ae6453c0fda 100644 --- a/drivers/ethernet/eth_sam_gmac_priv.h +++ b/drivers/ethernet/eth_sam_gmac_priv.h @@ -30,8 +30,11 @@ /** RX descriptors count for main queue */ #define MAIN_QUEUE_RX_DESC_COUNT CONFIG_ETH_SAM_GMAC_BUF_RX_COUNT -/** TX descriptors count for main queue */ -#define MAIN_QUEUE_TX_DESC_COUNT (CONFIG_NET_BUF_TX_COUNT + 1) +/** TX descriptors count for main queue. They should be able to store a full + ** packet, that might use either the TX or the RX buffers. + */ +#define MAIN_QUEUE_TX_DESC_COUNT (max(CONFIG_NET_BUF_RX_COUNT, \ + CONFIG_NET_BUF_TX_COUNT) + 1) /** RX/TX descriptors count for priority queues */ #if GMAC_PRIORITY_QUEUE_NO == 2