Tue Jul 2 04:09:03 2019 UTC ()
 Other than IXGBE_VF_RESET should wait ACK, so use ixgbevf_write_msg_read_ack()
instead of write_posted() in ixgbe_update_mc_addr_list_vf().


(msaitoh)
diff -r1.17 -r1.18 src/sys/dev/pci/ixgbe/ixgbe_vf.c

cvs diff -r1.17 -r1.18 src/sys/dev/pci/ixgbe/ixgbe_vf.c (expand / switch to context diff)
--- src/sys/dev/pci/ixgbe/ixgbe_vf.c 2018/04/04 08:59:22 1.17
+++ src/sys/dev/pci/ixgbe/ixgbe_vf.c 2019/07/02 04:09:03 1.18
@@ -1,4 +1,4 @@
-/* $NetBSD: ixgbe_vf.c,v 1.17 2018/04/04 08:59:22 msaitoh Exp $ */
+/* $NetBSD: ixgbe_vf.c,v 1.18 2019/07/02 04:09:03 msaitoh Exp $ */
 
 /******************************************************************************
   SPDX-License-Identifier: BSD-3-Clause
@@ -388,7 +388,6 @@
 				 u32 mc_addr_count, ixgbe_mc_addr_itr next,
 				 bool clear)
 {
-	struct ixgbe_mbx_info *mbx = &hw->mbx;
 	u32 msgbuf[IXGBE_VFMAILBOX_SIZE];
 	u16 *vector_list = (u16 *)&msgbuf[1];
 	u32 vector;
@@ -419,8 +418,8 @@
 		DEBUGOUT1("Hash value = 0x%03X\n", vector);
 		vector_list[i] = (u16)vector;
 	}
-
-	return mbx->ops.write_posted(hw, msgbuf, IXGBE_VFMAILBOX_SIZE, 0);
+	return ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf,
+	    IXGBE_VFMAILBOX_SIZE);
 }
 
 /**