3cabff37f1d550d201a3dfd31ff4bb32a6bcd765
[openwrt/staging/wigyori.git] / target / linux / generic / pending-4.9 / 460-mtd-cfi_cmdset_0002-no-erase_suspend.patch
1 From: Felix Fietkau <nbd@nbd.name>
2 Subject: kernel: disable cfi cmdset 0002 erase suspend
3
4 on some platforms, erase suspend leads to data corruption and lockups when write
5 ops collide with erase ops. this has been observed on the buffalo wzr-hp-g300nh.
6 rather than play whack-a-mole with a hard to reproduce issue on a variety of devices,
7 simply disable erase suspend, as it will usually not produce any useful gain on
8 the small filesystems used on embedded hardware.
9
10 Signed-off-by: Felix Fietkau <nbd@nbd.name>
11 ---
12 drivers/mtd/chips/cfi_cmdset_0002.c | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15 diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
16 index 9dca881bb378..ea4db1917334 100644
17 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
18 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
19 @@ -807,7 +807,7 @@ static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr
20 return 0;
21
22 case FL_ERASING:
23 - if (!cfip || !(cfip->EraseSuspend & (0x1|0x2)) ||
24 + if (1 /* no suspend */ || !cfip || !(cfip->EraseSuspend & (0x1|0x2)) ||
25 !(mode == FL_READY || mode == FL_POINT ||
26 (mode == FL_WRITING && (cfip->EraseSuspend & 0x2))))
27 goto sleep;
28 --
29 2.11.0
30