Max packet size is not the only field in T3C's High Water Mark register.
Mask the register to access this field.
Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
 
        val = t3_read_reg(adap, A_XGM_RXFIFO_CFG + oft);
        val &= ~V_RXFIFOPAUSEHWM(M_RXFIFOPAUSEHWM);
-       if (fc & PAUSE_TX)
-               val |= V_RXFIFOPAUSEHWM(rx_fifo_hwm(
-                                               t3_read_reg(adap,
-                                               A_XGM_RX_MAX_PKT_SIZE
-                                               + oft)) / 8);
+       if (fc & PAUSE_TX) {
+               u32 rx_max_pkt_size =
+                   G_RXMAXPKTSIZE(t3_read_reg(adap,
+                                              A_XGM_RX_MAX_PKT_SIZE + oft));
+               val |= V_RXFIFOPAUSEHWM(rx_fifo_hwm(rx_max_pkt_size) / 8);
+       }
        t3_write_reg(adap, A_XGM_RXFIFO_CFG + oft, val);
 
        t3_set_reg_field(adap, A_XGM_TX_CFG + oft, F_TXPAUSEEN,