* Paul Walmsley <paul@xxxxxxxxx> [081106 03:09]: > On Wed, 5 Nov 2008, Tony Lindgren wrote: > > > * Paul Walmsley <paul@xxxxxxxxx> [081105 11:39]: > > > > > > The SGX device on OMAP3 does not support retention, so remove RET from the > > > list of possible SGX power states. Problem debugged by Richard Woodruff > > > <r-woodruff2@xxxxxx>. > > > > Pushing. > > Just FYI, that patch prevents the kernel from booting due to a bug in > pm34xx.c; patch below. > > Even with the follwoing patch, the initial power state setup code in > pm34xx.c will bail out early since it still tries to set the SGX next > power state to retention, which it does not support. Pushing. Tony > > > - Paul > > > OMAP3 PM: use list_for_each_entry_safe() when deleting list entries > > From: Paul Walmsley <paul@xxxxxxxxx> > > The error path in clkdms_setup() needs to use list_for_each_entry_safe() > when deleting entries from the list, or the kernel will crash. > > Signed-off-by: Paul Walmsley <paul@xxxxxxxxx> > Cc: Jouni Högander <jouni.hogander@xxxxxxxxx> > --- > arch/arm/mach-omap2/pm34xx.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c > index a11a657..da098d2 100644 > --- a/arch/arm/mach-omap2/pm34xx.c > +++ b/arch/arm/mach-omap2/pm34xx.c > @@ -540,7 +540,7 @@ static int __init clkdms_setup(struct clockdomain *clkdm) > > int __init omap3_pm_init(void) > { > - struct power_state *pwrst; > + struct power_state *pwrst, *tmp; > int ret; > > printk(KERN_ERR "Power Management for TI OMAP3.\n"); > @@ -583,7 +583,7 @@ err1: > return ret; > err2: > free_irq(INT_34XX_PRCM_MPU_IRQ, NULL); > - list_for_each_entry(pwrst, &pwrst_list, node) { > + list_for_each_entry_safe(pwrst, tmp, &pwrst_list, node) { > list_del(&pwrst->node); > kfree(pwrst); > } -- 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