From: Sasha Levin <sashal@kernel.org>
To: gregkh@linuxfoundation.org
Cc: lukas@wunner.de, andriy.shevchenko@linux.intel.com,
baruch@tkos.co.il, broonie@kernel.org, stable@vger.kernel.org
Subject: Re: FAILED: patch "[PATCH] spi: dw: Fix controller unregister order" failed to apply to 4.14-stable tree
Date: Mon, 15 Jun 2020 17:32:50 -0400 [thread overview]
Message-ID: <20200615213250.GD1931@sasha-vm> (raw)
In-Reply-To: <159223441416477@kroah.com>
On Mon, Jun 15, 2020 at 05:20:14PM +0200, gregkh@linuxfoundation.org wrote:
>
>The patch below does not apply to the 4.14-stable tree.
>If someone wants it applied there, or to any other stable or longterm
>tree, then please email the backport, including the original git commit
>id to <stable@vger.kernel.org>.
>
>thanks,
>
>greg k-h
>
>------------------ original commit in Linus's tree ------------------
>
>From ca8b19d61e3fce5d2d7790cde27a0b57bcb3f341 Mon Sep 17 00:00:00 2001
>From: Lukas Wunner <lukas@wunner.de>
>Date: Mon, 25 May 2020 14:25:01 +0200
>Subject: [PATCH] spi: dw: Fix controller unregister order
>
>The Designware SPI driver uses devm_spi_register_controller() on bind.
>As a consequence, on unbind, __device_release_driver() first invokes
>dw_spi_remove_host() before unregistering the SPI controller via
>devres_release_all().
>
>This order is incorrect: dw_spi_remove_host() shuts down the chip,
>rendering the SPI bus inaccessible even though the SPI controller is
>still registered. When the SPI controller is subsequently unregistered,
>it unbinds all its slave devices. Because their drivers cannot access
>the SPI bus, e.g. to quiesce interrupts, the slave devices may be left
>in an improper state.
>
>As a rule, devm_spi_register_controller() must not be used if the
>->remove() hook performs teardown steps which shall be performed after
>unregistering the controller and specifically after unbinding of slaves.
>
>Fix by reverting to the non-devm variant of spi_register_controller().
>
>An alternative approach would be to use device-managed functions for all
>steps in dw_spi_remove_host(), e.g. by calling devm_add_action_or_reset()
>on probe. However that approach would add more LoC to the driver and
>it wouldn't lend itself as well to backporting to stable.
>
>Fixes: 04f421e7b0b1 ("spi: dw: use managed resources")
>Signed-off-by: Lukas Wunner <lukas@wunner.de>
>Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>Cc: stable@vger.kernel.org # v3.14+
>Cc: Baruch Siach <baruch@tkos.co.il>
>Link: https://lore.kernel.org/r/3fff8cb8ae44a9893840d0688be15bb88c090a14.1590408496.git.lukas@wunner.de
>Signed-off-by: Mark Brown <broonie@kernel.org>
I took this additional patch:
66b19d762378 ("spi: dw: fix possible race condition")
And worked around the renames in :
721483e28889 ("spi: dw: Convert to generalized SPI controller API")
And queued these two patches for 4.14, 4.9, and 4.4.
--
Thanks,
Sasha
prev parent reply other threads:[~2020-06-15 21:32 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-15 15:20 FAILED: patch "[PATCH] spi: dw: Fix controller unregister order" failed to apply to 4.14-stable tree gregkh
2020-06-15 21:32 ` Sasha Levin [this message]
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=20200615213250.GD1931@sasha-vm \
--to=sashal@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=baruch@tkos.co.il \
--cc=broonie@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=lukas@wunner.de \
--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;
as well as URLs for NNTP newsgroup(s).