From: kernel test robot <lkp@intel.com>
To: Yury Norov <yury.norov@gmail.com>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: [norov:cpumask 1/2] include/linux/cpumask.h:812:17: error: implicit declaration of function 'kmalloc_node'; did you mean 'bitmap_alloc_node'?
Date: Tue, 7 Jun 2022 07:52:43 +0800 [thread overview]
Message-ID: <202206070725.plGxIFpd-lkp@intel.com> (raw)
tree: https://github.com/norov/linux cpumask
head: baf4c0c7943ff03b66ab7c18550df9071b5ba097
commit: 4fb0cdef75eb28ca37159b5c208ef574d6ccba98 [1/2] move cpumask
config: x86_64-randconfig-s021 (https://download.01.org/0day-ci/archive/20220607/202206070725.plGxIFpd-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-1) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-18-g56afb504-dirty
# https://github.com/norov/linux/commit/4fb0cdef75eb28ca37159b5c208ef574d6ccba98
git remote add norov https://github.com/norov/linux
git fetch --no-tags norov cpumask
git checkout 4fb0cdef75eb28ca37159b5c208ef574d6ccba98
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 prepare
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
In file included from arch/x86/include/asm/cpumask.h:5,
from arch/x86/include/asm/msr.h:11,
from arch/x86/include/asm/processor.h:22,
from arch/x86/include/asm/cpufeature.h:5,
from arch/x86/include/asm/thread_info.h:53,
from include/linux/thread_info.h:60,
from arch/x86/include/asm/preempt.h:7,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:55,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:20,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/cpumask.h: In function 'alloc_cpumask_var_node':
>> include/linux/cpumask.h:812:17: error: implicit declaration of function 'kmalloc_node'; did you mean 'bitmap_alloc_node'? [-Werror=implicit-function-declaration]
812 | *mask = kmalloc_node(cpumask_size(), flags, node);
| ^~~~~~~~~~~~
| bitmap_alloc_node
>> include/linux/cpumask.h:812:15: warning: assignment to 'cpumask_var_t' {aka 'struct cpumask *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
812 | *mask = kmalloc_node(cpumask_size(), flags, node);
| ^
include/linux/cpumask.h: In function 'alloc_cpumask_var':
>> include/linux/cpumask.h:836:52: error: 'NUMA_NO_NODE' undeclared (first use in this function)
836 | return alloc_cpumask_var_node(mask, flags, NUMA_NO_NODE);
| ^~~~~~~~~~~~
include/linux/cpumask.h:836:52: note: each undeclared identifier is reported only once for each function it appears in
include/linux/cpumask.h: In function 'zalloc_cpumask_var_node':
>> include/linux/cpumask.h:841:53: error: '__GFP_ZERO' undeclared (first use in this function)
841 | return alloc_cpumask_var_node(mask, flags | __GFP_ZERO, node);
| ^~~~~~~~~~
include/linux/cpumask.h: In function 'zalloc_cpumask_var':
include/linux/cpumask.h:846:48: error: '__GFP_ZERO' undeclared (first use in this function)
846 | return alloc_cpumask_var(mask, flags | __GFP_ZERO);
| ^~~~~~~~~~
include/linux/cpumask.h: In function 'alloc_bootmem_cpumask_var':
>> include/linux/cpumask.h:860:17: error: implicit declaration of function 'memblock_alloc' [-Werror=implicit-function-declaration]
860 | *mask = memblock_alloc(cpumask_size(), SMP_CACHE_BYTES);
| ^~~~~~~~~~~~~~
>> include/linux/cpumask.h:860:48: error: 'SMP_CACHE_BYTES' undeclared (first use in this function); did you mean 'L1_CACHE_BYTES'?
860 | *mask = memblock_alloc(cpumask_size(), SMP_CACHE_BYTES);
| ^~~~~~~~~~~~~~~
| L1_CACHE_BYTES
include/linux/cpumask.h: In function 'free_cpumask_var':
>> include/linux/cpumask.h:874:9: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
874 | kfree(mask);
| ^~~~~
include/linux/cpumask.h: In function 'free_bootmem_cpumask_var':
>> include/linux/cpumask.h:883:9: error: implicit declaration of function 'memblock_free' [-Werror=implicit-function-declaration]
883 | memblock_free(mask, cpumask_size());
| ^~~~~~~~~~~~~
In file included from include/linux/crypto.h:20,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/slab.h: At top level:
>> include/linux/slab.h:188:6: warning: conflicting types for 'kfree'; have 'void(const void *)'
188 | void kfree(const void *objp);
| ^~~~~
In file included from arch/x86/include/asm/cpumask.h:5,
from arch/x86/include/asm/msr.h:11,
from arch/x86/include/asm/processor.h:22,
from arch/x86/include/asm/cpufeature.h:5,
from arch/x86/include/asm/thread_info.h:53,
from include/linux/thread_info.h:60,
from arch/x86/include/asm/preempt.h:7,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:55,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:20,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/cpumask.h:874:9: note: previous implicit declaration of 'kfree' with type 'void(const void *)'
874 | kfree(mask);
| ^~~~~
In file included from include/linux/crypto.h:20,
from arch/x86/kernel/asm-offsets.c:9:
>> include/linux/slab.h:608:46: error: conflicting types for 'kmalloc_node'; have 'void *(size_t, gfp_t, int)' {aka 'void *(long unsigned int, unsigned int, int)'}
608 | static __always_inline __alloc_size(1) void *kmalloc_node(size_t size, gfp_t flags, int node)
| ^~~~~~~~~~~~
In file included from arch/x86/include/asm/cpumask.h:5,
from arch/x86/include/asm/msr.h:11,
from arch/x86/include/asm/processor.h:22,
from arch/x86/include/asm/cpufeature.h:5,
from arch/x86/include/asm/thread_info.h:53,
from include/linux/thread_info.h:60,
from arch/x86/include/asm/preempt.h:7,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:55,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/slab.h:15,
from include/linux/crypto.h:20,
from arch/x86/kernel/asm-offsets.c:9:
include/linux/cpumask.h:812:17: note: previous implicit declaration of 'kmalloc_node' with type 'int()'
812 | *mask = kmalloc_node(cpumask_size(), flags, node);
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:117: arch/x86/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1196: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:219: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
vim +812 include/linux/cpumask.h
795
796 /**
797 * alloc_cpumask_var_node - allocate a struct cpumask on a given node
798 * @mask: pointer to cpumask_var_t where the cpumask is returned
799 * @flags: GFP_ flags
800 *
801 * Only defined when CONFIG_CPUMASK_OFFSTACK=y, otherwise is
802 * a nop returning a constant 1 (in <linux/cpumask.h>)
803 * Returns TRUE if memory allocation succeeded, FALSE otherwise.
804 *
805 * In addition, mask will be NULL if this fails. Note that gcc is
806 * usually smart enough to know that mask can never be NULL if
807 * CONFIG_CPUMASK_OFFSTACK=n, so does code elimination in that case
808 * too.
809 */
810 static inline bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node)
811 {
> 812 *mask = kmalloc_node(cpumask_size(), flags, node);
813
814 #ifdef CONFIG_DEBUG_PER_CPU_MAPS
815 if (!*mask) {
816 printk(KERN_ERR "=> alloc_cpumask_var: failed!\n");
817 dump_stack();
818 }
819 #endif
820
821 return *mask != NULL;
822 }
823
824 /**
825 * alloc_cpumask_var - allocate a struct cpumask
826 * @mask: pointer to cpumask_var_t where the cpumask is returned
827 * @flags: GFP_ flags
828 *
829 * Only defined when CONFIG_CPUMASK_OFFSTACK=y, otherwise is
830 * a nop returning a constant 1 (in <linux/cpumask.h>).
831 *
832 * See alloc_cpumask_var_node.
833 */
834 static inline bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
835 {
> 836 return alloc_cpumask_var_node(mask, flags, NUMA_NO_NODE);
837 }
838
839 static inline bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node)
840 {
> 841 return alloc_cpumask_var_node(mask, flags | __GFP_ZERO, node);
842 }
843
844 static inline bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
845 {
846 return alloc_cpumask_var(mask, flags | __GFP_ZERO);
847 }
848
849 /**
850 * alloc_bootmem_cpumask_var - allocate a struct cpumask from the bootmem arena.
851 * @mask: pointer to cpumask_var_t where the cpumask is returned
852 *
853 * Only defined when CONFIG_CPUMASK_OFFSTACK=y, otherwise is
854 * a nop (in <linux/cpumask.h>).
855 * Either returns an allocated (zero-filled) cpumask, or causes the
856 * system to panic.
857 */
858 static inline void __init alloc_bootmem_cpumask_var(cpumask_var_t *mask)
859 {
> 860 *mask = memblock_alloc(cpumask_size(), SMP_CACHE_BYTES);
861 if (!*mask)
862 panic("%s: Failed to allocate %u bytes\n", __func__,
863 cpumask_size());
864 }
865
866 /**
867 * free_cpumask_var - frees memory allocated for a struct cpumask.
868 * @mask: cpumask to free
869 *
870 * This is safe on a NULL mask.
871 */
872 static inline void free_cpumask_var(cpumask_var_t mask)
873 {
> 874 kfree(mask);
875 }
876
877 /**
878 * free_bootmem_cpumask_var - frees result of alloc_bootmem_cpumask_var
879 * @mask: cpumask to free
880 */
881 static inline void __init free_bootmem_cpumask_var(cpumask_var_t mask)
882 {
> 883 memblock_free(mask, cpumask_size());
884 }
885
--
0-DAY CI Kernel Test Service
https://01.org/lkp
reply other threads:[~2022-06-06 23:53 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202206070725.plGxIFpd-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=yury.norov@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.