On 01/29/2013 09:12 PM, Blue Swirl wrote:
On Tue, Jan 29, 2013 at 3:45 PM, Cornelia Huck<cornelia.h...@de.ibm.com>  wrote:
On Tue, 29 Jan 2013 16:09:38 +0100
Alexander Graf<ag...@suse.de>  wrote:

On 01/28/2013 10:59 AM, Cornelia Huck wrote:
On Fri, 25 Jan 2013 20:28:31 +0100
Alexander Graf<ag...@suse.de>   wrote:

However, I do agree that this duplicates logic. Cornelia, mind to instead call 
our map helper in css_do_tpi?
Well, ioinst_handle_tpi() looks like the better place to do this.

Can you put this into the series, or should I re-send?
It still breaks for 32-bit targets. Could you please replace the set_bit
call by normal bit shift operations?

Here you are:

 From f85a2507c4c5887e308dcd7dfcfebc386d802ea5 Mon Sep 17 00:00:00 2001
From: Cornelia Huck<cornelia.h...@de.ibm.com>
Date: Tue, 29 Jan 2013 16:33:04 +0100
Subject: [PATCH] s390: Drop set_bit usage in virtio_ccw.

set_bit on indicators doesn't go well on 32 bit targets:

note: expected 'long unsigned int *' but argument is of type 'uint64_t *'

Switch to bit shifts instead.

Signed-off-by: Cornelia Huck<cornelia.h...@de.ibm.com>
---
  hw/s390x/virtio-ccw.c |    4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 7d7f336..77e8f32 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -662,12 +662,12 @@ static void virtio_ccw_notify(DeviceState *d, uint16_t 
vector)

      if (vector<  VIRTIO_PCI_QUEUE_MAX) {
          indicators = ldq_phys(dev->indicators);
-        set_bit(vector,&indicators);
+        indicators |= 1<<  vector;
Probably 1ULL should be used to avoid truncation on 32 bit hosts.

Thanks, applied to s390-next and changed to 1ULL.


Alex


Reply via email to