| b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 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 | --- 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; |