]> bbs.cooldavid.org Git - jme.git/commitdiff
[PATCH] jme: Fix FIFO flush issue
authorGuo-Fu Tseng <cooldavid@cooldavid.org>
Wed, 22 Feb 2012 18:29:34 +0000 (02:29 +0800)
committerGuo-Fu Tseng <cooldavid@cooldavid.org>
Fri, 24 Feb 2012 03:28:07 +0000 (11:28 +0800)
Set the RX FIFO flush watermark lower.
According to Federico and JMicron's reply,
setting it to 16QW would be stable on most platforms.
Otherwise, user might experience packet drop issue.

CC: stable@kernel.org
Reported-by: Federico Quagliata <federico@quagliata.org>
Fixed-by: Federico Quagliata <federico@quagliata.org>
Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
jme.c
jme.h

diff --git a/jme.c b/jme.c
index b50d7b55898af5f0f13f1fee2fa278fce8491e2a..68aff5f3ba86dc20dfe92913c32c71cbfd52a68a 100644 (file)
--- a/jme.c
+++ b/jme.c
@@ -2461,15 +2461,6 @@ jme_change_mtu(struct net_device *netdev, int new_mtu)
                ((new_mtu) < IPV6_MIN_MTU))
                return -EINVAL;
 
-       if (new_mtu > 4000) {
-               jme->reg_rxcs &= ~RXCS_FIFOTHNP;
-               jme->reg_rxcs |= RXCS_FIFOTHNP_64QW;
-               jme_restart_rx_engine(jme);
-       } else {
-               jme->reg_rxcs &= ~RXCS_FIFOTHNP;
-               jme->reg_rxcs |= RXCS_FIFOTHNP_128QW;
-               jme_restart_rx_engine(jme);
-       }
 
 #ifndef __USE_NDO_FIX_FEATURES__
        if (new_mtu > 1900) {
@@ -2487,6 +2478,8 @@ jme_change_mtu(struct net_device *netdev, int new_mtu)
 #ifdef __USE_NDO_FIX_FEATURES__
        netdev_update_features(netdev);
 #endif
+
+       jme_restart_rx_engine(jme);
        jme_reset_link(jme);
 
        return 0;
diff --git a/jme.h b/jme.h
index a3d0f246a1221467654511586eb19a426c6e544a..4ee3e0b47c7ae60cc5780f3e2662adb65f1c4c7a 100644 (file)
--- a/jme.h
+++ b/jme.h
@@ -914,7 +914,7 @@ enum jme_rxcs_values {
        RXCS_RETRYCNT_60        = 0x00000F00,
 
        RXCS_DEFAULT            = RXCS_FIFOTHTP_128T |
-                                 RXCS_FIFOTHNP_128QW |
+                                 RXCS_FIFOTHNP_16QW |
                                  RXCS_DMAREQSZ_128B |
                                  RXCS_RETRYGAP_256ns |
                                  RXCS_RETRYCNT_32,