Hello. On 26-03-2011 3:29, Omar Ramirez Luna wrote:
If an error occurs in the L3 on any other initiator than MPU, the interrupt goes unhandled given that the 'base' register was calculated with the initialized err_base value (which coincidentally points to MPU) and not with the actual source of the error.
Signed-off-by: Omar Ramirez Luna<omar.ramirez@xxxxxx> --- arch/arm/mach-omap2/omap_l3_smx.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_l3_smx.c b/arch/arm/mach-omap2/omap_l3_smx.c index 5f2da75..da917c2 100644 --- a/arch/arm/mach-omap2/omap_l3_smx.c +++ b/arch/arm/mach-omap2/omap_l3_smx.c @@ -196,11 +196,12 @@ static irqreturn_t omap3_l3_app_irq(int irq, void *_l3) /* No timeout error for debug sources */ } - base = ((l3->rt) + (*(omap3_l3_bases[int_type] + err_source))); - /* identify the error source */ for (err_source = 0; !(status& (1<< err_source)); err_source++) ; + + base = ((l3->rt) + (*(omap3_l3_bases[int_type] + err_source))); +
What's the point of having () around rvalue? You could drop them, while at it...
WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html