From: Guo-Fu Tseng Date: Wed, 22 Feb 2012 18:29:34 +0000 (+0800) Subject: [PATCH] jme: Fix FIFO flush issue X-Git-Tag: bp-1.0.8.9-noasd~2 X-Git-Url: http://bbs.cooldavid.org/git/?p=jme.git;a=commitdiff_plain;h=d3c3d29306e28c1556dc6ba30e9eecfc4aa4e382 [PATCH] jme: Fix FIFO flush issue 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 Fixed-by: Federico Quagliata Signed-off-by: Guo-Fu Tseng --- diff --git a/jme.c b/jme.c index b50d7b5..68aff5f 100644 --- 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 a3d0f24..4ee3e0b 100644 --- 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,