On 05/05/19 22:05, Philippe Mathieu-Daudé wrote: > The reset() code is used in various places, refactor it. > > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > hw/block/pflash_cfi01.c | 21 ++++++++++++--------- > 1 file changed, 12 insertions(+), 9 deletions(-)
BTW: you didn't add an explicit "Cc: stable" tag here, so I almost missed it -- but, mainly, is this really suitable material for stable? We haven't really noticed (or at least pin-pointed) the lack of the reset handlers in 12 years, correct? Thanks Laszlo > > diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c > index 6dc04f156a7..073cd14978f 100644 > --- a/hw/block/pflash_cfi01.c > +++ b/hw/block/pflash_cfi01.c > @@ -108,6 +108,15 @@ static const VMStateDescription vmstate_pflash = { > } > }; > > +static void pflash_reset(PFlashCFI01 *pfl) > +{ > + trace_pflash_reset(); > + pfl->wcycle = 0; > + pfl->cmd = 0; > + pfl->status = 0; > + memory_region_rom_device_set_romd(&pfl->mem, true); > +} > + > /* Perform a CFI query based on the bank width of the flash. > * If this code is called we know we have a device_width set for > * this flash. > @@ -275,8 +284,7 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr > offset, > default: > /* This should never happen : reset state & treat it as a read */ > DPRINTF("%s: unknown command state: %x\n", __func__, pfl->cmd); > - pfl->wcycle = 0; > - pfl->cmd = 0; > + pflash_reset(pfl); > /* fall through to read code */ > case 0x00: > /* Flash area read */ > @@ -639,10 +647,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offset, > "\n", __func__, offset, pfl->wcycle, pfl->cmd, value); > > reset_flash: > - trace_pflash_reset(); > - memory_region_rom_device_set_romd(&pfl->mem, true); > - pfl->wcycle = 0; > - pfl->cmd = 0; > + pflash_reset(pfl); > } > > > @@ -757,9 +762,7 @@ static void pflash_cfi01_realize(DeviceState *dev, Error > **errp) > pfl->max_device_width = pfl->device_width; > } > > - pfl->wcycle = 0; > - pfl->cmd = 0; > - pfl->status = 0; > + pflash_reset(pfl); > /* Hardcoded CFI table */ > /* Standard "QRY" string */ > pfl->cfi_table[0x10] = 'Q'; >