From c34a5aab53d2fd87204a00bb93cd41bb6dc4d15b Mon Sep 17 00:00:00 2001
From: Star Zeng <star.zeng@intel.com>
Date: Mon, 20 Nov 2017 15:44:24 +0800
Subject: [PATCH] MdeModulePkg EhciPei: Minor refinement about IOMMU

This patch is following 2c656af04d7f.
1. Fix typo "XHC" to "EHC".
2. Reinitialize Request(Phy/Map) and Data(Phy/Map)
in Urb, otherwise the last time value of them may
be used in error handling when error happens.

Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
---
 MdeModulePkg/Bus/Pci/EhciPei/EhcPeim.h |  2 +-
 MdeModulePkg/Bus/Pci/EhciPei/EhciUrb.c | 13 ++++++-------
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/MdeModulePkg/Bus/Pci/EhciPei/EhcPeim.h b/MdeModulePkg/Bus/Pci/EhciPei/EhcPeim.h
index 279407475b..715a5ab1c1 100644
--- a/MdeModulePkg/Bus/Pci/EhciPei/EhcPeim.h
+++ b/MdeModulePkg/Bus/Pci/EhciPei/EhcPeim.h
@@ -99,7 +99,7 @@ struct _PEI_USB2_HC_DEV {
   EDKII_IOMMU_PPI                     *IoMmu;
   EFI_PEI_PPI_DESCRIPTOR              PpiDescriptor;
   //
-  // EndOfPei callback is used to stop the XHC DMA operation
+  // EndOfPei callback is used to stop the EHC DMA operation
   // after exit PEI phase.
   //
   EFI_PEI_NOTIFY_DESCRIPTOR           EndOfPeiNotifyList;
diff --git a/MdeModulePkg/Bus/Pci/EhciPei/EhciUrb.c b/MdeModulePkg/Bus/Pci/EhciPei/EhciUrb.c
index 3dadcd60b6..baacf5d560 100644
--- a/MdeModulePkg/Bus/Pci/EhciPei/EhciUrb.c
+++ b/MdeModulePkg/Bus/Pci/EhciPei/EhciUrb.c
@@ -576,7 +576,12 @@ EhcCreateUrb (
   if (Urb->Qh == NULL) {
     goto ON_ERROR;
   }
-  
+
+  Urb->RequestPhy = NULL;
+  Urb->RequestMap = NULL;
+  Urb->DataPhy  = NULL;
+  Urb->DataMap  = NULL;
+
   //
   // Map the request and user data
   //
@@ -591,9 +596,6 @@ EhcCreateUrb (
 
     Urb->RequestPhy = (VOID *) ((UINTN) PhyAddr);
     Urb->RequestMap = Map;
-  } else {
-    Urb->RequestPhy = NULL;
-    Urb->RequestMap = NULL;
   }
 
   if (Data != NULL) {
@@ -613,9 +615,6 @@ EhcCreateUrb (
 
     Urb->DataPhy  = (VOID *) ((UINTN) PhyAddr);
     Urb->DataMap  = Map;
-  } else {
-    Urb->DataPhy  = NULL;
-    Urb->DataMap  = NULL;
   }
 
   Status = EhcCreateQtds (Ehc, Urb);