|
@@ -22,6 +22,7 @@
|
|
#include <asm/machdep.h>
|
|
#include <asm/machdep.h>
|
|
#include <asm/prom.h>
|
|
#include <asm/prom.h>
|
|
#include <asm/sparsemem.h>
|
|
#include <asm/sparsemem.h>
|
|
|
|
+#include <asm/fadump.h>
|
|
#include "pseries.h"
|
|
#include "pseries.h"
|
|
|
|
|
|
static bool rtas_hp_event;
|
|
static bool rtas_hp_event;
|
|
@@ -406,6 +407,12 @@ static bool lmb_is_removable(struct of_drconf_cell *lmb)
|
|
scns_per_block = block_sz / MIN_MEMORY_BLOCK_SIZE;
|
|
scns_per_block = block_sz / MIN_MEMORY_BLOCK_SIZE;
|
|
phys_addr = lmb->base_addr;
|
|
phys_addr = lmb->base_addr;
|
|
|
|
|
|
|
|
+#ifdef CONFIG_FA_DUMP
|
|
|
|
+ /* Don't hot-remove memory that falls in fadump boot memory area */
|
|
|
|
+ if (is_fadump_boot_memory_area(phys_addr, block_sz))
|
|
|
|
+ return false;
|
|
|
|
+#endif
|
|
|
|
+
|
|
for (i = 0; i < scns_per_block; i++) {
|
|
for (i = 0; i < scns_per_block; i++) {
|
|
pfn = PFN_DOWN(phys_addr);
|
|
pfn = PFN_DOWN(phys_addr);
|
|
if (!pfn_present(pfn))
|
|
if (!pfn_present(pfn))
|