From 152f2d5e4546b43f5e842d8538c90055c36dcd19 Mon Sep 17 00:00:00 2001 From: fanwang2 Date: Mon, 18 Dec 2017 09:20:26 +0800 Subject: NetworkPkg: Update Api from NetLibDetectMedia to NetLibDetectMediaWaitTimeout. Since new Api NetLibDetectMediaWaitTimeout was involved to support connecting state handling, and it is forward compatible. So apply this Api in NetworkPkg. V2: *Define time period in a macro instead of hard code. Cc: Ye Ting Cc: Fu Siyuan Cc: Wu Jiaxin Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wang Fan Reviewed-by: Fu Siyuan Signed-off-by: fanwang2 --- NetworkPkg/IScsiDxe/IScsiDhcp.c | 9 +++++---- NetworkPkg/IScsiDxe/IScsiDhcp6.c | 9 +++++---- NetworkPkg/IScsiDxe/IScsiProto.c | 8 ++++---- NetworkPkg/IScsiDxe/IScsiProto.h | 3 +++ 4 files changed, 17 insertions(+), 12 deletions(-) (limited to 'NetworkPkg/IScsiDxe') diff --git a/NetworkPkg/IScsiDxe/IScsiDhcp.c b/NetworkPkg/IScsiDxe/IScsiDhcp.c index 309ce0daf2..e6f6972ebd 100644 --- a/NetworkPkg/IScsiDxe/IScsiDhcp.c +++ b/NetworkPkg/IScsiDxe/IScsiDhcp.c @@ -443,7 +443,7 @@ IScsiDoDhcp ( EFI_DHCP4_PACKET_OPTION *ParaList; EFI_DHCP4_CONFIG_DATA Dhcp4ConfigData; ISCSI_SESSION_CONFIG_NVDATA *NvData; - BOOLEAN MediaPresent; + EFI_STATUS MediaStatus; Dhcp4Handle = NULL; Ip4Config2 = NULL; @@ -453,9 +453,10 @@ IScsiDoDhcp ( // // Check media status before doing DHCP. // - MediaPresent = TRUE; - NetLibDetectMedia (Controller, &MediaPresent); - if (!MediaPresent) { + MediaStatus = EFI_SUCCESS; + NetLibDetectMediaWaitTimeout (Controller, ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus); + if (MediaStatus!= EFI_SUCCESS) { + AsciiPrint ("\n Error: Could not detect network connection.\n"); return EFI_NO_MEDIA; } diff --git a/NetworkPkg/IScsiDxe/IScsiDhcp6.c b/NetworkPkg/IScsiDxe/IScsiDhcp6.c index 06c634c3cd..90acb94e0e 100644 --- a/NetworkPkg/IScsiDxe/IScsiDhcp6.c +++ b/NetworkPkg/IScsiDxe/IScsiDhcp6.c @@ -401,14 +401,15 @@ IScsiDoDhcp6 ( EFI_DHCP6_PACKET_OPTION *Oro; EFI_DHCP6_RETRANSMISSION InfoReqReXmit; EFI_EVENT Timer; - BOOLEAN MediaPresent; + EFI_STATUS MediaStatus; // // Check media status before doing DHCP. // - MediaPresent = TRUE; - NetLibDetectMedia (Controller, &MediaPresent); - if (!MediaPresent) { + MediaStatus = EFI_SUCCESS; + NetLibDetectMediaWaitTimeout (Controller, ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME, &MediaStatus); + if (MediaStatus != EFI_SUCCESS) { + AsciiPrint ("\n Error: Could not detect network connection.\n"); return EFI_NO_MEDIA; } diff --git a/NetworkPkg/IScsiDxe/IScsiProto.c b/NetworkPkg/IScsiDxe/IScsiProto.c index 1602a26132..38e4af26bc 100644 --- a/NetworkPkg/IScsiDxe/IScsiProto.c +++ b/NetworkPkg/IScsiDxe/IScsiProto.c @@ -444,14 +444,14 @@ IScsiSessionLogin ( VOID *Tcp; EFI_GUID *ProtocolGuid; UINT8 RetryCount; - BOOLEAN MediaPresent; + EFI_STATUS MediaStatus; // // Check media status before session login. // - MediaPresent = TRUE; - NetLibDetectMedia (Session->Private->Controller, &MediaPresent); - if (!MediaPresent) { + MediaStatus = EFI_SUCCESS; + NetLibDetectMediaWaitTimeout (Session->Private->Controller, ISCSI_CHECK_MEDIA_LOGIN_WAITING_TIME, &MediaStatus); + if (MediaStatus != EFI_SUCCESS) { return EFI_NO_MEDIA; } diff --git a/NetworkPkg/IScsiDxe/IScsiProto.h b/NetworkPkg/IScsiDxe/IScsiProto.h index 367914d477..d57bda5909 100644 --- a/NetworkPkg/IScsiDxe/IScsiProto.h +++ b/NetworkPkg/IScsiDxe/IScsiProto.h @@ -40,6 +40,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #define ISCSI_VERSION_MAX 0x00 #define ISCSI_VERSION_MIN 0x00 +#define ISCSI_CHECK_MEDIA_LOGIN_WAITING_TIME EFI_TIMER_PERIOD_SECONDS(20) +#define ISCSI_CHECK_MEDIA_GET_DHCP_WAITING_TIME EFI_TIMER_PERIOD_SECONDS(20) + #define ISCSI_REDIRECT_ADDR_START_DELIMITER '[' #define ISCSI_REDIRECT_ADDR_END_DELIMITER ']' -- cgit v1.2.3