/* returns SUCCESS if it successfully received a message acknowledgement  */
static s32 e1000_poll_for_ack(struct e1000_hw *hw)
/* returns SUCCESS if it successfully received a message acknowledgement  */
static s32 e1000_poll_for_ack(struct e1000_hw *hw)
{
	struct e1000_mbx_info *mbx = &hw->mbx;
	int countdown = mbx->timeout;
	if (!mbx->ops.check_for_ack)
		goto out;
	while (countdown && mbx->ops.check_for_ack(hw)) {
		countdown--;
		udelay(mbx->usec_delay);
	}
	if (!countdown)
		mbx->timeout = 0;
out:
	return countdown ? E1000_SUCCESS : -E1000_ERR_MBX;
}