DataItem->DataSize,\r
DataItem->Data.Ptr\r
);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR(Status) && Status != EFI_NOT_READY) {\r
goto ON_ERROR;\r
}\r
}\r
}\r
}\r
\r
- if (!EFI_ERROR (Status)) {\r
- //\r
- // ready to go: start the receiving and timer\r
- //\r
- Status = Ip6ReceiveFrame (Ip6AcceptFrame, IpSb);\r
- if (EFI_ERROR (Status)) {\r
- goto ON_ERROR;\r
- }\r
+ //\r
+ // ready to go: start the receiving and timer\r
+ //\r
+ Status = Ip6ReceiveFrame (Ip6AcceptFrame, IpSb);\r
+ if (EFI_ERROR (Status)) {\r
+ goto ON_ERROR;\r
+ }\r
\r
- //\r
- // The timer expires every 100 (IP6_TIMER_INTERVAL_IN_MS) milliseconds.\r
- //\r
- Status = gBS->SetTimer (\r
- IpSb->FasterTimer,\r
- TimerPeriodic,\r
- TICKS_PER_MS * IP6_TIMER_INTERVAL_IN_MS\r
- );\r
- if (EFI_ERROR (Status)) {\r
- goto ON_ERROR;\r
- }\r
+ //\r
+ // The timer expires every 100 (IP6_TIMER_INTERVAL_IN_MS) milliseconds.\r
+ //\r
+ Status = gBS->SetTimer (\r
+ IpSb->FasterTimer,\r
+ TimerPeriodic,\r
+ TICKS_PER_MS * IP6_TIMER_INTERVAL_IN_MS\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ goto ON_ERROR;\r
+ }\r
\r
- //\r
- // The timer expires every 1000 (IP6_ONE_SECOND_IN_MS) milliseconds.\r
- //\r
- Status = gBS->SetTimer (\r
- IpSb->Timer,\r
- TimerPeriodic,\r
- TICKS_PER_MS * IP6_ONE_SECOND_IN_MS\r
- );\r
- if (EFI_ERROR (Status)) {\r
- goto ON_ERROR;\r
- } \r
+ //\r
+ // The timer expires every 1000 (IP6_ONE_SECOND_IN_MS) milliseconds.\r
+ //\r
+ Status = gBS->SetTimer (\r
+ IpSb->Timer,\r
+ TimerPeriodic,\r
+ TICKS_PER_MS * IP6_ONE_SECOND_IN_MS\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ goto ON_ERROR;\r
+ } \r
\r
- //\r
- // Initialize the IP6 ID\r
- //\r
- mIp6Id = NET_RANDOM (NetRandomInitSeed ());\r
+ //\r
+ // Initialize the IP6 ID\r
+ //\r
+ mIp6Id = NET_RANDOM (NetRandomInitSeed ());\r
\r
- return EFI_SUCCESS;\r
- }\r
+ return EFI_SUCCESS;\r
\r
ON_ERROR:\r
Ip6CleanService (IpSb);\r