* [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
* [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