[PATCH] powerpc: fix invalid pointer usage in ucc_slow_init()

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE7083d

5 messages, 2 authors, 2007-03-15 · open the first message on its own page

[PATCH] powerpc: fix invalid pointer usage in ucc_slow_init()

From: Timur Tabi <hidden>
Date: 2007-03-15 14:48:58

In two places, ucc_slow_init() passes a physical address instead of the
virtual address to functions that were expecting the latter, causing a kernel
panic.  us_info->regs contains the physical address of the UCC register set.
The registers are ioremap'd to kernel space, and the virtual pointers are
stored in us_regs.  The code was using us_info->regs when it should have been
using us_regs.

Signed-off-by: Timur Tabi <redacted>
---
 arch/powerpc/sysdev/qe_lib/ucc_slow.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/sysdev/qe_lib/ucc_slow.c b/arch/powerpc/sysdev/qe_lib/ucc_slow.c
index 817df73..b930d68 100644
--- a/arch/powerpc/sysdev/qe_lib/ucc_slow.c
+++ b/arch/powerpc/sysdev/qe_lib/ucc_slow.c
@@ -187,7 +187,7 @@ int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** ucc
 	uccs->us_pram = qe_muram_addr(uccs->us_pram_offset);
 
 	/* Init Guemr register */
-	if ((ret = ucc_init_guemr((struct ucc_common *) (us_info->regs)))) {
+	if ((ret = ucc_init_guemr((struct ucc_common *) us_regs))) {
 		printk(KERN_ERR "%s: cannot init GUEMR", __FUNCTION__);
 		ucc_slow_free(uccs);
 		return ret;
@@ -195,7 +195,7 @@ int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** ucc
 
 	/* Set UCC to slow type */
 	if ((ret = ucc_set_type(us_info->ucc_num,
-				(struct ucc_common *) (us_info->regs),
+				(struct ucc_common *) us_regs,
 				UCC_SPEED_TYPE_SLOW))) {
 		printk(KERN_ERR "%s: cannot set UCC type", __FUNCTION__);
 		ucc_slow_free(uccs);
-- 
1.5.0.2.260.g2eb065

Re: [PATCH] powerpc: fix invalid pointer usage in ucc_slow_init()

From: Kumar Gala <hidden>
Date: 2007-03-15 14:54:40

On Mar 15, 2007, at 9:48 AM, Timur Tabi wrote:
In two places, ucc_slow_init() passes a physical address instead of  
the
virtual address to functions that were expecting the latter,  
causing a kernel
panic.  us_info->regs contains the physical address of the UCC  
register set.
The registers are ioremap'd to kernel space, and the virtual  
pointers are
stored in us_regs.  The code was using us_info->regs when it should  
have been
using us_regs.

Signed-off-by: Timur Tabi <redacted>
---
It's my understanding that there aren't any in kernel users of  
ucc_slow at the moment, is that true?

- k

Re: [PATCH] powerpc: fix invalid pointer usage in ucc_slow_init()

From: Timur Tabi <hidden>
Date: 2007-03-15 14:56:50

Kumar Gala wrote:
It's my understanding that there aren't any in kernel users of ucc_slow 
at the moment, is that true?
Yes.  I'm working on the first - a UART driver.

Re: [PATCH] powerpc: fix invalid pointer usage in ucc_slow_init()

From: Kumar Gala <hidden>
Date: 2007-03-15 14:58:55

On Thu, 15 Mar 2007, Timur Tabi wrote:
In two places, ucc_slow_init() passes a physical address instead of the
virtual address to functions that were expecting the latter, causing a kernel
panic.  us_info->regs contains the physical address of the UCC register set.
The registers are ioremap'd to kernel space, and the virtual pointers are
stored in us_regs.  The code was using us_info->regs when it should have been
using us_regs.

Signed-off-by: Timur Tabi <redacted>
applied.

- k

Re: [PATCH] powerpc: fix invalid pointer usage in ucc_slow_init()

From: Kumar Gala <hidden>
Date: 2007-03-15 15:01:15

On Mar 15, 2007, at 9:56 AM, Timur Tabi wrote:
Kumar Gala wrote:
quoted
It's my understanding that there aren't any in kernel users of  
ucc_slow at the moment, is that true?
Yes.  I'm working on the first - a UART driver.
Ok, I'll pull it into my tree for 2.6.22 then.

- k
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help