From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932870AbcFIRWs (ORCPT ); Thu, 9 Jun 2016 13:22:48 -0400 Received: from bombadil.infradead.org ([198.137.202.9]:51169 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932249AbcFIRWq (ORCPT ); Thu, 9 Jun 2016 13:22:46 -0400 Date: Thu, 9 Jun 2016 19:22:34 +0200 From: Peter Zijlstra To: Petr Mladek Cc: Andrew Morton , Oleg Nesterov , Tejun Heo , Ingo Molnar , Steven Rostedt , "Paul E. McKenney" , Josh Triplett , Thomas Gleixner , Linus Torvalds , Jiri Kosina , Borislav Petkov , Michal Hocko , linux-mm@kvack.org, Vlastimil Babka , linux-api@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v8 02/12] kthread: Kthread worker API cleanup Message-ID: <20160609172234.GW30154@twins.programming.kicks-ass.net> References: <1465480326-31606-1-git-send-email-pmladek@suse.com> <1465480326-31606-3-git-send-email-pmladek@suse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1465480326-31606-3-git-send-email-pmladek@suse.com> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 09, 2016 at 03:51:56PM +0200, Petr Mladek wrote: > -#define DEFINE_KTHREAD_WORKER(worker) \ > - struct kthread_worker worker = KTHREAD_WORKER_INIT(worker) > +#define KTHREAD_DECLARE_WORKER(worker) \ > + struct kthread_worker worker = KTHREAD_INIT_WORKER(worker) > > -#define DEFINE_KTHREAD_WORK(work, fn) \ > - struct kthread_work work = KTHREAD_WORK_INIT(work, fn) > +#define KTHREAD_DECLARE_WORK(work, fn) \ > + struct kthread_work work = KTHREAD_INIT_WORK(work, fn) > > /* > * kthread_worker.lock needs its own lockdep class key when defined on > * stack with lockdep enabled. Use the following macros in such cases. > */ > #ifdef CONFIG_LOCKDEP > -# define KTHREAD_WORKER_INIT_ONSTACK(worker) \ > - ({ init_kthread_worker(&worker); worker; }) > -# define DEFINE_KTHREAD_WORKER_ONSTACK(worker) \ > - struct kthread_worker worker = KTHREAD_WORKER_INIT_ONSTACK(worker) > +# define KTHREAD_INIT_WORKER_ONSTACK(worker) \ > + ({ kthread_init_worker(&worker); worker; }) > +# define KTHREAD_DECLARE_WORKER_ONSTACK(worker) \ > + struct kthread_worker worker = KTHREAD_INIT_WORKER_ONSTACK(worker) > #else > -# define DEFINE_KTHREAD_WORKER_ONSTACK(worker) DEFINE_KTHREAD_WORKER(worker) > +# define KTHREAD_DECLARE_WORKER_ONSTACK(worker) KTHREAD_DECLARE_WORKER(worker) > #endif As Steven already said; these are very much definitions _not_ declarations.