From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH v2 00/16] driver core: make more things const!
Date: Wed, 11 Jan 2023 12:30:02 +0100 [thread overview]
Message-ID: <20230111113018.459199-1-gregkh@linuxfoundation.org> (raw)
Here's an updated version of this original series:
https://lore.kernel.org/all/20221123122523.1332370-1-gregkh@linuxfoundation.org/
that has the goal of making more functions in the driver core take const
pointers as they do not actually modify anything. This work is an
outgrowth of some conversations I had with the Linux Rust developers
talking about the mutability of many of the driver model pointers.
A small subset of the original submission is now in 6.2-rc1 and this
series is an outgrown of the original submission in that many things are
now changed and a bit more explicit than before.
I can take all of these through the driver-core git tree as they depend
on each other. 0-day has been passing on this series for quite a while,
so all should be good unless some subsystem trees have added new busses
without me noticing.
Bonus for all of this work, the overall code size of the kernel actually
decreased a tiny bit:
126 files changed, 283 insertions(+), 309 deletions(-)
while adding a lot more type-safeness to the system.
Changes from v1:
- rebased on 6.2-rc1 and dropped accepted patches already in there.
- container_of_const() is now in 6.2-rc1 so use that in many
individual subsystems to make the follow-on changes in the driver
core more obvious.
- collected some Reviewed-by
- of_device_uevent_modalias was being "abused" by many different
subsystems in using it instead of a local bus function which played
havoc when enabling stricter type-checking. Move that out into a
new function for the busses that were doing this to make it more
obvious what they need here.
Greg Kroah-Hartman (16):
of: device: make of_device_uevent_modalias() take a const device *
i3c: move dev_to_i3cdev() to use container_of_const()
platform/surface: aggregator: move to_ssam_device() to use
container_of_const()
firewire: move fw_device() and fw_unit() to use container_of_const()
driver core: make struct device_type.uevent() take a const *
driver core: make struct device_type.devnode() take a const *
driver core: device_get_devnode() should take a const *
vio: move to_vio_dev() to use container_of_const()
platform/x86: wmi: move dev_to_wblock() and dev_to_wdev to use
container_of_const()
drivers: hv: move device_to_hv_device to use container_of_const()
virtio: move dev_to_virtio() to use container_of_const()
drm/mipi-dsi: move to_mipi_dsi_device() to use container_of_const()
mcb: move to_mcb_device() to use container_of_const()
xen/xenbus: move to_xenbus_device() to use container_of_const()
driver core: make struct bus_type.uevent() take a const *
kobject: kset_uevent_ops: make uevent() callback take a const *
arch/mips/sgi-ip22/ip22-gio.c | 4 ++--
arch/parisc/kernel/drivers.c | 4 ++--
arch/powerpc/include/asm/vio.h | 5 +----
arch/powerpc/platforms/pseries/ibmebus.c | 7 ++++++-
arch/powerpc/platforms/pseries/vio.c | 4 ++--
arch/sparc/include/asm/vio.h | 5 +----
arch/sparc/kernel/vio.c | 2 +-
block/genhd.c | 2 +-
block/partitions/core.c | 4 ++--
drivers/acpi/bus.c | 2 +-
drivers/acpi/device_sysfs.c | 8 ++++----
drivers/acpi/internal.h | 2 +-
drivers/amba/bus.c | 4 ++--
drivers/base/auxiliary.c | 2 +-
drivers/base/base.h | 2 ++
drivers/base/core.c | 6 +++---
drivers/base/cpu.c | 2 +-
drivers/base/platform.c | 4 ++--
drivers/bcma/main.c | 6 +++---
drivers/bus/fsl-mc/fsl-mc-bus.c | 4 ++--
drivers/bus/mhi/ep/main.c | 4 ++--
drivers/bus/mhi/host/init.c | 4 ++--
drivers/bus/mips_cdmm.c | 4 ++--
drivers/bus/sunxi-rsb.c | 7 ++++++-
drivers/cxl/core/memdev.c | 4 ++--
drivers/cxl/core/port.c | 8 ++++----
drivers/cxl/cxl.h | 4 ++--
drivers/cxl/cxlmem.h | 2 +-
drivers/dax/bus.c | 2 +-
drivers/eisa/eisa-bus.c | 4 ++--
drivers/firewire/core-device.c | 8 ++++----
drivers/firmware/arm_ffa/bus.c | 4 ++--
drivers/fpga/dfl.c | 4 ++--
drivers/fsi/fsi-core.c | 6 +++---
drivers/gpu/drm/display/drm_dp_aux_bus.c | 7 ++++++-
drivers/gpu/drm/drm_mipi_dsi.c | 4 ++--
drivers/gpu/host1x/bus.c | 2 +-
drivers/greybus/core.c | 14 +++++++-------
drivers/hid/hid-core.c | 4 ++--
drivers/hid/intel-ish-hid/ishtp/bus.c | 2 +-
drivers/hsi/hsi_core.c | 2 +-
drivers/hv/vmbus_drv.c | 4 ++--
drivers/hwtracing/intel_th/core.c | 6 +++---
drivers/hwtracing/intel_th/intel_th.h | 4 ++--
drivers/i2c/i2c-core-base.c | 4 ++--
drivers/i3c/device.c | 14 +-------------
drivers/i3c/master.c | 4 ++--
drivers/input/input.c | 16 ++++++++--------
drivers/input/serio/serio.c | 4 ++--
drivers/ipack/ipack.c | 4 ++--
drivers/macintosh/macio_asic.c | 7 ++++++-
drivers/mcb/mcb-core.c | 4 ++--
drivers/media/rc/rc-main.c | 2 +-
drivers/memstick/core/memstick.c | 6 +++---
drivers/misc/mei/bus.c | 4 ++--
drivers/misc/tifm_core.c | 4 ++--
drivers/mmc/core/bus.c | 4 ++--
drivers/mmc/core/sdio_bus.c | 4 ++--
drivers/net/phy/mdio_bus.c | 2 +-
drivers/net/xen-netback/xenbus.c | 2 +-
drivers/nvdimm/bus.c | 4 ++--
drivers/nvdimm/dax_devs.c | 2 +-
drivers/nvdimm/dimm_devs.c | 2 +-
drivers/nvdimm/nd-core.h | 10 +++++-----
drivers/nvdimm/nd.h | 4 ++--
drivers/nvdimm/region_devs.c | 4 ++--
drivers/of/device.c | 4 ++--
drivers/pci/pci-driver.c | 4 ++--
drivers/pcmcia/ds.c | 4 ++--
drivers/platform/surface/aggregator/bus.c | 4 ++--
drivers/platform/x86/wmi.c | 15 ++++-----------
drivers/rapidio/rio-driver.c | 4 ++--
drivers/rpmsg/rpmsg_core.c | 4 ++--
drivers/s390/cio/css.c | 4 ++--
drivers/s390/cio/device.c | 8 ++++----
drivers/s390/cio/scm.c | 2 +-
drivers/s390/crypto/ap_bus.c | 4 ++--
drivers/scsi/scsi_sysfs.c | 4 ++--
drivers/slimbus/core.c | 4 ++--
drivers/soc/qcom/apr.c | 4 ++--
drivers/soundwire/bus_type.c | 4 ++--
drivers/spi/spi.c | 2 +-
drivers/spmi/spmi.c | 2 +-
drivers/ssb/main.c | 4 ++--
drivers/staging/greybus/gbphy.c | 14 +++++++-------
drivers/tee/tee_core.c | 2 +-
drivers/thunderbolt/switch.c | 4 ++--
drivers/thunderbolt/tb.h | 2 +-
drivers/thunderbolt/xdomain.c | 6 +++---
drivers/tty/serdev/core.c | 2 +-
drivers/usb/common/ulpi.c | 4 ++--
drivers/usb/core/driver.c | 6 +++---
drivers/usb/core/message.c | 8 ++++----
drivers/usb/core/usb.c | 8 ++++----
drivers/usb/phy/phy.c | 6 +++---
drivers/usb/roles/class.c | 3 +--
drivers/usb/typec/bus.c | 4 ++--
drivers/usb/typec/class.c | 2 +-
drivers/virtio/virtio.c | 4 ++--
drivers/w1/w1.c | 10 +++++-----
drivers/xen/pvcalls-back.c | 2 +-
drivers/xen/xenbus/xenbus_probe_backend.c | 8 ++++----
drivers/xen/xenbus/xenbus_probe_frontend.c | 4 ++--
drivers/zorro/zorro-driver.c | 4 ++--
fs/dlm/lockspace.c | 4 ++--
fs/gfs2/sys.c | 6 +++---
include/drm/drm_mipi_dsi.h | 5 +----
include/linux/acpi.h | 4 ++--
include/linux/device.h | 6 ++----
include/linux/device/bus.h | 2 +-
include/linux/firewire.h | 15 +++------------
include/linux/hyperv.h | 5 +----
include/linux/i3c/device.h | 11 +++++++++--
include/linux/kobject.h | 2 +-
include/linux/mcb.h | 5 +----
include/linux/of_device.h | 4 ++--
include/linux/soundwire/sdw_type.h | 2 +-
include/linux/spi/spi.h | 2 +-
include/linux/ssb/ssb.h | 2 +-
include/linux/surface_aggregator/device.h | 5 +----
include/linux/virtio.h | 5 +----
include/sound/hdaudio.h | 2 +-
include/xen/xenbus.h | 7 ++-----
sound/aoa/soundbus/core.c | 6 +++---
sound/hda/hda_bus_type.c | 2 +-
sound/hda/hdac_device.c | 2 +-
126 files changed, 283 insertions(+), 309 deletions(-)
--
2.39.0
next reply other threads:[~2023-01-11 11:31 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-11 11:30 Greg Kroah-Hartman [this message]
2023-01-11 11:30 ` [PATCH v2 01/16] of: device: make of_device_uevent_modalias() take a const device * Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 14:54 ` Rob Herring
2023-01-11 14:54 ` Rob Herring
2023-01-11 14:54 ` Rob Herring
2023-01-11 14:54 ` Rob Herring
2023-01-11 15:26 ` Greg Kroah-Hartman
2023-01-11 15:26 ` Greg Kroah-Hartman
2023-01-11 15:26 ` Greg Kroah-Hartman
2023-01-11 15:26 ` Greg Kroah-Hartman
2023-01-11 15:30 ` Dmitry Baryshkov
2023-01-11 15:30 ` Dmitry Baryshkov
2023-01-11 15:30 ` Dmitry Baryshkov
2023-01-11 15:30 ` Dmitry Baryshkov
2023-01-27 12:33 ` Greg Kroah-Hartman
2023-01-27 12:33 ` Greg Kroah-Hartman
2023-01-27 12:33 ` Greg Kroah-Hartman
2023-01-27 12:33 ` Greg Kroah-Hartman
2023-01-11 11:30 ` [PATCH v2 02/16] i3c: move dev_to_i3cdev() to use container_of_const() Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 13:31 ` Alexandre Belloni
2023-01-11 13:31 ` Alexandre Belloni
2023-01-11 11:30 ` [PATCH v2 03/16] platform/surface: aggregator: move to_ssam_device() " Greg Kroah-Hartman
2023-01-11 11:54 ` Hans de Goede
2023-01-11 12:14 ` Greg Kroah-Hartman
2023-01-11 12:15 ` Hans de Goede
2023-01-11 12:02 ` Maximilian Luz
2023-01-11 12:14 ` Greg Kroah-Hartman
2023-01-11 13:29 ` Maximilian Luz
2023-01-11 11:30 ` [PATCH v2 04/16] firewire: move fw_device() and fw_unit() " Greg Kroah-Hartman
2023-01-11 11:30 ` [PATCH v2 05/16] driver core: make struct device_type.uevent() take a const * Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 11:50 ` Wolfram Sang
2023-01-11 11:50 ` Wolfram Sang
2023-01-11 11:50 ` Wolfram Sang
2023-01-11 12:34 ` Vinod Koul
2023-01-11 12:34 ` Vinod Koul
2023-01-11 12:34 ` Vinod Koul
2023-01-11 13:32 ` Alexandre Belloni
2023-01-11 13:32 ` Alexandre Belloni
2023-01-11 13:32 ` Alexandre Belloni
2023-01-12 11:58 ` Heikki Krogerus
2023-01-12 11:58 ` Heikki Krogerus
2023-01-12 11:58 ` Heikki Krogerus
2023-01-11 11:30 ` [PATCH v2 06/16] driver core: make struct device_type.devnode() " Greg Kroah-Hartman
2023-01-13 13:33 ` Alexander Shishkin
2023-01-11 11:30 ` [PATCH v2 07/16] driver core: device_get_devnode() should " Greg Kroah-Hartman
2023-01-11 11:30 ` [PATCH v2 08/16] vio: move to_vio_dev() to use container_of_const() Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 11:30 ` [PATCH v2 09/16] platform/x86: wmi: move dev_to_wblock() and dev_to_wdev " Greg Kroah-Hartman
2023-01-11 11:30 ` [PATCH v2 10/16] drivers: hv: move device_to_hv_device " Greg Kroah-Hartman
2023-01-12 14:04 ` Wei Liu
2023-01-11 11:30 ` [PATCH v2 11/16] virtio: move dev_to_virtio() " Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 11:30 ` [PATCH v2 12/16] drm/mipi-dsi: move to_mipi_dsi_device() " Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 11:30 ` [PATCH v2 13/16] mcb: move to_mcb_device() " Greg Kroah-Hartman
2023-01-11 11:30 ` [PATCH v2 14/16] xen/xenbus: move to_xenbus_device() " Greg Kroah-Hartman
2023-01-11 12:11 ` Juergen Gross
2023-01-11 11:30 ` [PATCH v2 15/16] driver core: make struct bus_type.uevent() take a const * Greg Kroah-Hartman
2023-01-11 17:39 ` Rafael J. Wysocki
2023-02-01 11:21 ` Naresh Kamboju
2023-02-01 11:46 ` Greg KH
2023-01-11 11:30 ` [Cluster-devel] [PATCH v2 16/16] kobject: kset_uevent_ops: make uevent() callback " Greg Kroah-Hartman
2023-01-11 11:30 ` Greg Kroah-Hartman
2023-01-11 17:37 ` [Cluster-devel] " Rafael J. Wysocki
2023-01-11 17:37 ` Rafael J. Wysocki
2023-01-11 11:55 ` [PATCH v2 00/16] driver core: make more things const! Hans de Goede
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=20230111113018.459199-1-gregkh@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@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 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.