All of lore.kernel.org
 help / color / mirror / Atom feed
* [riscv:for-next 17/18] arch/riscv/kernel/unaligned_access_speed.c:291:13: warning: 'check_unaligned_access_speed' defined but not used
@ 2026-07-30  9:07 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-07-30  9:07 UTC (permalink / raw)
  To: Nam Cao; +Cc: oe-kbuild-all, Paul Walmsley

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git for-next
head:   03ececaea90889587dac37c802f02a1ea8b61d51
commit: d91f147112ba46e443aac2d45777824362365dcb [17/18] riscv: unaligned: stop using kthread for check_vector_unaligned_access()
config: riscv-randconfig-002-20260730 (https://download.01.org/0day-ci/archive/20260730/202607301618.yrE3EKfS-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 9.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260730/202607301618.yrE3EKfS-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/202607301618.yrE3EKfS-lkp@intel.com/

All warnings (new ones prefixed by >>):

   arch/riscv/kernel/unaligned_access_speed.c: In function 'check_unaligned_access_all_cpus':
   arch/riscv/kernel/unaligned_access_speed.c:380:24: error: 'check_vector_unaligned_access' undeclared (first use in this function); did you mean 'check_unaligned_access'?
     380 |   schedule_on_each_cpu(check_vector_unaligned_access);
         |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                        check_unaligned_access
   arch/riscv/kernel/unaligned_access_speed.c:380:24: note: each undeclared identifier is reported only once for each function it appears in
   At top level:
>> arch/riscv/kernel/unaligned_access_speed.c:291:13: warning: 'check_unaligned_access_speed' defined but not used [-Wunused-function]
     291 | static void check_unaligned_access_speed(struct work_struct *work __always_unused)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/check_unaligned_access_speed +291 arch/riscv/kernel/unaligned_access_speed.c

   289	
   290	#else /* CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS */
 > 291	static void check_unaligned_access_speed(struct work_struct *work __always_unused)
   292	{
   293	}
   294	#endif
   295	
   296	static int riscv_online_cpu_vec(unsigned int cpu)
   297	{
   298		if (unaligned_vector_speed_param != RISCV_HWPROBE_MISALIGNED_VECTOR_UNKNOWN) {
   299			per_cpu(vector_misaligned_access, cpu) = unaligned_vector_speed_param;
   300			return 0;
   301		}
   302	
   303	#ifdef CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS
   304		if (per_cpu(vector_misaligned_access, cpu) != RISCV_HWPROBE_MISALIGNED_VECTOR_UNKNOWN)
   305			return 0;
   306	
   307		check_vector_unaligned_access_emulated(NULL);
   308		check_vector_unaligned_access(NULL);
   309	#endif
   310	
   311		return 0;
   312	}
   313	
   314	static const char * const speed_str[] __initconst = { NULL, NULL, "slow", "fast", "unsupported" };
   315	
   316	static int __init set_unaligned_scalar_speed_param(char *str)
   317	{
   318		if (!strcmp(str, speed_str[RISCV_HWPROBE_MISALIGNED_SCALAR_SLOW]))
   319			unaligned_scalar_speed_param = RISCV_HWPROBE_MISALIGNED_SCALAR_SLOW;
   320		else if (!strcmp(str, speed_str[RISCV_HWPROBE_MISALIGNED_SCALAR_FAST]))
   321			unaligned_scalar_speed_param = RISCV_HWPROBE_MISALIGNED_SCALAR_FAST;
   322		else if (!strcmp(str, speed_str[RISCV_HWPROBE_MISALIGNED_SCALAR_UNSUPPORTED]))
   323			unaligned_scalar_speed_param = RISCV_HWPROBE_MISALIGNED_SCALAR_UNSUPPORTED;
   324		else
   325			return -EINVAL;
   326	
   327		return 1;
   328	}
   329	__setup("unaligned_scalar_speed=", set_unaligned_scalar_speed_param);
   330	
   331	static int __init set_unaligned_vector_speed_param(char *str)
   332	{
   333		if (!strcmp(str, speed_str[RISCV_HWPROBE_MISALIGNED_VECTOR_SLOW]))
   334			unaligned_vector_speed_param = RISCV_HWPROBE_MISALIGNED_VECTOR_SLOW;
   335		else if (!strcmp(str, speed_str[RISCV_HWPROBE_MISALIGNED_VECTOR_FAST]))
   336			unaligned_vector_speed_param = RISCV_HWPROBE_MISALIGNED_VECTOR_FAST;
   337		else if (!strcmp(str, speed_str[RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED]))
   338			unaligned_vector_speed_param = RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED;
   339		else
   340			return -EINVAL;
   341	
   342		return 1;
   343	}
   344	__setup("unaligned_vector_speed=", set_unaligned_vector_speed_param);
   345	
   346	static int __init check_unaligned_access_all_cpus(void)
   347	{
   348		int cpu;
   349	
   350		unaligned_access_init();
   351	
   352		if (unaligned_scalar_speed_param != RISCV_HWPROBE_MISALIGNED_SCALAR_UNKNOWN) {
   353			pr_info("scalar unaligned access speed set to '%s' (%lu) by command line\n",
   354				speed_str[unaligned_scalar_speed_param], unaligned_scalar_speed_param);
   355			for_each_online_cpu(cpu)
   356				per_cpu(misaligned_access_speed, cpu) = unaligned_scalar_speed_param;
   357		} else if (!check_unaligned_access_emulated_all_cpus()) {
   358			check_unaligned_access_speed_all_cpus();
   359		}
   360	
   361		if (unaligned_vector_speed_param != RISCV_HWPROBE_MISALIGNED_VECTOR_UNKNOWN) {
   362			if (!has_vector() &&
   363			    unaligned_vector_speed_param != RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED) {
   364				pr_warn("vector support is not available, ignoring unaligned_vector_speed=%s\n",
   365					speed_str[unaligned_vector_speed_param]);
   366			} else {
   367				pr_info("vector unaligned access speed set to '%s' (%lu) by command line\n",
   368					speed_str[unaligned_vector_speed_param], unaligned_vector_speed_param);
   369			}
   370		}
   371	
   372		if (!has_vector())
   373			unaligned_vector_speed_param = RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED;
   374	
   375		if (unaligned_vector_speed_param != RISCV_HWPROBE_MISALIGNED_VECTOR_UNKNOWN) {
   376			for_each_online_cpu(cpu)
   377				per_cpu(vector_misaligned_access, cpu) = unaligned_vector_speed_param;
   378		} else if (!check_vector_unaligned_access_emulated_all_cpus() &&
   379			   IS_ENABLED(CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS)) {
 > 380			schedule_on_each_cpu(check_vector_unaligned_access);
   381		}
   382	
   383		/*
   384		 * Setup hotplug callbacks for any new CPUs that come online or go
   385		 * offline.
   386		 */
   387		cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online",
   388					  riscv_online_cpu, riscv_offline_cpu);
   389		cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "riscv:online",
   390					  riscv_online_cpu_vec, NULL);
   391	
   392		cpus_read_lock();
   393		modify_unaligned_access_branches(cpu_online_mask);
   394		cpus_read_unlock();
   395	
   396		return 0;
   397	}
   398	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-30  9:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-30  9:07 [riscv:for-next 17/18] arch/riscv/kernel/unaligned_access_speed.c:291:13: warning: 'check_unaligned_access_speed' defined but not used kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.