diff mbox

[V2] s390x/pci: avoid sign extension in stpcifc

Message ID 1421855429-36385-1-git-send-email-blaschka@linux.vnet.ibm.com
State New
Headers show

Commit Message

Frank Blaschka Jan. 21, 2015, 3:50 p.m. UTC
this patch avoids sign extension and fixes a data conversion
bug in stpcifc. Both issues where found by Coverity.

Signed-off-by: Frank Blaschka <blaschka@linux.vnet.ibm.com>
---
 hw/s390x/s390-pci-inst.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Markus Armbruster Jan. 23, 2015, 7:44 a.m. UTC | #1
Frank Blaschka <blaschka@linux.vnet.ibm.com> writes:

> this patch avoids sign extension and fixes a data conversion
> bug in stpcifc. Both issues where found by Coverity.
>
> Signed-off-by: Frank Blaschka <blaschka@linux.vnet.ibm.com>

Reviewed-by: Markus Armbruster <armbru@redhat.com>
Cornelia Huck Jan. 23, 2015, 2:10 p.m. UTC | #2
On Wed, 21 Jan 2015 16:50:29 +0100
Frank Blaschka <blaschka@linux.vnet.ibm.com> wrote:

> this patch avoids sign extension and fixes a data conversion
> bug in stpcifc. Both issues where found by Coverity.
> 
> Signed-off-by: Frank Blaschka <blaschka@linux.vnet.ibm.com>
> ---
>  hw/s390x/s390-pci-inst.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Applied to my s390-next branch.
diff mbox

Patch

diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c
index 5ea13e5..c269184 100644
--- a/hw/s390x/s390-pci-inst.c
+++ b/hw/s390x/s390-pci-inst.c
@@ -784,10 +784,10 @@  int stpcifc_service_call(S390CPU *cpu, uint8_t r1, uint64_t fiba)
     stq_p(&fib.aisb, pbdev->routes.adapter.summary_addr);
     stq_p(&fib.fmb_addr, pbdev->fmb_addr);
 
-    data = (pbdev->isc << 28) | (pbdev->noi << 16) |
-           (pbdev->routes.adapter.ind_offset << 8) | (pbdev->sum << 7) |
-           pbdev->routes.adapter.summary_offset;
-    stw_p(&fib.data, data);
+    data = ((uint32_t)pbdev->isc << 28) | ((uint32_t)pbdev->noi << 16) |
+           ((uint32_t)pbdev->routes.adapter.ind_offset << 8) |
+           ((uint32_t)pbdev->sum << 7) | pbdev->routes.adapter.summary_offset;
+    stl_p(&fib.data, data);
 
     if (pbdev->fh >> ENABLE_BIT_OFFSET) {
         fib.fc |= 0x80;