lkml.org 
[lkml]   [2008]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 2.6.26-rc4] Fix nesting error checking in arch/x86/mm/ioremap.c
* Mika Kukkonen <mikukkon@srv1-m700-lanp.koti> wrote:

> unsigned int nesting;
>
> - nesting = --early_ioremap_nested;
> - WARN_ON(nesting < 0);
> + if (early_ioremap_nested)
> + nesting = --early_ioremap_nested;
> + else {
> + nesting = 0;
> + WARN_ON(1);
> + }

the better fix would be to turn 'nesting' into an int, hm?

Also, instead of forcing nesting to 0, it is better to just return - as
we cannot do any sane unmap here anymore. (we are unbalanced)

I.e. something like the fix below?

Ingo

------------------------------>
Subject: ioremap: nesting fix
From: Ingo Molnar <mingo@elte.hu>
Date: Tue May 27 09:56:49 CEST 2008

Mika Kukkonen noticed that the nesting check in early_iounmap() is not
actually done.

Reported-by: Mika Kukkonen <mikukkon@srv1-m700-lanp.koti>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/mm/ioremap.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Index: linux/arch/x86/mm/ioremap.c
===================================================================
--- linux.orig/arch/x86/mm/ioremap.c
+++ linux/arch/x86/mm/ioremap.c
@@ -602,10 +602,11 @@ void __init early_iounmap(void *addr, un
unsigned long offset;
unsigned int nrpages;
enum fixed_addresses idx;
- unsigned int nesting;
+ int nesting;

nesting = --early_ioremap_nested;
- WARN_ON(nesting < 0);
+ if (WARN_ON(nesting < 0))
+ return;

if (early_ioremap_debug) {
printk(KERN_INFO "early_iounmap(%p, %08lx) [%d]\n", addr,

\
 
 \ /
  Last update: 2008-05-27 10:03    [W:0.037 / U:0.044 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site