All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: William Breathitt Gray <vilhelm.gray@gmail.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
	kernel@pengutronix.de,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	linux-iio@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org,
	Patrick Havelange <patrick.havelange@essensium.com>,
	Kamel Bouhara <kamel.bouhara@bootlin.com>,
	linux-arm-kernel@lists.infradead.org,
	Syed Nayyar Waris <syednwaris@gmail.com>,
	Oleksij Rempel <linux@rempel-privat.de>,
	Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	David Lechner <david@lechnology.com>,
	Fabrice Gasnier <fabrice.gasnier@foss.st.com>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Alexandre Torgue <alexandre.torgue@foss.st.com>,
	linux-stm32@st-md-mailman.stormreply.com,
	Jonathan Corbet <corbet@lwn.net>,
	linux-doc@vger.kernel.org, Ahmad Fatoum <a.fatoum@pengutronix.de>,
	"Felipe Balbi (Intel)" <balbi@kernel.org>,
	Raymond Tan <raymond.tan@intel.com>,
	Benjamin Gaignard <benjamin.gaignard@st.com>
Subject: [PATCH v2 00/23] counter: cleanups and device lifetime fixes
Date: Mon, 27 Dec 2021 10:45:03 +0100	[thread overview]
Message-ID: <20211227094526.698714-1-u.kleine-koenig@pengutronix.de> (raw)

Hello,

