On Mon, Nov 10, 2025 at 06:28:17AM +0000, Tzung-Bi Shih wrote:
> > It just means the user of this needs to understand there are
> > limitations on what release can do. Usually release just frees memory,
> > that is fine.
> > 
> > I think it would be strange for a release to touch revocable data,
> > that might suggest some larger problem.
> 
> I think it'd be inevitable for accessing some devm memory in ->release(),
> e.g. [1].
> 
> [1] 
> https://elixir.bootlin.com/linux/v6.17/source/drivers/platform/chrome/cros_ec_chardev.c#L260

Again, that's symptomatic of a "larger problem" :\

The blocking notifier registration to receive events to relay out to
the file descriptors should be part this drivers probe/remove
lifecycle so it has the proper lifetime. Trying to use a revocable
idea here will create a weirdly unbalanced/dangling blocking notifier
registration :(

Inside cros_ec_chardev it should have a simple list of open file
descriptors and the single blocking notifier callback can iterate over
the list and memdup the events.  Then your release is just a simple
locked list del on a global list which doesn't have a lifecycle
problem.

Jason

Reply via email to