lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <2025020324-thermal-quilt-1bae@gregkh>
Date: Mon,  3 Feb 2025 15:25:16 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: "Rafael J. Wysocki" <rafael@...nel.org>,
	Danilo Krummrich <dakr@...nel.org>,
	Lyude Paul <lyude@...hat.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	Alexander Lobakin <aleksander.lobakin@...el.com>,
	Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
	Bjorn Helgaas <bhelgaas@...gle.com>,
	Jonathan Cameron <Jonathan.Cameron@...wei.com>,
	Liam Girdwood <lgirdwood@...il.com>,
	Lukas Wunner <lukas@...ner.de>,
	Mark Brown <broonie@...nel.org>,
	MaĆ­ra Canal <mairacanal@...eup.net>,
	Robin Murphy <robin.murphy@....com>,
	Simona Vetter <simona.vetter@...ll.ch>,
	Zijun Hu <quic_zijuhu@...cinc.com>,
	linux-kernel@...r.kernel.org,
	linux-usb@...r.kernel.org,
	rust-for-linux@...r.kernel.org
Subject: [PATCH 0/3] Driver core: faux bus

For years/decades now, I've been complaining when I see people use
platform devices for things that are obviously NOT platform devices.
To finally fix this up, here is a "faux bus" that should be used instead
of a platform device for these tiny and "fake" devices that people
create all over the place.

The api is even simpler than the normal platform device api, just two
functions, one to create a device and one to remove it.  When a device
is created, a driver is also created and automatically bound to it,
which allows for the probe/release callbacks to work like expected.
When finished with the device, just destroy it and all should be good.

This simple api should also hopefully provide for a simple rust binding
to it given the simple rules and lifecycle of the pointer passed back
from the creation function (i.e. it is alive and valid for as long as
you have not called destroy on it.)

I've also converted two different examples of platform device abuse, the
dummy regulator driver, and the USB phy code, to use this api.  In both
cases, the logic either was identical, or became simpler, than before, a
good sign (side note, a bug was fixed in the usb phy code that no one
ever noticed before).


Greg Kroah-Hartman (3):
  driver core: add a faux bus for use when a simple device/bus is needed
  regulator: dummy: convert to use the faux bus
  USB: phy: convert usb_phy_generic logic to use a faux device

 drivers/base/Makefile               |   2 +-
 drivers/base/base.h                 |   1 +
 drivers/base/faux.c                 | 189 ++++++++++++++++++++++++++++
 drivers/base/init.c                 |   1 +
 drivers/regulator/dummy.c           |  37 ++----
 drivers/usb/chipidea/ci_hdrc_pci.c  |   2 +-
 drivers/usb/dwc2/pci.c              |   4 +-
 drivers/usb/musb/mediatek.c         |   4 +-
 drivers/usb/musb/mpfs.c             |   4 +-
 drivers/usb/musb/tusb6010.c         |   2 +-
 drivers/usb/phy/phy-generic.c       |   9 +-
 include/linux/device/faux.h         |  33 +++++
 include/linux/usb/usb_phy_generic.h |   9 +-
 13 files changed, 251 insertions(+), 46 deletions(-)
 create mode 100644 drivers/base/faux.c
 create mode 100644 include/linux/device/faux.h

-- 
2.48.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