Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scripts/gdb: bail early if there are no generic PD

Avoid generating an exception if there are no generic power domain(s)
registered:

(gdb) lx-genpd-summary
domain status children
/device runtime status
----------------------------------------------------------------------
Python Exception <class 'gdb.error'>: No symbol "gpd_list" in current context.
Error occurred in Python: No symbol "gpd_list" in current context.
(gdb) quit

[f.fainelli@gmail.com: correctly invoke gdb_eval_or_none]
Link: https://lkml.kernel.org/r/20230327185746.3856407-1-f.fainelli@gmail.com
Link: https://lkml.kernel.org/r/20230323231659.3319941-1-f.fainelli@gmail.com
Fixes: 8207d4a88e1e ("scripts/gdb: add lx-genpd-summary command")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: Leonard Crestez <leonard.crestez@nxp.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Florian Fainelli and committed by
Andrew Morton
f19c3c29 1d7adbc7

+3 -1
+3 -1
scripts/gdb/linux/genpd.py
··· 5 5 import gdb 6 6 import sys 7 7 8 - from linux.utils import CachedType 8 + from linux.utils import CachedType, gdb_eval_or_none 9 9 from linux.lists import list_for_each_entry 10 10 11 11 generic_pm_domain_type = CachedType('struct generic_pm_domain') ··· 70 70 gdb.write(' %-50s %s\n' % (kobj_path, rtpm_status_str(dev))) 71 71 72 72 def invoke(self, arg, from_tty): 73 + if gdb_eval_or_none("&gpd_list") is None: 74 + raise gdb.GdbError("No power domain(s) registered") 73 75 gdb.write('domain status children\n'); 74 76 gdb.write(' /device runtime status\n'); 75 77 gdb.write('----------------------------------------------------------------------\n');