Fix the TPL issue to not raise TPL to TPL_NOTIFY in disk cache module.
authorqhuang8 <qhuang8@65ba2f78-6c18-0410-a7b4-885970cf29fa>
Thu, 15 Mar 2007 05:45:15 +0000 (05:45 +0000)
committerqhuang8 <qhuang8@65ba2f78-6c18-0410-a7b4-885970cf29fa>
Thu, 15 Mar 2007 05:45:15 +0000 (05:45 +0000)
git-svn-id: https://fat-driver2.tianocore.org/svn/fat-driver2/trunk@17 65ba2f78-6c18-0410-a7b4-885970cf29fa

EnhancedFat/Dxe/DiskCache.c
EnhancedFat/EnhancedFat.fpd

index 3ef47ba..e796cbc 100644 (file)
@@ -65,17 +65,12 @@ Returns:
   DISK_CACHE  *DiskCache;\r
   CACHE_TAG   *CacheTag;\r
   UINT8       *BaseAddress;\r
-  EFI_TPL     EntryTpl;\r
 \r
   DiskCache     = &Volume->DiskCache[CACHE_DATA];\r
   BaseAddress   = DiskCache->CacheBase;\r
   GroupMask     = DiskCache->GroupMask;\r
   PageAlignment = DiskCache->PageAlignment;\r
   PageSize      = 1 << PageAlignment;\r
-  //\r
-  // Make Cache Update a critical section\r
-  //\r
-  EntryTpl = gBS->RaiseTPL (EFI_TPL_NOTIFY);\r
 \r
   for (PageNo = StartPageNo; PageNo < EndPageNo; PageNo++) {\r
     GroupNo   = PageNo & GroupMask;\r
@@ -102,10 +97,6 @@ Returns:
       }\r
     }\r
   }\r
-  //\r
-  // Exit Cache Update critical section\r
-  //\r
-  gBS->RestoreTPL (EntryTpl);\r
 }\r
 \r
 STATIC\r
@@ -215,7 +206,6 @@ Returns:
 {\r
   EFI_STATUS  Status;\r
   UINTN       OldPageNo;\r
-  EFI_TPL     EntryTpl;\r
 \r
   OldPageNo = CacheTag->PageNo;\r
   if (CacheTag->RealSize > 0 && OldPageNo == PageNo) {\r
@@ -224,10 +214,6 @@ Returns:
     //\r
     return EFI_SUCCESS;\r
   }\r
-  //\r
-  // Make Cache Update a critical section\r
-  //\r
-  EntryTpl = gBS->RaiseTPL (EFI_TPL_NOTIFY);\r
 \r
   //\r
   // Write dirty cache page back to disk\r
@@ -235,7 +221,7 @@ Returns:
   if (CacheTag->RealSize > 0 && CacheTag->Dirty) {\r
     Status = FatExchangeCachePage (Volume, CacheDataType, WRITE_DISK, CacheTag);\r
     if (EFI_ERROR (Status)) {\r
-      goto Done;\r
+      return Status;\r
     }\r
   }\r
   //\r
@@ -244,11 +230,6 @@ Returns:
   CacheTag->PageNo  = PageNo;\r
   Status            = FatExchangeCachePage (Volume, CacheDataType, READ_DISK, CacheTag);\r
 \r
-Done:\r
-  //\r
-  // Exit Cache Update critical section\r
-  //\r
-  gBS->RestoreTPL (EntryTpl);\r
   return Status;\r
 }\r
 \r
@@ -461,13 +442,8 @@ Returns:
   UINTN           GroupMask;\r
   DISK_CACHE      *DiskCache;\r
   CACHE_TAG       *CacheTag;\r
-  EFI_TPL         EntryTpl;\r
 \r
   Status = EFI_SUCCESS;\r
