x86/kaslr: Eliminate 'start_orig' local variable from __process_mem_region()
Set the region.size within the loop, which removes the need for start_orig. Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu> Signed-off-by: Ingo Molnar <mingo@kernel.org> Link: https://lore.kernel.org/r/20200728225722.67457-8-nivedita@alum.mit.edu
This commit is contained in:
committed by
Ingo Molnar
parent
3f9412c730
commit
ee435ee649
@@ -623,7 +623,7 @@ static void __process_mem_region(struct mem_vector *entry,
|
|||||||
unsigned long image_size)
|
unsigned long image_size)
|
||||||
{
|
{
|
||||||
struct mem_vector region, overlap;
|
struct mem_vector region, overlap;
|
||||||
unsigned long start_orig, end;
|
unsigned long end;
|
||||||
|
|
||||||
/* Ignore entries entirely below our minimum. */
|
/* Ignore entries entirely below our minimum. */
|
||||||
if (entry->start + entry->size < minimum)
|
if (entry->start + entry->size < minimum)
|
||||||
@@ -635,12 +635,9 @@ static void __process_mem_region(struct mem_vector *entry,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
region.start = entry->start;
|
region.start = entry->start;
|
||||||
region.size = end - entry->start;
|
|
||||||
|
|
||||||
/* Give up if slot area array is full. */
|
/* Give up if slot area array is full. */
|
||||||
while (slot_area_index < MAX_SLOT_AREA) {
|
while (slot_area_index < MAX_SLOT_AREA) {
|
||||||
start_orig = region.start;
|
|
||||||
|
|
||||||
/* Potentially raise address to minimum location. */
|
/* Potentially raise address to minimum location. */
|
||||||
if (region.start < minimum)
|
if (region.start < minimum)
|
||||||
region.start = minimum;
|
region.start = minimum;
|
||||||
@@ -653,7 +650,7 @@ static void __process_mem_region(struct mem_vector *entry,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Reduce size by any delta from the original address. */
|
/* Reduce size by any delta from the original address. */
|
||||||
region.size -= region.start - start_orig;
|
region.size = end - region.start;
|
||||||
|
|
||||||
/* Return if region can't contain decompressed kernel */
|
/* Return if region can't contain decompressed kernel */
|
||||||
if (region.size < image_size)
|
if (region.size < image_size)
|
||||||
@@ -679,7 +676,6 @@ static void __process_mem_region(struct mem_vector *entry,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Clip off the overlapping region and start over. */
|
/* Clip off the overlapping region and start over. */
|
||||||
region.size -= overlap.start - region.start + overlap.size;
|
|
||||||
region.start = overlap.start + overlap.size;
|
region.start = overlap.start + overlap.size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user