--- /dev/null
+# kernel message checker module
+#
+# Copyright (c) 2013, Intel Corporation
+#
+# Author: Johannes Berg <johannes@sipsolutions.net>
+#
+# This software may be distributed under the terms of the BSD license.
+# See README for more details.
+#
+"""
+Tests for kernel messages to find if there were any issues in them.
+"""
+
+import re
+
+lockdep_messages = [
+ 'possible circular locking dependency',
+ '.*-safe -> .*unsafe lock order detected',
+ 'possible recursive locking detected',
+ 'inconsistent lock state',
+ 'possible irq lock inversion dependency',
+ 'suspicious RCU usage',
+]
+lockdep = r'(\[\s*)?INFO: (%s)' % ('|'.join(lockdep_messages), )
+issue = re.compile('(\[[0-9 .]*\] )?(WARNING:|BUG:|%s|RTNL: assertion failed).*' % lockdep)
+
+def check_kernel(logfile):
+ for line in open(logfile, 'r'):
+ if issue.match(line):
+ return False
+ return True