[U-Boot] [PATCH] spi flash: fix crash due to spi flash miscommunication
Mike Frysinger
vapier at gentoo.org
Fri Jan 2 04:45:47 CET 2009
From: Brad Bozarth <bflinux at yumbrad.com>
Higher spi flash layers expect to be given back a pointer that was
malloced so that it can free the result, but the lower layers return a
pointer that is in the middle of the malloced memory. Reorder the members
of the lower spi structures so that things work out.
Signed-off-by: Brad Bozarth <bflinux at yumbrad.com>
Signed-off-by: Mike Frysinger <vapier at gentoo.org>
CC: Haavard Skinnemoen <haavard.skinnemoen at atmel.com>
---
Jason McMullan: your winbond driver will need a similar change:
drivers/mtd/spi/winbond.c
+/* spi_flash needs to be first so upper layers can free() it */
struct winbond_spi_flash {
- const struct winbond_spi_flash_params *params;
struct spi_flash flash;
+ const struct winbond_spi_flash_params *params;
};
drivers/mtd/spi/atmel.c | 3 ++-
drivers/mtd/spi/stmicro.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/spi/atmel.c b/drivers/mtd/spi/atmel.c
index 10fcf0c..a5f51ca 100644
--- a/drivers/mtd/spi/atmel.c
+++ b/drivers/mtd/spi/atmel.c
@@ -39,9 +39,10 @@ struct atmel_spi_flash_params {
const char *name;
};
+/* spi_flash needs to be first so upper layers can free() it */
struct atmel_spi_flash {
- const struct atmel_spi_flash_params *params;
struct spi_flash flash;
+ const struct atmel_spi_flash_params *params;
};
static inline struct atmel_spi_flash *
diff --git a/drivers/mtd/spi/stmicro.c b/drivers/mtd/spi/stmicro.c
index 86324e4..e7dda91 100644
--- a/drivers/mtd/spi/stmicro.c
+++ b/drivers/mtd/spi/stmicro.c
@@ -64,9 +64,10 @@ struct stmicro_spi_flash_params {
const char *name;
};
+/* spi_flash needs to be first so upper layers can free() it */
struct stmicro_spi_flash {
- const struct stmicro_spi_flash_params *params;
struct spi_flash flash;
+ const struct stmicro_spi_flash_params *params;
};
static inline struct stmicro_spi_flash *to_stmicro_spi_flash(struct spi_flash
--
1.6.0.6
More information about the U-Boot
mailing list