2020-07-01 17:21:42

by Nico Pache

[permalink] [raw]
Subject: [PATCH] Remove __init from padata_do_multithreaded and padata_mt_helper

Allow padata_do_multithreaded function to be called after bootstrap.

Signed-off-by: Nico Pache <[email protected]>
---
include/linux/padata.h | 2 +-
kernel/padata.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/linux/padata.h b/include/linux/padata.h
index 7302efff5..2e7d92e80 100644
--- a/include/linux/padata.h
+++ b/include/linux/padata.h
@@ -201,7 +201,7 @@ extern void padata_free_shell(struct padata_shell *ps);
extern int padata_do_parallel(struct padata_shell *ps,
struct padata_priv *padata, int *cb_cpu);
extern void padata_do_serial(struct padata_priv *padata);
-extern void __init padata_do_multithreaded(struct padata_mt_job *job);
+extern void padata_do_multithreaded(struct padata_mt_job *job);
extern int padata_set_cpumask(struct padata_instance *pinst, int cpumask_type,
cpumask_var_t cpumask);
extern int padata_start(struct padata_instance *pinst);
diff --git a/kernel/padata.c b/kernel/padata.c
index 4373f7ada..2c0efab81 100644
--- a/kernel/padata.c
+++ b/kernel/padata.c
@@ -58,7 +58,7 @@ struct padata_mt_job_state {
};

static void padata_free_pd(struct parallel_data *pd);
-static void __init padata_mt_helper(struct work_struct *work);
+static void padata_mt_helper(struct work_struct *work);

static int padata_index_to_cpu(struct parallel_data *pd, int cpu_index)
{
@@ -463,7 +463,7 @@ static int pd_setup_cpumasks(struct parallel_data *pd,
return err;
}

-static void __init padata_mt_helper(struct work_struct *w)
+static void padata_mt_helper(struct work_struct *w)
{
struct padata_work *pw = container_of(w, struct padata_work, pw_work);
struct padata_mt_job_state *ps = pw->pw_data;
@@ -503,7 +503,7 @@ static void __init padata_mt_helper(struct work_struct *w)
*
* See the definition of struct padata_mt_job for more details.
*/
-void __init padata_do_multithreaded(struct padata_mt_job *job)
+void padata_do_multithreaded(struct padata_mt_job *job)
{
/* In case threads finish at different times. */
static const unsigned long load_balance_factor = 4;
--
2.18.1


2020-07-02 14:48:29

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] Remove __init from padata_do_multithreaded and padata_mt_helper

Hi Nico,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linux/master]
[also build test WARNING on linus/master v5.8-rc3 next-20200702]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Nico-Pache/Remove-__init-from-padata_do_multithreaded-and-padata_mt_helper/20200702-012401
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 9ebcfadb0610322ac537dd7aa5d9cbc2b2894c68
config: s390-randconfig-r021-20200702 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 003a086ffc0d1affbb8300b36225fb8150a2d40a)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

>> WARNING: modpost: vmlinux.o(.text+0x2b8d9e): Section mismatch in reference from the function padata_do_multithreaded() to the function .init.text:padata_work_alloc_mt()
The function padata_do_multithreaded() references
the function __init padata_work_alloc_mt().
This is often because padata_do_multithreaded lacks a __init
annotation or the annotation of padata_work_alloc_mt is wrong.
--
>> WARNING: modpost: vmlinux.o(.text+0x2b8f82): Section mismatch in reference from the function padata_do_multithreaded() to the function .init.text:padata_works_free()
The function padata_do_multithreaded() references
the function __init padata_works_free().
This is often because padata_do_multithreaded lacks a __init
annotation or the annotation of padata_works_free is wrong.

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (2.25 kB)
.config.gz (26.46 kB)
Download all attachments