diff mbox

powerpc: fsl_pci: cast the regs->nip to void * when passing it to probe_kernel_address()

Message ID 1442827370-26854-1-git-send-email-haokexin@gmail.com (mailing list archive)
State Not Applicable
Delegated to: Scott Wood
Headers show

Commit Message

Kevin Hao Sept. 21, 2015, 9:22 a.m. UTC
With the reimplementation of probe_kernel_address() in commit
ecc83243e1d4 ("uaccess: reimplement probe_kernel_address() using
probe_kernel_read()"), the explication of the cast for the addr
parameter has been dropped. So we have to explicitly cast the
regs->nip to void * when passing it to probe_kernel_address() in
order to fix the following build error:
  arch/powerpc/sysdev/fsl_pci.c: In function 'fsl_pci_mcheck_exception':
  arch/powerpc/sysdev/fsl_pci.c:1002:4: error: passing argument 2 of 'probe_kernel_read' makes pointer from integer without a cast [-Werror]
      ret = probe_kernel_address(regs->nip, inst);
      ^

Signed-off-by: Kevin Hao <haokexin@gmail.com>
---

This is against linux-next.

 arch/powerpc/sysdev/fsl_pci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Ellerman Sept. 22, 2015, 2:08 a.m. UTC | #1
On Mon, 2015-09-21 at 17:22 +0800, Kevin Hao wrote:
> With the reimplementation of probe_kernel_address() in commit
> ecc83243e1d4 ("uaccess: reimplement probe_kernel_address() using
> probe_kernel_read()"), the explication of the cast for the addr
> parameter has been dropped. So we have to explicitly cast the
> regs->nip to void * when passing it to probe_kernel_address() in
> order to fix the following build error:
>   arch/powerpc/sysdev/fsl_pci.c: In function 'fsl_pci_mcheck_exception':
>   arch/powerpc/sysdev/fsl_pci.c:1002:4: error: passing argument 2 of 'probe_kernel_read' makes pointer from integer without a cast [-Werror]
>       ret = probe_kernel_address(regs->nip, inst);
>       ^
> 
> Signed-off-by: Kevin Hao <haokexin@gmail.com>
> ---
> 
> This is against linux-next.

You should be sending this to Andrew Morton, the author of the patch that
caused the breakage. Or at the very least CC'ing him.

cheers
Kevin Hao Sept. 22, 2015, 2:11 a.m. UTC | #2
On Tue, Sep 22, 2015 at 12:08:17PM +1000, Michael Ellerman wrote:
> On Mon, 2015-09-21 at 17:22 +0800, Kevin Hao wrote:
> > With the reimplementation of probe_kernel_address() in commit
> > ecc83243e1d4 ("uaccess: reimplement probe_kernel_address() using
> > probe_kernel_read()"), the explication of the cast for the addr
> > parameter has been dropped. So we have to explicitly cast the
> > regs->nip to void * when passing it to probe_kernel_address() in
> > order to fix the following build error:
> >   arch/powerpc/sysdev/fsl_pci.c: In function 'fsl_pci_mcheck_exception':
> >   arch/powerpc/sysdev/fsl_pci.c:1002:4: error: passing argument 2 of 'probe_kernel_read' makes pointer from integer without a cast [-Werror]
> >       ret = probe_kernel_address(regs->nip, inst);
> >       ^
> > 
> > Signed-off-by: Kevin Hao <haokexin@gmail.com>
> > ---
> > 
> > This is against linux-next.
> 
> You should be sending this to Andrew Morton, the author of the patch that
> caused the breakage. Or at the very least CC'ing him.

OK, will repost.

Thanks,
Kevin
Scott Wood Sept. 22, 2015, 2:16 a.m. UTC | #3
On Mon, 2015-09-21 at 17:22 +0800, Kevin Hao wrote:
> With the reimplementation of probe_kernel_address() in commit
> ecc83243e1d4 ("uaccess: reimplement probe_kernel_address() using
> probe_kernel_read()"), the explication of the cast for the addr
> parameter has been dropped. So we have to explicitly cast the
> regs->nip to void * when passing it to probe_kernel_address() in
> order to fix the following build error:
>   arch/powerpc/sysdev/fsl_pci.c: In function 'fsl_pci_mcheck_exception':
>   arch/powerpc/sysdev/fsl_pci.c:1002:4: error: passing argument 2 of 
> 'probe_kernel_read' makes pointer from integer without a cast [-Werror]
>       ret = probe_kernel_address(regs->nip, inst);
>       ^
> 
> Signed-off-by: Kevin Hao <haokexin@gmail.com>
> ---
> 
> This is against linux-next.

I don't see ecc83243e1d4 in linux-next.  What tree is it in?

-Scott
Kevin Hao Sept. 22, 2015, 2:25 a.m. UTC | #4
On Mon, Sep 21, 2015 at 09:16:59PM -0500, Scott Wood wrote:
> On Mon, 2015-09-21 at 17:22 +0800, Kevin Hao wrote:
> > With the reimplementation of probe_kernel_address() in commit
> > ecc83243e1d4 ("uaccess: reimplement probe_kernel_address() using
> > probe_kernel_read()"), the explication of the cast for the addr
> > parameter has been dropped. So we have to explicitly cast the
> > regs->nip to void * when passing it to probe_kernel_address() in
> > order to fix the following build error:
> >   arch/powerpc/sysdev/fsl_pci.c: In function 'fsl_pci_mcheck_exception':
> >   arch/powerpc/sysdev/fsl_pci.c:1002:4: error: passing argument 2 of 
> > 'probe_kernel_read' makes pointer from integer without a cast [-Werror]
> >       ret = probe_kernel_address(regs->nip, inst);
> >       ^
> > 
> > Signed-off-by: Kevin Hao <haokexin@gmail.com>
> > ---
> > 
> > This is against linux-next.
> 
> I don't see ecc83243e1d4 in linux-next.  What tree is it in?

It's a patch from Andrew Morton. But it seems that the patches commit id
from Andrew's tree are not constant. Anyway I just fetched the latest
linux-next tree and found this issue was already fixed by commit 3a5f4236fec1
("uaccess-reimplement-probe_kernel_address-using-probe_kernel_read-fix-fix").

Thanks,
Kevin
Michael Ellerman Sept. 22, 2015, 5:17 a.m. UTC | #5
On Mon, 2015-09-21 at 21:16 -0500, Scott Wood wrote:
> On Mon, 2015-09-21 at 17:22 +0800, Kevin Hao wrote:
> > With the reimplementation of probe_kernel_address() in commit
> > ecc83243e1d4 ("uaccess: reimplement probe_kernel_address() using
> > probe_kernel_read()"), the explication of the cast for the addr
> > parameter has been dropped. So we have to explicitly cast the
> > regs->nip to void * when passing it to probe_kernel_address() in
> > order to fix the following build error:
> >   arch/powerpc/sysdev/fsl_pci.c: In function 'fsl_pci_mcheck_exception':
> >   arch/powerpc/sysdev/fsl_pci.c:1002:4: error: passing argument 2 of 
> > 'probe_kernel_read' makes pointer from integer without a cast [-Werror]
> >       ret = probe_kernel_address(regs->nip, inst);
> >       ^
> > 
> > Signed-off-by: Kevin Hao <haokexin@gmail.com>
> > ---
> > 
> > This is against linux-next.
> 
> I don't see ecc83243e1d4 in linux-next.  What tree is it in?

It was in linux-next:

  commit ecc83243e1d4f67015906017e420435aff1104c9
  Author:     Andrew Morton <akpm@linux-foundation.org>
  AuthorDate: Thu Sep 17 10:19:09 2015 +1000
  Commit:     Stephen Rothwell <sfr@canb.auug.org.au>
  CommitDate: Thu Sep 17 10:19:09 2015 +1000

      uaccess: reimplement probe_kernel_address() using probe_kernel_read()


But Andrew's tree comes as patches that Stephen commits, so the commit ids
change when Andrew pushes new patches, so in today's linux-next it's:


  commit d2cf644bea102203f9fc221a819f2dcb6a15b8ad
  Author:     Andrew Morton <akpm@linux-foundation.org>
  AuthorDate: Sat Sep 19 11:36:21 2015 +1000
  Commit:     Stephen Rothwell <sfr@canb.auug.org.au>
  CommitDate: Sat Sep 19 11:36:21 2015 +1000

      uaccess: reimplement probe_kernel_address() using probe_kernel_read()


cheers
diff mbox

Patch

diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index ebc1f412cf49..13b9bcf5485e 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -999,7 +999,7 @@  int fsl_pci_mcheck_exception(struct pt_regs *regs)
 			ret = get_user(regs->nip, &inst);
 			pagefault_enable();
 		} else {
-			ret = probe_kernel_address(regs->nip, inst);
+			ret = probe_kernel_address((void *)regs->nip, inst);
 		}
 
 		if (mcheck_handle_load(regs, inst)) {