From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDVNi-0004UL-Su for qemu-devel@nongnu.org; Tue, 20 Jan 2015 04:45:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YDVNe-0001az-52 for qemu-devel@nongnu.org; Tue, 20 Jan 2015 04:45:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:55421) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YDVNd-0001an-Jv for qemu-devel@nongnu.org; Tue, 20 Jan 2015 04:45:50 -0500 From: Markus Armbruster References: <1420790680-3266-1-git-send-email-blaschka@linux.vnet.ibm.com> <1420790680-3266-3-git-send-email-blaschka@linux.vnet.ibm.com> Date: Tue, 20 Jan 2015 10:45:41 +0100 In-Reply-To: <1420790680-3266-3-git-send-email-blaschka@linux.vnet.ibm.com> (Frank Blaschka's message of "Fri, 9 Jan 2015 09:04:39 +0100") Message-ID: <87h9vln5tm.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH 2/3 V3] s390: implement pci instructions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Frank Blaschka Cc: cornelia.huck@de.ibm.com, borntraeger@de.ibm.com, Frank Blaschka , qemu-devel@nongnu.org This patch makes Coverity unhappy: *** CID 1264326: Unintended sign extension (SIGN_EXTENSION) /hw/s390x/s390-pci-inst.c: 787 in stpcifc_service_call() 781 stq_p(&fib.pal, pbdev->pal); 782 stq_p(&fib.iota, pbdev->g_iota); 783 stq_p(&fib.aibv, pbdev->routes.adapter.ind_addr); 784 stq_p(&fib.aisb, pbdev->routes.adapter.summary_addr); 785 stq_p(&fib.fmb_addr, pbdev->fmb_addr); 786 >>> CID 1264326: Unintended sign extension (SIGN_EXTENSION) >>> Suspicious implicit sign extension: "pbdev->isc" with type >>> "unsigned char" (8 bits, unsigned) is promoted in "(pbdev->isc << >>> 28) | (pbdev->noi << 16)" to type "int" (32 bits, signed), then >>> sign-extended to type "unsigned long" (64 bits, unsigned). If >>> "(pbdev->isc << 28) | (pbdev->noi << 16)" is greater than >>> 0x7FFFFFFF, the upper bits of the result will all be 1. 787 data = (pbdev->isc << 28) | (pbdev->noi << 16) | 788 (pbdev->routes.adapter.ind_offset << 8) | (pbdev->sum << 7) | 789 pbdev->routes.adapter.summary_offset; 790 stw_p(&fib.data, data); 791 792 if (pbdev->fh >> ENABLE_BIT_OFFSET) { ________________________________________________________________________________________________________ *** CID 1264324: Unintended sign extension (SIGN_EXTENSION) /hw/s390x/s390-pci-inst.c: 787 in stpcifc_service_call() 781 stq_p(&fib.pal, pbdev->pal); 782 stq_p(&fib.iota, pbdev->g_iota); 783 stq_p(&fib.aibv, pbdev->routes.adapter.ind_addr); 784 stq_p(&fib.aisb, pbdev->routes.adapter.summary_addr); 785 stq_p(&fib.fmb_addr, pbdev->fmb_addr); 786 >>> CID 1264324: Unintended sign extension (SIGN_EXTENSION) >>> Suspicious implicit sign extension: "pbdev->noi" with type >>> "unsigned short" (16 bits, unsigned) is promoted in "(pbdev->isc >>> << 28) | (pbdev->noi << 16)" to type "int" (32 bits, signed), then >>> sign-extended to type "unsigned long" (64 bits, unsigned). If >>> "(pbdev->isc << 28) | (pbdev->noi << 16)" is greater than >>> 0x7FFFFFFF, the upper bits of the result will all be 1. 787 data = (pbdev->isc << 28) | (pbdev->noi << 16) | 788 (pbdev->routes.adapter.ind_offset << 8) | (pbdev->sum << 7) | 789 pbdev->routes.adapter.summary_offset; 790 stw_p(&fib.data, data); 791 792 if (pbdev->fh >> ENABLE_BIT_OFFSET) { Does this code work as intended?