ar71xx: fix invalid pointer dereference in rb95x_nand_scan_fixup()
Since Linux 4.6, mtd->priv no longer points to the NAND specific
structure. Under 4.9 it contains NULL, thus using it to access
chip->options causes an invalid pointer dereference (FS#1200).
Update the code to use the mtd_to_nand() helper under 4.9 to obtain
the address of the chip specific data.
Fixes: 7bbf4117c6
("ar71xx: Add kernel 4.9 support")
Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
This commit is contained in:
parent
2ecc413107
commit
665bb27499
1 changed files with 4 additions and 0 deletions
|
@ -207,7 +207,11 @@ static const struct mtd_ooblayout_ops rb95x_nand_ecclayout_ops = {
|
||||||
|
|
||||||
static int rb95x_nand_scan_fixup(struct mtd_info *mtd)
|
static int rb95x_nand_scan_fixup(struct mtd_info *mtd)
|
||||||
{
|
{
|
||||||
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||||
struct nand_chip *chip = mtd->priv;
|
struct nand_chip *chip = mtd->priv;
|
||||||
|
#else
|
||||||
|
struct nand_chip *chip = mtd_to_nand(mtd);
|
||||||
|
#endif /* < 4.6.0 */
|
||||||
|
|
||||||
if (mtd->writesize == 512) {
|
if (mtd->writesize == 512) {
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue