2021-06-02 11:17:58

by Julian Wiedmann

[permalink] [raw]
Subject: [PATCH wq/for-next 1/2] workqueue: replace open-coded work_pending()

Use the right helper to check whether a work item is currently pending.

Signed-off-by: Julian Wiedmann <[email protected]>
---
kernel/workqueue.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 50142fc08902..8a700ccfa313 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3209,7 +3209,7 @@ EXPORT_SYMBOL(flush_delayed_work);
*/
bool flush_rcu_work(struct rcu_work *rwork)
{
- if (test_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(&rwork->work))) {
+ if (work_pending(&rwork->work)) {
rcu_barrier();
flush_work(&rwork->work);
return true;
--
2.25.1


2021-06-02 11:20:10

by Julian Wiedmann

[permalink] [raw]
Subject: [PATCH wq/for-next 2/2] workqueue: clean up for_each_pwq()'s documentation

The if/else clause was removed with commit 5a6446626d7e
("workqueue: Convert for_each_wq to use built-in list check").

Signed-off-by: Julian Wiedmann <[email protected]>
---
kernel/workqueue.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 8a700ccfa313..104e3ef04e33 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -418,9 +418,6 @@ static void show_pwq(struct pool_workqueue *pwq);
* This must be called either with wq->mutex held or RCU read locked.
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
- *
- * The if/else clause exists only for the lockdep assertion and can be
- * ignored.
*/
#define for_each_pwq(pwq, wq) \
list_for_each_entry_rcu((pwq), &(wq)->pwqs, pwqs_node, \
--
2.25.1

2021-06-03 02:24:03

by Lai Jiangshan

[permalink] [raw]
Subject: Re: [PATCH wq/for-next 1/2] workqueue: replace open-coded work_pending()

For both of these patches

Reviewed-by: Lai Jiangshan <[email protected]>


On Wed, Jun 2, 2021 at 7:17 PM Julian Wiedmann <[email protected]> wrote:
>
> Use the right helper to check whether a work item is currently pending.
>
> Signed-off-by: Julian Wiedmann <[email protected]>
> ---
> kernel/workqueue.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/workqueue.c b/kernel/workqueue.c
> index 50142fc08902..8a700ccfa313 100644
> --- a/kernel/workqueue.c
> +++ b/kernel/workqueue.c
> @@ -3209,7 +3209,7 @@ EXPORT_SYMBOL(flush_delayed_work);
> */
> bool flush_rcu_work(struct rcu_work *rwork)
> {
> - if (test_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(&rwork->work))) {
> + if (work_pending(&rwork->work)) {
> rcu_barrier();
> flush_work(&rwork->work);
> return true;
> --
> 2.25.1
>

2021-06-04 14:56:06

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH wq/for-next 2/2] workqueue: clean up for_each_pwq()'s documentation

On Wed, Jun 02, 2021 at 01:16:55PM +0200, Julian Wiedmann wrote:
> The if/else clause was removed with commit 5a6446626d7e
> ("workqueue: Convert for_each_wq to use built-in list check").
>
> Signed-off-by: Julian Wiedmann <[email protected]>

Applied to wq/for-5.14.

Thakns.

--
tejun

2021-06-04 14:56:15

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH wq/for-next 1/2] workqueue: replace open-coded work_pending()

On Wed, Jun 02, 2021 at 01:16:54PM +0200, Julian Wiedmann wrote:
> Use the right helper to check whether a work item is currently pending.
>
> Signed-off-by: Julian Wiedmann <[email protected]>

Applied to wq/for-5.14.

Thanks.

--
tejun