RE: [PATCH V2 2/3] x86/efi: Fix EFI memory map leaks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > -static void __init efi_clean_memmap(void)
> > +void __init efi_clean_memmap(void)
> >   {
> > -	efi_memory_desc_t *out = efi.memmap.map;
> > -	const efi_memory_desc_t *in = out;
> > -	const efi_memory_desc_t *end = efi.memmap.map_end;
> > -	int i, n_removal;
> > -
> > -	for (i = n_removal = 0; in < end; i++) {
> > -		if (efi_memmap_entry_valid(in, i)) {
> > -			if (out != in)
> > -				memcpy(out, in, efi.memmap.desc_size);
> > -			out = (void *)out + efi.memmap.desc_size;
> > -		} else {
> > +	void *out;
> > +	efi_memory_desc_t *md;
> > +	unsigned int i = 0, n_removal = 0;
> 
> Perhaps we can use 'unsigned int i = n_removal = 0;', which appears more
> readable.

Hmm.. that actually throws an compilation error saying that "n_removal is undeclared".
So, let's stick with unsigned int i = 0, n_removal = 0;

> 
> > +	struct efi_memory_map new_memmap;
> > +
> > +	for_each_efi_memory_desc(md) {
> > +		if (!efi_memmap_entry_valid(md, i))
> >   			n_removal++;
> > -		}
> > -		in = (void *)in + efi.memmap.desc_size;
> >   	}
> >
> > -	if (n_removal > 0) {
> > -		u64 size = efi.memmap.nr_map - n_removal;
> > +	if (n_removal == 0)
> 
> and 'if (!n_removal)' above, to stay in sync with the rest of the code in this file.

Sure! Thanks for the catch. I will fix it.

Regards,
Sai




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux