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
next 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: linkBe 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.