All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/16] driver core: make more things const!
@ 2023-01-11 11:30 Greg Kroah-Hartman
  2023-01-11 11:30   ` Greg Kroah-Hartman
                   ` (16 more replies)
  0 siblings, 17 replies; 72+ messages in thread
From: Greg Kroah-Hartman @ 2023-01-11 11:30 UTC (permalink / raw)
  To: linux-kernel; +Cc: Greg Kroah-Hartman

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


^ permalink raw reply	[flat|nested] 72+ messages in thread

end of thread, other threads:[~2023-02-01 11:46 UTC | newest]

Thread overview: 72+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-11 11:30 [PATCH v2 00/16] driver core: make more things const! Greg Kroah-Hartman
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

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.