-  //\r
-  // Make Cache Update a critical section\r
-  //\r
-  EntryTpl = gBS->RaiseTPL (EFI_TPL_NOTIFY);\r
 \r
   for (CacheDataType = 0; CacheDataType < CACHE_MAX_TYPE; CacheDataType++) {\r
     DiskCache = &Volume->DiskCache[CacheDataType];\r
@@ -484,7 +460,7 @@ Returns:
           //\r
           Status = FatExchangeCachePage (Volume, CacheDataType, WRITE_DISK, CacheTag);\r
           if (EFI_ERROR (Status)) {\r
-            goto Done;\r
+            return Status;\r
           }\r
         }\r
       }\r
@@ -493,12 +469,6 @@ Returns:
     }\r
   }\r
 \r
-Done:\r
-  //\r
-  // Exit Cache Update critical section\r
-  //\r
-  gBS->RestoreTPL (EntryTpl);\r
-\r
   return Status;\r
 }\r
 \r
index 70ef59e..4565f20 100644 (file)
@@ -120,7 +120,7 @@ met:
           <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
           <DatumType>UINT8</DatumType>\r
           <MaxDatumSize>1</MaxDatumSize>\r
-          <Value>0x0f</Value>\r
+          <Value>0x0</Value>\r
         </PcdData>\r
         <PcdData ItemType="FIXED_AT_BUILD">\r
           <C_Name>PcdDebugClearMemoryValue</C_Name>\r
@@ -160,9 +160,21 @@ met:
           <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
           <DatumType>UINT8</DatumType>\r
           <MaxDatumSize>1</MaxDatumSize>\r
-          <Value>0x06</Value>\r
+          <Value>0x0</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FIXED_AT_BUILD">\r
+          <C_Name>PcdUefiLibMaxPrintBufferSize</C_Name>\r
+          <Token>0x101</Token>\r
+          <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>UINT32</DatumType>\r
+          <MaxDatumSize>4</MaxDatumSize>\r
+          <Value>320</Value>\r
         </PcdData>\r
       </PcdBuildDefinition>\r
+      <ModuleSaBuildOptions>\r
+        <FvBinding>NULL</FvBinding>\r
+        <FfsFormatKey>BS_DRIVER</FfsFormatKey>\r
+      </ModuleSaBuildOptions>\r
     </ModuleSA>\r
     <!--Mod: Enhanced Fat Source Module Type: UEFI_DRIVER Path: EnhancedFat\Dxe\Fat.msa-->\r
     <ModuleSA ModuleGuid="961578FE-B6B7-44c3-AF35-6BC705CD2B1F" ModuleVersion="1.0" PackageGuid="8EA68A2C-99CB-4332-85C6-DD5864EAA674" PackageVersion="1.0" SupArchList="X64">\r
@@ -245,7 +257,7 @@ met:
           <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
           <DatumType>UINT8</DatumType>\r
           <MaxDatumSize>1</MaxDatumSize>\r
-          <Value>0x0f</Value>\r
+          <Value>0x0</Value>\r
         </PcdData>\r
         <PcdData ItemType="FIXED_AT_BUILD">\r
           <C_Name>PcdDebugClearMemoryValue</C_Name>\r
@@ -269,9 +281,21 @@ met:
           <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
           <DatumType>UINT8</DatumType>\r
           <MaxDatumSize>1</MaxDatumSize>\r
-          <Value>0x06</Value>\r
+          <Value>0x0</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FIXED_AT_BUILD">\r
+          <C_Name>PcdUefiLibMaxPrintBufferSize</C_Name>\r
+          <Token>0x101</Token>\r
+          <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>UINT32</DatumType>\r
+          <MaxDatumSize>4</MaxDatumSize>\r
+          <Value>320</Value>\r
         </PcdData>\r
       </PcdBuildDefinition>\r
+      <ModuleSaBuildOptions>\r
+        <FvBinding>NULL</FvBinding>\r
+        <FfsFormatKey>BS_DRIVER</FfsFormatKey>\r
+      </ModuleSaBuildOptions>\r
     </ModuleSA>\r
     <!--Mod: Enhanced Fat Source Module Type: UEFI_DRIVER Path: EnhancedFat\Dxe\Fat.msa-->\r
     <ModuleSA ModuleGuid="961578FE-B6B7-44c3-AF35-6BC705CD2B1F" ModuleVersion="1.0" PackageGuid="8EA68A2C-99CB-4332-85C6-DD5864EAA674" PackageVersion="1.0" SupArchList="IPF">\r
