Message ID | 1304846514-15641-1-git-send-email-rabin@rab.in (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Tony, On Sun, May 8, 2011 at 14:51, Rabin Vincent <rabin@rab.in> wrote: > omap_readl() is used from the sched_clock() implementations and so must > be marked notrace to avoid recursion in ftrace. Same thing with > mpu_read() for OMAP1. > > Signed-off-by: Rabin Vincent <rabin@rab.in> Comments on this patch? This is a bugfix; the function graph tracer will crash and burn on OMAP without this. > --- > arch/arm/mach-omap1/io.c | 2 +- > arch/arm/mach-omap1/time.c | 2 +- > arch/arm/mach-omap2/io.c | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c > index 870886a..36ec2d7 100644 > --- a/arch/arm/mach-omap1/io.c > +++ b/arch/arm/mach-omap1/io.c > @@ -158,7 +158,7 @@ u16 omap_readw(u32 pa) > } > EXPORT_SYMBOL(omap_readw); > > -u32 omap_readl(u32 pa) > +u32 notrace omap_readl(u32 pa) > { > return __raw_readl(OMAP1_IO_ADDRESS(pa)); > } > diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c > index 6885d2f..88c5c5e 100644 > --- a/arch/arm/mach-omap1/time.c > +++ b/arch/arm/mach-omap1/time.c > @@ -203,7 +203,7 @@ static struct irqaction omap_mpu_timer2_irq = { > .handler = omap_mpu_timer2_interrupt, > }; > > -static cycle_t mpu_read(struct clocksource *cs) > +static cycle_t notrace mpu_read(struct clocksource *cs) > { > return ~omap_mpu_timer_read(1); > } > diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c > index 441e79d..f1987b1 100644 > --- a/arch/arm/mach-omap2/io.c > +++ b/arch/arm/mach-omap2/io.c > @@ -441,7 +441,7 @@ u16 omap_readw(u32 pa) > } > EXPORT_SYMBOL(omap_readw); > > -u32 omap_readl(u32 pa) > +u32 notrace omap_readl(u32 pa) > { > return __raw_readl(OMAP2_L4_IO_ADDRESS(pa)); > } > -- > 1.7.4.1 > > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Rabin Vincent <rabin@rab.in> writes: > omap_readl() is used from the sched_clock() implementations and so must > be marked notrace to avoid recursion in ftrace. Same thing with > mpu_read() for OMAP1. > > Signed-off-by: Rabin Vincent <rabin@rab.in> Acked-by: Kevin Hilman <khilman@ti.com> -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Kevin Hilman <khilman@ti.com> writes: > Rabin Vincent <rabin@rab.in> writes: > >> omap_readl() is used from the sched_clock() implementations and so must >> be marked notrace to avoid recursion in ftrace. Same thing with >> mpu_read() for OMAP1. >> >> Signed-off-by: Rabin Vincent <rabin@rab.in> > > Acked-by: Kevin Hilman <khilman@ti.com> I also meant to suggest this should probably queue for .40-rc series. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
* Rabin Vincent <rabin@rab.in> [110527 08:36]: > Tony, > > On Sun, May 8, 2011 at 14:51, Rabin Vincent <rabin@rab.in> wrote: > > omap_readl() is used from the sched_clock() implementations and so must > > be marked notrace to avoid recursion in ftrace. Same thing with > > mpu_read() for OMAP1. We should rather ioremap the 32KSYNCT_BASE in omap_init_clocksource_32k and then use __raw_readl. That allows us to get rid of omap_read usage here and simplifies the code. Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
* Kevin Hilman <khilman@ti.com> [110527 17:28]: > Kevin Hilman <khilman@ti.com> writes: > > > Rabin Vincent <rabin@rab.in> writes: > > > >> omap_readl() is used from the sched_clock() implementations and so must > >> be marked notrace to avoid recursion in ftrace. Same thing with > >> mpu_read() for OMAP1. > >> > >> Signed-off-by: Rabin Vincent <rabin@rab.in> > > > > Acked-by: Kevin Hilman <khilman@ti.com> > > I also meant to suggest this should probably queue for .40-rc series. Took a quick look and we should get rid of the omap_readl usage instead like I commented in another mail. Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Tony Lindgren <tony@atomide.com> writes: > * Kevin Hilman <khilman@ti.com> [110527 17:28]: >> Kevin Hilman <khilman@ti.com> writes: >> >> > Rabin Vincent <rabin@rab.in> writes: >> > >> >> omap_readl() is used from the sched_clock() implementations and so must >> >> be marked notrace to avoid recursion in ftrace. Same thing with >> >> mpu_read() for OMAP1. >> >> >> >> Signed-off-by: Rabin Vincent <rabin@rab.in> >> > >> > Acked-by: Kevin Hilman <khilman@ti.com> >> >> I also meant to suggest this should probably queue for .40-rc series. > > Took a quick look and we should get rid of the omap_readl usage instead > like I commented in another mail. Agreed, that's a better approach. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index 870886a..36ec2d7 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c @@ -158,7 +158,7 @@ u16 omap_readw(u32 pa) } EXPORT_SYMBOL(omap_readw); -u32 omap_readl(u32 pa) +u32 notrace omap_readl(u32 pa) { return __raw_readl(OMAP1_IO_ADDRESS(pa)); } diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c index 6885d2f..88c5c5e 100644 --- a/arch/arm/mach-omap1/time.c +++ b/arch/arm/mach-omap1/time.c @@ -203,7 +203,7 @@ static struct irqaction omap_mpu_timer2_irq = { .handler = omap_mpu_timer2_interrupt, }; -static cycle_t mpu_read(struct clocksource *cs) +static cycle_t notrace mpu_read(struct clocksource *cs) { return ~omap_mpu_timer_read(1); } diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 441e79d..f1987b1 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@ -441,7 +441,7 @@ u16 omap_readw(u32 pa) } EXPORT_SYMBOL(omap_readw); -u32 omap_readl(u32 pa) +u32 notrace omap_readl(u32 pa) { return __raw_readl(OMAP2_L4_IO_ADDRESS(pa)); }
omap_readl() is used from the sched_clock() implementations and so must be marked notrace to avoid recursion in ftrace. Same thing with mpu_read() for OMAP1. Signed-off-by: Rabin Vincent <rabin@rab.in> --- arch/arm/mach-omap1/io.c | 2 +- arch/arm/mach-omap1/time.c | 2 +- arch/arm/mach-omap2/io.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)