[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 03/17] hw/pflash_cfi01: Treat read in unknown comman
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH 03/17] hw/pflash_cfi01: Treat read in unknown command state as read |
Date: |
Thu, 28 Feb 2013 18:53:49 +0000 |
The code for handling the default "unknown command state" case in
pflash_read in pflash_cfi01.c comments "reset state & treat it as
a read". However the code doesn't actually do this. Moving the
default case to the top of the switch so it can fall through into
the read case brings this file into line with pflash_cfi02 and
makes the code behave as the comments suggest.
The pflash_cfi01 code has always had this bug -- it was presumably
introduced when the original author copied the cfi02 code and
rearranged the order of the switch statement without noticing
that the default case relied on the fall-through.
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Peter Crosthwaite <address@hidden>
Tested-by: Peter Crosthwaite <address@hidden>
Message-id: address@hidden
---
hw/pflash_cfi01.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
index c79e599..123b006 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -122,6 +122,12 @@ static uint32_t pflash_read (pflash_t *pfl, hwaddr offset,
__func__, offset, pfl->cmd, width);
#endif
switch (pfl->cmd) {
+ 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;
+ /* fall through to read code */
case 0x00:
/* Flash area read */
p = pfl->storage;
@@ -197,11 +203,6 @@ static uint32_t pflash_read (pflash_t *pfl, hwaddr offset,
else
ret = pfl->cfi_table[boff];
break;
- 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;
}
return ret;
}
--
1.7.9.5
- [Qemu-devel] [PULL 00/17] arm-devs queue, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 07/17] arm: a9mpcore: remove old_timer_status field, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 08/17] arm: a9mpcore: Coreify the SCU, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 11/17] xilinx_zynq: Added SD controllers, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 12/17] m25p80.c: Use QOM classes for part differentiation, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 17/17] cadence_gem: Add debug msgs for rx desc movement, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 02/17] hw/pflash_cfi01: Make read after byte-write or erase return status, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 14/17] cadence_gem: factor out can_rx() logic replication, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 03/17] hw/pflash_cfi01: Treat read in unknown command state as read,
Peter Maydell <=
- [Qemu-devel] [PATCH 06/17] arm: mptimer: Remove WDT distinction, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 13/17] cadence_gem: Flush queued packets, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 10/17] vl.c: allow for repeated -sd arguments, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 05/17] arm: arm11mpcore, a9mpcore: CamelCased type names, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 16/17] cadence_gem: Don't reset rx desc pointer on rx_en, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 15/17] cadence_gem: fix interrupt events, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 04/17] arm: mptimer: CamelCased type names, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 09/17] hw/sdhci: introduce standard SD host controller, Peter Maydell, 2013/02/28
- [Qemu-devel] [PATCH 01/17] hw/ds1338: Fix conversion between 12 hours and 24 hours modes., Peter Maydell, 2013/02/28
- Re: [Qemu-devel] [PULL 00/17] arm-devs queue, Blue Swirl, 2013/02/28