diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 0f74576db9890a065b8d752a526da67b3e430915..3eb01a40fba21f8877c1efcbe20b41608a9043b7 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -5903,9 +5903,9 @@ static int rtl8169_xmit_frags(struct rtl8169_private *tp, struct sk_buff *skb, goto err_out; } - /* Anti gcc 2.95.3 bugware (sic) */ - status = opts[0] | len | - (RingEnd * !((entry + 1) % NUM_TX_DESC)); + status = opts[0] | len; + if (entry == NUM_TX_DESC - 1) + status |= RingEnd; txd->opts1 = cpu_to_le32(status); txd->opts2 = cpu_to_le32(opts[1]);