Skip to contentSkip to conversation

virtio-ccw: clean up notify

PATCH Applied Halil Pasic 2 participants 4 messages May 16, 2018 – May 18, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 virtio-ccw: clean up notify

Coverity recently started complaining about virtio_ccw_notify(). Turns out, there is a couple of things that can be cleaned up. Let's clean!

---
 hw/s390x/virtio-ccw.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
hw/s390x/virtio-ccw.c +9 -4
index 22df33b509..09fa7eed4c 100644
@@ -1003,10 +1003,15 @@ static void virtio_ccw_notify(DeviceState *d, uint16_t vector)
     SubchDev *sch = ccw_dev->sch;
     uint64_t indicators;
 
-    /* queue indicators + secondary indicators */
-    if (vector >= VIRTIO_QUEUE_MAX + 64) {
+    if (vector == VIRTIO_NO_VECTOR) {
         return;
     }
+    /*
+     * vector < VIRTIO_QUEUE_MAX: notification for a virtqueue
+     * vector == VIRTIO_QUEUE_MAX: configuration change notification
+     * bits beyond that are unused and should never be notified for
+     */
+    assert(vector <= VIRTIO_QUEUE_MAX);
 
     if (vector < VIRTIO_QUEUE_MAX) {
         if (!dev->indicators) {
@@ -1029,6 +1034,7 @@ static void virtio_ccw_notify(DeviceState *d, uint16_t vector)
                 css_adapter_interrupt(CSS_IO_ADAPTER_VIRTIO, dev->thinint_isc);
             }
         } else {
+            assert(vector < NR_CLASSIC_INDICATOR_BITS);
             indicators = address_space_ldq(&address_space_memory,
                                            dev->indicators->addr,
                                            MEMTXATTRS_UNSPECIFIED,
@@ -1042,12 +1048,11 @@ static void virtio_ccw_notify(DeviceState *d, uint16_t vector)
         if (!dev->indicators2) {
             return;
         }
-        vector = 0;
         indicators = address_space_ldq(&address_space_memory,
                                        dev->indicators2->addr,
                                        MEMTXATTRS_UNSPECIFIED,
                                        NULL);
-        indicators |= 1ULL << vector;
+        indicators |= 1ULL;
         address_space_stq(&address_space_memory, dev->indicators2->addr,
                           indicators, MEMTXATTRS_UNSPECIFIED, NULL);
         css_conditional_io_interrupt(sch);
Signature · 1 line
2.16.3
#1 lore raw
Quoted 2 lines · On Wed, 16 May 2018 15:27:57 +0200 Halil Pasic <[email protected]> wrote:

Coverity recently started complaining about virtio_ccw_notify(). Turns out, there is a couple of things that can be cleaned up. Let's clean!

Changes look good to me.

I wanted to come up with a better patch description, but failed (well, I did not try much.) So I'm inclined to merge this as-is.

Quoted 7 lines
---
 hw/s390x/virtio-ccw.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
#2 lore raw
Quoted 11 lines · Cornelia Huck
Quoted 2 lines · On Wed, 16 May 2018 15:27:57 +0200 Halil Pasic <[email protected]> wrote:

Coverity recently started complaining about virtio_ccw_notify(). Turns out, there is a couple of things that can be cleaned up. Let's clean!

Changes look good to me.

I wanted to come up with a better patch description, but failed (well, I did not try much.) So I'm inclined to merge this as-is.

I also gave up on a good patch description real soon. The patch does not do a single thing, but I don't think splitting it up would make things better. So I was like: the changes are pretty straight-forward, and the commit message should just hint refactoring.

Thanks!

Halil

Quoted 8 lines
Quoted 7 lines
---
  hw/s390x/virtio-ccw.c | 13 +++++++++----
  1 file changed, 9 insertions(+), 4 deletions(-)
#3 lore raw
In reply to Halil Pasic
Quoted 9 lines · On Wed, 16 May 2018 15:27:57 +0200 Halil Pasic <[email protected]> wrote:

Coverity recently started complaining about virtio_ccw_notify(). Turns out, there is a couple of things that can be cleaned up. Let's clean!

---
 hw/s390x/virtio-ccw.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Thanks, applied.