int max_frame = netdev->mtu + ETH_HLEN + ETH_FCS_LEN;
        int i;
        u32 rxctrl;
-       u32 fctrl, hlreg0;
+       u32 hlreg0;
        u32 rdrxctl;
        int rx_buf_len;
 
                        rx_buf_len = ALIGN(max_frame, 1024);
        }
 
-       fctrl = IXGBE_READ_REG(&adapter->hw, IXGBE_FCTRL);
-       fctrl |= IXGBE_FCTRL_BAM;
-       fctrl |= IXGBE_FCTRL_DPF; /* discard pause frames when FC enabled */
-       fctrl |= IXGBE_FCTRL_PMCF;
-       IXGBE_WRITE_REG(&adapter->hw, IXGBE_FCTRL, fctrl);
-
        hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0);
        if (adapter->netdev->mtu <= ETH_DATA_LEN)
                hlreg0 &= ~IXGBE_HLREG0_JUMBOEN;
 
        fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL);
 
+       /* set all bits that we expect to always be set */
+       fctrl |= IXGBE_FCTRL_BAM;
+       fctrl |= IXGBE_FCTRL_DPF; /* discard pause frames when FC enabled */
+       fctrl |= IXGBE_FCTRL_PMCF;
+
        /* clear the bits we are changing the status of */
        fctrl &= ~(IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE);