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

Reply via email to