aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@freemail.hu>2017-12-13 20:31:50 +0100
committerJohn Crispin <john@phrozen.org>2017-12-15 23:57:41 +0100
commit2ecc4131077b26ed8b95b88dea870b1f3a9444c2 (patch)
treec1470be1b05f52ae559b159f9908ff551dbd0dc8 /target/linux
parentc13b4ef2c8a796fb1d1fb95e2ab5185a69479b22 (diff)
downloadupstream-2ecc4131077b26ed8b95b88dea870b1f3a9444c2.tar.gz
upstream-2ecc4131077b26ed8b95b88dea870b1f3a9444c2.tar.bz2
upstream-2ecc4131077b26ed8b95b88dea870b1f3a9444c2.zip
ar71xx: fix invalid pointer dereference in c60_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 the fields of the nand_chip structure causes an invalid pointer dereference. Update the code to use the mtd_to_nand() helper under 4.9 to obtain the address of the chip specific data. Compile tested only. Fixes: 7bbf4117c6fe ("ar71xx: Add kernel 4.9 support") Signed-off-by: Gabor Juhos <juhosg@freemail.hu> Tested-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c
index 7b01af515b..144f5db740 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-c60.c
@@ -180,7 +180,11 @@ static const struct mtd_ooblayout_ops c60_nand_ecclayout_ops = {
static int c60_nand_scan_fixup(struct mtd_info *mtd)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
struct nand_chip *chip = mtd->priv;
+#else
+ struct nand_chip *chip = mtd_to_nand(mtd);
+#endif
chip->ecc.size = 512;
chip->ecc.strength = 4;