Messages in this thread | | | Date | Fri, 18 Jan 2008 00:24:48 +0100 | From | "Andreas Herrmann3" <> | Subject | Re: [patch 0/4] x86: PAT followup - Incremental changes and bug fixes |
| |
On Thu, Jan 17, 2008 at 03:04:10PM -0800, Venki Pallipadi wrote: > > Below is another potential fix for the problem here. Going through ACPI > ioremap usages, we found at one place the mapping is cached for possible > optimization reason and not unmapped later. Patch below always unmaps > ioremap at this place in ACPICA. > > Thanks, > Venki > > > Index: linux-2.6.git/drivers/acpi/executer/exregion.c > =================================================================== > --- linux-2.6.git.orig/drivers/acpi/executer/exregion.c 2008-01-17 03:18:39.000000000 -0800 > +++ linux-2.6.git/drivers/acpi/executer/exregion.c 2008-01-17 07:34:33.000000000 -0800 > @@ -48,6 +48,8 @@ > #define _COMPONENT ACPI_EXECUTER > ACPI_MODULE_NAME("exregion") > > +static int ioremap_cache; > + > /******************************************************************************* > * > * FUNCTION: acpi_ex_system_memory_space_handler > @@ -249,6 +251,13 @@ > break; > } > > + if (!ioremap_cache) { > + acpi_os_unmap_memory(mem_info->mapped_logical_address, > + window_size); > + mem_info->mapped_logical_address = 0; > + mem_info->mapped_physical_address = 0; > + mem_info->mapped_length = 0; > + } > return_ACPI_STATUS(status); > } >
Applying and compiling your patch I see:
CC drivers/acpi/executer/exregion.o drivers/acpi/executer/exregion.c: In function 'acpi_ex_system_memory_space_handler': drivers/acpi/executer/exregion.c:81: warning: 'window_size' may be used uninitialized in this function
After glancing through this file it seems that ioremap_cache is always 0 and acpi_os_unmap_memory will unconditionally be executed at end of this function. I am not familiar with that code. But I just want to reinsure that this is what you want. And if so, why is that variable needed? But maybe I missed something ... (I'll test it tomorrow, or I better should say later today.)
Andreas
| |