All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Johan Hovold <johan@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	Danilo Krummrich <dakr@kernel.org>,
	Tzung-Bi Shih <tzungbi@kernel.org>,
	Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>,
	Linus Walleij <linusw@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>, Shuah Khan <shuah@kernel.org>,
	Wolfram Sang <wsa+renesas@sang-engineering.com>,
	Simona Vetter <simona.vetter@ffwll.ch>,
	Dan Williams <dan.j.williams@intel.com>,
	Jason Gunthorpe <jgg@nvidia.com>,
	linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/3] Revert "revocable: Revocable resource management"
Date: Sat, 24 Jan 2026 20:42:39 +0200	[thread overview]
Message-ID: <20260124184239.GO215800@killaraus> (raw)
In-Reply-To: <20260124170535.11756-1-johan@kernel.org>

On Sat, Jan 24, 2026 at 06:05:32PM +0100, Johan Hovold wrote:
> I was surprised to learn that the revocable functionality was merged last week
> given the community feedback on list and at LPC, but not least since there are
> no users of it, which we are supposed to require to be able to evaluate it
> properly.
> 
> The chromeos ec driver issue which motivated this work turned out not to need
> it as was found during review. And the example gpiolib conversion was posted
> the very same morning that this was merged which hardly provides enough time
> for evaluation (even if Bartosz quickly reported a performance regression).
> 
> Turns out there are correctness issues with both the gpiolib conversion and
> the revocable design itself that can lead to use-after-free and hung tasks (see
> [1] and patch 3/3).
> 
> And as was pointed out repeatedly during review, and again at the day of the
> merge, this does not look like the right interface for the chardev unplug
> issue.
> 
> Revert the revocable implementation until a redesign has been proposed and
> evaluated properly.

I have voiced some of the concerns listed above. This was merge way too
quickly, without proper review and evaluation of the API as a solution
for the problem at hand. I don't want to see this API spreading through
drivers the same way devm_kzalloc() did without developers understanding
the limitations, it's just another recipe for disaster. I trust that we
have enough knowledge and wisdom in the community to implement correct
solutions to the producer-consumer races.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> [1] https://lore.kernel.org/all/aXT45B6vLf9R3Pbf@hovoldconsulting.com/
> 
> 
> Johan Hovold (3):
>   Revert "selftests: revocable: Add kselftest cases"
>   Revert "revocable: Add Kunit test cases"
>   Revert "revocable: Revocable resource management"
> 
>  .../driver-api/driver-model/index.rst         |   1 -
>  .../driver-api/driver-model/revocable.rst     | 152 -----------
>  MAINTAINERS                                   |   9 -
>  drivers/base/Kconfig                          |   8 -
>  drivers/base/Makefile                         |   5 +-
>  drivers/base/revocable.c                      | 241 ------------------
>  drivers/base/revocable_test.c                 | 142 -----------
>  include/linux/revocable.h                     |  69 -----
>  tools/testing/selftests/Makefile              |   1 -
>  .../selftests/drivers/base/revocable/Makefile |   7 -
>  .../drivers/base/revocable/revocable_test.c   | 136 ----------
>  .../drivers/base/revocable/test-revocable.sh  |  39 ---
>  .../base/revocable/test_modules/Makefile      |  10 -
>  .../revocable/test_modules/revocable_test.c   | 195 --------------
>  14 files changed, 1 insertion(+), 1014 deletions(-)
>  delete mode 100644 Documentation/driver-api/driver-model/revocable.rst
>  delete mode 100644 drivers/base/revocable.c
>  delete mode 100644 drivers/base/revocable_test.c
>  delete mode 100644 include/linux/revocable.h
>  delete mode 100644 tools/testing/selftests/drivers/base/revocable/Makefile
>  delete mode 100644 tools/testing/selftests/drivers/base/revocable/revocable_test.c
>  delete mode 100755 tools/testing/selftests/drivers/base/revocable/test-revocable.sh
>  delete mode 100644 tools/testing/selftests/drivers/base/revocable/test_modules/Makefile
>  delete mode 100644 tools/testing/selftests/drivers/base/revocable/test_modules/revocable_test.c

-- 
Regards,

