On 01/05/2016 07:39 PM, Cao jin wrote: > To catch the error msg. Also modify the caller > > Signed-off-by: Cao jin <[email protected]> > --- > hw/xen/xen_pt.c | 7 ++++--- > hw/xen/xen_pt.h | 2 +- > hw/xen/xen_pt_config_init.c | 51 > ++++++++++++++++++++++++--------------------- > 3 files changed, 32 insertions(+), 28 deletions(-) >
> +++ b/hw/xen/xen_pt_config_init.c
> @@ -1899,8 +1899,9 @@ static uint8_t find_cap_offset(XenPCIPassthroughState
> *s, uint8_t cap)
> return 0;
> }
>
> -static int xen_pt_config_reg_init(XenPCIPassthroughState *s,
> - XenPTRegGroup *reg_grp, XenPTRegInfo *reg)
> +static void xen_pt_config_reg_init(XenPCIPassthroughState *s,
> + XenPTRegGroup *reg_grp, XenPTRegInfo *reg,
> + Error **errp)
Indentation is now off.
> @@ -1967,10 +1970,10 @@ static int
> xen_pt_config_reg_init(XenPCIPassthroughState *s,
> val = data;
>
> if (val & ~size_mask) {
> - XEN_PT_ERR(&s->dev,"Offset 0x%04x:0x%04x expands past register
> size(%d)!\n",
> - offset, val, reg->size);
> + error_setg(errp, "Offset 0x%04x:0x%04x expands past"
> + " register size(%d)!", offset, val, reg->size);
Drop the trailing !. Also, while touching this, it's better to have a
space before ( in English.
> +void xen_pt_config_init(XenPCIPassthroughState *s, Error **errp)
> {
> int i, rc;
> + Error *local_err = NULL;
Same comments as earlier in the series about using the shorter 'err'
instead of 'local_err'.
>
> QLIST_INIT(&s->reg_grps);
>
> @@ -2039,11 +2041,12 @@ int xen_pt_config_init(XenPCIPassthroughState *s)
> reg_grp_offset,
> ®_grp_entry->size);
> if (rc < 0) {
> - XEN_PT_LOG(&s->dev, "Failed to initialize %d/%ld, type=0x%x,
> rc:%d\n",
> - i, ARRAY_SIZE(xen_pt_emu_reg_grps),
> + error_setg(&local_err, "Failed to initialize %d/%ld,
> type=0x%x,"
> + " rc:%d", i, ARRAY_SIZE(xen_pt_emu_reg_grps),
This maps ARRAY_SIZE() (which is size_t) to %ld, which can fail to
compile on 32-bit platforms (where size_t is not necessarily long). Fix
it to %zd while touching it.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
