Subject: Re: [PATCH] next-20090730 lguest build breaks with pfn_pmd()

From: Randy Dunlap <[email-masked]>
Date: Fri, 31 Jul 2009 11:03:56 -0700

On Thu, 30 Jul 2009 17:35:33 +0530 Kamalesh Babulal wrote:

> Hi Rusty,
> 
> 	next-20090729 allmodconfig build breaks at
> 
> drivers/lguest/page_tables.c: In function 'setup_pagetables':
> drivers/lguest/page_tables.c:987: error: incompatible type for argument 2 of 'pfn_pmd'
> drivers/lguest/page_tables.c:994: error: expected ';' before ')' token
> drivers/lguest/page_tables.c:994: error: expected statement before ')' token
> make[2]: *** [drivers/lguest/page_tables.o] Error 1
> 
> build failure is introduced by commit e07dd6220a4bf81a2549e7e37523a2557547d9d7
> I have tested the patch for the build failure only.
> 
> Signed-off-by: Kamalesh Babulal <[email-masked]>
> --
>  drivers/lguest/page_tables.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
> index 8c86446..c610b82 100644
> --- a/drivers/lguest/page_tables.c
> +++ b/drivers/lguest/page_tables.c
> @@ -984,14 +984,14 @@ static unsigned long setup_pagetables(struct lguest *lg,
>  	for (i = j = 0; i < mapped_pages && j < PTRS_PER_PMD;
>  	     i += PTRS_PER_PTE, j++) {
>  		pmd = pfn_pmd(((unsigned long)&linear[i] - mem_base)/PAGE_SIZE,
> -			      _PAGE_PRESENT | _PAGE_RW | _PAGE_USER);
> +			      __pgrot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER));

s/__pgrot/__pgprot/

>  
>  		if (copy_to_user(&pmds[j], &pmd, sizeof(pmd)) != 0)
>  			return -EFAULT;
>  	}
>  
>  	/* One PGD entry, pointing to that PMD page. */
> -	pgd = __pgd(((unsigned long)pmds - mem_base) | _PAGE_PRESENT));
> +	pgd = __pgd(((unsigned long)pmds - mem_base) | _PAGE_PRESENT);
>  	/* Copy it in as the first PGD entry (ie. addresses 0-1G). */
>  	if (copy_to_user(&pgdir[0], &pgd, sizeof(pgd)) != 0)
>  		return -EFAULT;

---
~Randy
LPC 2009, Sept. 23-25, Portland, Oregon
http://linuxplumbersconf.org/2009/