On 25/10/18 05:20PM, Sourabh Jain wrote:
> 
> > <...snip...>
> > +    switch (cmd) {
> > +    case FADUMP_CMD_REGISTER:
> > +        ret_val = do_fadump_register();
> > +        if (ret_val != RTAS_OUT_SUCCESS) {
> > +            rtas_st(rets, 0, ret_val);
> > +            return;
> > +        }
> > +        break;
> > +    case FADUMP_CMD_UNREGISTER:
> > +        if (spapr->fadump_dump_active == 1) {
> > +            rtas_st(rets, 0, RTAS_OUT_DUMP_ACTIVE);
> > +            return;
> > +        }
> > +
> > +        spapr->fadump_registered = false;
> > +        spapr->fadump_dump_active = false;
> > +        memset(&spapr->registered_fdm, 0, sizeof(spapr->registered_fdm));
> > +        break;
> > +    case FADUMP_CMD_INVALIDATE:
> > +        if (spapr->fadump_dump_active) {
> > +            spapr->fadump_registered = false;
> > +            spapr->fadump_dump_active = false;
> > +            memset(&spapr->registered_fdm, 0, 
> > sizeof(spapr->registered_fdm));
> 
> I hope the above actions are good enough to make qemu ready for fadump
> registration.

I believe so. The various flags are set in do_fadump_register for
register command, maybe that's why that switch case might not look
enough, but I think the current one makes sense.

> 
> > +        } else {
> > +            qemu_log_mask(LOG_GUEST_ERROR,
> > +                "FADump: Nothing to invalidate, no dump active\n");
> > +        }
> 
> No error code if the kernel issues an invalidate and fadump_dump_active is
> false?
> 
> As per the current kernel code, this situation should not occur, but to be
> on the safe side,
> QEMU should not return RTAS_OUT_SUCCESS.

Makes sense. PAPR doesn't say anything about this, but I guess we can
return PARAM_ERROR (for lack of any better error) in this case.
Will do.

Thanks,
- Aditya G


Reply via email to