blob: 18acb68c7db185e2025f36583f2501f74ede9ebe [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001From: Felix Fietkau <nbd@nbd.name>
2Subject: kernel: disable cfi cmdset 0002 erase suspend
3
4on some platforms, erase suspend leads to data corruption and lockups when write
5ops collide with erase ops. this has been observed on the buffalo wzr-hp-g300nh.
6rather than play whack-a-mole with a hard to reproduce issue on a variety of devices,
7simply disable erase suspend, as it will usually not produce any useful gain on
8the small filesystems used on embedded hardware.
9
10Signed-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--- a/drivers/mtd/chips/cfi_cmdset_0002.c
16+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
17@@ -902,7 +902,7 @@ static int get_chip(struct map_info *map
18 return 0;
19
20 case FL_ERASING:
21- if (!cfip || !(cfip->EraseSuspend & (0x1|0x2)) ||
22+ if (1 /* no suspend */ || !cfip || !(cfip->EraseSuspend & (0x1|0x2)) ||
23 !(mode == FL_READY || mode == FL_POINT ||
24 (mode == FL_WRITING && (cfip->EraseSuspend & 0x2))))
25 goto sleep;