diff mbox

[v8,15/17] vmw_pvscsi: remove unnecessary internal msi state flag

Message ID 87a8iombnh.fsf@dusky.pond.sub.org
State New
Headers show

Commit Message

Markus Armbruster June 14, 2016, 8:12 a.m. UTC
"Michael S. Tsirkin" <mst@redhat.com> writes:

> On Fri, Jun 10, 2016 at 05:54:36PM +0800, Cao jin wrote:
>> Internal flag msi_used is uncesessary, msi_uninit() could be called
>> directly, msi_enabled() is enough to check device msi state.
>> 
>> cc: Paolo Bonzini <pbonzini@redhat.com>
>> cc: Dmitry Fleytman <dmitry@daynix.com>
>> cc: Markus Armbruster <armbru@redhat.com>
>> cc: Marcel Apfelbaum <marcel@redhat.com>
>> cc: Michael S. Tsirkin <mst@redhat.com>
>> 
>> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
>> ---
>>  hw/scsi/vmw_pvscsi.c | 12 ++----------
>>  1 file changed, 2 insertions(+), 10 deletions(-)
>> 
>> diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
>> index ecd6077..363a7ed 100644
>> --- a/hw/scsi/vmw_pvscsi.c
>> +++ b/hw/scsi/vmw_pvscsi.c
>> @@ -121,8 +121,6 @@ typedef struct {
>>      uint8_t msg_ring_info_valid;         /* Whether message ring initialized */
>>      uint8_t use_msg;                     /* Whether to use message ring      */
>>  
>> -    uint8_t msi_used;    /* Whether MSI support was installed successfully   */
>> -
>>      PVSCSIRingInfo rings;                /* Data transfer rings manager      */
>>      uint32_t resetting;                  /* Reset in progress                */
>>  
>> @@ -362,7 +360,7 @@ pvscsi_update_irq_status(PVSCSIState *s)
>>      trace_pvscsi_update_irq_level(should_raise, s->reg_interrupt_enabled,
>>                                    s->reg_interrupt_status);
>>  
>> -    if (s->msi_used && msi_enabled(d)) {
>> +    if (msi_enabled(d)) {
>>          if (should_raise) {
>>              trace_pvscsi_update_irq_msi();
>>              msi_notify(d, PVSCSI_VECTOR_COMPLETION);
>> @@ -1066,9 +1064,6 @@ pvscsi_init_msi(PVSCSIState *s)
>>                     PVSCSI_USE_64BIT, PVSCSI_PER_VECTOR_MASK, NULL);
>>      if (res < 0) {
>>          trace_pvscsi_init_msi_fail(res);
>> -        s->msi_used = false;
>> -    } else {
>> -        s->msi_used = true;
>>      }
>>  }
>>  
>> @@ -1077,9 +1072,7 @@ pvscsi_cleanup_msi(PVSCSIState *s)
>>  {
>>      PCIDevice *d = PCI_DEVICE(s);
>>  
>> -    if (s->msi_used) {
>> -        msi_uninit(d);
>> -    }
>> +    msi_uninit(d);
>>  }
>>  
>>  static const MemoryRegionOps pvscsi_ops = {
>> @@ -1222,7 +1215,6 @@ static const VMStateDescription vmstate_pvscsi = {
>>          VMSTATE_STRUCT_TEST(parent_obj, PVSCSIState,
>>                              pvscsi_vmstate_test_pci_device, 0,
>>                              vmstate_pci_device, PCIDevice),
>> -        VMSTATE_UINT8(msi_used, PVSCSIState),
>>          VMSTATE_UINT32(resetting, PVSCSIState),
>>          VMSTATE_UINT64(reg_interrupt_status, PVSCSIState),
>>          VMSTATE_UINT64(reg_interrupt_enabled, PVSCSIState),
>
>
> This change will break cross-version migration, we can't make it.

Oww, sorry I missed this!

The value shouldn't have been put into the migration stream, but now
it's there, we need to keep it there.  Suggest:

Comments

Cao jin June 14, 2016, 9:31 a.m. UTC | #1
On 06/14/2016 04:12 PM, Markus Armbruster wrote:
> "Michael S. Tsirkin" <mst@redhat.com> writes:
>

>>> @@ -1222,7 +1215,6 @@ static const VMStateDescription vmstate_pvscsi = {
>>>           VMSTATE_STRUCT_TEST(parent_obj, PVSCSIState,
>>>                               pvscsi_vmstate_test_pci_device, 0,
>>>                               vmstate_pci_device, PCIDevice),
>>> -        VMSTATE_UINT8(msi_used, PVSCSIState),
>>>           VMSTATE_UINT32(resetting, PVSCSIState),
>>>           VMSTATE_UINT64(reg_interrupt_status, PVSCSIState),
>>>           VMSTATE_UINT64(reg_interrupt_enabled, PVSCSIState),
>>
>>
>> This change will break cross-version migration, we can't make it.
>
> Oww, sorry I missed this!
>
> The value shouldn't have been put into the migration stream, but now
> it's there, we need to keep it there.  Suggest:
>

Thanks, will collect these in next version.

>
> diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
> index ecd6077..edd91ec 100644
> --- a/hw/scsi/vmw_pvscsi.c
> +++ b/hw/scsi/vmw_pvscsi.c
> @@ -121,7 +121,7 @@ typedef struct {
>       uint8_t msg_ring_info_valid;         /* Whether message ring initialized */
>       uint8_t use_msg;                     /* Whether to use message ring      */
>
> -    uint8_t msi_used;    /* Whether MSI support was installed successfully   */
> +    uint8_t msi_used;                    /* For migration compatibility      */
>
>       PVSCSIRingInfo rings;                /* Data transfer rings manager      */
>       uint32_t resetting;                  /* Reset in progress                */
> @@ -362,7 +362,7 @@ pvscsi_update_irq_status(PVSCSIState *s)
>       trace_pvscsi_update_irq_level(should_raise, s->reg_interrupt_enabled,
>                                     s->reg_interrupt_status);
>
> -    if (s->msi_used && msi_enabled(d)) {
> +    if (msi_enabled(d)) {
>           if (should_raise) {
>               trace_pvscsi_update_irq_msi();
>               msi_notify(d, PVSCSI_VECTOR_COMPLETION);
> @@ -1077,9 +1077,7 @@ pvscsi_cleanup_msi(PVSCSIState *s)
>   {
>       PCIDevice *d = PCI_DEVICE(s);
>
> -    if (s->msi_used) {
> -        msi_uninit(d);
> -    }
> +    msi_uninit(d);
>   }
>
>   static const MemoryRegionOps pvscsi_ops = {
>
>
>
> .
>
diff mbox

Patch

diff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c
index ecd6077..edd91ec 100644
--- a/hw/scsi/vmw_pvscsi.c
+++ b/hw/scsi/vmw_pvscsi.c
@@ -121,7 +121,7 @@  typedef struct {
     uint8_t msg_ring_info_valid;         /* Whether message ring initialized */
     uint8_t use_msg;                     /* Whether to use message ring      */
 
-    uint8_t msi_used;    /* Whether MSI support was installed successfully   */
+    uint8_t msi_used;                    /* For migration compatibility      */
 
     PVSCSIRingInfo rings;                /* Data transfer rings manager      */
     uint32_t resetting;                  /* Reset in progress                */
@@ -362,7 +362,7 @@  pvscsi_update_irq_status(PVSCSIState *s)
     trace_pvscsi_update_irq_level(should_raise, s->reg_interrupt_enabled,
                                   s->reg_interrupt_status);
 
-    if (s->msi_used && msi_enabled(d)) {
+    if (msi_enabled(d)) {
         if (should_raise) {
             trace_pvscsi_update_irq_msi();
             msi_notify(d, PVSCSI_VECTOR_COMPLETION);
@@ -1077,9 +1077,7 @@  pvscsi_cleanup_msi(PVSCSIState *s)
 {
     PCIDevice *d = PCI_DEVICE(s);
 
-    if (s->msi_used) {
-        msi_uninit(d);
-    }
+    msi_uninit(d);
 }
 
 static const MemoryRegionOps pvscsi_ops = {