drivers/mtd/onenand/: unacceptable stack usage
Adrian Bunk
bunk at stusta.de
Thu Dec 15 19:55:05 EST 2005
In 2.6.15-rc, the following driver was added:
include/linux/mtd/onenand.h:
#define MAX_ONENAND_PAGESIZE (2048 + 64)
drivers/mtd/onenand/onenand_base.c:
static int onenand_writev_ecc(struct mtd_info *mtd, const struct kvec *vecs,
unsigned long count, loff_t to, size_t *retlen,
u_char *eccbuf, struct nand_oobinfo *oobsel)
{
struct onenand_chip *this = mtd->priv;
unsigned char buffer[MAX_ONENAND_PAGESIZE], *pbuf;
drivers/mtd/onenand/onenand_bbt.c:
static inline int onenand_memory_bbt (struct mtd_info *mtd, struct nand_bbt_descr *bd)
{
unsigned char data_buf[MAX_ONENAND_PAGESIZE];
These are variables on the stack that are > 2kB which is not acceptable
since the complete stack might be only 4kB.
Please either fix this before 2.6.15 or mark the MTD_ONENAND driver as
BROKEN until it's fixed.
TIA
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
More information about the linux-mtd
mailing list