Thread (32 messages) 32 messages, 4 authors, 2012-05-15

[net-next 02/12] ixgbe: Exit on error case in VF message processing

flat view
STALE5270d SUPERSEDED: 1 (0M)

From: Jeff Kirsher <hidden>
Date: 2012-05-10 06:46:58
Subsystem: intel ethernet drivers, networking drivers, the rest · Maintainers: Tony Nguyen, Przemek Kitszel, Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds

Revision v1 of 228 in this series; 1 review trailer.

Revisions (228)
  1. v1
  2. v1
  3. v2 [diff vs current]
  4. v1
  5. v1
  6. v1
  7. v2 [diff vs current]
  8. v1
  9. v1
  10. v1
  11. v1
  12. v1
  13. v1
  14. v1
  15. v1
  16. v1
  17. v1
  18. v2 [diff vs current]
  19. v1
  20. v3 [diff vs current]
  21. v1
  22. v1
  23. v1
  24. v2 [diff vs current]
  25. v2 [diff vs current]
  26. v1
  27. v2 [diff vs current]
  28. v1
  29. v2 [diff vs current]
  30. v3 [diff vs current]
  31. v1
  32. v1
  33. v1
  34. v2 [diff vs current]
  35. v1
  36. v1
  37. v1
  38. v2 [diff vs current]
  39. v1
  40. v1
  41. v1
  42. v1
  43. v1
  44. v2 [diff vs current]
  45. v1
  46. v2 [diff vs current]
  47. v1
  48. v1
  49. v1
  50. v1
  51. v1
  52. v1
  53. v1
  54. v1
  55. v1
  56. v1
  57. v1
  58. v1
  59. v1
  60. v1
  61. v1
  62. v1
  63. v1
  64. v1
  65. v1
  66. v1
  67. v1
  68. v2 [diff vs current]
  69. v1
  70. v2 [diff vs current]
  71. v1
  72. v1
  73. v2 [diff vs current]
  74. v1
  75. v1 current
  76. v1
  77. v2 [diff vs current]
  78. v3 [diff vs current]
  79. v1
  80. v2 [diff vs current]
  81. v1
  82. v1
  83. v1
  84. v1
  85. v1
  86. v1
  87. v1
  88. v1
  89. v1
  90. v1
  91. v1
  92. v1
  93. v1
  94. v1
  95. v1
  96. v1
  97. v1
  98. v1
  99. v1
  100. v1
  101. v1
  102. v1
  103. v2 [diff vs current]
  104. v1
  105. v1
  106. v1
  107. v1
  108. v1
  109. v1
  110. v1
  111. v1
  112. v1
  113. v2 [diff vs current]
  114. v1
  115. v1
  116. v1
  117. v1
  118. v1
  119. v2 [diff vs current]
  120. v1
  121. v1
  122. v1
  123. v1
  124. v1
  125. v2 [diff vs current]
  126. v1
  127. v2 [diff vs current]
  128. v1
  129. v1
  130. v1
  131. v1
  132. v1
  133. v1
  134. v1
  135. v1
  136. v1
  137. v1
  138. v1
  139. v1
  140. v2 [diff vs current]
  141. v1
  142. v1
  143. v2 [diff vs current]
  144. v1
  145. v1
  146. v1
  147. v1
  148. v1
  149. v1
  150. v2 [diff vs current]
  151. v1
  152. v2 [diff vs current]
  153. v2 [diff vs current]
  154. v1
  155. v2 [diff vs current]
  156. v3 [diff vs current]
  157. v1
  158. v4 [diff vs current]
  159. v1
  160. v5 [diff vs current]
  161. v6 [diff vs current]
  162. v7 [diff vs current]
  163. v1
  164. v1
  165. v2 [diff vs current]
  166. v1
  167. v1
  168. v1
  169. v2 [diff vs current]
  170. v1
  171. v1
  172. v1
  173. v1
  174. v1
  175. v2 [diff vs current]
  176. v1
  177. v1
  178. v1
  179. v1
  180. v2 [diff vs current]
  181. v1
  182. v1
  183. v1
  184. v2 [diff vs current]
  185. v3 [diff vs current]
  186. v4 [diff vs current]
  187. v1
  188. v1
  189. v2 [diff vs current]
  190. v5 [diff vs current]
  191. v1
  192. v1
  193. v1
  194. v2 [diff vs current]
  195. v1
  196. v1
  197. v2 [diff vs current]
  198. v3 [diff vs current]
  199. v1
  200. v2 [diff vs current]
  201. v1
  202. v1
  203. v2 [diff vs current]
  204. v1
  205. v2 [diff vs current]
  206. v1
  207. v2 [diff vs current]
  208. v3 [diff vs current]
  209. v1
  210. v1
  211. v1
  212. v2 [diff vs current]
  213. v1
  214. v1
  215. v1
  216. v1
  217. v1
  218. v1
  219. v2 [diff vs current]
  220. v1
  221. v1
  222. v1
  223. v1
  224. v2 [diff vs current]
  225. v1
  226. v1
  227. v1
  228. v2 [diff vs current]
From: Alexander Duyck <redacted>

Previously we would get a mailbox error and still process the message.
Instead we should exit on error.

In addition we should also be flushing the ACK of the message so that we
can guarantee that the other end is aware we have received the message
while we are processing it.

Signed-off-by: Alexander Duyck <redacted>
Tested-by: Sibai Li <redacted>
Signed-off-by: Jeff Kirsher <redacted>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index 3985637..b64f1fc 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -544,13 +544,18 @@ static int ixgbe_rcv_msg_from_vf(struct ixgbe_adapter *adapter, u32 vf)
 
 	retval = ixgbe_read_mbx(hw, msgbuf, mbx_size, vf);
 
-	if (retval)
+	if (retval) {
 		pr_err("Error receiving message from VF\n");
+		return retval;
+	}
 
 	/* this is a message we already processed, do nothing */
 	if (msgbuf[0] & (IXGBE_VT_MSGTYPE_ACK | IXGBE_VT_MSGTYPE_NACK))
 		return retval;
 
+	/* flush the ack before we write any messages back */
+	IXGBE_WRITE_FLUSH(hw);
+
 	/*
 	 * until the vf completes a virtual function reset it should not be
 	 * allowed to start any configuration.
-- 
1.7.7.6
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help