Message ID | 20200526062252.19852-10-f4bug@amsat.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/display: Omnibus cleanups | expand |
On Tue, May 26, 2020 at 08:22:47AM +0200, Philippe Mathieu-Daudé wrote: > DPRINTF() calls are disabled by default, so when unexpected > data is used, the whole process abort without information. > > Display a bit of information with error_report() before crashing. Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > hw/display/xlnx_dp.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c > index 3e5fb44e06..8d940cd8d1 100644 > --- a/hw/display/xlnx_dp.c > +++ b/hw/display/xlnx_dp.c > @@ -1,5 +1,5 @@ > /* > - * xlnx_dp.c > + * Xilinx Display Port > * > * Copyright (C) 2015 : GreenSocs Ltd > * http://www.greensocs.com/ , email: info@greensocs.com > @@ -24,6 +24,7 @@ > > #include "qemu/osdep.h" > #include "qapi/error.h" > +#include "qemu/error-report.h" > #include "qemu/log.h" > #include "qemu/module.h" > #include "hw/display/xlnx_dp.h" > @@ -465,7 +466,7 @@ static uint8_t xlnx_dp_aux_pop_tx_fifo(XlnxDPState *s) > uint8_t ret; > > if (fifo8_is_empty(&s->tx_fifo)) { > - DPRINTF("tx_fifo underflow..\n"); > + error_report("%s: TX_FIFO underflow", __func__); > abort(); > } > ret = fifo8_pop(&s->tx_fifo); > @@ -525,6 +526,7 @@ static void xlnx_dp_aux_set_command(XlnxDPState *s, uint32_t value) > qemu_log_mask(LOG_UNIMP, "xlnx_dp: Write i2c status not implemented\n"); > break; > default: > + error_report("%s: invalid command: %u", __func__, cmd); > abort(); > } > > @@ -631,8 +633,8 @@ static void xlnx_dp_change_graphic_fmt(XlnxDPState *s) > s->g_plane.format = PIXMAN_b8g8r8; > break; > default: > - DPRINTF("error: unsupported graphic format %u.\n", > - s->avbufm_registers[AV_BUF_FORMAT] & DP_GRAPHIC_MASK); > + error_report("%s: unsupported graphic format %u", __func__, > + s->avbufm_registers[AV_BUF_FORMAT] & DP_GRAPHIC_MASK); > abort(); > } > > @@ -647,8 +649,8 @@ static void xlnx_dp_change_graphic_fmt(XlnxDPState *s) > s->v_plane.format = PIXMAN_x8b8g8r8; > break; > default: > - DPRINTF("error: unsupported video format %u.\n", > - s->avbufm_registers[AV_BUF_FORMAT] & DP_NL_VID_FMT_MASK); > + error_report("%s: unsupported video format %u", __func__, > + s->avbufm_registers[AV_BUF_FORMAT] & DP_NL_VID_FMT_MASK); > abort(); > } > > -- > 2.21.3 >
On Mon, May 25, 2020 at 11:29 PM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > > DPRINTF() calls are disabled by default, so when unexpected > data is used, the whole process abort without information. > > Display a bit of information with error_report() before crashing. > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > hw/display/xlnx_dp.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c > index 3e5fb44e06..8d940cd8d1 100644 > --- a/hw/display/xlnx_dp.c > +++ b/hw/display/xlnx_dp.c > @@ -1,5 +1,5 @@ > /* > - * xlnx_dp.c > + * Xilinx Display Port > * > * Copyright (C) 2015 : GreenSocs Ltd > * http://www.greensocs.com/ , email: info@greensocs.com > @@ -24,6 +24,7 @@ > > #include "qemu/osdep.h" > #include "qapi/error.h" > +#include "qemu/error-report.h" > #include "qemu/log.h" > #include "qemu/module.h" > #include "hw/display/xlnx_dp.h" > @@ -465,7 +466,7 @@ static uint8_t xlnx_dp_aux_pop_tx_fifo(XlnxDPState *s) > uint8_t ret; > > if (fifo8_is_empty(&s->tx_fifo)) { > - DPRINTF("tx_fifo underflow..\n"); > + error_report("%s: TX_FIFO underflow", __func__); > abort(); > } > ret = fifo8_pop(&s->tx_fifo); > @@ -525,6 +526,7 @@ static void xlnx_dp_aux_set_command(XlnxDPState *s, uint32_t value) > qemu_log_mask(LOG_UNIMP, "xlnx_dp: Write i2c status not implemented\n"); > break; > default: > + error_report("%s: invalid command: %u", __func__, cmd); > abort(); > } > > @@ -631,8 +633,8 @@ static void xlnx_dp_change_graphic_fmt(XlnxDPState *s) > s->g_plane.format = PIXMAN_b8g8r8; > break; > default: > - DPRINTF("error: unsupported graphic format %u.\n", > - s->avbufm_registers[AV_BUF_FORMAT] & DP_GRAPHIC_MASK); > + error_report("%s: unsupported graphic format %u", __func__, > + s->avbufm_registers[AV_BUF_FORMAT] & DP_GRAPHIC_MASK); > abort(); > } > > @@ -647,8 +649,8 @@ static void xlnx_dp_change_graphic_fmt(XlnxDPState *s) > s->v_plane.format = PIXMAN_x8b8g8r8; > break; > default: > - DPRINTF("error: unsupported video format %u.\n", > - s->avbufm_registers[AV_BUF_FORMAT] & DP_NL_VID_FMT_MASK); > + error_report("%s: unsupported video format %u", __func__, > + s->avbufm_registers[AV_BUF_FORMAT] & DP_NL_VID_FMT_MASK); > abort(); > } > > -- > 2.21.3 > >
diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c index 3e5fb44e06..8d940cd8d1 100644 --- a/hw/display/xlnx_dp.c +++ b/hw/display/xlnx_dp.c @@ -1,5 +1,5 @@ /* - * xlnx_dp.c + * Xilinx Display Port * * Copyright (C) 2015 : GreenSocs Ltd * http://www.greensocs.com/ , email: info@greensocs.com @@ -24,6 +24,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" +#include "qemu/error-report.h" #include "qemu/log.h" #include "qemu/module.h" #include "hw/display/xlnx_dp.h" @@ -465,7 +466,7 @@ static uint8_t xlnx_dp_aux_pop_tx_fifo(XlnxDPState *s) uint8_t ret; if (fifo8_is_empty(&s->tx_fifo)) { - DPRINTF("tx_fifo underflow..\n"); + error_report("%s: TX_FIFO underflow", __func__); abort(); } ret = fifo8_pop(&s->tx_fifo); @@ -525,6 +526,7 @@ static void xlnx_dp_aux_set_command(XlnxDPState *s, uint32_t value) qemu_log_mask(LOG_UNIMP, "xlnx_dp: Write i2c status not implemented\n"); break; default: + error_report("%s: invalid command: %u", __func__, cmd); abort(); } @@ -631,8 +633,8 @@ static void xlnx_dp_change_graphic_fmt(XlnxDPState *s) s->g_plane.format = PIXMAN_b8g8r8; break; default: - DPRINTF("error: unsupported graphic format %u.\n", - s->avbufm_registers[AV_BUF_FORMAT] & DP_GRAPHIC_MASK); + error_report("%s: unsupported graphic format %u", __func__, + s->avbufm_registers[AV_BUF_FORMAT] & DP_GRAPHIC_MASK); abort(); } @@ -647,8 +649,8 @@ static void xlnx_dp_change_graphic_fmt(XlnxDPState *s) s->v_plane.format = PIXMAN_x8b8g8r8; break; default: - DPRINTF("error: unsupported video format %u.\n", - s->avbufm_registers[AV_BUF_FORMAT] & DP_NL_VID_FMT_MASK); + error_report("%s: unsupported video format %u", __func__, + s->avbufm_registers[AV_BUF_FORMAT] & DP_NL_VID_FMT_MASK); abort(); }
DPRINTF() calls are disabled by default, so when unexpected data is used, the whole process abort without information. Display a bit of information with error_report() before crashing. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- hw/display/xlnx_dp.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)