Blame SOURCES/0191-efi-really-mark-memory-of-unknown-type-as-reserved.patch

4fe85b
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
4fe85b
From: Andrei Borzenkov <arvidjaar@gmail.com>
4fe85b
Date: Thu, 26 Nov 2015 19:50:42 +0300
4fe85b
Subject: [PATCH] efi: really mark memory of unknown type as reserved
4fe85b
4fe85b
9be4c45dbe3c877d1f4856e99ee15133c6cd2261 added switch case between
4fe85b
fall through cases, causing all memory regions of unknown type to be
4fe85b
marked as available.
4fe85b
4fe85b
Move default case into its own block and add explicit FALLTHROUGH
4fe85b
annotation.
4fe85b
4fe85b
Reported by Elliott, Robert (Persistent Memory) <elliott@hpe.com>
4fe85b
4fe85b
(cherry picked from commit 3d2c8048da7db334fd6d57b27304ac765fd4cd67)
4fe85b
4fe85b
Resolves: rhbz#1288608
4fe85b
---
4fe85b
 grub-core/mmap/efi/mmap.c | 13 +++++++++----
4fe85b
 1 file changed, 9 insertions(+), 4 deletions(-)
4fe85b
4fe85b
diff --git a/grub-core/mmap/efi/mmap.c b/grub-core/mmap/efi/mmap.c
4fe85b
index a77efe81d0c..900a4d6598c 100644
4fe85b
--- a/grub-core/mmap/efi/mmap.c
4fe85b
+++ b/grub-core/mmap/efi/mmap.c
4fe85b
@@ -73,6 +73,7 @@ grub_efi_mmap_iterate (grub_memory_hook_t hook, void *hook_data,
4fe85b
 		    GRUB_MEMORY_AVAILABLE, hook_data);
4fe85b
 	      break;
4fe85b
 	    }
4fe85b
+	  /* FALLTHROUGH */
4fe85b
 	case GRUB_EFI_RUNTIME_SERVICES_CODE:
4fe85b
 	  hook (desc->physical_start, desc->num_pages * 4096,
4fe85b
 		GRUB_MEMORY_CODE, hook_data);
4fe85b
@@ -83,10 +84,6 @@ grub_efi_mmap_iterate (grub_memory_hook_t hook, void *hook_data,
4fe85b
 		GRUB_MEMORY_BADRAM, hook_data);
4fe85b
 	  break;
4fe85b
 
4fe85b
-	default:
4fe85b
-	  grub_printf ("Unknown memory type %d, considering reserved\n",
4fe85b
-		       desc->type);
4fe85b
-
4fe85b
 	case GRUB_EFI_BOOT_SERVICES_DATA:
4fe85b
 	  if (!avoid_efi_boot_services)
4fe85b
 	    {
4fe85b
@@ -94,6 +91,7 @@ grub_efi_mmap_iterate (grub_memory_hook_t hook, void *hook_data,
4fe85b
 		    GRUB_MEMORY_AVAILABLE, hook_data);
4fe85b
 	      break;
4fe85b
 	    }
4fe85b
+	  /* FALLTHROUGH */
4fe85b
 	case GRUB_EFI_RESERVED_MEMORY_TYPE:
4fe85b
 	case GRUB_EFI_RUNTIME_SERVICES_DATA:
4fe85b
 	case GRUB_EFI_MEMORY_MAPPED_IO:
4fe85b
@@ -119,6 +117,13 @@ grub_efi_mmap_iterate (grub_memory_hook_t hook, void *hook_data,
4fe85b
 	  hook (desc->physical_start, desc->num_pages * 4096,
4fe85b
 		GRUB_MEMORY_NVS, hook_data);
4fe85b
 	  break;
4fe85b
+
4fe85b
+	default:
4fe85b
+	  grub_printf ("Unknown memory type %d, considering reserved\n",
4fe85b
+		       desc->type);
4fe85b
+	  hook (desc->physical_start, desc->num_pages * 4096,
4fe85b
+		GRUB_MEMORY_RESERVED, hook_data);
4fe85b
+	  break;
4fe85b
 	}
4fe85b
     }
4fe85b