]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
xilinx_emacps: Fix bug in the logic for fragmented packets
authorAnirudha Sarangi <anirudh@xilinx.com>
Wed, 3 Apr 2013 17:37:01 +0000 (23:07 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 4 Apr 2013 05:47:56 +0000 (07:47 +0200)
The existing driver has a bug for freeing up Tx BDs for fragmented
Tx packets. This patch fixes it.

Signed-off-by: Anirudha Sarangi <anirudh@xilinx.com>
drivers/net/ethernet/xilinx/xilinx_emacps.c

index 7b307be94ea0539ae004bbb1a5d790441e4dd550..dbc1448c965c54adf2c5d737a206c03295655bab 100644 (file)
@@ -1295,10 +1295,12 @@ static void xemacps_tx_poll(unsigned long data)
        cur_i = lp->tx_bd_ci;
        cur_p = &lp->tx_bd[cur_i];
        while (bdcount < XEMACPS_SEND_BD_CNT) {
-               if ((sop == 0) && (cur_p->ctrl & XEMACPS_TXBUF_USED_MASK))
-                       sop = 1;
-               else
-                       break;
+               if (sop == 0) {
+                       if (cur_p->ctrl & XEMACPS_TXBUF_USED_MASK)
+                               sop = 1;
+                       else
+                               break;
+               }
 
                if (sop == 1) {
                        bdcount++;