this is v2 of this series, it's goal is to fix struct device lifetime issues as
pointed out in patch #13. The patches up to patch #12 are only prepatory and
cleanup patches. Patch #13 provides the needed functions to fix the issues in
all drivers (patches #15 to #22). The last patch removes the then unused API
calls.

The changes compared to v1 is only build fixes that I missed to include in v1,
they were only in my working copy. Additionally I changed:

diff --git a/drivers/counter/counter-core.c b/drivers/counter/counter-core.c
index cdc6004a7e77..3f7dc5718423 100644
--- a/drivers/counter/counter-core.c
+++ b/drivers/counter/counter-core.c
@@ -27,7 +27,7 @@ static DEFINE_IDA(counter_ida);
 
 struct counter_device_allochelper {
 	struct counter_device counter;
-	unsigned long privdata[0];
+	unsigned long privdata[];
 };
 
 static void counter_device_release(struct device *dev)

The stm32-timer-cnt driver was used to test
this series, the other drivers are only compile tested.


To complete the information from the v1 thread: There are a few more
issues I found while working on this patch set:

 - 104_QUAD_8 depends on X86, but compiles fine on ARCH=arm. Maybe
   adding support for COMPILE_TEST would be a good idea.

 - 104-quad-8.c uses devm_request_irq() and (now) devm_counter_add(). On
   unbind an irq might be pending which results in quad8_irq_handler()
   calling counter_push_event() for a counter that is already
   unregistered. (The issue exists also without my changes.)

 - I think intel-qep.c makes the counter unfunctional in
   intel_qep_remove before the counter is unregistered.

 - I wonder why counter is a bus and not a class device type. There is
   no driver that would ever bind a counter device, is there? So
   /sys/bus/counter/driver is always empty.

Do whatever you want with this list, I won't address these in the near
future.

Uwe Kleine-König (23):
  counter: Use container_of instead of drvdata to track counter_device
  counter: ftm-quaddec: Drop unused platform_set_drvdata()
  counter: microchip-tcb-capture: Drop unused platform_set_drvdata()
  counter: Provide a wrapper to access device private data
  counter: 104-quad-8: Convert to counter_priv() wrapper
  counter: interrupt-cnt: Convert to counter_priv() wrapper
  counter: microchip-tcb-capture: Convert to counter_priv() wrapper
  counter: intel-qep: Convert to counter_priv() wrapper
  counter: ftm-quaddec: Convert to counter_priv() wrapper
  counter: ti-eqep: Convert to counter_priv() wrapper
  counter: stm32-lptimer-cnt: Convert to counter_priv() wrapper
  counter: stm32-timer-cnt: Convert to counter_priv() wrapper
  counter: Provide alternative counter registration functions
  counter: Update documentation for new counter registration functions
  counter: 104-quad-8: Convert to new counter registration
  counter: interrupt-cnt: Convert to new counter registration
  counter: intel-qep: Convert to new counter registration
  counter: ftm-quaddec: Convert to new counter registration
  counter: microchip-tcb-capture: Convert to new counter registration
  counter: stm32-timer-cnt: Convert to new counter registration
  counter: stm32-lptimer-cnt: Convert to new counter registration
  counter: ti-eqep: Convert to new counter registration
  counter: remove old and now unused registration API

 Documentation/driver-api/generic-counter.rst |  10 +-
 drivers/counter/104-quad-8.c                 |  93 +++++-----
 drivers/counter/counter-core.c               | 168 +++++++++++++------
 drivers/counter/ftm-quaddec.c                |  37 ++--
 drivers/counter/intel-qep.c                  |  46 ++---
 drivers/counter/interrupt-cnt.c              |  38 +++--
 drivers/counter/microchip-tcb-capture.c      |  44 ++---
 drivers/counter/stm32-lptimer-cnt.c          |  51 +++---
 drivers/counter/stm32-timer-cnt.c            |  48 +++---
 drivers/counter/ti-eqep.c                    |  47 +++---
 include/linux/counter.h                      |  15 +-
 11 files changed, 348 insertions(+), 249 deletions(-)


base-commit: a7904a538933c525096ca2ccde1e60d0ee62c08e
-- 
2.33.0


WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: William Breathitt Gray <vilhelm.gray@gmail.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
	kernel@pengutronix.de,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	linux-iio@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org,
	Patrick Havelange <patrick.havelange@essensium.com>,
	Kamel Bouhara <kamel.bouhara@bootlin.com>,
	linux-arm-kernel@lists.infradead.org,
	Syed Nayyar Waris <syednwaris@gmail.com>,
	Oleksij Rempel <linux@rempel-privat.de>,
	Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	David Lechner <david@lechnology.com>,
	Fabrice Gasnier <fabrice.gasnier@foss.st.com>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Alexandre Torgue <alexandre.torgue@foss.st.com>,
	linux-stm32@st-md-mailman.stormreply.com,
	Jonathan Corbet <corbet@lwn.net>,
	linux-doc@vger.kernel.org, Ahmad Fatoum <a.fatoum@pengutronix.de>,
	"Felipe Balbi (Intel)" <balbi@kernel.org>,
	Raymond Tan <raymond.tan@intel.com>,
	Benjamin Gaignard <benjamin.gaignard@st.com>
Subject: [PATCH v2 00/23] counter: cleanups and device lifetime fixes
Date: Mon, 27 Dec 2021 10:45:03 +0100	[thread overview]
Message-ID: <20211227094526.698714-1-u.kleine-koenig@pengutronix.de> (raw)

Hello,

this is v2 of this series, it's goal is to fix struct device lifetime issues as
pointed out in patch #13. The patches up to patch #12 are only prepatory and
cleanup patches. Patch #13 provides the needed functions to fix the issues in
all drivers (patches #15 to #22). The last patch removes the then unused API
calls.

The changes compared to v1 is only build fixes that I missed to include in v1,
they were only in my working copy. Additionally I changed:

diff --git a/drivers/counter/counter-core.c b/drivers/counter/counter-core.c
index cdc6004a7e77..3f7dc5718423 100644
--- a/drivers/counter/counter-core.c
+++ b/drivers/counter/counter-core.c
@@ -27,7 +27,7 @@ static DEFINE_IDA(counter_ida);
 
 struct counter_device_allochelper {
 	struct counter_device counter;
-	unsigned long privdata[0];
+	unsigned long privdata[];
 };
 
 static void counter_device_release(struct device *dev)

The stm32-timer-cnt driver was used to test
this series, the other drivers are only compile tested.


To complete the information from the v1 thread: There are a few more
issues I found while working on this patch set:

 - 104_QUAD_8 depends on X86, but compiles fine on ARCH=arm. Maybe
   adding support for COMPILE_TEST would be a good idea.

 - 104-quad-8.c uses devm_request_irq() and (now) devm_counter_add(). On
   unbind an irq might be pending which results in quad8_irq_handler()
   calling counter_push_event() for a counter that is already
   unregistered. (The issue exists also without my changes.)

 - I think intel-qep.c makes the counter unfunctional in
   intel_qep_remove before the counter is unregistered.

 - I wonder why counter is a bus and not a class device type. There is
   no driver that would ever bind a counter device, is there? So
   /sys/bus/counter/driver is always empty.

Do whatever you want with this list, I won't address these in the near
future.

Uwe Kleine-König (23):
  counter: Use container_of instead of drvdata to track counter_device
  counter: ftm-quaddec: Drop unused platform_set_drvdata()
  counter: microchip-tcb-capture: Drop unused platform_set_drvdata()
  counter: Provide a wrapper to access device private data
  counter: 104-quad-8: Convert to counter_priv() wrapper
  counter: interrupt-cnt: Convert to counter_priv() wrapper
  counter: microchip-tcb-capture: Convert to counter_priv() wrapper
  counter: intel-qep: Convert to counter_priv() wrapper
  counter: ftm-quaddec: Convert to counter_priv() wrapper
  counter: ti-eqep: Convert to counter_priv() wrapper
  counter: stm32-lptimer-cnt: Convert to counter_priv() wrapper
  counter: stm32-timer-cnt: Convert to counter_priv() wrapper
  counter: Provide alternative counter registration functions
  counter: Update documentation for new counter registration functions
  counter: 104-quad-8: Convert to new counter registration
  counter: interrupt-cnt: Convert to new counter registration
  counter: intel-qep: Convert to new counter registration
  counter: ftm-quaddec: Convert to new counter registration
  counter: microchip-tcb-capture: Convert to new counter registration
  counter: stm32-timer-cnt: Convert to new counter registration
  counter: stm32-lptimer-cnt: Convert to new counter registration
  counter: ti-eqep: Convert to new counter registration
  counter: remove old and now unused registration API

 Documentation/driver-api/generic-counter.rst |  10 +-
 drivers/counter/104-quad-8.c                 |  93 +++++-----
 drivers/counter/counter-core.c               | 168 +++++++++++++------
 drivers/counter/ftm-quaddec.c                |  37 ++--
 drivers/counter/intel-qep.c                  |  46 ++---
 drivers/counter/interrupt-cnt.c              |  38 +++--
 drivers/counter/microchip-tcb-capture.c      |  44 ++---
 drivers/counter/stm32-lptimer-cnt.c          |  51 +++---
 drivers/counter/stm32-timer-cnt.c            |  48 +++---
 drivers/counter/ti-eqep.c                    |  47 +++---
 include/linux/counter.h                      |  15 +-
 11 files changed, 348 insertions(+), 249 deletions(-)


base-commit: a7904a538933c525096ca2ccde1e60d0ee62c08e
-- 
2.33.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2021-12-27  9:46 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-27  9:45 Uwe Kleine-König [this message]
2021-12-27  9:45 ` [PATCH v2 00/23] counter: cleanups and device lifetime fixes Uwe Kleine-König
2021-12-27  9:45 ` [PATCH v2 01/23] counter: Use container_of instead of drvdata to track counter_device Uwe Kleine-König
2021-12-28 17:14   ` Jonathan Cameron
2021-12-29  6:38   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 02/23] counter: ftm-quaddec: Drop unused platform_set_drvdata() Uwe Kleine-König
2021-12-28 17:37   ` Jonathan Cameron
2021-12-29  6:42   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 03/23] counter: microchip-tcb-capture: " Uwe Kleine-König
2021-12-27  9:45   ` Uwe Kleine-König
2021-12-28 17:38   ` Jonathan Cameron
2021-12-28 17:38     ` Jonathan Cameron
2021-12-29  6:44   ` William Breathitt Gray
2021-12-29  6:44     ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 04/23] counter: Provide a wrapper to access device private data Uwe Kleine-König
2021-12-27 11:02   ` Greg Kroah-Hartman
2021-12-27 11:34     ` Lars-Peter Clausen
2021-12-27 11:52       ` Greg Kroah-Hartman
2021-12-27 12:28         ` Lars-Peter Clausen
2021-12-28 18:01   ` Jonathan Cameron
2021-12-29  6:47   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 05/23] counter: 104-quad-8: Convert to counter_priv() wrapper Uwe Kleine-König
2021-12-28 18:02   ` Jonathan Cameron
2021-12-29 11:11     ` Uwe Kleine-König
2021-12-29  7:27   ` William Breathitt Gray
2021-12-29 11:15     ` Uwe Kleine-König
2021-12-29 22:40       ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 06/23] counter: interrupt-cnt: " Uwe Kleine-König
2021-12-28 18:04   ` Jonathan Cameron
2021-12-29  7:34   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 07/23] counter: microchip-tcb-capture: " Uwe Kleine-König
2021-12-27  9:45   ` Uwe Kleine-König
2021-12-28 18:05   ` Jonathan Cameron
2021-12-28 18:05     ` Jonathan Cameron
2021-12-29  7:35   ` William Breathitt Gray
2021-12-29  7:35     ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 08/23] counter: intel-qep: " Uwe Kleine-König
2021-12-28 18:06   ` Jonathan Cameron
2021-12-29  7:35   ` William Breathitt Gray
2021-12-29 12:43   ` Jarkko Nikula
2021-12-27  9:45 ` [PATCH v2 09/23] counter: ftm-quaddec: " Uwe Kleine-König
2021-12-28 18:07   ` Jonathan Cameron
2021-12-29  7:36   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 10/23] counter: ti-eqep: " Uwe Kleine-König
2021-12-28 18:07   ` Jonathan Cameron
2021-12-29  7:45   ` William Breathitt Gray
2021-12-29 11:19     ` Uwe Kleine-König
2021-12-27  9:45 ` [PATCH v2 11/23] counter: stm32-lptimer-cnt: " Uwe Kleine-König
2021-12-27  9:45   ` Uwe Kleine-König
2021-12-28 18:08   ` Jonathan Cameron
2021-12-28 18:08     ` Jonathan Cameron
2021-12-29  7:48   ` William Breathitt Gray
2021-12-29  7:48     ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 12/23] counter: stm32-timer-cnt: " Uwe Kleine-König
2021-12-27  9:45   ` Uwe Kleine-König
2021-12-28 18:08   ` Jonathan Cameron
2021-12-28 18:08     ` Jonathan Cameron
2021-12-29  7:48   ` William Breathitt Gray
2021-12-29  7:48     ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 13/23] counter: Provide alternative counter registration functions Uwe Kleine-König
2021-12-27 12:16   ` Lars-Peter Clausen
2021-12-28 11:22     ` Uwe Kleine-König
2021-12-27 12:18   ` kernel test robot
2021-12-27 12:18     ` kernel test robot
2021-12-28 18:00   ` Jonathan Cameron
2021-12-29 11:27     ` Uwe Kleine-König
2021-12-29 12:07       ` Uwe Kleine-König
2021-12-29 13:49     ` Jarkko Nikula
2021-12-29 15:47       ` Uwe Kleine-König
2021-12-29  8:13   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 14/23] counter: Update documentation for new " Uwe Kleine-König
2021-12-28 18:12   ` Jonathan Cameron
2021-12-29  8:19     ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 15/23] counter: 104-quad-8: Convert to new counter registration Uwe Kleine-König
2021-12-27 12:19   ` Lars-Peter Clausen
2021-12-28 11:06     ` Uwe Kleine-König
2021-12-28 18:17   ` Jonathan Cameron
2021-12-29  8:24   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 16/23] counter: interrupt-cnt: " Uwe Kleine-König
2021-12-27 10:59   ` Greg Kroah-Hartman
2021-12-27 11:21     ` Lars-Peter Clausen
2021-12-27 11:34       ` Greg Kroah-Hartman
2021-12-27 11:44         ` Lars-Peter Clausen
2021-12-27 21:09         ` Uwe Kleine-König
2021-12-28 18:18   ` Jonathan Cameron
2021-12-29  8:27   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 17/23] counter: intel-qep: " Uwe Kleine-König
2021-12-27 15:02   ` Jarkko Nikula
2021-12-28 10:56     ` Uwe Kleine-König
2021-12-29 12:42       ` Jarkko Nikula
2021-12-28 18:20   ` Jonathan Cameron
2021-12-29  8:29   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 18/23] counter: ftm-quaddec: " Uwe Kleine-König
2021-12-28 18:23   ` Jonathan Cameron
2021-12-29  8:33   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 19/23] counter: microchip-tcb-capture: " Uwe Kleine-König
2021-12-28 18:24   ` Jonathan Cameron
2021-12-29  8:36   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 20/23] counter: stm32-timer-cnt: " Uwe Kleine-König
2021-12-27  9:45   ` Uwe Kleine-König
2021-12-28 18:25   ` Jonathan Cameron
2021-12-28 18:25     ` Jonathan Cameron
2021-12-29  8:37   ` William Breathitt Gray
2021-12-29  8:37     ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 21/23] counter: stm32-lptimer-cnt: " Uwe Kleine-König
2021-12-27  9:45   ` Uwe Kleine-König
2021-12-28 18:26   ` Jonathan Cameron
2021-12-28 18:26     ` Jonathan Cameron
2021-12-29  8:39   ` William Breathitt Gray
2021-12-29  8:39     ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 22/23] counter: ti-eqep: " Uwe Kleine-König
2021-12-28 18:29   ` Jonathan Cameron
2021-12-29  8:41   ` William Breathitt Gray
2021-12-27  9:45 ` [PATCH v2 23/23] counter: remove old and now unused registration API Uwe Kleine-König
2021-12-28 18:31   ` Jonathan Cameron
2021-12-29  8:43   ` William Breathitt Gray
2021-12-27 12:25 ` [PATCH v2 00/23] counter: cleanups and device lifetime fixes Lars-Peter Clausen
2021-12-27 12:25   ` Lars-Peter Clausen
2021-12-28 17:35   ` Jonathan Cameron
2021-12-28 17:35     ` Jonathan Cameron
2021-12-29  8:49     ` William Breathitt Gray
2021-12-29  8:49       ` William Breathitt Gray
2021-12-28 19:45 [PATCH v2 13/23] counter: Provide alternative counter registration functions kernel test robot
2022-01-06 10:53 ` Dan Carpenter
2022-01-06 10:53 ` Dan Carpenter

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=20211227094526.698714-1-u.kleine-koenig@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=a.fatoum@pengutronix.de \
    --cc=alexandre.torgue@foss.st.com \
    --cc=balbi@kernel.org \
    --cc=benjamin.gaignard@st.com \
    --cc=corbet@lwn.net \
    --cc=david@lechnology.com \
    --cc=fabrice.gasnier@foss.st.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=kamel.bouhara@bootlin.com \
    --cc=kernel@pengutronix.de \
    --cc=lars@metafoo.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=linux@rempel-privat.de \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=patrick.havelange@essensium.com \
    --cc=raymond.tan@intel.com \
    --cc=syednwaris@gmail.com \
    --cc=vilhelm.gray@gmail.com \
    /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.