All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: David Vernet <void@manifault.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Alexei Starovoitov <ast@kernel.org>
Subject: kernel/bpf/cpumask.c:41:21: warning: no previous declaration for 'bpf_cpumask_create'
Date: Wed, 16 Aug 2023 21:25:30 +0800	[thread overview]
Message-ID: <202308162115.Hn23vv3n-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   4853c74bd7ab7fdb83f319bd9ace8a08c031e9b6
commit: 516f4d3397c9e90f4da04f59986c856016269aa1 bpf: Enable cpumasks to be queried and used as kptrs
date:   7 months ago
config: x86_64-randconfig-x076-20230816 (https://download.01.org/0day-ci/archive/20230816/202308162115.Hn23vv3n-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce: (https://download.01.org/0day-ci/archive/20230816/202308162115.Hn23vv3n-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/202308162115.Hn23vv3n-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> kernel/bpf/cpumask.c:41:21: warning: no previous declaration for 'bpf_cpumask_create' [-Wmissing-declarations]
    struct bpf_cpumask *bpf_cpumask_create(void)
                        ^~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:55:21: warning: no previous declaration for 'bpf_cpumask_acquire' [-Wmissing-declarations]
    struct bpf_cpumask *bpf_cpumask_acquire(struct bpf_cpumask *cpumask)
                        ^~~~~~~~~~~~~~~~~~~
   kernel/bpf/cpumask.c:61:21: warning: no previous declaration for 'bpf_cpumask_kptr_get' [-Wmissing-declarations]
    struct bpf_cpumask *bpf_cpumask_kptr_get(struct bpf_cpumask **cpumaskp)
                        ^~~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:79:6: warning: no previous declaration for 'bpf_cpumask_release' [-Wmissing-declarations]
    void bpf_cpumask_release(struct bpf_cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:91:5: warning: no previous declaration for 'bpf_cpumask_first' [-Wmissing-declarations]
    u32 bpf_cpumask_first(const struct cpumask *cpumask)
        ^~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:96:5: warning: no previous declaration for 'bpf_cpumask_first_zero' [-Wmissing-declarations]
    u32 bpf_cpumask_first_zero(const struct cpumask *cpumask)
        ^~~~~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:101:6: warning: no previous declaration for 'bpf_cpumask_set_cpu' [-Wmissing-declarations]
    void bpf_cpumask_set_cpu(u32 cpu, struct bpf_cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:109:6: warning: no previous declaration for 'bpf_cpumask_clear_cpu' [-Wmissing-declarations]
    void bpf_cpumask_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:117:6: warning: no previous declaration for 'bpf_cpumask_test_cpu' [-Wmissing-declarations]
    bool bpf_cpumask_test_cpu(u32 cpu, const struct cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:125:6: warning: no previous declaration for 'bpf_cpumask_test_and_set_cpu' [-Wmissing-declarations]
    bool bpf_cpumask_test_and_set_cpu(u32 cpu, struct bpf_cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:133:6: warning: no previous declaration for 'bpf_cpumask_test_and_clear_cpu' [-Wmissing-declarations]
    bool bpf_cpumask_test_and_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:141:6: warning: no previous declaration for 'bpf_cpumask_setall' [-Wmissing-declarations]
    void bpf_cpumask_setall(struct bpf_cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:146:6: warning: no previous declaration for 'bpf_cpumask_clear' [-Wmissing-declarations]
    void bpf_cpumask_clear(struct bpf_cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:151:6: warning: no previous declaration for 'bpf_cpumask_and' [-Wmissing-declarations]
    bool bpf_cpumask_and(struct bpf_cpumask *dst,
         ^~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:158:6: warning: no previous declaration for 'bpf_cpumask_or' [-Wmissing-declarations]
    void bpf_cpumask_or(struct bpf_cpumask *dst,
         ^~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:165:6: warning: no previous declaration for 'bpf_cpumask_xor' [-Wmissing-declarations]
    void bpf_cpumask_xor(struct bpf_cpumask *dst,
         ^~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:172:6: warning: no previous declaration for 'bpf_cpumask_equal' [-Wmissing-declarations]
    bool bpf_cpumask_equal(const struct cpumask *src1, const struct cpumask *src2)
         ^~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:177:6: warning: no previous declaration for 'bpf_cpumask_intersects' [-Wmissing-declarations]
    bool bpf_cpumask_intersects(const struct cpumask *src1, const struct cpumask *src2)
         ^~~~~~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:182:6: warning: no previous declaration for 'bpf_cpumask_subset' [-Wmissing-declarations]
    bool bpf_cpumask_subset(const struct cpumask *src1, const struct cpumask *src2)
         ^~~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:187:6: warning: no previous declaration for 'bpf_cpumask_empty' [-Wmissing-declarations]
    bool bpf_cpumask_empty(const struct cpumask *cpumask)
         ^~~~~~~~~~~~~~~~~
>> kernel/bpf/cpumask.c:192:6: warning: no previous declaration for 'bpf_cpumask_full' [-Wmissing-declarations]
    bool bpf_cpumask_full(const struct cpumask *cpumask)
         ^~~~~~~~~~~~~~~~
   kernel/bpf/cpumask.c:197:6: warning: no previous declaration for 'bpf_cpumask_copy' [-Wmissing-declarations]
    void bpf_cpumask_copy(struct bpf_cpumask *dst, const struct cpumask *src)
         ^~~~~~~~~~~~~~~~
   kernel/bpf/cpumask.c:202:5: warning: no previous declaration for 'bpf_cpumask_any' [-Wmissing-declarations]
    u32 bpf_cpumask_any(const struct cpumask *cpumask)
        ^~~~~~~~~~~~~~~
   kernel/bpf/cpumask.c:207:5: warning: no previous declaration for 'bpf_cpumask_any_and' [-Wmissing-declarations]
    u32 bpf_cpumask_any_and(const struct cpumask *src1, const struct cpumask *src2)
        ^~~~~~~~~~~~~~~~~~~


vim +/bpf_cpumask_create +41 kernel/bpf/cpumask.c

    36	
    37	__diag_push();
    38	__diag_ignore_all("-Wmissing-prototypes",
    39			  "Global kfuncs as their definitions will be in BTF");
    40	
  > 41	struct bpf_cpumask *bpf_cpumask_create(void)
    42	{
    43		struct bpf_cpumask *cpumask;
    44	
    45		cpumask = bpf_mem_alloc(&bpf_cpumask_ma, sizeof(*cpumask));
    46		if (!cpumask)
    47			return NULL;
    48	
    49		memset(cpumask, 0, sizeof(*cpumask));
    50		refcount_set(&cpumask->usage, 1);
    51	
    52		return cpumask;
    53	}
    54	
  > 55	struct bpf_cpumask *bpf_cpumask_acquire(struct bpf_cpumask *cpumask)
    56	{
    57		refcount_inc(&cpumask->usage);
    58		return cpumask;
    59	}
    60	
  > 61	struct bpf_cpumask *bpf_cpumask_kptr_get(struct bpf_cpumask **cpumaskp)
    62	{
    63		struct bpf_cpumask *cpumask;
    64	
    65		/* The BPF memory allocator frees memory backing its caches in an RCU
    66		 * callback. Thus, we can safely use RCU to ensure that the cpumask is
    67		 * safe to read.
    68		 */
    69		rcu_read_lock();
    70	
    71		cpumask = READ_ONCE(*cpumaskp);
    72		if (cpumask && !refcount_inc_not_zero(&cpumask->usage))
    73			cpumask = NULL;
    74	
    75		rcu_read_unlock();
    76		return cpumask;
    77	}
    78	
  > 79	void bpf_cpumask_release(struct bpf_cpumask *cpumask)
    80	{
    81		if (!cpumask)
    82			return;
    83	
    84		if (refcount_dec_and_test(&cpumask->usage)) {
    85			migrate_disable();
    86			bpf_mem_free(&bpf_cpumask_ma, cpumask);
    87			migrate_enable();
    88		}
    89	}
    90	
  > 91	u32 bpf_cpumask_first(const struct cpumask *cpumask)
    92	{
    93		return cpumask_first(cpumask);
    94	}
    95	
  > 96	u32 bpf_cpumask_first_zero(const struct cpumask *cpumask)
    97	{
    98		return cpumask_first_zero(cpumask);
    99	}
   100	
 > 101	void bpf_cpumask_set_cpu(u32 cpu, struct bpf_cpumask *cpumask)
   102	{
   103		if (!cpu_valid(cpu))
   104			return;
   105	
   106		cpumask_set_cpu(cpu, (struct cpumask *)cpumask);
   107	}
   108	
 > 109	void bpf_cpumask_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask)
   110	{
   111		if (!cpu_valid(cpu))
   112			return;
   113	
   114		cpumask_clear_cpu(cpu, (struct cpumask *)cpumask);
   115	}
   116	
 > 117	bool bpf_cpumask_test_cpu(u32 cpu, const struct cpumask *cpumask)
   118	{
   119		if (!cpu_valid(cpu))
   120			return false;
   121	
   122		return cpumask_test_cpu(cpu, (struct cpumask *)cpumask);
   123	}
   124	
 > 125	bool bpf_cpumask_test_and_set_cpu(u32 cpu, struct bpf_cpumask *cpumask)
   126	{
   127		if (!cpu_valid(cpu))
   128			return false;
   129	
   130		return cpumask_test_and_set_cpu(cpu, (struct cpumask *)cpumask);
   131	}
   132	
 > 133	bool bpf_cpumask_test_and_clear_cpu(u32 cpu, struct bpf_cpumask *cpumask)
   134	{
   135		if (!cpu_valid(cpu))
   136			return false;
   137	
   138		return cpumask_test_and_clear_cpu(cpu, (struct cpumask *)cpumask);
   139	}
   140	
 > 141	void bpf_cpumask_setall(struct bpf_cpumask *cpumask)
   142	{
   143		cpumask_setall((struct cpumask *)cpumask);
   144	}
   145	
 > 146	void bpf_cpumask_clear(struct bpf_cpumask *cpumask)
   147	{
   148		cpumask_clear((struct cpumask *)cpumask);
   149	}
   150	
 > 151	bool bpf_cpumask_and(struct bpf_cpumask *dst,
   152			     const struct cpumask *src1,
   153			     const struct cpumask *src2)
   154	{
   155		return cpumask_and((struct cpumask *)dst, src1, src2);
   156	}
   157	
 > 158	void bpf_cpumask_or(struct bpf_cpumask *dst,
   159			    const struct cpumask *src1,
   160			    const struct cpumask *src2)
   161	{
   162		cpumask_or((struct cpumask *)dst, src1, src2);
   163	}
   164	
 > 165	void bpf_cpumask_xor(struct bpf_cpumask *dst,
   166			     const struct cpumask *src1,
   167			     const struct cpumask *src2)
   168	{
   169		cpumask_xor((struct cpumask *)dst, src1, src2);
   170	}
   171	
 > 172	bool bpf_cpumask_equal(const struct cpumask *src1, const struct cpumask *src2)
   173	{
   174		return cpumask_equal(src1, src2);
   175	}
   176	
 > 177	bool bpf_cpumask_intersects(const struct cpumask *src1, const struct cpumask *src2)
   178	{
   179		return cpumask_intersects(src1, src2);
   180	}
   181	
 > 182	bool bpf_cpumask_subset(const struct cpumask *src1, const struct cpumask *src2)
   183	{
   184		return cpumask_subset(src1, src2);
   185	}
   186	
 > 187	bool bpf_cpumask_empty(const struct cpumask *cpumask)
   188	{
   189		return cpumask_empty(cpumask);
   190	}
   191	
 > 192	bool bpf_cpumask_full(const struct cpumask *cpumask)
   193	{
   194		return cpumask_full(cpumask);
   195	}
   196	
 > 197	void bpf_cpumask_copy(struct bpf_cpumask *dst, const struct cpumask *src)
   198	{
   199		cpumask_copy((struct cpumask *)dst, src);
   200	}
   201	

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

             reply	other threads:[~2023-08-16 13:25 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-16 13:25 kernel test robot [this message]
2023-08-16 14:07 ` kernel/bpf/cpumask.c:41:21: warning: no previous declaration for 'bpf_cpumask_create' David Vernet
  -- strict thread matches above, loose matches on Subject: below --
2023-09-15 19:07 kernel test robot

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=202308162115.Hn23vv3n-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=ast@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=void@manifault.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.