Subject: Re: [PATCH] Generalize hpte_decode()

From: Jon Tollefson <[email-masked]>
Date: Thu, 10 May 2007 17:33:01 -0500

Paul Mackerras wrote:
> This adds the necessary support to hpte_decode() to handle 1TB
> segments and 16GB pages, and also removes an uninitialized value
> warning on avpn.
>
> We don't have any code to generate HPTEs for 1TB segments or 16GB
> pages yet, so this is mostly for completeness, and also to fix the
> warning.
>
> Signed-off-by: Paul Mackerras <[email-masked]>
> ---
>
> diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c
> index 7b7fe2d..7d722ee 100644
> --- a/arch/powerpc/mm/hash_native_64.c
> +++ b/arch/powerpc/mm/hash_native_64.c
> @@ -376,31 +376,28 @@ static void hpte_decode(hpte_t *hpte, unsigned long slot,
>  		}
>  	}
>
> -	/*
> -	 * FIXME, the code below works for 16M, 64K, and 4K pages as these
> -	 * fall under the p<=23 rules for calculating the virtual address.
> -	 * In the case of 16M pages, an extra bit is stolen from the AVPN
> -	 * field to achieve the requisite 24 bits.
> -	 *
> -	 * Does not work for 16G pages or 1 TB segments.
> -	 */
> +	/* This works for all page sizes, and for 256M and 1T segments */
>  	shift = mmu_psize_defs[size].shift;
> -	if (mmu_psize_defs[size].avpnm)
> -		avpnm_bits = __ilog2_u64(mmu_psize_defs[size].avpnm) + 1;
>   
The variable avpnm_bits doesn't appear to be used anymore.  Does it make 
sense to remove it's declaration?

Jon