hw/pxa2xx.c: Fix handling of R/WC bits in PMCR
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.maydell@linaro.org> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
b78c2b3aad
commit
afd4a65225
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user