2008-11-27 16:24:16

by Nicolas Ferre

[permalink] [raw]
Subject: [PATCH] mmc: at91_mci: reorder timer setup and mmc_add_host() call

As said in function comment mmc_add_host() requires that:
"The host must be prepared to start servicing requests
before this function completes."

During this function, at91_mci_request() can be invoqued
without timer beeing setup leading to a kernel Oops.
This has been reported inserting this driver as a module.

Signed-off-by: Nicolas Ferre <[email protected]>
Reported-by: Wu Xuan <[email protected]>
---
drivers/mmc/host/at91_mci.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index 1f8b5b3..e556d42 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -1088,6 +1088,8 @@ static int __init at91_mci_probe(struct platform_device *pdev)
goto fail0;
}

+ setup_timer(&host->timer, at91_timeout_timer, (unsigned long)host);
+
platform_set_drvdata(pdev, mmc);

/*
@@ -1101,8 +1103,6 @@ static int __init at91_mci_probe(struct platform_device *pdev)

mmc_add_host(mmc);

- setup_timer(&host->timer, at91_timeout_timer, (unsigned long)host);
-
/*
* monitor card insertion/removal if we can
*/
--
1.5.3.7



2008-11-28 07:29:15

by Marc Pignat

[permalink] [raw]
Subject: Re: [PATCH] mmc: at91_mci: reorder timer setup and mmc_add_host() call

On Thursday 27 November 2008, Nicolas Ferre wrote:
> As said in function comment mmc_add_host() requires that:
> "The host must be prepared to start servicing requests
> before this function completes."
>
> During this function, at91_mci_request() can be invoqued
> without timer beeing setup leading to a kernel Oops.
> This has been reported inserting this driver as a module.
>
> Signed-off-by: Nicolas Ferre <[email protected]>
> Reported-by: Wu Xuan <[email protected]>

Bug introduced by me ;)

Ack

Best regards

Marc

2008-11-30 22:53:18

by Pierre Ossman

[permalink] [raw]
Subject: Re: [PATCH] mmc: at91_mci: reorder timer setup and mmc_add_host() call

On Thu, 27 Nov 2008 17:23:49 +0100
Nicolas Ferre <[email protected]> wrote:

> As said in function comment mmc_add_host() requires that:
> "The host must be prepared to start servicing requests
> before this function completes."
>
> During this function, at91_mci_request() can be invoqued
> without timer beeing setup leading to a kernel Oops.
> This has been reported inserting this driver as a module.
>
> Signed-off-by: Nicolas Ferre <[email protected]>
> Reported-by: Wu Xuan <[email protected]>
> ---

Queued up.


--
-- Pierre Ossman

WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.


Attachments:
signature.asc (197.00 B)