I was trying to do insmod of the spi_coldfire driver and kept getting
illegal instructions in the .probe callback in mmc_spi.c.
Determined it was trying to execute freed memory.
This patch fixes the problem, and another associated problem with rmmod of
the spi driver.
--- uClinux-dist.orig/linux-2.6.x/drivers/mmc/host/mmc_spi.c 2007-12-28
12:01:18.000000000 -0800
+++ uClinux-dist/linux-2.6.x/drivers/mmc/host/mmc_spi.c 2007-12-28
10:19:31.000000000 -0800
@@ -1353,7 +1353,8 @@
return IRQ_HANDLED;
}
-static int __devinit mmc_spi_probe(struct spi_device *spi)
+/* do not use __devinit mmc_spi_probe also invoked by insmod of spi
driver */
+static int mmc_spi_probe(struct spi_device *spi)
{
struct mmc_host *mmc;
struct mmc_spi_host *host;
@@ -1470,7 +1471,8 @@
}
-static int __devexit mmc_spi_remove(struct spi_device *spi)
+/* do not use __devexit mmc_spi_probe also invoked by rmmod of spi
driver */
+static int mmc_spi_remove(struct spi_device *spi)
{
struct mmc_host *mmc = dev_get_drvdata(&spi->dev);
struct mmc_spi_host *host;
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev