diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 8ad3a29eb72850079eb9f22c78f3ae071fc59919..5617cc41244446f6b3065922bf0a0147c3b61394 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -441,6 +441,8 @@ static struct page *kimage_alloc_crash_control_pages(struct kimage *image, while (hole_end <= crashk_res.end) { unsigned long i; + cond_resched(); + if (hole_end > KEXEC_CRASH_CONTROL_MEMORY_LIMIT) break; /* See if I overlap any of the segments */