Message ID | 20200617053934.122642-5-ppandit@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add various undefined MMIO r/w functions | expand |
On 6/17/20 7:39 AM, P J P wrote: > From: Prasad J Pandit <pjp@fedoraproject.org> > > Add ppc-parity mmio write method to avoid NULL pointer dereference > issue. > > Reported-by: Lei Sun <slei.casper@gmail.com> > Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> > --- > hw/ppc/prep_systemio.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/ppc/prep_systemio.c b/hw/ppc/prep_systemio.c > index bbc51b6e9a..aacd7831fd 100644 > --- a/hw/ppc/prep_systemio.c > +++ b/hw/ppc/prep_systemio.c > @@ -23,6 +23,7 @@ > */ > > #include "qemu/osdep.h" > +#include "qemu/log.h" > #include "hw/irq.h" > #include "hw/isa/isa.h" > #include "hw/qdev-properties.h" > @@ -235,8 +236,15 @@ static uint64_t ppc_parity_error_readl(void *opaque, hwaddr addr, > return val; > } > > +static void ppc_parity_error_writel(void *opaque, hwaddr addr, > + uint64_t data, unsigned size) > +{ > + qemu_log_mask(LOG_UNIMP, "%s not implemented\n", __func__); I understand the parity bits are calculated by the hardware, I doubt we can write them. So probably LOG_GUEST_ERROR or a transaction failure here. > +} > + > static const MemoryRegionOps ppc_parity_error_ops = { > .read = ppc_parity_error_readl, > + .write = ppc_parity_error_writel, > .valid = { > .min_access_size = 4, > .max_access_size = 4, >
diff --git a/hw/ppc/prep_systemio.c b/hw/ppc/prep_systemio.c index bbc51b6e9a..aacd7831fd 100644 --- a/hw/ppc/prep_systemio.c +++ b/hw/ppc/prep_systemio.c @@ -23,6 +23,7 @@ */ #include "qemu/osdep.h" +#include "qemu/log.h" #include "hw/irq.h" #include "hw/isa/isa.h" #include "hw/qdev-properties.h" @@ -235,8 +236,15 @@ static uint64_t ppc_parity_error_readl(void *opaque, hwaddr addr, return val; } +static void ppc_parity_error_writel(void *opaque, hwaddr addr, + uint64_t data, unsigned size) +{ + qemu_log_mask(LOG_UNIMP, "%s not implemented\n", __func__); +} + static const MemoryRegionOps ppc_parity_error_ops = { .read = ppc_parity_error_readl, + .write = ppc_parity_error_writel, .valid = { .min_access_size = 4, .max_access_size = 4,