Laurent Pinchart

  parent reply	other threads:[~2026-01-24 18:42 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-24 17:05 [PATCH 0/3] Revert "revocable: Revocable resource management" Johan Hovold
2026-01-24 17:05 ` [PATCH 1/3] Revert "selftests: revocable: Add kselftest cases" Johan Hovold
2026-01-24 17:05 ` [PATCH 2/3] Revert "revocable: Add Kunit test cases" Johan Hovold
2026-01-24 17:05 ` [PATCH 3/3] Revert "revocable: Revocable resource management" Johan Hovold
2026-01-24 17:37   ` Johan Hovold
2026-01-24 17:46   ` Danilo Krummrich
2026-01-26 13:20     ` Johan Hovold
2026-01-27 15:57       ` Tzung-Bi Shih
2026-01-24 18:42 ` Laurent Pinchart [this message]
2026-01-24 19:08 ` [PATCH 0/3] " Danilo Krummrich
2026-01-25 12:47   ` Greg Kroah-Hartman
2026-01-25 13:22     ` Laurent Pinchart
2026-01-25 14:07       ` Danilo Krummrich
2026-01-29  1:09         ` Laurent Pinchart
2026-01-25 13:24     ` Laurent Pinchart
2026-01-25 17:53     ` Danilo Krummrich
2026-01-26  0:07       ` Jason Gunthorpe
2026-01-26 16:08         ` Danilo Krummrich
2026-01-26 17:07           ` Jason Gunthorpe
2026-01-26 22:36             ` Danilo Krummrich
2026-01-28 23:40             ` Laurent Pinchart
2026-01-26 13:50     ` Johan Hovold
2026-01-27 21:18       ` Bartosz Golaszewski
2026-01-27 23:52         ` Jason Gunthorpe
2026-01-28  9:40           ` Bartosz Golaszewski
2026-01-28 10:01             ` Wolfram Sang
2026-01-28 15:05               ` Jason Gunthorpe
2026-01-28 15:20                 ` Bartosz Golaszewski
2026-01-28 16:01                   ` Jason Gunthorpe
2026-01-30 11:27                     ` Bartosz Golaszewski
2026-01-28 16:58                 ` Wolfram Sang
2026-01-29  1:08           ` Laurent Pinchart
2026-01-29  1:23             ` Jason Gunthorpe
2026-01-29  3:42               ` dan.j.williams
2026-01-29  9:56                 ` Danilo Krummrich
2026-01-29 10:43                   ` Laurent Pinchart
2026-01-30  0:36                   ` dan.j.williams
2026-01-29 10:38               ` Laurent Pinchart
2026-01-29 13:34                 ` Jason Gunthorpe
2026-01-29 14:52                   ` Laurent Pinchart
2026-01-29 22:29             ` Danilo Krummrich
2026-01-30  9:10               ` Laurent Pinchart
2026-02-03  9:10                 ` Maxime Ripard
2026-02-03 13:59                   ` Laurent Pinchart
2026-01-28 15:48         ` Johan Hovold
2026-01-29  9:11           ` Bartosz Golaszewski
2026-01-29 10:56             ` Laurent Pinchart
2026-01-29 13:50               ` Bartosz Golaszewski
2026-01-29 14:28                 ` Jason Gunthorpe
2026-01-29 14:45                   ` Laurent Pinchart
2026-01-29 14:49                 ` Laurent Pinchart
2026-01-29 22:00                   ` Danilo Krummrich
2026-01-30 11:19                   ` Bartosz Golaszewski
2026-01-29 13:27           ` Linus Walleij
2026-02-03 12:15       ` Johan Hovold
2026-02-03 12:26         ` Greg Kroah-Hartman
2026-02-03 12:30           ` [PATCH] driver core: disable revocable code from build Greg Kroah-Hartman
2026-02-03 13:20             ` Danilo Krummrich
2026-02-04  2:14             ` Tzung-Bi Shih
2026-02-04  5:28               ` [PATCH] selftests: Disable " Tzung-Bi Shih
2026-02-04  8:21                 ` Greg Kroah-Hartman
2026-02-03 13:57           ` [PATCH 0/3] Revert "revocable: Revocable resource management" Laurent Pinchart
2026-02-03 15:44             ` Greg Kroah-Hartman
2026-02-04 14:36           ` Johan Hovold
2026-01-27 15:57 ` Tzung-Bi Shih
2026-01-28 14:23   ` Johan Hovold
2026-01-28 23:28     ` Laurent Pinchart
2026-01-29 15:01   ` Tzung-Bi Shih
2026-01-30  9:12     ` Laurent Pinchart
2026-01-30 17:41       ` Danilo Krummrich

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=20260124184239.GO215800@killaraus \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=bartosz.golaszewski@oss.qualcomm.com \
    --cc=corbet@lwn.net \
    --cc=dakr@kernel.org \
    --cc=dan.j.williams@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jgg@nvidia.com \
    --cc=johan@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=shuah@kernel.org \
    --cc=simona.vetter@ffwll.ch \
    --cc=tzungbi@kernel.org \
    --cc=wsa+renesas@sang-engineering.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.