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>] [day] [month] [year] [list]
Date:   Mon, 6 Nov 2023 13:57:04 +0800
From:   kernel test robot <lkp@...el.com>
To:     Petr Tesarik <petr.tesarik.ext@...wei.com>
Cc:     llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
        linux-kernel@...r.kernel.org, Christoph Hellwig <hch@....de>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Subject: arch/powerpc/platforms/ps3/device-init.c:771:12: warning: stack
 frame size (2064) exceeds limit (2048) in 'ps3_probe_thread'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   77fa2fbe87fc605c4bfa87dff87be9bfded0e9a3
commit: 79636caad3618e2b38457f6e298c9b31ba82b489 swiotlb: if swiotlb is full, fall back to a transient memory pool
date:   3 months ago
config: powerpc64-allyesconfig (https://download.01.org/0day-ci/archive/20231106/202311061349.D8RrGBz3-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231106/202311061349.D8RrGBz3-lkp@intel.com/reproduce)

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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311061349.D8RrGBz3-lkp@intel.com/

All warnings (new ones prefixed by >>):

   arch/powerpc/platforms/ps3/device-init.c:948:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
     948 |         int result;
         |             ^
>> arch/powerpc/platforms/ps3/device-init.c:771:12: warning: stack frame size (2064) exceeds limit (2048) in 'ps3_probe_thread' [-Wframe-larger-than]
     771 | static int ps3_probe_thread(void *data)
         |            ^
   2 warnings generated.


vim +/ps3_probe_thread +771 arch/powerpc/platforms/ps3/device-init.c

b4cb2941f85599 Geert Uytterhoeven     2008-01-19  760  
ffbdd246478693 Geoff Levand           2007-06-16  761  /**
ffbdd246478693 Geoff Levand           2007-06-16  762   * ps3_probe_thread - Background repository probing at system startup.
ffbdd246478693 Geoff Levand           2007-06-16  763   *
ffbdd246478693 Geoff Levand           2007-06-16  764   * This implementation only supports background probing on a single bus.
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  765   * It uses the hypervisor's storage device notification mechanism to wait until
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  766   * a storage device is ready.  The device notification mechanism uses a
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  767   * pseudo device to asynchronously notify the guest when storage devices become
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  768   * ready.  The notification device has a block size of 512 bytes.
ffbdd246478693 Geoff Levand           2007-06-16  769   */
ffbdd246478693 Geoff Levand           2007-06-16  770  
ffbdd246478693 Geoff Levand           2007-06-16 @771  static int ps3_probe_thread(void *data)
ffbdd246478693 Geoff Levand           2007-06-16  772  {
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  773  	struct ps3_notification_device dev;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  774  	int res;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  775  	unsigned int irq;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  776  	u64 lpar;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  777  	void *buf;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  778  	struct ps3_notify_cmd *notify_cmd;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  779  	struct ps3_notify_event *notify_event;
ffbdd246478693 Geoff Levand           2007-06-16  780  
ffbdd246478693 Geoff Levand           2007-06-16  781  	pr_debug(" -> %s:%u: kthread started\n", __func__, __LINE__);
ffbdd246478693 Geoff Levand           2007-06-16  782  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  783  	buf = kzalloc(512, GFP_KERNEL);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  784  	if (!buf)
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  785  		return -ENOMEM;
ffbdd246478693 Geoff Levand           2007-06-16  786  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  787  	lpar = ps3_mm_phys_to_lpar(__pa(buf));
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  788  	notify_cmd = buf;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  789  	notify_event = buf;
ffbdd246478693 Geoff Levand           2007-06-16  790  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  791  	/* dummy system bus device */
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  792  	dev.sbd.bus_id = (u64)data;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  793  	dev.sbd.dev_id = PS3_NOTIFICATION_DEV_ID;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  794  	dev.sbd.interrupt_id = PS3_NOTIFICATION_INTERRUPT_ID;
ffbdd246478693 Geoff Levand           2007-06-16  795  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  796  	res = lv1_open_device(dev.sbd.bus_id, dev.sbd.dev_id, 0);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  797  	if (res) {
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  798  		pr_err("%s:%u: lv1_open_device failed %s\n", __func__,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  799  		       __LINE__, ps3_result(res));
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  800  		goto fail_free;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  801  	}
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  802  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  803  	res = ps3_sb_event_receive_port_setup(&dev.sbd, PS3_BINDING_CPU_ANY,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  804  					      &irq);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  805  	if (res) {
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  806  		pr_err("%s:%u: ps3_sb_event_receive_port_setup failed %d\n",
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  807  		       __func__, __LINE__, res);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  808  	       goto fail_close_device;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  809  	}
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  810  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  811  	spin_lock_init(&dev.lock);
e21fee5368f46e Peter Zijlstra (Intel  2020-03-21  812) 	rcuwait_init(&dev.wait);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  813  
a3a9f3b47d12b5 Yong Zhang             2011-10-21  814  	res = request_irq(irq, ps3_notification_interrupt, 0,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  815  			  "ps3_notification", &dev);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  816  	if (res) {
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  817  		pr_err("%s:%u: request_irq failed %d\n", __func__, __LINE__,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  818  		       res);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  819  		goto fail_sb_event_receive_port_destroy;
ffbdd246478693 Geoff Levand           2007-06-16  820  	}
ffbdd246478693 Geoff Levand           2007-06-16  821  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  822  	/* Setup and write the request for device notification. */
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  823  	notify_cmd->operation_code = 0; /* must be zero */
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  824  	notify_cmd->event_mask = 1UL << notify_region_probe;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  825  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  826  	res = ps3_notification_read_write(&dev, lpar, 1);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  827  	if (res)
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  828  		goto fail_free_irq;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  829  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  830  	/* Loop here processing the requested notification events. */
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  831  	do {
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  832  		try_to_freeze();
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  833  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  834  		memset(notify_event, 0, sizeof(*notify_event));
ffbdd246478693 Geoff Levand           2007-06-16  835  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  836  		res = ps3_notification_read_write(&dev, lpar, 0);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  837  		if (res)
ffbdd246478693 Geoff Levand           2007-06-16  838  			break;
ffbdd246478693 Geoff Levand           2007-06-16  839  
5c949070c7a591 Stephen Rothwell       2009-01-13  840  		pr_debug("%s:%u: notify event type 0x%llx bus id %llu dev id %llu"
5c949070c7a591 Stephen Rothwell       2009-01-13  841  			 " type %llu port %llu\n", __func__, __LINE__,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  842  			 notify_event->event_type, notify_event->bus_id,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  843  			 notify_event->dev_id, notify_event->dev_type,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  844  			 notify_event->dev_port);
ffbdd246478693 Geoff Levand           2007-06-16  845  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  846  		if (notify_event->event_type != notify_region_probe ||
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  847  		    notify_event->bus_id != dev.sbd.bus_id) {
f2c2cbcc35d47f Joe Perches            2016-10-24  848  			pr_warn("%s:%u: bad notify_event: event %llu, dev_id %llu, dev_type %llu\n",
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  849  				__func__, __LINE__, notify_event->event_type,
f2c2cbcc35d47f Joe Perches            2016-10-24  850  				notify_event->dev_id, notify_event->dev_type);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  851  			continue;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  852  		}
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  853  
972b1f040c8698 Geert Uytterhoeven     2008-01-19  854  		ps3_find_and_add_device(dev.sbd.bus_id, notify_event->dev_id);
ffbdd246478693 Geoff Levand           2007-06-16  855  
ffbdd246478693 Geoff Levand           2007-06-16  856  	} while (!kthread_should_stop());
ffbdd246478693 Geoff Levand           2007-06-16  857  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  858  fail_free_irq:
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  859  	free_irq(irq, &dev);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  860  fail_sb_event_receive_port_destroy:
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  861  	ps3_sb_event_receive_port_destroy(&dev.sbd, irq);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  862  fail_close_device:
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  863  	lv1_close_device(dev.sbd.bus_id, dev.sbd.dev_id);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  864  fail_free:
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  865  	kfree(buf);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  866  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  867  	probe_task = NULL;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  868  
ffbdd246478693 Geoff Levand           2007-06-16  869  	pr_debug(" <- %s:%u: kthread finished\n", __func__, __LINE__);
ffbdd246478693 Geoff Levand           2007-06-16  870  
ffbdd246478693 Geoff Levand           2007-06-16  871  	return 0;
ffbdd246478693 Geoff Levand           2007-06-16  872  }
ffbdd246478693 Geoff Levand           2007-06-16  873  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  874  /**
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  875   * ps3_stop_probe_thread - Stops the background probe thread.
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  876   *
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  877   */
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  878  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  879  static int ps3_stop_probe_thread(struct notifier_block *nb, unsigned long code,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  880  				 void *data)
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  881  {
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  882  	if (probe_task)
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  883  		kthread_stop(probe_task);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  884  	return 0;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  885  }
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  886  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  887  static struct notifier_block nb = {
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  888  	.notifier_call = ps3_stop_probe_thread
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  889  };
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  890  
ffbdd246478693 Geoff Levand           2007-06-16  891  /**
ffbdd246478693 Geoff Levand           2007-06-16  892   * ps3_start_probe_thread - Starts the background probe thread.
ffbdd246478693 Geoff Levand           2007-06-16  893   *
ffbdd246478693 Geoff Levand           2007-06-16  894   */
ffbdd246478693 Geoff Levand           2007-06-16  895  
ffbdd246478693 Geoff Levand           2007-06-16  896  static int __init ps3_start_probe_thread(enum ps3_bus_type bus_type)
ffbdd246478693 Geoff Levand           2007-06-16  897  {
ffbdd246478693 Geoff Levand           2007-06-16  898  	int result;
ffbdd246478693 Geoff Levand           2007-06-16  899  	struct task_struct *task;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  900  	struct ps3_repository_device repo;
ffbdd246478693 Geoff Levand           2007-06-16  901  
ffbdd246478693 Geoff Levand           2007-06-16  902  	pr_debug(" -> %s:%d\n", __func__, __LINE__);
ffbdd246478693 Geoff Levand           2007-06-16  903  
ffbdd246478693 Geoff Levand           2007-06-16  904  	memset(&repo, 0, sizeof(repo));
ffbdd246478693 Geoff Levand           2007-06-16  905  
ffbdd246478693 Geoff Levand           2007-06-16  906  	repo.bus_type = bus_type;
ffbdd246478693 Geoff Levand           2007-06-16  907  
ffbdd246478693 Geoff Levand           2007-06-16  908  	result = ps3_repository_find_bus(repo.bus_type, 0, &repo.bus_index);
ffbdd246478693 Geoff Levand           2007-06-16  909  
ffbdd246478693 Geoff Levand           2007-06-16  910  	if (result) {
ffbdd246478693 Geoff Levand           2007-06-16  911  		printk(KERN_ERR "%s: Cannot find bus (%d)\n", __func__, result);
ffbdd246478693 Geoff Levand           2007-06-16  912  		return -ENODEV;
ffbdd246478693 Geoff Levand           2007-06-16  913  	}
ffbdd246478693 Geoff Levand           2007-06-16  914  
ffbdd246478693 Geoff Levand           2007-06-16  915  	result = ps3_repository_read_bus_id(repo.bus_index, &repo.bus_id);
ffbdd246478693 Geoff Levand           2007-06-16  916  
ffbdd246478693 Geoff Levand           2007-06-16  917  	if (result) {
ffbdd246478693 Geoff Levand           2007-06-16  918  		printk(KERN_ERR "%s: read_bus_id failed %d\n", __func__,
ffbdd246478693 Geoff Levand           2007-06-16  919  			result);
ffbdd246478693 Geoff Levand           2007-06-16  920  		return -ENODEV;
ffbdd246478693 Geoff Levand           2007-06-16  921  	}
ffbdd246478693 Geoff Levand           2007-06-16  922  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  923  	task = kthread_run(ps3_probe_thread, (void *)repo.bus_id,
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  924  			   "ps3-probe-%u", bus_type);
ffbdd246478693 Geoff Levand           2007-06-16  925  
ffbdd246478693 Geoff Levand           2007-06-16  926  	if (IS_ERR(task)) {
ffbdd246478693 Geoff Levand           2007-06-16  927  		result = PTR_ERR(task);
ffbdd246478693 Geoff Levand           2007-06-16  928  		printk(KERN_ERR "%s: kthread_run failed %d\n", __func__,
ffbdd246478693 Geoff Levand           2007-06-16  929  		       result);
ffbdd246478693 Geoff Levand           2007-06-16  930  		return result;
ffbdd246478693 Geoff Levand           2007-06-16  931  	}
ffbdd246478693 Geoff Levand           2007-06-16  932  
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  933  	probe_task = task;
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  934  	register_reboot_notifier(&nb);
b4cb2941f85599 Geert Uytterhoeven     2008-01-19  935  
ffbdd246478693 Geoff Levand           2007-06-16  936  	pr_debug(" <- %s:%d\n", __func__, __LINE__);
ffbdd246478693 Geoff Levand           2007-06-16  937  	return 0;
ffbdd246478693 Geoff Levand           2007-06-16  938  }
ffbdd246478693 Geoff Levand           2007-06-16  939  
ffbdd246478693 Geoff Levand           2007-06-16  940  /**
ffbdd246478693 Geoff Levand           2007-06-16  941   * ps3_register_devices - Probe the system and register devices found.
ffbdd246478693 Geoff Levand           2007-06-16  942   *
ffbdd246478693 Geoff Levand           2007-06-16  943   * A device_initcall() routine.
ffbdd246478693 Geoff Levand           2007-06-16  944   */
ffbdd246478693 Geoff Levand           2007-06-16  945  
ffbdd246478693 Geoff Levand           2007-06-16  946  static int __init ps3_register_devices(void)
ffbdd246478693 Geoff Levand           2007-06-16  947  {
ffbdd246478693 Geoff Levand           2007-06-16 @948  	int result;
ffbdd246478693 Geoff Levand           2007-06-16  949  
ffbdd246478693 Geoff Levand           2007-06-16  950  	if (!firmware_has_feature(FW_FEATURE_PS3_LV1))
ffbdd246478693 Geoff Levand           2007-06-16  951  		return -ENODEV;
ffbdd246478693 Geoff Levand           2007-06-16  952  
ffbdd246478693 Geoff Levand           2007-06-16  953  	pr_debug(" -> %s:%d\n", __func__, __LINE__);
ffbdd246478693 Geoff Levand           2007-06-16  954  
ffbdd246478693 Geoff Levand           2007-06-16  955  	/* ps3_repository_dump_bus_info(); */
ffbdd246478693 Geoff Levand           2007-06-16  956  
ffbdd246478693 Geoff Levand           2007-06-16  957  	result = ps3_start_probe_thread(PS3_BUS_TYPE_STORAGE);
ffbdd246478693 Geoff Levand           2007-06-16  958  
ffbdd246478693 Geoff Levand           2007-06-16  959  	ps3_register_vuart_devices();
ffbdd246478693 Geoff Levand           2007-06-16  960  
ffbdd246478693 Geoff Levand           2007-06-16  961  	ps3_register_graphics_devices();
ffbdd246478693 Geoff Levand           2007-06-16  962  
b163a256dac8ce Geert Uytterhoeven     2008-03-29  963  	ps3_repository_find_devices(PS3_BUS_TYPE_SB, ps3_setup_static_device);
ffbdd246478693 Geoff Levand           2007-06-16  964  
ffbdd246478693 Geoff Levand           2007-06-16  965  	ps3_register_sound_devices();
ffbdd246478693 Geoff Levand           2007-06-16  966  
ed7570022a42a6 Geoff Levand           2008-01-19  967  	ps3_register_lpm_devices();
ed7570022a42a6 Geoff Levand           2008-01-19  968  
cffb4add03b1fc Jim Paris              2009-01-06  969  	ps3_register_ramdisk_device();
cffb4add03b1fc Jim Paris              2009-01-06  970  
ffbdd246478693 Geoff Levand           2007-06-16  971  	pr_debug(" <- %s:%d\n", __func__, __LINE__);
ffbdd246478693 Geoff Levand           2007-06-16  972  	return 0;
ffbdd246478693 Geoff Levand           2007-06-16  973  }
ffbdd246478693 Geoff Levand           2007-06-16  974  

:::::: The code at line 771 was first introduced by commit
:::::: ffbdd246478693673adcfe1c34b29714cf25dadd [POWERPC] PS3: Device registration routines.

:::::: TO: Geoff Levand <geoffrey.levand@...sony.com>
:::::: CC: Paul Mackerras <paulus@...ba.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