Submit all the rx buffers, even though a error occurs. Otherwise
the buffers which are not submitted would be lost until next
rtl_start_rx() is called. Besides, the fail buffer could be
re-submitted later.

Signed-off-by: Hayes Wang <hayesw...@realtek.com>
---
 drivers/net/usb/r8152.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index ad62994..5e0386f 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -1993,10 +1993,16 @@ static int rtl_start_rx(struct r8152 *tp)
 
        INIT_LIST_HEAD(&tp->rx_done);
        for (i = 0; i < RTL8152_MAX_RX; i++) {
+               int rr;
+
                INIT_LIST_HEAD(&tp->rx_info[i].list);
-               ret = r8152_submit_rx(tp, &tp->rx_info[i], GFP_KERNEL);
-               if (ret)
-                       break;
+
+               rr = r8152_submit_rx(tp, &tp->rx_info[i], GFP_KERNEL);
+               if (rr)
+                       netif_err(tp, rx_err, tp->netdev,
+                                 "Couldn't submit rx[%d], ret = %d\n", i, rr);
+               if (!ret)
+                       ret = rr;
        }
 
        return ret;
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to