All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: William Breathitt Gray <vilhelm.gray@gmail.com>,
	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,
	Syed Nayyar Waris <syednwaris@gmail.com>,
	Patrick Havelange <patrick.havelange@essensium.com>
Subject: Re: [PATCH v2 18/23] counter: ftm-quaddec: Convert to new counter registration
Date: Tue, 28 Dec 2021 18:23:32 +0000	[thread overview]
Message-ID: <20211228182332.7a96041e@jic23-huawei> (raw)
In-Reply-To: <20211227094526.698714-19-u.kleine-koenig@pengutronix.de>

On Mon, 27 Dec 2021 10:45:21 +0100
Uwe Kleine-König         <u.kleine-koenig@pengutronix.de> wrote:

> This fixes device lifetime issues where it was possible to free a live
> struct device.
> 
> Fixes: a3b9a99980d9 ("counter: add FlexTimer Module Quadrature decoder counter driver")
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Assuming you move the 104-quad-8 stuff to the earlier patch.


> ---
>  drivers/counter/104-quad-8.c  |  7 ++++---
>  drivers/counter/ftm-quaddec.c | 27 +++++++++++++--------------
>  2 files changed, 17 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/counter/104-quad-8.c b/drivers/counter/104-quad-8.c
> index 4315b14f239e..680c7ba943a4 100644
> --- a/drivers/counter/104-quad-8.c
> +++ b/drivers/counter/104-quad-8.c

Block in wrong patch. I'll assume you'll fix that and ignore it beyond saying
this change is fine so keep my RB on the earlier patch once you've added this block.

> @@ -1084,7 +1084,8 @@ static struct counter_count quad8_counts[] = {
>  
>  static irqreturn_t quad8_irq_handler(int irq, void *private)
>  {
> -	struct quad8 *const priv = private;
> +	struct counter_device *counter = private;
> +	struct quad8 *const priv = counter_priv(counter);
>  	const unsigned long base = priv->base;
>  	unsigned long irq_status;
>  	unsigned long channel;
> @@ -1115,7 +1116,7 @@ static irqreturn_t quad8_irq_handler(int irq, void *private)
>  			continue;
>  		}
>  
> -		counter_push_event(&priv->counter, event, channel);
> +		counter_push_event(counter, event, channel);
>  	}
>  
>  	/* Clear pending interrupts on device */
> @@ -1192,7 +1193,7 @@ static int quad8_probe(struct device *dev, unsigned int id)
>  	outb(QUAD8_CHAN_OP_ENABLE_INTERRUPT_FUNC, base[id] + QUAD8_REG_CHAN_OP);
>  
>  	err = devm_request_irq(dev, irq[id], quad8_irq_handler, IRQF_SHARED,
> -			       counter->name, priv);
> +			       counter->name, counter);
>  	if (err)
>  		return err;
>  
> diff --git a/drivers/counter/ftm-quaddec.c b/drivers/counter/ftm-quaddec.c
> index f5d92df6a611..c636183b1337 100644
> --- a/drivers/counter/ftm-quaddec.c
> +++ b/drivers/counter/ftm-quaddec.c
> @@ -26,7 +26,6 @@
>  	})
>  
>  struct ftm_quaddec {
> -	struct counter_device counter;
>  	struct platform_device *pdev;
>  	void __iomem *ftm_base;
>  	bool big_endian;
> @@ -259,15 +258,16 @@ static struct counter_count ftm_quaddec_counts = {
>  
>  static int ftm_quaddec_probe(struct platform_device *pdev)
>  {
> +	struct counter_device *counter;
>  	struct ftm_quaddec *ftm;
> -

Try to avoid white space changes in a patch like these even if they seem
trivial.  The 'noise' adds up.

>  	struct device_node *node = pdev->dev.of_node;
>  	struct resource *io;
>  	int ret;
>  
> -	ftm = devm_kzalloc(&pdev->dev, sizeof(*ftm), GFP_KERNEL);
> -	if (!ftm)
> +	counter = devm_counter_alloc(&pdev->dev, sizeof(*ftm));
> +	if (!counter)
>  		return -ENOMEM;
> +	ftm = counter_priv(counter);
>  
>  	io = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>  	if (!io) {
> @@ -283,14 +283,13 @@ static int ftm_quaddec_probe(struct platform_device *pdev)
>  		dev_err(&pdev->dev, "Failed to map memory region\n");
>  		return -EINVAL;
>  	}
> -	ftm->counter.name = dev_name(&pdev->dev);
> -	ftm->counter.parent = &pdev->dev;
> -	ftm->counter.ops = &ftm_quaddec_cnt_ops;
> -	ftm->counter.counts = &ftm_quaddec_counts;
> -	ftm->counter.num_counts = 1;
> -	ftm->counter.signals = ftm_quaddec_signals;
> -	ftm->counter.num_signals = ARRAY_SIZE(ftm_quaddec_signals);
> -	ftm->counter.priv = ftm;
> +	counter->name = dev_name(&pdev->dev);
> +	counter->parent = &pdev->dev;
> +	counter->ops = &ftm_quaddec_cnt_ops;
> +	counter->counts = &ftm_quaddec_counts;
> +	counter->num_counts = 1;
> +	counter->signals = ftm_quaddec_signals;
> +	counter->num_signals = ARRAY_SIZE(ftm_quaddec_signals);
>  
>  	mutex_init(&ftm->ftm_quaddec_mutex);
>  
> @@ -300,9 +299,9 @@ static int ftm_quaddec_probe(struct platform_device *pdev)
>  	if (ret)
>  		return ret;
>  
> -	ret = devm_counter_register(&pdev->dev, &ftm->counter);
> +	ret = devm_counter_add(&pdev->dev, counter);
>  	if (ret)
> -		return ret;
> +		return dev_err_probe(&pdev->dev, ret, "Failed to add counter\n");
>  
>  	return 0;
>  }


  reply	other threads:[~2021-12-28 18:17 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-27  9:45 [PATCH v2 00/23] counter: cleanups and device lifetime fixes Uwe Kleine-König
2021-12-27  9:45 ` 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 [this message]
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=20211228182332.7a96041e@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kernel@pengutronix.de \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patrick.havelange@essensium.com \
    --cc=syednwaris@gmail.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --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.