mbox series

[v2,0/6] device property: Introducing software nodes

Message ID 20181109142138.54770-1-heikki.krogerus@linux.intel.com (mailing list archive)
Headers show
Series device property: Introducing software nodes | expand

Message

Heikki Krogerus Nov. 9, 2018, 2:21 p.m. UTC
Hi,

This is the second version of my proposal for "software nodes". There
was a "dereferencing freed memory" bug in patch 3/5 which is now
fixed. device_add_properties() and device_remove_properties() no
longer change places in the code as requested by Andy.

The original RFC can be checked from here:
https://lkml.org/lkml/2018/10/12/518

The origin commit message:

To continue the discussion started by Dmitry [1], this is my proposal
that I mentioned in my last mail. In short, the idea is that instead
of trying to extend the support for the currently used struct
property_set, I'm proposing that we introduce a completely new,
independent type of fwnode, and replace the struct property_set with
it. I'm calling the type "software node" here.

The reason for a complete separation of the software nodes from the
generic property handling code is the need to be able to create the
nodes independently from the devices that they are bind to.

The way this works is that every node that is created will have a
kobject registered. That will take care the ref counting for us, and
also allow us to for example display the properties in sysfs.

There are a few more details in patch 3/5 about the software nodes in
the commit message.

[1] https://lkml.org/lkml/2018/9/17/1067

--
heikki


Heikki Krogerus (6):
  driver core: platform: Remove duplicated device_remove_properties()
    call
  drivers core: Prepare support for multiple platform notifications
  ACPI / glue: Add acpi_platform_notify() function
  drivers: base: Introducing software nodes to the firmware node
    framework
  device property: Move device_add_properties() to swnode.c
  device property: Remove struct property_set

 .../ABI/testing/sysfs-devices-software_node   |  10 +
 drivers/acpi/bus.c                            |   1 -
 drivers/acpi/glue.c                           |  21 +-
 drivers/acpi/internal.h                       |   1 -
 drivers/base/Makefile                         |   2 +-
 drivers/base/core.c                           |  34 +-
 drivers/base/platform.c                       |   1 -
 drivers/base/property.c                       | 511 +------------
 drivers/base/swnode.c                         | 678 ++++++++++++++++++
 include/linux/acpi.h                          |  10 +
 include/linux/property.h                      |  12 +
 11 files changed, 768 insertions(+), 513 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-devices-software_node
 create mode 100644 drivers/base/swnode.c

Comments

Andy Shevchenko Nov. 9, 2018, 3:14 p.m. UTC | #1
On Fri, Nov 09, 2018 at 05:21:32PM +0300, Heikki Krogerus wrote:
> Hi,
> 
> This is the second version of my proposal for "software nodes". There
> was a "dereferencing freed memory" bug in patch 3/5 which is now
> fixed. device_add_properties() and device_remove_properties() no
> longer change places in the code as requested by Andy.
> 
> The original RFC can be checked from here:
> https://lkml.org/lkml/2018/10/12/518
> 
> The origin commit message:
> 
> To continue the discussion started by Dmitry [1], this is my proposal
> that I mentioned in my last mail. In short, the idea is that instead
> of trying to extend the support for the currently used struct
> property_set, I'm proposing that we introduce a completely new,
> independent type of fwnode, and replace the struct property_set with
> it. I'm calling the type "software node" here.
> 
> The reason for a complete separation of the software nodes from the
> generic property handling code is the need to be able to create the
> nodes independently from the devices that they are bind to.
> 
> The way this works is that every node that is created will have a
> kobject registered. That will take care the ref counting for us, and
> also allow us to for example display the properties in sysfs.
> 
> There are a few more details in patch 3/5 about the software nodes in
> the commit message.
> 
> [1] https://lkml.org/lkml/2018/9/17/1067
> 

