From: Tejun Heo <tj@kernel.org>
To: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Arjan van de Ven <arjan@linux.intel.com>,
stable@vger.kernel.org, Lai Jiangshan <laijs@cn.fujitsu.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Revert "async: simplify lowest_in_progress()"
Date: Mon, 27 Nov 2017 11:36:37 -0800 [thread overview]
Message-ID: <20171127193637.GK983427@devbig577.frc2.facebook.com> (raw)
In-Reply-To: <20171120225147.3880-1-linux@rasmusvillemoes.dk>
On Mon, Nov 20, 2017 at 11:51:47PM +0100, Rasmus Villemoes wrote:
> This reverts commit 92266d6ef60c2381c980c6cdcb2a5c1667b36b49, which
> was simply wrong: In the case where domain is NULL, we now use the
> wrong offsetof() in the list_first_entry macro, so we don't actually
> fetch the ->cookie value, but rather the eight bytes located
> sizeof(struct list_head) further into the struct async_entry.
>
> On 64 bit, that's the data member, while on 32 bit, we get a u64 built
> from func and data in some order.
>
> I think the bug happens to be harmless in practice: It obviously only
> affects callers which pass a NULL domain, and AFAICT the only such
> caller is
>
> async_synchronize_full() ->
> async_synchronize_full_domain(NULL) ->
> async_synchronize_cookie_domain(ASYNC_COOKIE_MAX, NULL)
>
> and the ASYNC_COOKIE_MAX means that in practice we end up waiting for
> the async_global_pending list to be empty - but it would break if
> somebody happened to pass (void*)-1 as the data element to
> async_schedule, and of course also if somebody ever does a
> async_synchronize_cookie_domain(, NULL) with a "finite" cookie value.
>
> Cc: stable@vger.kernel.org # 3.10+
> Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Ughh... indeed.
Acked-by: Tejun Heo <tj@kernel.org>
Sorry about that. Can you please resend the patch w/ Andrew Morton
cc'd? I think it'd be best to route this through -mm.
Thanks.
--
tejun
next prev parent reply other threads:[~2017-11-27 19:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-20 22:51 [PATCH] Revert "async: simplify lowest_in_progress()" Rasmus Villemoes
2017-11-20 22:59 ` Adam Wallis
2017-11-27 19:36 ` Tejun Heo [this message]
2017-11-28 10:49 ` [PATCH resend] " Rasmus Villemoes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171127193637.GK983427@devbig577.frc2.facebook.com \
--to=tj@kernel.org \
--cc=arjan@linux.intel.com \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox