All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] tmio_mmc_pio: prevent endless loop in tmio_mmc_set_clock()
@ 2014-09-05 21:42 ` Sergei Shtylyov
  0 siblings, 0 replies; 6+ messages in thread
From: Sergei Shtylyov @ 2014-09-05 21:42 UTC (permalink / raw)
  To: linux-mmc, ian.molton, chris, ulf.hansson; +Cc: linux-sh

I spent a couple of days with the driver just hanging due to me forgetting to
specify the external crystal frequency,  so that clk_get_rate() returned 0 and
thus the loop in tmio_mmc_set_clock() never ended. I don't think that's an
acceptable behavior, so I suggest that the minimum frequency is checked for 0
in tmio_mmc_host_probe().

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

---
The patch is against Ulf Hansson's 'mmc.git' repo's 'fixes' branch.

Changes in version 2:
- fixed grammar in the changelog.

 drivers/mmc/host/tmio_mmc_pio.c |    9 +++++++++
 1 file changed, 9 insertions(+)

Index: mmc/drivers/mmc/host/tmio_mmc_pio.c
=================================--- mmc.orig/drivers/mmc/host/tmio_mmc_pio.c
+++ mmc/drivers/mmc/host/tmio_mmc_pio.c
@@ -1044,6 +1044,15 @@ int tmio_mmc_host_probe(struct tmio_mmc_
 	}
 
 	/*
+	 * Check the sanity of mmc->f_min to prevent tmio_mmc_set_clock() from
+	 * looping forever...
+	 */
+	if (mmc->f_min = 0) {
+		ret = -EINVAL;
+		goto pm_disable;
+	}
+
+	/*
 	 * There are 4 different scenarios for the card detection:
 	 *  1) an external gpio irq handles the cd (best for power savings)
 	 *  2) internal sdhi irq handles the cd


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

* [PATCH v2] tmio_mmc_pio: prevent endless loop in tmio_mmc_set_clock()
@ 2014-09-05 21:42 ` Sergei Shtylyov
  0 siblings, 0 replies; 6+ messages in thread
From: Sergei Shtylyov @ 2014-09-05 21:42 UTC (permalink / raw)
  To: linux-mmc, ian.molton, chris, ulf.hansson; +Cc: linux-sh

I spent a couple of days with the driver just hanging due to me forgetting to
specify the external crystal frequency,  so that clk_get_rate() returned 0 and
thus the loop in tmio_mmc_set_clock() never ended. I don't think that's an
acceptable behavior, so I suggest that the minimum frequency is checked for 0
in tmio_mmc_host_probe().

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

---
The patch is against Ulf Hansson's 'mmc.git' repo's 'fixes' branch.

Changes in version 2:
- fixed grammar in the changelog.

 drivers/mmc/host/tmio_mmc_pio.c |    9 +++++++++
 1 file changed, 9 insertions(+)

Index: mmc/drivers/mmc/host/tmio_mmc_pio.c
===================================================================
--- mmc.orig/drivers/mmc/host/tmio_mmc_pio.c
+++ mmc/drivers/mmc/host/tmio_mmc_pio.c
@@ -1044,6 +1044,15 @@ int tmio_mmc_host_probe(struct tmio_mmc_
 	}
 
 	/*
+	 * Check the sanity of mmc->f_min to prevent tmio_mmc_set_clock() from
+	 * looping forever...
+	 */
+	if (mmc->f_min == 0) {
+		ret = -EINVAL;
+		goto pm_disable;
+	}
+
+	/*
 	 * There are 4 different scenarios for the card detection:
 	 *  1) an external gpio irq handles the cd (best for power savings)
 	 *  2) internal sdhi irq handles the cd


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

* Re: [PATCH v2] tmio_mmc_pio: prevent endless loop in tmio_mmc_set_clock()
  2014-09-05 21:42 ` Sergei Shtylyov
@ 2014-09-08 11:17   ` Ulf Hansson
  -1 siblings, 0 replies; 6+ messages in thread
From: Ulf Hansson @ 2014-09-08 11:17 UTC (permalink / raw)
  To: Sergei Shtylyov; +Cc: linux-mmc, Ian Molton, Chris Ball, Linux-sh list

On 5 September 2014 23:42, Sergei Shtylyov
<sergei.shtylyov@cogentembedded.com> wrote:
> I spent a couple of days with the driver just hanging due to me forgetting to
> specify the external crystal frequency,  so that clk_get_rate() returned 0 and
> thus the loop in tmio_mmc_set_clock() never ended. I don't think that's an
> acceptable behavior, so I suggest that the minimum frequency is checked for 0
> in tmio_mmc_host_probe().
>
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>
> ---
> The patch is against Ulf Hansson's 'mmc.git' repo's 'fixes' branch.

Hi Sergei,

Could you please base it towards "next" instead, it doesn't apply. If
you think this is important to go stable, I suggest you to add a
stable tag for it.

Kind regards
Uffe

>
> Changes in version 2:
> - fixed grammar in the changelog.
>
>  drivers/mmc/host/tmio_mmc_pio.c |    9 +++++++++
>  1 file changed, 9 insertions(+)
>
> Index: mmc/drivers/mmc/host/tmio_mmc_pio.c
> =================================> --- mmc.orig/drivers/mmc/host/tmio_mmc_pio.c
> +++ mmc/drivers/mmc/host/tmio_mmc_pio.c
> @@ -1044,6 +1044,15 @@ int tmio_mmc_host_probe(struct tmio_mmc_
>         }
>
>         /*
> +        * Check the sanity of mmc->f_min to prevent tmio_mmc_set_clock() from
> +        * looping forever...
> +        */
> +       if (mmc->f_min = 0) {
> +               ret = -EINVAL;
> +               goto pm_disable;
> +       }
> +
> +       /*
>          * There are 4 different scenarios for the card detection:
>          *  1) an external gpio irq handles the cd (best for power savings)
>          *  2) internal sdhi irq handles the cd
>

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

* Re: [PATCH v2] tmio_mmc_pio: prevent endless loop in tmio_mmc_set_clock()
@ 2014-09-08 11:17   ` Ulf Hansson
  0 siblings, 0 replies; 6+ messages in thread
From: Ulf Hansson @ 2014-09-08 11:17 UTC (permalink / raw)
  To: Sergei Shtylyov; +Cc: linux-mmc, Ian Molton, Chris Ball, Linux-sh list

On 5 September 2014 23:42, Sergei Shtylyov
<sergei.shtylyov@cogentembedded.com> wrote:
> I spent a couple of days with the driver just hanging due to me forgetting to
> specify the external crystal frequency,  so that clk_get_rate() returned 0 and
> thus the loop in tmio_mmc_set_clock() never ended. I don't think that's an
> acceptable behavior, so I suggest that the minimum frequency is checked for 0
> in tmio_mmc_host_probe().
>
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>
> ---
> The patch is against Ulf Hansson's 'mmc.git' repo's 'fixes' branch.

Hi Sergei,

Could you please base it towards "next" instead, it doesn't apply. If
you think this is important to go stable, I suggest you to add a
stable tag for it.

Kind regards
Uffe

>
> Changes in version 2:
> - fixed grammar in the changelog.
>
>  drivers/mmc/host/tmio_mmc_pio.c |    9 +++++++++
>  1 file changed, 9 insertions(+)
>
> Index: mmc/drivers/mmc/host/tmio_mmc_pio.c
> ===================================================================
> --- mmc.orig/drivers/mmc/host/tmio_mmc_pio.c
> +++ mmc/drivers/mmc/host/tmio_mmc_pio.c
> @@ -1044,6 +1044,15 @@ int tmio_mmc_host_probe(struct tmio_mmc_
>         }
>
>         /*
> +        * Check the sanity of mmc->f_min to prevent tmio_mmc_set_clock() from
> +        * looping forever...
> +        */
> +       if (mmc->f_min == 0) {
> +               ret = -EINVAL;
> +               goto pm_disable;
> +       }
> +
> +       /*
>          * There are 4 different scenarios for the card detection:
>          *  1) an external gpio irq handles the cd (best for power savings)
>          *  2) internal sdhi irq handles the cd
>

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

* Re: [PATCH v2] tmio_mmc_pio: prevent endless loop in tmio_mmc_set_clock()
  2014-09-08 11:17   ` Ulf Hansson
@ 2014-09-14 19:39     ` Sergei Shtylyov
  -1 siblings, 0 replies; 6+ messages in thread
From: Sergei Shtylyov @ 2014-09-14 19:39 UTC (permalink / raw)
  To: Ulf Hansson; +Cc: linux-mmc, Ian Molton, Chris Ball, Linux-sh list

Hello.

    Sorry for delay: I'm on vacations and WiFi didn't work well here...

On 09/08/2014 03:17 PM, Ulf Hansson wrote:

>> I spent a couple of days with the driver just hanging due to me forgetting to
>> specify the external crystal frequency,  so that clk_get_rate() returned 0 and
>> thus the loop in tmio_mmc_set_clock() never ended. I don't think that's an
>> acceptable behavior, so I suggest that the minimum frequency is checked for 0
>> in tmio_mmc_host_probe().

>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

>> ---
>> The patch is against Ulf Hansson's 'mmc.git' repo's 'fixes' branch.

> Hi Sergei,

> Could you please base it towards "next" instead, it doesn't apply. If
> you think this is important to go stable, I suggest you to add a
> stable tag for it.

    It's a bit of a corner case, of course, but the consequences are just too 
disastrous: AFAIR, an ARM kernel just silently hangs on boot, with no hints of 
where. So I'm going to CC: -stable.

> Kind regards
> Uffe

WBR, Sergei


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

* Re: [PATCH v2] tmio_mmc_pio: prevent endless loop in tmio_mmc_set_clock()
@ 2014-09-14 19:39     ` Sergei Shtylyov
  0 siblings, 0 replies; 6+ messages in thread
From: Sergei Shtylyov @ 2014-09-14 19:39 UTC (permalink / raw)
  To: Ulf Hansson; +Cc: linux-mmc, Ian Molton, Chris Ball, Linux-sh list

Hello.

    Sorry for delay: I'm on vacations and WiFi didn't work well here...

On 09/08/2014 03:17 PM, Ulf Hansson wrote:

>> I spent a couple of days with the driver just hanging due to me forgetting to
>> specify the external crystal frequency,  so that clk_get_rate() returned 0 and
>> thus the loop in tmio_mmc_set_clock() never ended. I don't think that's an
>> acceptable behavior, so I suggest that the minimum frequency is checked for 0
>> in tmio_mmc_host_probe().

>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

>> ---
>> The patch is against Ulf Hansson's 'mmc.git' repo's 'fixes' branch.

> Hi Sergei,

> Could you please base it towards "next" instead, it doesn't apply. If
> you think this is important to go stable, I suggest you to add a
> stable tag for it.

    It's a bit of a corner case, of course, but the consequences are just too 
disastrous: AFAIR, an ARM kernel just silently hangs on boot, with no hints of 
where. So I'm going to CC: -stable.

> Kind regards
> Uffe

WBR, Sergei


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

end of thread, other threads:[~2014-09-14 20:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-05 21:42 [PATCH v2] tmio_mmc_pio: prevent endless loop in tmio_mmc_set_clock() Sergei Shtylyov
2014-09-05 21:42 ` Sergei Shtylyov
2014-09-08 11:17 ` Ulf Hansson
2014-09-08 11:17   ` Ulf Hansson
2014-09-14 19:39   ` Sergei Shtylyov
2014-09-14 19:39     ` Sergei Shtylyov

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.