[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <bc1fe7c1-a042-42b2-8d40-7621ef0087b9@stanley.mountain>
Date: Mon, 31 Mar 2025 12:43:54 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: oe-kbuild@...ts.linux.dev, Gabriele Monaco <gmonaco@...hat.com>
Cc: lkp@...el.com, oe-kbuild-all@...ts.linux.dev,
linux-kernel@...r.kernel.org,
"Steven Rostedt (Google)" <rostedt@...dmis.org>
Subject: kernel/trace/rv/rv.c:838 rv_register_monitor() warn: inconsistent
returns 'global &rv_interface_lock'.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 7f2ff7b6261742ed52aa973ccdf99151b7cc3a50
commit: cb85c660fcd4b3a03ed993affa0b2d1a8af2f06b rv: Add option for nested monitors and include sched
config: parisc-randconfig-r073-20250331 (https://download.01.org/0day-ci/archive/20250331/202503310539.7BDDOPxq-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 8.5.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Reported-by: Dan Carpenter <dan.carpenter@...aro.org>
| Closes: https://lore.kernel.org/r/202503310539.7BDDOPxq-lkp@intel.com/
smatch warnings:
kernel/trace/rv/rv.c:838 rv_register_monitor() warn: inconsistent returns 'global &rv_interface_lock'.
vim +838 kernel/trace/rv/rv.c
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 779 int rv_register_monitor(struct rv_monitor *monitor, struct rv_monitor *parent)
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 780 {
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 781 struct rv_monitor_def *r, *p = NULL;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 782 int retval = 0;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 783
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 784 if (strlen(monitor->name) >= MAX_RV_MONITOR_NAME_SIZE) {
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 785 pr_info("Monitor %s has a name longer than %d\n", monitor->name,
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 786 MAX_RV_MONITOR_NAME_SIZE);
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 787 return -EINVAL;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 788 }
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 789
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 790 mutex_lock(&rv_interface_lock);
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 791
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 792 list_for_each_entry(r, &rv_monitors_list, list) {
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 793 if (strcmp(monitor->name, r->monitor->name) == 0) {
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 794 pr_info("Monitor %s is already registered\n", monitor->name);
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 795 retval = -EEXIST;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 796 goto out_unlock;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 797 }
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 798 }
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 799
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 800 if (parent) {
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 801 list_for_each_entry(r, &rv_monitors_list, list) {
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 802 if (strcmp(parent->name, r->monitor->name) == 0) {
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 803 p = r;
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 804 break;
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 805 }
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 806 }
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 807 }
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 808
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 809 if (p && rv_is_nested_monitor(p)) {
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 810 pr_info("Parent monitor %s is already nested, cannot nest further\n",
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 811 parent->name);
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 812 return -EINVAL;
mutex_unlock(&rv_interface_lock);
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 813 }
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 814
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 815 r = kzalloc(sizeof(struct rv_monitor_def), GFP_KERNEL);
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 816 if (!r) {
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 817 retval = -ENOMEM;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 818 goto out_unlock;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 819 }
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 820
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 821 r->monitor = monitor;
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 822 r->parent = parent;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 823
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 824 retval = create_monitor_dir(r, p);
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 825 if (retval) {
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 826 kfree(r);
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 827 goto out_unlock;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 828 }
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 829
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 830 /* keep children close to the parent for easier visualisation */
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 831 if (p)
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 832 list_add(&r->list, &p->list);
cb85c660fcd4b3a Gabriele Monaco 2025-03-05 833 else
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 834 list_add_tail(&r->list, &rv_monitors_list);
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 835
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 836 out_unlock:
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 837 mutex_unlock(&rv_interface_lock);
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 @838 return retval;
102227b970a1525 Daniel Bristot de Oliveira 2022-07-29 839 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists