lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 24 Sep 2019 07:56:26 -0700
From:   "Paul E. McKenney" <paulmck@...nel.org>
To:     kbuild test robot <lkp@...el.com>
Cc:     "Joel Fernandes (Google)" <joel@...lfernandes.org>,
        kbuild-all@...org, linux-kernel@...r.kernel.org
Subject: Re: [rcu:dev.2019.09.23a 65/77] kernel//rcu/tree.c:2770:3: error:
 implicit declaration of function 'kfree'; did you mean 'kvfree'?

On Tue, Sep 24, 2019 at 10:21:54AM +0800, kbuild test robot wrote:
> tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2019.09.23a
> head:   97de53b94582c208ee239178b208b8e8b9472585
> commit: 06b68648e6084488b79de47a2cfa307a1b9668b9 [65/77] rcu: Remove kfree_rcu() special casing and lazy-callback handling
> config: x86_64-randconfig-c004-201938 (attached as .config)
> compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
> reproduce:
>         git checkout 06b68648e6084488b79de47a2cfa307a1b9668b9
>         # save the attached .config to linux build tree
>         make ARCH=x86_64 
> 
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@...el.com>
> 
> All errors (new ones prefixed by >>):
> 
>    kernel//rcu/tree.c: In function 'kfree_rcu_work':
> >> kernel//rcu/tree.c:2770:3: error: implicit declaration of function 'kfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
>       kfree((void *)head - offset);
>       ^~~~~
>       kvfree
>    cc1: some warnings being treated as errors

Good catch, missing #include of slab.h, fix posted to be squashed with
the original commit.

							Thanx, Paul

> vim +2770 kernel//rcu/tree.c
> 
>   2739	
>   2740	/*
>   2741	 * This function is invoked in workqueue context after a grace period.
>   2742	 * It frees all the objects queued on ->head_free.
>   2743	 */
>   2744	static void kfree_rcu_work(struct work_struct *work)
>   2745	{
>   2746		unsigned long flags;
>   2747		struct rcu_head *head, *next;
>   2748		struct kfree_rcu_cpu *krcp;
>   2749		struct kfree_rcu_cpu_work *krwp;
>   2750	
>   2751		krwp = container_of(to_rcu_work(work),
>   2752				    struct kfree_rcu_cpu_work, rcu_work);
>   2753		krcp = krwp->krcp;
>   2754		spin_lock_irqsave(&krcp->lock, flags);
>   2755		head = krwp->head_free;
>   2756		krwp->head_free = NULL;
>   2757		spin_unlock_irqrestore(&krcp->lock, flags);
>   2758	
>   2759		// List "head" is now private, so traverse locklessly.
>   2760		for (; head; head = next) {
>   2761			unsigned long offset = (unsigned long)head->func;
>   2762	
>   2763			next = head->next;
>   2764			// Potentially optimize with kfree_bulk in future.
>   2765			debug_rcu_head_unqueue(head);
>   2766			rcu_lock_acquire(&rcu_callback_map);
>   2767			trace_rcu_invoke_kfree_callback(rcu_state.name, head, offset);
>   2768	
>   2769			/* Could be possible to optimize with kfree_bulk in future */
> > 2770			kfree((void *)head - offset);
>   2771	
>   2772			rcu_lock_release(&rcu_callback_map);
>   2773			cond_resched_tasks_rcu_qs();
>   2774		}
>   2775	}
>   2776	
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