On 11/09/2011 02:46 PM, Peter Maydell wrote:
Fix a bug in handling the write-one-to-clear bits in the PMCR
which meant that we would always clear the bit even if the
value written was a zero. Spotted by Coverity (see bug 887883).

Signed-off-by: Peter Maydell<peter.mayd...@linaro.org>

Applied.  Thanks.

Regards,

Anthony Liguori

---
  hw/pxa2xx.c |    4 +++-
  1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/hw/pxa2xx.c b/hw/pxa2xx.c
index bfc28a9..d38b922 100644
--- a/hw/pxa2xx.c
+++ b/hw/pxa2xx.c
@@ -114,7 +114,9 @@ static void pxa2xx_pm_write(void *opaque, 
target_phys_addr_t addr,

      switch (addr) {
      case PMCR:
-        s->pm_regs[addr>>  2]&= 0x15&  ~(value&  0x2a);
+        /* Clear the write-one-to-clear bits... */
+        s->pm_regs[addr>>  2]&= ~(value&  0x2a);
+        /* ...and set the plain r/w bits */
          s->pm_regs[addr>>  2] |= value&  0x15;
          break;



Reply via email to