public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Wu, Jiaxin" <jiaxin.wu@intel.com>
To: "Zhang, Lubo" <lubo.zhang@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Ye, Ting" <ting.ye@intel.com>, "Fu, Siyuan" <siyuan.fu@intel.com>
Subject: Re: [PATCH V2] NetworkPkg: Add check logic for some variable in iSCSI driver.
Date: Tue, 28 Feb 2017 03:02:53 +0000	[thread overview]
Message-ID: <895558F6EA4E3B41AC93A00D163B72741629EAE8@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <1488186629-6072-1-git-send-email-lubo.zhang@intel.com>

Hi Lubo,

In IScsiConfigProcessDefault, we'd better replace the ASSERT for AttemptConfigOrder/AttemptConfigData with "if error" condition.

Others is good to me.

Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>

Thanks,
Jiaxin


> -----Original Message-----
> From: Zhang, Lubo
> Sent: Monday, February 27, 2017 5:10 PM
> To: edk2-devel@lists.01.org
> Cc: Ye, Ting <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Wu,
> Jiaxin <jiaxin.wu@intel.com>
> Subject: [PATCH V2] NetworkPkg: Add check logic for some variable in iSCSI
> driver.
> 
> v2: need to check the global variable mPrivate before using it in
> the Convert AttemptConfigData To IfrNvData by Keyword function.
> 
> Add check logic for some attempt variable to enhance code in iSCSI.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Zhang Lubo <lubo.zhang@intel.com>
> Cc: Ye Ting <ting.ye@intel.com>
> Cc: Fu Siyuan <siyuan.fu@intel.com>
> Cc: Wu Jiaxin <jiaxin.wu@intel.com>
> ---
>  NetworkPkg/IScsiDxe/IScsiConfig.c | 271 ++++++++++++++++++++-----------
> -------
>  NetworkPkg/IScsiDxe/IScsiConfig.h |   2 +-
>  2 files changed, 143 insertions(+), 130 deletions(-)
> 
> diff --git a/NetworkPkg/IScsiDxe/IScsiConfig.c
> b/NetworkPkg/IScsiDxe/IScsiConfig.c
> index b169620..08a49d6 100644
> --- a/NetworkPkg/IScsiDxe/IScsiConfig.c
> +++ b/NetworkPkg/IScsiDxe/IScsiConfig.c
> @@ -628,116 +628,123 @@
> IScsiConvertAttemptConfigDataToIfrNvDataByKeyword (
>    ISCSI_SESSION_CONFIG_NVDATA   *SessionConfigData;
>    ISCSI_CHAP_AUTH_CONFIG_NVDATA *AuthConfigData;
>    CHAR16                        AttemptNameList[ATTEMPT_NAME_LIST_SIZE];
>    EFI_IP_ADDRESS                Ip;
>    UINTN                         Index;
> +  UINTN                         StringLen;
> 
>    ZeroMem (AttemptNameList, sizeof (AttemptNameList));
> 
> -  NET_LIST_FOR_EACH (Entry, &mPrivate->AttemptConfigs) {
> -    Attempt = NET_LIST_USER_STRUCT (Entry,
> ISCSI_ATTEMPT_CONFIG_NVDATA, Link);
> -    //
> -    // Normal session configuration parameters.
> -    //
> -    SessionConfigData                 = &Attempt->SessionConfigData;
> -
> -    Index   = Attempt->AttemptConfigIndex - 1;
> +  if ((mPrivate != NULL) && (mPrivate->AttemptCount != 0)) {
> +    NET_LIST_FOR_EACH (Entry, &mPrivate->AttemptConfigs) {
> +      Attempt = NET_LIST_USER_STRUCT (Entry,
> ISCSI_ATTEMPT_CONFIG_NVDATA, Link);
> +      //
> +      // Normal session configuration parameters.
> +      //
> +      SessionConfigData                 = &Attempt->SessionConfigData;
> 
> -    //
> -    // Save the attempt to AttemptNameList as Attempt:1 Attempt:2
> -    //
> -    AsciiStrToUnicodeStrS (
> -      Attempt->AttemptName,
> -      AttemptNameList + StrLen (AttemptNameList),
> -      ATTEMPT_NAME_LIST_SIZE
> -    );
> -    *(AttemptNameList + StrLen (AttemptNameList) - 2) = L':';
> -    *(AttemptNameList + StrLen (AttemptNameList))     = L' ';
> +      ASSERT ((Attempt->AttemptConfigIndex > 0) && (Attempt-
> >AttemptConfigIndex <= FixedPcdGet8 (PcdMaxIScsiAttemptNumber)));
> +      Index   = Attempt->AttemptConfigIndex - 1;
> 
> -    AsciiStrToUnicodeStrS (
> -      Attempt->AttemptName,
> -      IfrNvData->ISCSIAttemptName  + ATTEMPT_NAME_SIZE * Index,
> -      ATTEMPT_NAME_SIZE
> -    );
> +      //
> +      // Save the attempt to AttemptNameList as Attempt:1 Attempt:2
> +      //
> +      AsciiStrToUnicodeStrS (
> +        Attempt->AttemptName,
> +        AttemptNameList + StrLen (AttemptNameList),
> +        ATTEMPT_NAME_LIST_SIZE - StrLen (AttemptNameList)
> +      );
> 
> -    IfrNvData->ISCSIBootEnableList[Index]          = SessionConfigData->Enabled;
> -    IfrNvData->ISCSIIpAddressTypeList[Index]       = SessionConfigData-
> >IpMode;
> +      StringLen = StrLen (AttemptNameList);
> +      ASSERT (StringLen > 2);
> +      *(AttemptNameList + StringLen - 2) = L':';
> +      *(AttemptNameList + StringLen)     = L' ';
> 
> -    IfrNvData->ISCSIInitiatorInfoViaDHCP[Index]    = SessionConfigData-
> >InitiatorInfoFromDhcp;
> -    IfrNvData->ISCSITargetInfoViaDHCP[Index]       = SessionConfigData-
> >TargetInfoFromDhcp;
> -    IfrNvData->ISCSIConnectRetry[Index]            = SessionConfigData-
> >ConnectRetryCount;
> -    IfrNvData->ISCSIConnectTimeout[Index]          = SessionConfigData-
> >ConnectTimeout;
> -    IfrNvData->ISCSITargetTcpPort[Index]           = SessionConfigData-
> >TargetPort;
> +      AsciiStrToUnicodeStrS (
> +        Attempt->AttemptName,
> +        IfrNvData->ISCSIAttemptName  + ATTEMPT_NAME_SIZE * Index,
> +        ATTEMPT_NAME_LIST_SIZE - ATTEMPT_NAME_SIZE * Index
> +      );
> 
> -    if (SessionConfigData->IpMode == IP_MODE_IP4) {
> -      CopyMem (&Ip.v4, &SessionConfigData->LocalIp, sizeof
> (EFI_IPv4_ADDRESS));
> -      IScsiIpToStr (&Ip, FALSE, IfrNvData-
> >Keyword[Index].ISCSIInitiatorIpAddress);
> -      CopyMem (&Ip.v4, &SessionConfigData->SubnetMask, sizeof
> (EFI_IPv4_ADDRESS));
> -      IScsiIpToStr (&Ip, FALSE, IfrNvData-
> >Keyword[Index].ISCSIInitiatorNetmask);
> -      CopyMem (&Ip.v4, &SessionConfigData->Gateway, sizeof
> (EFI_IPv4_ADDRESS));
> -      IScsiIpToStr (&Ip, FALSE, IfrNvData-
> >Keyword[Index].ISCSIInitiatorGateway);
> -      if (SessionConfigData->TargetIp.v4.Addr[0] != '\0') {
> -        CopyMem (&Ip.v4, &SessionConfigData->TargetIp, sizeof
> (EFI_IPv4_ADDRESS));
> -        IScsiIpToStr (&Ip, FALSE, IfrNvData-
> >Keyword[Index].ISCSITargetIpAddress);
> -      }
> -    } else if (SessionConfigData->IpMode == IP_MODE_IP6) {
> -      ZeroMem (IfrNvData->Keyword[Index].ISCSITargetIpAddress, sizeof
> (IfrNvData->TargetIp));
> -      if (SessionConfigData->TargetIp.v6.Addr[0] != '\0') {
> -        IP6_COPY_ADDRESS (&Ip.v6, &SessionConfigData->TargetIp);
> -        IScsiIpToStr (&Ip, TRUE, IfrNvData-
> >Keyword[Index].ISCSITargetIpAddress);
> +      IfrNvData->ISCSIBootEnableList[Index]          = SessionConfigData-
> >Enabled;
> +      IfrNvData->ISCSIIpAddressTypeList[Index]       = SessionConfigData-
> >IpMode;
> +
> +      IfrNvData->ISCSIInitiatorInfoViaDHCP[Index]    = SessionConfigData-
> >InitiatorInfoFromDhcp;
> +      IfrNvData->ISCSITargetInfoViaDHCP[Index]       = SessionConfigData-
> >TargetInfoFromDhcp;
> +      IfrNvData->ISCSIConnectRetry[Index]            = SessionConfigData-
> >ConnectRetryCount;
> +      IfrNvData->ISCSIConnectTimeout[Index]          = SessionConfigData-
> >ConnectTimeout;
> +      IfrNvData->ISCSITargetTcpPort[Index]           = SessionConfigData-
> >TargetPort;
> +
> +      if (SessionConfigData->IpMode == IP_MODE_IP4) {
> +        CopyMem (&Ip.v4, &SessionConfigData->LocalIp, sizeof
> (EFI_IPv4_ADDRESS));
> +        IScsiIpToStr (&Ip, FALSE, IfrNvData-
> >Keyword[Index].ISCSIInitiatorIpAddress);
> +        CopyMem (&Ip.v4, &SessionConfigData->SubnetMask, sizeof
> (EFI_IPv4_ADDRESS));
> +        IScsiIpToStr (&Ip, FALSE, IfrNvData-
> >Keyword[Index].ISCSIInitiatorNetmask);
> +        CopyMem (&Ip.v4, &SessionConfigData->Gateway, sizeof
> (EFI_IPv4_ADDRESS));
> +        IScsiIpToStr (&Ip, FALSE, IfrNvData-
> >Keyword[Index].ISCSIInitiatorGateway);
> +        if (SessionConfigData->TargetIp.v4.Addr[0] != '\0') {
> +          CopyMem (&Ip.v4, &SessionConfigData->TargetIp, sizeof
> (EFI_IPv4_ADDRESS));
> +          IScsiIpToStr (&Ip, FALSE, IfrNvData-
> >Keyword[Index].ISCSITargetIpAddress);
> +        }
> +      } else if (SessionConfigData->IpMode == IP_MODE_IP6) {
> +        ZeroMem (IfrNvData->Keyword[Index].ISCSITargetIpAddress, sizeof
> (IfrNvData->TargetIp));
> +        if (SessionConfigData->TargetIp.v6.Addr[0] != '\0') {
> +          IP6_COPY_ADDRESS (&Ip.v6, &SessionConfigData->TargetIp);
> +          IScsiIpToStr (&Ip, TRUE, IfrNvData-
> >Keyword[Index].ISCSITargetIpAddress);
> +        }
>        }
> -    }
> 
> -    AsciiStrToUnicodeStrS (
> -      SessionConfigData->TargetName,
> -      IfrNvData->Keyword[Index].ISCSITargetName,
> -      ISCSI_NAME_MAX_SIZE
> -      );
> -
> -    if (SessionConfigData->DnsMode) {
>        AsciiStrToUnicodeStrS (
> -        SessionConfigData->TargetUrl,
> -        IfrNvData->TargetIp,
> -        sizeof (IfrNvData->TargetIp) / sizeof (IfrNvData->TargetIp[0])
> +        SessionConfigData->TargetName,
> +        IfrNvData->Keyword[Index].ISCSITargetName,
> +        ISCSI_NAME_MAX_SIZE
>          );
> -    }
> 
> -    IScsiLunToUnicodeStr (SessionConfigData->BootLun, IfrNvData-
> >Keyword[Index].ISCSILun);
> -    IScsiConvertIsIdToString (IfrNvData->Keyword[Index].ISCSIIsId,
> SessionConfigData->IsId);
> +      if (SessionConfigData->DnsMode) {
> +        AsciiStrToUnicodeStrS (
> +          SessionConfigData->TargetUrl,
> +          IfrNvData->TargetIp,
> +          sizeof (IfrNvData->TargetIp) / sizeof (IfrNvData->TargetIp[0])
> +          );
> +      }
> 
> -    IfrNvData->ISCSIAuthenticationMethod[Index]    = Attempt-
> >AuthenticationType;
> +      IScsiLunToUnicodeStr (SessionConfigData->BootLun, IfrNvData-
> >Keyword[Index].ISCSILun);
> +      IScsiConvertIsIdToString (IfrNvData->Keyword[Index].ISCSIIsId,
> SessionConfigData->IsId);
> 
> -    if (Attempt->AuthenticationType == ISCSI_AUTH_TYPE_CHAP) {
> -      AuthConfigData      = &Attempt->AuthConfigData.CHAP;
> -      IfrNvData->ISCSIChapType[Index] = AuthConfigData->CHAPType;
> -      AsciiStrToUnicodeStrS (
> -        AuthConfigData->CHAPName,
> -        IfrNvData->Keyword[Index].ISCSIChapUsername,
> -        ISCSI_CHAP_NAME_STORAGE
> -        );
> +      IfrNvData->ISCSIAuthenticationMethod[Index]    = Attempt-
> >AuthenticationType;
> 
> -      AsciiStrToUnicodeStrS (
> -        AuthConfigData->CHAPSecret,
> -        IfrNvData->Keyword[Index].ISCSIChapSecret,
> -        ISCSI_CHAP_SECRET_STORAGE
> -        );
> +      if (Attempt->AuthenticationType == ISCSI_AUTH_TYPE_CHAP) {
> +        AuthConfigData      = &Attempt->AuthConfigData.CHAP;
> +        IfrNvData->ISCSIChapType[Index] = AuthConfigData->CHAPType;
> +        AsciiStrToUnicodeStrS (
> +          AuthConfigData->CHAPName,
> +          IfrNvData->Keyword[Index].ISCSIChapUsername,
> +          ISCSI_CHAP_NAME_STORAGE
> +          );
> 
> -      AsciiStrToUnicodeStrS (
> -        AuthConfigData->ReverseCHAPName,
> -        IfrNvData->Keyword[Index].ISCSIReverseChapUsername,
> -        ISCSI_CHAP_NAME_STORAGE
> -        );
> +        AsciiStrToUnicodeStrS (
> +          AuthConfigData->CHAPSecret,
> +          IfrNvData->Keyword[Index].ISCSIChapSecret,
> +          ISCSI_CHAP_SECRET_STORAGE
> +          );
> 
> -      AsciiStrToUnicodeStrS (
> -        AuthConfigData->ReverseCHAPSecret,
> -        IfrNvData->Keyword[Index].ISCSIReverseChapSecret,
> -        ISCSI_CHAP_SECRET_STORAGE
> -        );
> +        AsciiStrToUnicodeStrS (
> +          AuthConfigData->ReverseCHAPName,
> +          IfrNvData->Keyword[Index].ISCSIReverseChapUsername,
> +          ISCSI_CHAP_NAME_STORAGE
> +          );
> +
> +        AsciiStrToUnicodeStrS (
> +          AuthConfigData->ReverseCHAPSecret,
> +          IfrNvData->Keyword[Index].ISCSIReverseChapSecret,
> +          ISCSI_CHAP_SECRET_STORAGE
> +          );
> +      }
>      }
> -  }
> 
> -  CopyMem(IfrNvData->ISCSIDisplayAttemptList, AttemptNameList,
> ATTEMPT_NAME_LIST_SIZE);
> +    CopyMem(IfrNvData->ISCSIDisplayAttemptList, AttemptNameList,
> ATTEMPT_NAME_LIST_SIZE);
> +  }
>  }
> 
>  /**
>    Convert the IFR data to iSCSI configuration data.
> 
> @@ -1199,10 +1206,11 @@
> IScsiConvertlfrNvDataToAttemptConfigDataByKeyword (
>    EFI_IP_ADDRESS                   Gateway;
>    EFI_INPUT_KEY                    Key;
>    UINT64                           Lun;
>    EFI_STATUS                       Status;
> 
> +  Attempt = NULL;
>    ZeroMem (IScsiName, sizeof (IScsiName));
> 
>    if (OffSet < ATTEMPT_BOOTENABLE_VAR_OFFSET) {
>      return EFI_SUCCESS;
> 
> @@ -1726,11 +1734,11 @@
> IScsiConvertlfrNvDataToAttemptConfigDataByKeyword (
> 
> 
>    //
>    // Record the user configuration information in NVR.
>    //
> -
> +  ASSERT (Attempt != NULL);
>    UnicodeSPrint (mPrivate->PortString, (UINTN) ISCSI_NAME_IFR_MAX_SIZE,
> L"Attempt %d", Attempt->AttemptConfigIndex);
>    return gRT->SetVariable (
>                  mPrivate->PortString,
>                  &gEfiIScsiInitiatorNameProtocolGuid,
>                  ISCSI_CONFIG_VAR_ATTR,
> @@ -2705,10 +2713,11 @@ IScsiConfigProcessDefault (
>    UINT8                       *AttemptConfigOrder;
>    UINTN                       AttemptConfigOrderSize;
>    UINTN                       Index;
>    EFI_INPUT_KEY               Key;
> 
> +  AttemptConfigData = NULL;
>    //
>    // Is User creating a new attempt?
>    //
>    NewAttempt = FALSE;
> 
> @@ -2749,41 +2758,40 @@ IScsiConfigProcessDefault (
>                             L"InitialAttemptOrder",
>                             &gIScsiConfigGuid,
>                             &AttemptConfigOrderSize
>                             );
> 
> -    if (AttemptConfigOrder != NULL) {
> -
> -      for (Index = 0; Index < AttemptConfigOrderSize / sizeof (UINT8); Index++)
> {
> -        UnicodeSPrint (
> -          mPrivate->PortString,
> -          (UINTN) ISCSI_NAME_IFR_MAX_SIZE,
> -          L"Attempt %d",
> -          (UINTN) AttemptConfigOrder[Index]
> -          );
> -        GetVariable2 (
> -                     mPrivate->PortString,
> -                     &gEfiIScsiInitiatorNameProtocolGuid,
> -                     (VOID**)&AttemptConfigData,
> -                     NULL
> -                     );
> -        if (AttemptConfigData == NULL || AttemptConfigData->Actived ==
> ISCSI_ACTIVE_ENABLED) {
> -          continue;
> -        }
> -
> -        break;
> -      }
> +    ASSERT (AttemptConfigOrder != NULL);
> 
> -      if (Index > PcdGet8 (PcdMaxIScsiAttemptNumber)) {
> -        CreatePopUp (
> -          EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
> -          &Key,
> -          L"Can not create more attempts, Please configure the
> PcdMaxIScsiAttemptNumber if needed!",
> -          NULL
> -          );
> -        return EFI_UNSUPPORTED;
> +    for (Index = 0; Index < AttemptConfigOrderSize / sizeof (UINT8); Index++)
> {
> +      UnicodeSPrint (
> +        mPrivate->PortString,
> +        (UINTN) ISCSI_NAME_IFR_MAX_SIZE,
> +        L"Attempt %d",
> +        (UINTN) AttemptConfigOrder[Index]
> +        );
> +      GetVariable2 (
> +                   mPrivate->PortString,
> +                   &gEfiIScsiInitiatorNameProtocolGuid,
> +                   (VOID**)&AttemptConfigData,
> +                   NULL
> +                   );
> +      if (AttemptConfigData == NULL || AttemptConfigData->Actived ==
> ISCSI_ACTIVE_ENABLED) {
> +        continue;
>        }
> +
> +      break;
> +    }
> +
> +    if (Index > PcdGet8 (PcdMaxIScsiAttemptNumber)) {
> +      CreatePopUp (
> +        EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
> +        &Key,
> +        L"Can not create more attempts, Please configure the
> PcdMaxIScsiAttemptNumber if needed!",
> +        NULL
> +        );
> +      return EFI_UNSUPPORTED;
>      }
> 
>      if (AttemptConfigOrder != NULL) {
>        FreePool (AttemptConfigOrder);
>      }
> @@ -2796,10 +2804,11 @@ IScsiConfigProcessDefault (
>        NicInfo->HwAddressSize,
>        NicInfo->VlanId,
>        MacString
>        );
> 
> +    ASSERT (AttemptConfigData != NULL);
>      UnicodeStrToAsciiStrS (MacString, AttemptConfigData->MacString, sizeof
> (AttemptConfigData->MacString));
>      AttemptConfigData->NicIndex = NicIndex;
>      AttemptConfigData->Actived = ISCSI_ACTIVE_ENABLED;
> 
>      //
> @@ -3126,10 +3135,11 @@ IScsiFormRouteConfig (
> 
>    Index   = 0;
>    Index2  = 0;
>    NicInfo = NULL;
>    AttemptList = NULL;
> +  Status = EFI_SUCCESS;
> 
>    if (This == NULL || Configuration == NULL || Progress == NULL) {
>      return EFI_INVALID_PARAMETER;
>    }
> 
> @@ -3182,18 +3192,27 @@ IScsiFormRouteConfig (
>          NULL
>          );
>        goto Exit;
>      }
>    } else {
> -    Status = gIScsiInitiatorName.Get (&gIScsiInitiatorName, &BufferSize,
> InitiatorName);
> +    Status = IScsiGetValue (Configuration, L"&OFFSET=", &OffSet);
>      if (EFI_ERROR (Status)) {
> -      CreatePopUp (
> -        EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
> -        &Key,
> -        L"Error: please configure iSCSI initiator name first!",
> -        NULL
> -        );
> +      goto Exit;
> +    }
> +
> +    if (OffSet >= ATTEMPT_MAC_ADDR_VAR_OFFSET) {
> +      Status = gIScsiInitiatorName.Get (&gIScsiInitiatorName, &BufferSize,
> InitiatorName);
> +      if (EFI_ERROR (Status)) {
> +        CreatePopUp (
> +          EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
> +          &Key,
> +          L"Error: please configure iSCSI initiator name first!",
> +          NULL
> +          );
> +        goto Exit;
> +      }
> +    } else {
>        goto Exit;
>      }
> 
>      if (IfrNvData->ISCSIAddAttemptList[0] != L'\0') {
>        Status =IScsiGetAttemptIndexList (IfrNvData->ISCSIAddAttemptList,
> IfrNvData->AddAttemptList, TRUE);
> @@ -3288,25 +3307,19 @@ IScsiFormRouteConfig (
>          Status = EFI_NOT_FOUND;
>          goto Exit;
>        }
> 
>      } else {
> -      Status = IScsiGetValue (Configuration, L"&OFFSET=", &OffSet);
> -      if (EFI_ERROR (Status)) {
> -        goto Exit;
> -      }
>        Status = IScsiConvertlfrNvDataToAttemptConfigDataByKeyword
> (IfrNvData, OffSet);
>        if (EFI_ERROR (Status)) {
>          goto Exit;
>        }
>      }
>    }
> 
>    IScsiConfigUpdateAttempt ();
> 
> -  Status = EFI_SUCCESS;
> -
>  Exit:
>    if (InitiatorName != NULL) {
>      FreePool (InitiatorName);
>    }
> 
> diff --git a/NetworkPkg/IScsiDxe/IScsiConfig.h
> b/NetworkPkg/IScsiDxe/IScsiConfig.h
> index 21db3c3..7793d52 100644
> --- a/NetworkPkg/IScsiDxe/IScsiConfig.h
> +++ b/NetworkPkg/IScsiDxe/IScsiConfig.h
> @@ -29,11 +29,10 @@ extern ISCSI_FORM_CALLBACK_INFO
> *mCallbackInfo;
>    ((UINT16) ((UINTN) &(((ISCSI_CONFIG_IFR_NVDATA *) 0)->Field)))
> 
>  #define QUESTION_ID(Field)   \
>    ((UINT16) (VAR_OFFSET (Field) + CONFIG_OPTION_OFFSET))
> 
> -
>  #define DYNAMIC_ONE_OF_VAR_OFFSET           VAR_OFFSET  (Enabled)
>  #define DYNAMIC_ORDERED_LIST_QUESTION_ID    QUESTION_ID
> (DynamicOrderedList)
>  #define DYNAMIC_ORDERED_LIST_VAR_OFFSET     VAR_OFFSET
> (DynamicOrderedList)
>  #define ATTEMPT_DEL_QUESTION_ID             QUESTION_ID
> (DeleteAttemptList)
>  #define ATTEMPT_DEL_VAR_OFFSET              VAR_OFFSET
> (DeleteAttemptList)
> @@ -41,10 +40,11 @@ extern ISCSI_FORM_CALLBACK_INFO
> *mCallbackInfo;
>  #define ATTEMPT_ADD_VAR_OFFSET              VAR_OFFSET  (AddAttemptList)
> 
>  //
>  // Define QuestionId and OffSet for Keywords.
>  //
> +#define ATTEMPT_MAC_ADDR_VAR_OFFSET                  VAR_OFFSET
> (ISCSIMacAddr)
>  #define ATTEMPT_ATTEMPT_NAME_QUESTION_ID             QUESTION_ID
> (ISCSIAttemptName)
>  #define ATTEMPT_ATTEMPT_NAME_VAR_OFFSET              VAR_OFFSET
> (ISCSIAttemptName)
>  #define ATTEMPT_BOOTENABLE_QUESTION_ID               QUESTION_ID
> (ISCSIBootEnableList)
>  #define ATTEMPT_BOOTENABLE_VAR_OFFSET                VAR_OFFSET
> (ISCSIBootEnableList)
>  #define ATTEMPT_ADDRESS_TYPE_QUESTION_ID             QUESTION_ID
> (ISCSIIpAddressTypeList)
> --
> 1.9.5.msysgit.1



      reply	other threads:[~2017-02-28  3:02 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-27  9:10 [PATCH V2] NetworkPkg: Add check logic for some variable in iSCSI driver Zhang Lubo
2017-02-28  3:02 ` Wu, Jiaxin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=895558F6EA4E3B41AC93A00D163B72741629EAE8@SHSMSX103.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox