fadump.c (0ea8a56de21be24cb79abb03dee79aabcd60a316) fadump.c (c9118e6c37bff9ade90b638207a6e0db676ee6a9)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Firmware Assisted dump: A robust mechanism to get reliable kernel crash
4 * dump with assistance from firmware. This approach does not use kexec,
5 * instead firmware assists in booting the kdump kernel while preserving
6 * memory contents. The most of the code implementation has been adapted
7 * from phyp assisted dump implementation written by Linas Vepstas and
8 * Manish Ahuja

--- 1228 unchanged lines hidden (view full) ---

1237 }
1238}
1239
1240/*
1241 * Skip memory holes and free memory that was actually reserved.
1242 */
1243static void fadump_release_reserved_area(u64 start, u64 end)
1244{
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Firmware Assisted dump: A robust mechanism to get reliable kernel crash
4 * dump with assistance from firmware. This approach does not use kexec,
5 * instead firmware assists in booting the kdump kernel while preserving
6 * memory contents. The most of the code implementation has been adapted
7 * from phyp assisted dump implementation written by Linas Vepstas and
8 * Manish Ahuja

--- 1228 unchanged lines hidden (view full) ---

1237 }
1238}
1239
1240/*
1241 * Skip memory holes and free memory that was actually reserved.
1242 */
1243static void fadump_release_reserved_area(u64 start, u64 end)
1244{
1245 u64 tstart, tend, spfn, epfn;
1246 struct memblock_region *reg;
1245 u64 tstart, tend, spfn, epfn, reg_spfn, reg_epfn, i;
1247
1248 spfn = PHYS_PFN(start);
1249 epfn = PHYS_PFN(end);
1246
1247 spfn = PHYS_PFN(start);
1248 epfn = PHYS_PFN(end);
1250 for_each_memblock(memory, reg) {
1251 tstart = max_t(u64, spfn, memblock_region_memory_base_pfn(reg));
1252 tend = min_t(u64, epfn, memblock_region_memory_end_pfn(reg));
1249
1250 for_each_mem_pfn_range(i, MAX_NUMNODES, &reg_spfn, &reg_epfn, NULL) {
1251 tstart = max_t(u64, spfn, reg_spfn);
1252 tend = min_t(u64, epfn, reg_epfn);
1253
1253 if (tstart < tend) {
1254 fadump_free_reserved_memory(tstart, tend);
1255
1256 if (tend == epfn)
1257 break;
1258
1259 spfn = tend;
1260 }

--- 451 unchanged lines hidden ---
1254 if (tstart < tend) {
1255 fadump_free_reserved_memory(tstart, tend);
1256
1257 if (tend == epfn)
1258 break;
1259
1260 spfn = tend;
1261 }

--- 451 unchanged lines hidden ---