diff mbox

[v3,10/38] hw/usb-storage: Check whether BB is inserted

Message ID 1433360659-1915-11-git-send-email-mreitz@redhat.com
State New
Headers show

Commit Message

Max Reitz June 3, 2015, 7:43 p.m. UTC
Only call bdrv_add_key() on the BlockDriverState if it is not NULL.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 hw/usb/dev-storage.c | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

Comments

Eric Blake June 3, 2015, 8:37 p.m. UTC | #1
On 06/03/2015 01:43 PM, Max Reitz wrote:
> Only call bdrv_add_key() on the BlockDriverState if it is not NULL.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
>  hw/usb/dev-storage.c | 30 ++++++++++++++++--------------
>  1 file changed, 16 insertions(+), 14 deletions(-)
> 
> diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
> index abe0e1d..5b1dc90 100644
> --- a/hw/usb/dev-storage.c
> +++ b/hw/usb/dev-storage.c
> @@ -612,20 +612,22 @@ static void usb_msd_realize_storage(USBDevice *dev, Error **errp)
>          return;
>      }
>  
> -    bdrv_add_key(blk_bs(blk), NULL, &err);
> -    if (err) {
> -        if (monitor_cur_is_qmp()) {
> -            error_propagate(errp, err);
> -            return;
> -        }
> -        error_free(err);
> -        err = NULL;
> -        if (cur_mon) {
> -            monitor_read_bdrv_key_start(cur_mon, blk_bs(blk),
> -                                        usb_msd_password_cb, s);
> -            s->dev.auto_attach = 0;
> -        } else {
> -            autostart = 0;
> +    if (blk_bs(blk)) {
> +        bdrv_add_key(blk_bs(blk), NULL, &err);
> +        if (err) {
> +            if (monitor_cur_is_qmp()) {

Hopefully doesn't conflict with Markus' work to refactor error handling
here (https://lists.gnu.org/archive/html/qemu-devel/2015-06/msg00431.html)

Reviewed-by: Eric Blake <eblake@redhat.com>
Alberto Garcia June 4, 2015, 12:40 p.m. UTC | #2
On Wed 03 Jun 2015 09:43:51 PM CEST, Max Reitz wrote:
> Only call bdrv_add_key() on the BlockDriverState if it is not NULL.
>
> Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>

Berto
Max Reitz June 5, 2015, 3:05 p.m. UTC | #3
On 03.06.2015 22:37, Eric Blake wrote:
> On 06/03/2015 01:43 PM, Max Reitz wrote:
>> Only call bdrv_add_key() on the BlockDriverState if it is not NULL.
>>
>> Signed-off-by: Max Reitz <mreitz@redhat.com>
>> ---
>>   hw/usb/dev-storage.c | 30 ++++++++++++++++--------------
>>   1 file changed, 16 insertions(+), 14 deletions(-)
>>
>> diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
>> index abe0e1d..5b1dc90 100644
>> --- a/hw/usb/dev-storage.c
>> +++ b/hw/usb/dev-storage.c
>> @@ -612,20 +612,22 @@ static void usb_msd_realize_storage(USBDevice *dev, Error **errp)
>>           return;
>>       }
>>   
>> -    bdrv_add_key(blk_bs(blk), NULL, &err);
>> -    if (err) {
>> -        if (monitor_cur_is_qmp()) {
>> -            error_propagate(errp, err);
>> -            return;
>> -        }
>> -        error_free(err);
>> -        err = NULL;
>> -        if (cur_mon) {
>> -            monitor_read_bdrv_key_start(cur_mon, blk_bs(blk),
>> -                                        usb_msd_password_cb, s);
>> -            s->dev.auto_attach = 0;
>> -        } else {
>> -            autostart = 0;
>> +    if (blk_bs(blk)) {
>> +        bdrv_add_key(blk_bs(blk), NULL, &err);
>> +        if (err) {
>> +            if (monitor_cur_is_qmp()) {
> Hopefully doesn't conflict with Markus' work to refactor error handling
> here (https://lists.gnu.org/archive/html/qemu-devel/2015-06/msg00431.html)

He doesn't touch this file in this series, and I'm just wrapping this 
block inside of an "if (blk_bs(blk))", so it should be fine.

On the other hand, Markus did modify this part in some previous series 
of his, but that has been merged already and this patch is (re-)based on it.

> Reviewed-by: Eric Blake <eblake@redhat.com>

Thanks :-)

Max
diff mbox

Patch

diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
index abe0e1d..5b1dc90 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -612,20 +612,22 @@  static void usb_msd_realize_storage(USBDevice *dev, Error **errp)
         return;
     }
 
-    bdrv_add_key(blk_bs(blk), NULL, &err);
-    if (err) {
-        if (monitor_cur_is_qmp()) {
-            error_propagate(errp, err);
-            return;
-        }
-        error_free(err);
-        err = NULL;
-        if (cur_mon) {
-            monitor_read_bdrv_key_start(cur_mon, blk_bs(blk),
-                                        usb_msd_password_cb, s);
-            s->dev.auto_attach = 0;
-        } else {
-            autostart = 0;
+    if (blk_bs(blk)) {
+        bdrv_add_key(blk_bs(blk), NULL, &err);
+        if (err) {
+            if (monitor_cur_is_qmp()) {
+                error_propagate(errp, err);
+                return;
+            }
+            error_free(err);
+            err = NULL;
+            if (cur_mon) {
+                monitor_read_bdrv_key_start(cur_mon, blk_bs(blk),
+                                            usb_msd_password_cb, s);
+                s->dev.auto_attach = 0;
+            } else {
+                autostart = 0;
+            }
         }
     }