[Intel-gfx] [PATCH] mm: Use local variable for swap address space

Jani Nikula jani.nikula at linux.intel.com
Wed Jun 19 15:30:04 UTC 2019


On Tue, 18 Jun 2019, Stuart Summers <stuart.summers at intel.com> wrote:
> This addresses the following build error:
> mm/huge_memory.c: In function ‘__split_huge_page’:
> mm/huge_memory.c:2506:41: warning: dereferencing ‘void *’ pointer
>     __xa_store(&swap_address_space(entry)->i_pages,
>                                          ^~
> mm/huge_memory.c:2506:41: error: request for member ‘i_pages’ in
> something not a structure or union

Did you check under what circumstances it would be a void pointer?

Under those circumstances, what do you think will happen runtime after
you've brushed the build error under the carpet?

Anyway, the patch is against a commit in topic/core-for-CI, not to be
merged elsewhere.

BR,
Jani.



>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Stuart Summers <stuart.summers at intel.com>
> ---
>  mm/huge_memory.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index affb2c3667f9..bced5485137b 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -2503,7 +2503,9 @@ static void __split_huge_page(struct page *page, struct list_head *list,
>  					head + i, 0);
>  		} else if (PageSwapCache(page)) {
>  			swp_entry_t entry = { .val = page_private(head + i) };
> -			__xa_store(&swap_address_space(entry)->i_pages,
> +			struct address_space *address_space =
> +				swap_address_space(entry);
> +			__xa_store(&address_space->i_pages,
>  				   swp_offset(entry),
>  				   head + i, 0);
>  		}

-- 
Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list