qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] usb/dev-smartcard-reader: convert to realize


From: Mao Zhongyi
Subject: Re: [Qemu-devel] [PATCH] usb/dev-smartcard-reader: convert to realize
Date: Mon, 11 Sep 2017 09:13:24 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0



On 09/09/2017 05:20 PM, Marc-André Lureau wrote:
Hi

On Sat, Sep 9, 2017 at 10:33 AM Mao Zhongyi <address@hidden 
<mailto:address@hidden>> wrote:

    Convert CCID Device to realize and rename the ccid_card_init()
    to ccid_card_realize().

    Cc: Gerd Hoffmann <address@hidden <mailto:address@hidden>>
    Signed-off-by: Mao Zhongyi <address@hidden <mailto:address@hidden>>
    ---
     hw/usb/dev-smartcard-reader.c | 18 ++++++++----------
     1 file changed, 8 insertions(+), 10 deletions(-)

    diff --git a/hw/usb/dev-smartcard-reader.c b/hw/usb/dev-smartcard-reader.c
    index bef1f03..27cd48d 100644
    --- a/hw/usb/dev-smartcard-reader.c
    +++ b/hw/usb/dev-smartcard-reader.c
    @@ -1306,27 +1306,25 @@ static int ccid_card_exit(DeviceState *qdev)
         return 0;
     }

    -static int ccid_card_init(DeviceState *qdev)
    +static void ccid_card_realize(DeviceState *qdev, Error **errp)
     {
         CCIDCardState *card = CCID_CARD(qdev);
         USBDevice *dev = USB_DEVICE(qdev->parent_bus->parent);
         USBCCIDState *s = USB_CCID_DEV(dev);
    -    int ret = 0;

         if (card->slot != 0) {
    -        warn_report("usb-ccid supports one slot, can't add %d",
    +        error_setg(errp, "usb-ccid supports one slot, can't add %d",
                         card->slot);
    -        return -1;
    +        return;
         }
         if (s->card != NULL) {
    -        warn_report("usb-ccid card already full, not adding");
    -        return -1;
    +        error_setg(errp, "usb-ccid card already full, not adding");
    +        return;
         }
    -    ret = ccid_card_initfn(card);
    -    if (ret == 0) {
    +
    +    if (!ccid_card_initfn(card)) {
             s->card = card;
         }


You should set an error here, or the caller won't be aware of card init error 
anymore. Best would be to convert ccid_card_initfn() and callbacks to take an 
Error **.

Thanks for the info, I will.

--
Mao


    -    return ret;
     }

     static void ccid_realize(USBDevice *dev, Error **errp)
    @@ -1496,7 +1494,7 @@ static void ccid_card_class_init(ObjectClass *klass, 
void *data)
     {
         DeviceClass *k = DEVICE_CLASS(klass);
         k->bus_type = TYPE_CCID_BUS;
    -    k->init = ccid_card_init;
    +    k->realize = ccid_card_realize;
         k->exit = ccid_card_exit;
         k->props = ccid_props;
     }
    --
    2.9.4




--
Marc-André Lureau





reply via email to

[Prev in Thread] Current Thread [Next in Thread]