瀏覽代碼

powerpc/85xx: Add local_irq_restore in error handling code

There is a call to local_irq_restore in the normal exit case, so it would
seem that there should be one on an error return as well.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression l;
expression E,E1,E2;
@@

local_irq_save(l);
... when != local_irq_restore(l)
    when != spin_unlock_irqrestore(E,l)
    when any
    when strict
(
if (...) { ... when != local_irq_restore(l)
               when != spin_unlock_irqrestore(E1,l)
+   local_irq_restore(l);
    return ...;
}
|
if (...)
+   {local_irq_restore(l);
    return ...;
+   }
|
spin_unlock_irqrestore(E2,l);
|
local_irq_restore(l);
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Julia Lawall 16 年之前
父節點
當前提交
870029a682
共有 1 個文件被更改,包括 1 次插入0 次删除
  1. 1 0
      arch/powerpc/platforms/85xx/smp.c

+ 1 - 0
arch/powerpc/platforms/85xx/smp.c

@@ -58,6 +58,7 @@ smp_85xx_kick_cpu(int nr)
 
 
 	if (cpu_rel_addr == NULL) {
 	if (cpu_rel_addr == NULL) {
 		printk(KERN_ERR "No cpu-release-addr for cpu %d\n", nr);
 		printk(KERN_ERR "No cpu-release-addr for cpu %d\n", nr);
+		local_irq_restore(flags);
 		return;
 		return;
 	}
 	}