@@ -338,7 +362,7 @@ met:
           <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
           <DatumType>UINT8</DatumType>\r
           <MaxDatumSize>1</MaxDatumSize>\r
-          <Value>0x0f</Value>\r
+          <Value>0x0</Value>\r
         </PcdData>\r
         <PcdData ItemType="FIXED_AT_BUILD">\r
           <C_Name>PcdDebugClearMemoryValue</C_Name>\r
@@ -362,7 +386,7 @@ met:
           <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
           <DatumType>UINT8</DatumType>\r
           <MaxDatumSize>1</MaxDatumSize>\r
-          <Value>0x06</Value>\r
+          <Value>0x0</Value>\r
         </PcdData>\r
         <PcdData ItemType="FEATURE_FLAG">\r
           <C_Name>PcdComponentNameDisable</C_Name>\r
@@ -380,7 +404,19 @@ met:
           <MaxDatumSize>1</MaxDatumSize>\r
           <Value>FALSE</Value>\r
         </PcdData>\r
+        <PcdData ItemType="FIXED_AT_BUILD">\r
+          <C_Name>PcdUefiLibMaxPrintBufferSize</C_Name>\r
+          <Token>0x101</Token>\r
+          <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>UINT32</DatumType>\r
+          <MaxDatumSize>4</MaxDatumSize>\r
+          <Value>320</Value>\r
+        </PcdData>\r
       </PcdBuildDefinition>\r
+      <ModuleSaBuildOptions>\r
+        <FvBinding>NULL</FvBinding>\r
+        <FfsFormatKey>BS_DRIVER</FfsFormatKey>\r
+      </ModuleSaBuildOptions>\r
     </ModuleSA>\r
     <!--Mod: Enhanced Fat Source Module Type: UEFI_DRIVER Path: EnhancedFat\Dxe\Fat.msa-->\r
     <ModuleSA ModuleGuid="961578FE-B6B7-44c3-AF35-6BC705CD2B1F" ModuleVersion="1.0" PackageGuid="8EA68A2C-99CB-4332-85C6-DD5864EAA674" PackageVersion="1.0" SupArchList="EBC">\r
@@ -431,7 +467,7 @@ met:
           <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
           <DatumType>UINT8</DatumType>\r
           <MaxDatumSize>1</MaxDatumSize>\r
-          <Value>0x0f</Value>\r
+          <Value>0x0</Value>\r
         </PcdData>\r
         <PcdData ItemType="FIXED_AT_BUILD">\r
           <C_Name>PcdDebugClearMemoryValue</C_Name>\r
@@ -487,9 +523,21 @@ met:
           <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
           <DatumType>UINT8</DatumType>\r
           <MaxDatumSize>1</MaxDatumSize>\r
-          <Value>0x06</Value>\r
+          <Value>0x0</Value>\r
+        </PcdData>\r
+        <PcdData ItemType="FIXED_AT_BUILD">\r
+          <C_Name>PcdUefiLibMaxPrintBufferSize</C_Name>\r
+          <Token>0x101</Token>\r
+          <TokenSpaceGuidCName>gEfiMdePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+          <DatumType>UINT32</DatumType>\r
+          <MaxDatumSize>4</MaxDatumSize>\r
+          <Value>320</Value>\r
         </PcdData>\r
       </PcdBuildDefinition>\r
+      <ModuleSaBuildOptions>\r
+        <FvBinding>NULL</FvBinding>\r
+        <FfsFormatKey>BS_DRIVER</FfsFormatKey>\r
+      </ModuleSaBuildOptions>\r
     </ModuleSA>\r
   </FrameworkModules>\r
   <BuildOptions>\r