On 04/23/2013 01:23 PM, Christian Borntraeger wrote:
Lets fix this gcc warning:

virtio.c: In function ‘vring_send_buf’:
virtio.c:125:35: error: operation on ‘vr->next_idx’ may be undefined
[-Werror=sequence-point]

Signed-off-by: Christian Borntraeger<borntrae...@de.ibm.com>
---
  pc-bios/s390-ccw/virtio.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c
index 79e2941..1968fc6 100644
--- a/pc-bios/s390-ccw/virtio.c
+++ b/pc-bios/s390-ccw/virtio.c
@@ -122,7 +122,9 @@ static void vring_send_buf(struct vring *vr, void *p, int 
len, int flags)
      vr->desc[vr->next_idx].addr = (ulong)p;
      vr->desc[vr->next_idx].len = len;
      vr->desc[vr->next_idx].flags = flags&  ~VRING_HIDDEN_IS_CHAIN;
-    vr->desc[vr->next_idx].next = ++vr->next_idx;
+    vr->desc[vr->next_idx].next = vr->next_idx;
+    vr->desc[vr->next_idx].next++;
+    vr->next_idx++;

Hrm. This looks a lot more complicated than it needs to. Why is gcc emitting a warning here? Maybe it only wants braces. Please try whether

.next = ++(vr->next_id);

works for you.


Alex


Reply via email to