* [PATCH 1/2] nfit: Use init_completion() in acpi_nfit_flush_probe() [not found] <20170823152542.5150-1-boqun.feng@gmail.com> @ 2017-08-23 15:25 ` Boqun Feng 2017-08-23 22:08 ` Dan Williams ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Boqun Feng @ 2017-08-23 15:25 UTC (permalink / raw) To: linux-kernel, linux-mm Cc: Peter Zijlstra, Ingo Molnar, Thomas Gleixner, walken, Byungchul Park, Arnd Bergmann, Andrew Morton, willy, Nicholas Piggin, kernel-team, Boqun Feng, Dan Williams, Rafael J. Wysocki, Len Brown, linux-nvdimm, linux-acpi There is no need to use COMPLETION_INITIALIZER_ONSTACK() in acpi_nfit_flush_probe(), replace it with init_completion(). Signed-off-by: Boqun Feng <boqun.feng@gmail.com> --- drivers/acpi/nfit/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c index 19182d091587..1893e416e7c0 100644 --- a/drivers/acpi/nfit/core.c +++ b/drivers/acpi/nfit/core.c @@ -2884,7 +2884,7 @@ static int acpi_nfit_flush_probe(struct nvdimm_bus_descriptor *nd_desc) * need to be interruptible while waiting. */ INIT_WORK_ONSTACK(&flush.work, flush_probe); - COMPLETION_INITIALIZER_ONSTACK(flush.cmp); + init_completion(&flush.cmp); queue_work(nfit_wq, &flush.work); mutex_unlock(&acpi_desc->init_mutex); -- 2.14.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] nfit: Use init_completion() in acpi_nfit_flush_probe() 2017-08-23 15:25 ` [PATCH 1/2] nfit: Use init_completion() in acpi_nfit_flush_probe() Boqun Feng @ 2017-08-23 22:08 ` Dan Williams 2017-08-24 13:07 ` Thomas Gleixner [not found] ` <20170823152542.5150-2-boqun.feng-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2 siblings, 0 replies; 8+ messages in thread From: Dan Williams @ 2017-08-23 22:08 UTC (permalink / raw) To: Boqun Feng Cc: linux-kernel@vger.kernel.org, Linux MM, Peter Zijlstra, Ingo Molnar, Thomas Gleixner, walken, Byungchul Park, Arnd Bergmann, Andrew Morton, Matthew Wilcox, Nicholas Piggin, kernel-team, Rafael J. Wysocki, Len Brown, linux-nvdimm@lists.01.org, Linux ACPI On Wed, Aug 23, 2017 at 8:25 AM, Boqun Feng <boqun.feng@gmail.com> wrote: > There is no need to use COMPLETION_INITIALIZER_ONSTACK() in > acpi_nfit_flush_probe(), replace it with init_completion(). Now that I see the better version of this patch with the improved changelog in the -mm tree... Acked-by: Dan Williams <dan.j.williams@intel.com> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] nfit: Use init_completion() in acpi_nfit_flush_probe() 2017-08-23 15:25 ` [PATCH 1/2] nfit: Use init_completion() in acpi_nfit_flush_probe() Boqun Feng 2017-08-23 22:08 ` Dan Williams @ 2017-08-24 13:07 ` Thomas Gleixner 2017-08-24 13:28 ` Boqun Feng [not found] ` <20170823152542.5150-2-boqun.feng-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2 siblings, 1 reply; 8+ messages in thread From: Thomas Gleixner @ 2017-08-24 13:07 UTC (permalink / raw) To: Boqun Feng Cc: linux-kernel, linux-mm, Peter Zijlstra, Ingo Molnar, walken, Byungchul Park, Arnd Bergmann, Andrew Morton, willy, Nicholas Piggin, kernel-team, Dan Williams, Rafael J. Wysocki, Len Brown, linux-nvdimm, linux-acpi On Wed, 23 Aug 2017, Boqun Feng wrote: > There is no need to use COMPLETION_INITIALIZER_ONSTACK() in > acpi_nfit_flush_probe(), replace it with init_completion(). You completely fail to explain WHY. Thanks, tglx > Signed-off-by: Boqun Feng <boqun.feng@gmail.com> > --- > drivers/acpi/nfit/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c > index 19182d091587..1893e416e7c0 100644 > --- a/drivers/acpi/nfit/core.c > +++ b/drivers/acpi/nfit/core.c > @@ -2884,7 +2884,7 @@ static int acpi_nfit_flush_probe(struct nvdimm_bus_descriptor *nd_desc) > * need to be interruptible while waiting. > */ > INIT_WORK_ONSTACK(&flush.work, flush_probe); > - COMPLETION_INITIALIZER_ONSTACK(flush.cmp); > + init_completion(&flush.cmp); > queue_work(nfit_wq, &flush.work); > mutex_unlock(&acpi_desc->init_mutex); > > -- > 2.14.1 > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] nfit: Use init_completion() in acpi_nfit_flush_probe() 2017-08-24 13:07 ` Thomas Gleixner @ 2017-08-24 13:28 ` Boqun Feng 2017-08-24 13:46 ` Arnd Bergmann 0 siblings, 1 reply; 8+ messages in thread From: Boqun Feng @ 2017-08-24 13:28 UTC (permalink / raw) To: Thomas Gleixner Cc: linux-kernel, linux-mm, Peter Zijlstra, Ingo Molnar, walken, Byungchul Park, Arnd Bergmann, Andrew Morton, willy, Nicholas Piggin, kernel-team, Dan Williams, Rafael J. Wysocki, Len Brown, linux-nvdimm, linux-acpi [-- Attachment #1: Type: text/plain, Size: 1566 bytes --] On Thu, Aug 24, 2017 at 03:07:42PM +0200, Thomas Gleixner wrote: > On Wed, 23 Aug 2017, Boqun Feng wrote: > > > There is no need to use COMPLETION_INITIALIZER_ONSTACK() in > > acpi_nfit_flush_probe(), replace it with init_completion(). > > You completely fail to explain WHY. > I thought COMPLETION_INITIALIZER_ONSTACK() should only use in assigment or compound literals, so the usage here is obviously wrong, but seems I was wrong? Ingo, Is the usage of COMPLETION_INITIALIZER_ONSTACK() correct? If not, I could rephrase my commit log saying this is a fix for wrong usage of COMPLETION_INITIALIZER_ONSTACK(), otherwise, I will rewrite the commit indicating this patch is a necessary dependency for patch #2. Thanks! Regards, Boqun > Thanks, > > tglx > > > > Signed-off-by: Boqun Feng <boqun.feng@gmail.com> > > --- > > drivers/acpi/nfit/core.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c > > index 19182d091587..1893e416e7c0 100644 > > --- a/drivers/acpi/nfit/core.c > > +++ b/drivers/acpi/nfit/core.c > > @@ -2884,7 +2884,7 @@ static int acpi_nfit_flush_probe(struct nvdimm_bus_descriptor *nd_desc) > > * need to be interruptible while waiting. > > */ > > INIT_WORK_ONSTACK(&flush.work, flush_probe); > > - COMPLETION_INITIALIZER_ONSTACK(flush.cmp); > > + init_completion(&flush.cmp); > > queue_work(nfit_wq, &flush.work); > > mutex_unlock(&acpi_desc->init_mutex); > > > > -- > > 2.14.1 > > > > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] nfit: Use init_completion() in acpi_nfit_flush_probe() 2017-08-24 13:28 ` Boqun Feng @ 2017-08-24 13:46 ` Arnd Bergmann 0 siblings, 0 replies; 8+ messages in thread From: Arnd Bergmann @ 2017-08-24 13:46 UTC (permalink / raw) To: Boqun Feng Cc: Thomas Gleixner, Linux Kernel Mailing List, Linux-MM, Peter Zijlstra, Ingo Molnar, Michel Lespinasse, Byungchul Park, Andrew Morton, willy, Nicholas Piggin, kernel-team, Dan Williams, Rafael J. Wysocki, Len Brown, linux-nvdimm, ACPI Devel Maling List On Thu, Aug 24, 2017 at 3:28 PM, Boqun Feng <boqun.feng@gmail.com> wrote: > On Thu, Aug 24, 2017 at 03:07:42PM +0200, Thomas Gleixner wrote: >> On Wed, 23 Aug 2017, Boqun Feng wrote: >> >> > There is no need to use COMPLETION_INITIALIZER_ONSTACK() in >> > acpi_nfit_flush_probe(), replace it with init_completion(). >> >> You completely fail to explain WHY. >> > > I thought COMPLETION_INITIALIZER_ONSTACK() should only use in assigment > or compound literals, so the usage here is obviously wrong, but seems > I was wrong? > > Ingo, > > Is the usage of COMPLETION_INITIALIZER_ONSTACK() correct? If not, > I could rephrase my commit log saying this is a fix for wrong usage of > COMPLETION_INITIALIZER_ONSTACK(), otherwise, I will rewrite the commit > indicating this patch is a necessary dependency for patch #2. Thanks! I think your patch is correct, but your changelog text is useless, as Thomas mentioned: you should instead explain that it breaks with the other fix in the series, and what the difference between init_completion() and COMPLETION_INITIALIZER_ONSTACK() is. Arnd ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <20170823152542.5150-2-boqun.feng-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* [PATCH v2 1/2] nfit: Fix the abuse of COMPLETION_INITIALIZER_ONSTACK() [not found] ` <20170823152542.5150-2-boqun.feng-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2017-08-24 14:22 ` Boqun Feng 2017-08-25 0:18 ` Boqun Feng 2017-08-25 0:36 ` Dan Williams 0 siblings, 2 replies; 8+ messages in thread From: Boqun Feng @ 2017-08-24 14:22 UTC (permalink / raw) To: linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-mm-Bw31MaZKKs3YtjvyW6yDsg Cc: Andrew Morton, Arnd Bergmann, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw, Peter Zijlstra, Rafael J. Wysocki, Boqun Feng, linux-acpi-u79uwXL29TY76Z2rM5mHXA, willy-wEGCiKHe2LqWVfeAwA7xHQ, Byungchul Park, kernel-team-Hm3cg6mZ9cc, Nicholas Piggin, Thomas Gleixner, walken-hpIqsD4AKlfQT0dZR+AlfA, Ingo Molnar, Len Brown COMPLETION_INITIALIZER_ONSTACK() is supposed to used as an initializer, in other words, it should only be used in assignment expressions or compound literals. So the usage in drivers/acpi/nfit/core.c: COMPLETION_INITIALIZER_ONSTACK(flush.cmp); , is inappropriate. Besides, this usage could also break compilations for another fix to reduce stack sizes caused by COMPLETION_INITIALIZER_ONSTACK(), because that fix changes COMPLETION_INITIALIZER_ONSTACK() from rvalue to lvalue, and usage as above will report error: drivers/acpi/nfit/core.c: In function 'acpi_nfit_flush_probe': include/linux/completion.h:77:3: error: value computed is not used [-Werror=unused-value] (*({ init_completion(&work); &work; })) This patch fixes this by replacing COMPLETION_INITIALIZER_ONSTACK() with init_completion() in acpi_nfit_flush_probe(), which does the same initialization without any other problem. Signed-off-by: Boqun Feng <boqun.feng-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> --- drivers/acpi/nfit/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c index 19182d091587..1893e416e7c0 100644 --- a/drivers/acpi/nfit/core.c +++ b/drivers/acpi/nfit/core.c @@ -2884,7 +2884,7 @@ static int acpi_nfit_flush_probe(struct nvdimm_bus_descriptor *nd_desc) * need to be interruptible while waiting. */ INIT_WORK_ONSTACK(&flush.work, flush_probe); - COMPLETION_INITIALIZER_ONSTACK(flush.cmp); + init_completion(&flush.cmp); queue_work(nfit_wq, &flush.work); mutex_unlock(&acpi_desc->init_mutex); -- 2.14.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/2] nfit: Fix the abuse of COMPLETION_INITIALIZER_ONSTACK() 2017-08-24 14:22 ` [PATCH v2 1/2] nfit: Fix the abuse of COMPLETION_INITIALIZER_ONSTACK() Boqun Feng @ 2017-08-25 0:18 ` Boqun Feng 2017-08-25 0:36 ` Dan Williams 1 sibling, 0 replies; 8+ messages in thread From: Boqun Feng @ 2017-08-25 0:18 UTC (permalink / raw) To: linux-kernel, linux-mm Cc: Peter Zijlstra, Ingo Molnar, Thomas Gleixner, walken, Byungchul Park, Arnd Bergmann, Andrew Morton, willy, Nicholas Piggin, kernel-team, Dan Williams, Rafael J. Wysocki, Len Brown, linux-nvdimm, linux-acpi [-- Attachment #1: Type: text/plain, Size: 1921 bytes --] On Thu, Aug 24, 2017 at 10:22:36PM +0800, Boqun Feng wrote: > COMPLETION_INITIALIZER_ONSTACK() is supposed to used as an initializer, > in other words, it should only be used in assignment expressions or > compound literals. So the usage in drivers/acpi/nfit/core.c: > > COMPLETION_INITIALIZER_ONSTACK(flush.cmp); > > , is inappropriate. > > Besides, this usage could also break compilations for another fix to > reduce stack sizes caused by COMPLETION_INITIALIZER_ONSTACK(), because > that fix changes COMPLETION_INITIALIZER_ONSTACK() from rvalue to lvalue, > and usage as above will report error: > > drivers/acpi/nfit/core.c: In function 'acpi_nfit_flush_probe': > include/linux/completion.h:77:3: error: value computed is not used [-Werror=unused-value] > (*({ init_completion(&work); &work; })) > > This patch fixes this by replacing COMPLETION_INITIALIZER_ONSTACK() with > init_completion() in acpi_nfit_flush_probe(), which does the same > initialization without any other problem. > > Signed-off-by: Boqun Feng <boqun.feng@gmail.com> > --- Sorry, forget to metion: v1 --> v2: Improve the commit log, based on Dan, Thomas and Arnd's comments. Only V2 of this patch #1 is updated. Regards, Boqun > drivers/acpi/nfit/core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c > index 19182d091587..1893e416e7c0 100644 > --- a/drivers/acpi/nfit/core.c > +++ b/drivers/acpi/nfit/core.c > @@ -2884,7 +2884,7 @@ static int acpi_nfit_flush_probe(struct nvdimm_bus_descriptor *nd_desc) > * need to be interruptible while waiting. > */ > INIT_WORK_ONSTACK(&flush.work, flush_probe); > - COMPLETION_INITIALIZER_ONSTACK(flush.cmp); > + init_completion(&flush.cmp); > queue_work(nfit_wq, &flush.work); > mutex_unlock(&acpi_desc->init_mutex); > > -- > 2.14.1 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/2] nfit: Fix the abuse of COMPLETION_INITIALIZER_ONSTACK() 2017-08-24 14:22 ` [PATCH v2 1/2] nfit: Fix the abuse of COMPLETION_INITIALIZER_ONSTACK() Boqun Feng 2017-08-25 0:18 ` Boqun Feng @ 2017-08-25 0:36 ` Dan Williams 1 sibling, 0 replies; 8+ messages in thread From: Dan Williams @ 2017-08-25 0:36 UTC (permalink / raw) To: Boqun Feng Cc: linux-kernel@vger.kernel.org, Linux MM, Peter Zijlstra, Ingo Molnar, Thomas Gleixner, Michel Lespinasse, Byungchul Park, Arnd Bergmann, Andrew Morton, Matthew Wilcox, Nicholas Piggin, kernel-team, Rafael J. Wysocki, Len Brown, linux-nvdimm@lists.01.org, Linux ACPI On Thu, Aug 24, 2017 at 7:22 AM, Boqun Feng <boqun.feng@gmail.com> wrote: > COMPLETION_INITIALIZER_ONSTACK() is supposed to used as an initializer, > in other words, it should only be used in assignment expressions or > compound literals. So the usage in drivers/acpi/nfit/core.c: > > COMPLETION_INITIALIZER_ONSTACK(flush.cmp); > > , is inappropriate. > > Besides, this usage could also break compilations for another fix to > reduce stack sizes caused by COMPLETION_INITIALIZER_ONSTACK(), because > that fix changes COMPLETION_INITIALIZER_ONSTACK() from rvalue to lvalue, > and usage as above will report error: > > drivers/acpi/nfit/core.c: In function 'acpi_nfit_flush_probe': > include/linux/completion.h:77:3: error: value computed is not used [-Werror=unused-value] > (*({ init_completion(&work); &work; })) > > This patch fixes this by replacing COMPLETION_INITIALIZER_ONSTACK() with > init_completion() in acpi_nfit_flush_probe(), which does the same > initialization without any other problem. > > Signed-off-by: Boqun Feng <boqun.feng@gmail.com> Acked-by: Dan Williams <dan.j.williams@intel.com> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-08-25 0:36 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20170823152542.5150-1-boqun.feng@gmail.com>
2017-08-23 15:25 ` [PATCH 1/2] nfit: Use init_completion() in acpi_nfit_flush_probe() Boqun Feng
2017-08-23 22:08 ` Dan Williams
2017-08-24 13:07 ` Thomas Gleixner
2017-08-24 13:28 ` Boqun Feng
2017-08-24 13:46 ` Arnd Bergmann
[not found] ` <20170823152542.5150-2-boqun.feng-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-08-24 14:22 ` [PATCH v2 1/2] nfit: Fix the abuse of COMPLETION_INITIALIZER_ONSTACK() Boqun Feng
2017-08-25 0:18 ` Boqun Feng
2017-08-25 0:36 ` Dan Williams
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox