Messages in this thread | | | Date | Mon, 6 Nov 2023 13:57:04 +0800 | From | kernel test robot <> | 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@intel.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@am.sony.com> :::::: CC: Paul Mackerras <paulus@samba.org>
-- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
| |