On Sun, Aug 25, 2019 at 10:33:15PM -0500, Gustavo A. R. Silva wrote: > Hi all, > > On 8/19/19 9:16 AM, tip-bot for Kirill A. Shutemov wrote: > [..] > > > > diff --git a/arch/x86/boot/compressed/pgtable_64.c b/arch/x86/boot/compressed/pgtable_64.c > > index 5f2d03067ae5..2faddeb0398a 100644 > > --- a/arch/x86/boot/compressed/pgtable_64.c > > +++ b/arch/x86/boot/compressed/pgtable_64.c > > @@ -72,6 +72,8 @@ static unsigned long find_trampoline_placement(void) > > > > /* Find the first usable memory region under bios_start. */ > > for (i = boot_params->e820_entries - 1; i >= 0; i--) { > > + unsigned long new; > > + > > entry = &boot_params->e820_table[i]; > > > > /* Skip all entries above bios_start. */ > > @@ -84,15 +86,20 @@ static unsigned long find_trampoline_placement(void) > > > > /* Adjust bios_start to the end of the entry if needed. */ > > if (bios_start > entry->addr + entry->size) > > Notice that if this condition happens to be false, we end up with an > uninitialized variable *new*. Yap, good catch. > What would be the right value to assign to *new* at declaration under > this condition? Looking at the changed flow of the loop, how we use new instead of bios_start and how we assign new back to bios_start, I think we should do: unsigned long new = bios_start; at the beginning... -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.
![]() |