lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1247050175-31163-1-git-send-email-amit.kucheria@verdurent.com>
Date:	Wed,  8 Jul 2009 13:49:35 +0300
From:	Amit Kucheria <amit.kucheria@...durent.com>
To:	sameo@...ux.intel.com
Cc:	dbrownell@...rs.sourceforge.net, linux-kernel@...r.kernel.org,
	linux-omap@...r.kernel.org
Subject: [PATCH 2/3] MFD: TWL4030: print warning for out-of-order script loading

When the sleep script is loaded before the wakeup script, there is a
chance that the system might go to sleep before the wakeup script
loading is completed. This will lead to a system that does not wakeup
and has been observed to cause non-booting boards.

Various options were considered to solve this problem, including
modification of the core twl4030 power code to be smart enough to
reorder the loading of the scripts. But it felt too over-engineered.

Hence this patch just warns the DPS script developer so that they may be
reordered in the board-code itself.

Signed-off-by: Amit Kucheria <amit.kucheria@...durent.com>
---
 drivers/mfd/twl4030-power.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/twl4030-power.c b/drivers/mfd/twl4030-power.c
index bb9e45f..ef4cc4e 100644
--- a/drivers/mfd/twl4030-power.c
+++ b/drivers/mfd/twl4030-power.c
@@ -315,6 +315,7 @@ static int __init load_triton_script(struct twl4030_script *tscript)
 {
 	u8 address = triton_next_free_address;
 	int err;
+	static u8 mask = 0;
 
 	/* Make sure the script isn't going beyond last valid address */
 	if ((address + tscript->size) > (END_OF_SCRIPT-1)) {
@@ -331,14 +332,20 @@ static int __init load_triton_script(struct twl4030_script *tscript)
 	if (tscript->flags & TRITON_WRST_SCRIPT)
 		err |= config_warmreset_sequence(address);
 
-	if (tscript->flags & TRITON_WAKEUP12_SCRIPT)
+	if (tscript->flags & TRITON_WAKEUP12_SCRIPT) {
 		err |= config_wakeup12_sequence(address);
+		mask |= TRITON_WAKEUP12_SCRIPT;
+	}
 
 	if (tscript->flags & TRITON_WAKEUP3_SCRIPT)
 		err |= config_wakeup3_sequence(address);
 
-	if (tscript->flags & TRITON_SLEEP_SCRIPT)
+	if (tscript->flags & TRITON_SLEEP_SCRIPT) {
+		if (!(mask & TRITON_WAKEUP12_SCRIPT))
+			printk(KERN_WARNING
+			       "TWL4030: Wakeup script not yet loaded. Might lead to boot failure on some boards\n");
 		err |= config_sleep_sequence(address);
+	}
 
 	return err;
 }
-- 
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