One minor comment in patch 6.
Overall, looks good, so, FWIW,
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> --
> heikki
> 
> 
> Heikki Krogerus (6):
>   driver core: platform: Remove duplicated device_remove_properties()
>     call
>   drivers core: Prepare support for multiple platform notifications
>   ACPI / glue: Add acpi_platform_notify() function
>   drivers: base: Introducing software nodes to the firmware node
>     framework
>   device property: Move device_add_properties() to swnode.c
>   device property: Remove struct property_set
> 
>  .../ABI/testing/sysfs-devices-software_node   |  10 +
>  drivers/acpi/bus.c                            |   1 -
>  drivers/acpi/glue.c                           |  21 +-
>  drivers/acpi/internal.h                       |   1 -
>  drivers/base/Makefile                         |   2 +-
>  drivers/base/core.c                           |  34 +-
>  drivers/base/platform.c                       |   1 -
>  drivers/base/property.c                       | 511 +------------
>  drivers/base/swnode.c                         | 678 ++++++++++++++++++
>  include/linux/acpi.h                          |  10 +
>  include/linux/property.h                      |  12 +
>  11 files changed, 768 insertions(+), 513 deletions(-)
>  create mode 100644 Documentation/ABI/testing/sysfs-devices-software_node
>  create mode 100644 drivers/base/swnode.c
> 
> -- 
> 2.19.1
>
Linus Walleij Nov. 14, 2018, 12:45 p.m. UTC | #2
On Fri, Nov 9, 2018 at 3:21 PM Heikki Krogerus
<heikki.krogerus@linux.intel.com> wrote:

> This is the second version of my proposal for "software nodes". There
> was a "dereferencing freed memory" bug in patch 3/5 which is now
> fixed. device_add_properties() and device_remove_properties() no
> longer change places in the code as requested by Andy.

The series:
Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij
Rafael J. Wysocki Nov. 29, 2018, 9:11 p.m. UTC | #3
On Friday, November 9, 2018 3:21:32 PM CET Heikki Krogerus wrote:
> Hi,
> 
> This is the second version of my proposal for "software nodes". There
> was a "dereferencing freed memory" bug in patch 3/5 which is now
> fixed. device_add_properties() and device_remove_properties() no
> longer change places in the code as requested by Andy.
> 
> The original RFC can be checked from here:
> https://lkml.org/lkml/2018/10/12/518
> 
> The origin commit message:
> 
> To continue the discussion started by Dmitry [1], this is my proposal
> that I mentioned in my last mail. In short, the idea is that instead
> of trying to extend the support for the currently used struct
> property_set, I'm proposing that we introduce a completely new,
> independent type of fwnode, and replace the struct property_set with
> it. I'm calling the type "software node" here.
> 
> The reason for a complete separation of the software nodes from the
> generic property handling code is the need to be able to create the
> nodes independently from the devices that they are bind to.
> 
> The way this works is that every node that is created will have a
> kobject registered. That will take care the ref counting for us, and
> also allow us to for example display the properties in sysfs.
> 
> There are a few more details in patch 3/5 about the software nodes in
> the commit message.
> 
> [1] https://lkml.org/lkml/2018/9/17/1067
> 
> --
> heikki
> 
> 
> Heikki Krogerus (6):
>   driver core: platform: Remove duplicated device_remove_properties()
>     call
>   drivers core: Prepare support for multiple platform notifications
>   ACPI / glue: Add acpi_platform_notify() function
>   drivers: base: Introducing software nodes to the firmware node
>     framework
>   device property: Move device_add_properties() to swnode.c
>   device property: Remove struct property_set
> 
>  .../ABI/testing/sysfs-devices-software_node   |  10 +
>  drivers/acpi/bus.c                            |   1 -
>  drivers/acpi/glue.c                           |  21 +-
>  drivers/acpi/internal.h                       |   1 -
>  drivers/base/Makefile                         |   2 +-
>  drivers/base/core.c                           |  34 +-
>  drivers/base/platform.c                       |   1 -
>  drivers/base/property.c                       | 511 +------------
>  drivers/base/swnode.c                         | 678 ++++++++++++++++++
>  include/linux/acpi.h                          |  10 +
>  include/linux/property.h                      |  12 +
>  11 files changed, 768 insertions(+), 513 deletions(-)
>  create mode 100644 Documentation/ABI/testing/sysfs-devices-software_node
>  create mode 100644 drivers/base/swnode.c
> 
> 

All [1-6/6] applied, thanks!