201 }
202
203
204 boolean_t BnxeWaitForPacketsFromClient(um_device_t * pUM,
205 int cliIdx)
206 {
207 int i, idx, cnt=0, tot=0;
208
209 switch (cliIdx)
210 {
211 case LM_CLI_IDX_FCOE:
212
213 for (i = 0; i < 5; i++)
214 {
215 if ((cnt = pUM->rxq[FCOE_CID(&pUM->lm_dev)].rxBufUpInStack) == 0)
216 {
217 break;
218 }
219
220 /* twiddle our thumbs for one second */
221 delay(drv_usectohz(1000000));
222 }
223
224 if (cnt)
225 {
226 BnxeLogWarn(pUM, "%d packets still held by FCoE (chain %d)!",
227 cnt, FCOE_CID(&pUM->lm_dev));
228 return B_FALSE;
229 }
230
231 break;
232
233 case LM_CLI_IDX_NDIS:
234
235 tot = 0;
236
237 LM_FOREACH_RSS_IDX(&pUM->lm_dev, idx)
238 {
239 for (i = 0; i < 5; i++)
240 {
241 if ((cnt = pUM->rxq[idx].rxBufUpInStack) == 0)
242 {
243 break;
244 }
245
246 /* twiddle our thumbs for one second */
247 delay(drv_usectohz(1000000));
248 }
249
250 tot += cnt;
251 }
252
253 if (tot)
254 {
255 BnxeLogWarn(pUM, "%d packets still held by the stack (chain %d)!",
256 tot, idx);
257 return B_FALSE;
258 }
259
260 break;
261
262 default:
263
264 BnxeLogWarn(pUM, "ERROR: Invalid cliIdx for BnxeWaitForPacketsFromClient (%d)", cliIdx);
265 break;
266 }
267
|
201 }
202
203
204 boolean_t BnxeWaitForPacketsFromClient(um_device_t * pUM,
205 int cliIdx)
206 {
207 int i, idx, cnt=0, tot=0;
208
209 switch (cliIdx)
210 {
211 case LM_CLI_IDX_FCOE:
212
213 for (i = 0; i < 5; i++)
214 {
215 if ((cnt = pUM->rxq[FCOE_CID(&pUM->lm_dev)].rxBufUpInStack) == 0)
216 {
217 break;
218 }
219
220 /* twiddle our thumbs for one second */
221 delay(drv_sectohz(1));
222 }
223
224 if (cnt)
225 {
226 BnxeLogWarn(pUM, "%d packets still held by FCoE (chain %d)!",
227 cnt, FCOE_CID(&pUM->lm_dev));
228 return B_FALSE;
229 }
230
231 break;
232
233 case LM_CLI_IDX_NDIS:
234
235 tot = 0;
236
237 LM_FOREACH_RSS_IDX(&pUM->lm_dev, idx)
238 {
239 for (i = 0; i < 5; i++)
240 {
241 if ((cnt = pUM->rxq[idx].rxBufUpInStack) == 0)
242 {
243 break;
244 }
245
246 /* twiddle our thumbs for one second */
247 delay(drv_sectohz(1));
248 }
249
250 tot += cnt;
251 }
252
253 if (tot)
254 {
255 BnxeLogWarn(pUM, "%d packets still held by the stack (chain %d)!",
256 tot, idx);
257 return B_FALSE;
258 }
259
260 break;
261
262 default:
263
264 BnxeLogWarn(pUM, "ERROR: Invalid cliIdx for BnxeWaitForPacketsFromClient (%d)", cliIdx);
265 break;
266 }
267
|