From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vadim Rozenfeld Subject: [PATCH] viostor driver. fix PREfast warnings. Date: Thu, 29 Oct 2009 10:41:21 +0200 Message-ID: <4AE95531.1060102@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020001020705000809040409" To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:28251 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752153AbZJ2IlX (ORCPT ); Thu, 29 Oct 2009 04:41:23 -0400 Received: from int-mx05.intmail.prod.int.phx2.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.18]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n9T8fRco026674 for ; Thu, 29 Oct 2009 04:41:28 -0400 Received: from localhost.localdomain (vpn-6-121.tlv.redhat.com [10.35.6.121]) by int-mx05.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id n9T8fNf7009401 for ; Thu, 29 Oct 2009 04:41:25 -0400 Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------020001020705000809040409 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit repository: /home/vadimr/shares/kvm-guest-drivers-windows branch: XP commit bf13fc498a576236cff8cbc707a4e5a1e70e22fb Author: Vadim Rozenfeld Date: Thu Oct 29 10:37:41 2009 +0200 [PATCH] viostor driver. fix PREfast warnings. Signed-off-by: Vadim Rozenfeld diff --git a/viostor/virtio_pci.c b/viostor/virtio_pci.c index a72b019..78a6d29 100644 --- a/viostor/virtio_pci.c +++ b/viostor/virtio_pci.c @@ -183,6 +183,10 @@ VirtIODeviceFindVirtualQueue( // activate the queue pa = ScsiPortGetPhysicalAddress(DeviceExtension, NULL, info->queue,&dummy); + if(!pa.QuadPart) { + ScsiPortWritePortUlong((PULONG)(adaptExt->device_base + VIRTIO_PCI_QUEUE_PFN),(ULONG)0); + return NULL; + } pageNum = (ULONG)(pa.QuadPart>> PAGE_SHIFT); RhelDbgPrint(TRACE_LEVEL_FATAL, ("[%s] queue phys.address %08lx:%08lx, pfn %lx\n", __FUNCTION__, pa.u.HighPart, pa.u.LowPart, pageNum)); ScsiPortWritePortUlong((PULONG)(adaptExt->device_base + VIRTIO_PCI_QUEUE_PFN),(ULONG)(pageNum)); diff --git a/viostor/virtio_stor.c b/viostor/virtio_stor.c index 8b91e62..c36b85b 100644 --- a/viostor/virtio_stor.c +++ b/viostor/virtio_stor.c @@ -247,29 +247,6 @@ VirtIoFindAdapter( return SP_RETURN_NOT_FOUND; } - if (!ScsiPortValidateRange(DeviceExtension, - ConfigInfo->AdapterInterfaceType, - ConfigInfo->SystemIoBusNumber, - accessRange->RangeStart, - accessRange->RangeLength, - (BOOLEAN)!accessRange->RangeInMemory)) { - - ScsiPortLogError(DeviceExtension, - NULL, - 0, - 0, - 0, - SP_INTERNAL_ADAPTER_ERROR, - __LINE__); - - RhelDbgPrint(TRACE_LEVEL_FATAL, ("Range validation failed %x for %x bytes\n", - (*ConfigInfo->AccessRanges)[0].RangeStart.LowPart, - (*ConfigInfo->AccessRanges)[0].RangeLength)); - - return SP_RETURN_ERROR; - } - - ConfigInfo->NumberOfBuses = 1; ConfigInfo->MaximumNumberOfTargets = 1; ConfigInfo->MaximumNumberOfLogicalUnits = 1; @@ -707,7 +684,7 @@ VirtIoAdapterControl( RhelDbgPrint(TRACE_LEVEL_VERBOSE, ("ScsiRestartAdapter\n")); adaptExt->pci_vq_info.vq = NULL; #ifdef MSI_SUPPORTED - if(!adaptExt->dump_mode& adaptExt->msix_vectors) { + if(!adaptExt->dump_mode&& adaptExt->msix_vectors) { adaptExt->pci_vq_info.vq = VirtIODeviceFindVirtualQueue(DeviceExtension, 0, adaptExt->msix_vectors); } #endif --------------020001020705000809040409 Content-Type: text/plain; name="fix_prefast_warnings.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="fix_prefast_warnings.patch" diff --git a/viostor/virtio_pci.c b/viostor/virtio_pci.c index a72b019..78a6d29 100644 --- a/viostor/virtio_pci.c +++ b/viostor/virtio_pci.c @@ -183,6 +183,10 @@ VirtIODeviceFindVirtualQueue( // activate the queue pa = ScsiPortGetPhysicalAddress(DeviceExtension, NULL, info->queue, &dummy); + if(!pa.QuadPart) { + ScsiPortWritePortUlong((PULONG)(adaptExt->device_base + VIRTIO_PCI_QUEUE_PFN),(ULONG)0); + return NULL; + } pageNum = (ULONG)(pa.QuadPart >> PAGE_SHIFT); RhelDbgPrint(TRACE_LEVEL_FATAL, ("[%s] queue phys.address %08lx:%08lx, pfn %lx\n", __FUNCTION__, pa.u.HighPart, pa.u.LowPart, pageNum)); ScsiPortWritePortUlong((PULONG)(adaptExt->device_base + VIRTIO_PCI_QUEUE_PFN),(ULONG)(pageNum)); diff --git a/viostor/virtio_stor.c b/viostor/virtio_stor.c index 8b91e62..c36b85b 100644 --- a/viostor/virtio_stor.c +++ b/viostor/virtio_stor.c @@ -247,29 +247,6 @@ VirtIoFindAdapter( return SP_RETURN_NOT_FOUND; } - if (!ScsiPortValidateRange(DeviceExtension, - ConfigInfo->AdapterInterfaceType, - ConfigInfo->SystemIoBusNumber, - accessRange->RangeStart, - accessRange->RangeLength, - (BOOLEAN)!accessRange->RangeInMemory)) { - - ScsiPortLogError(DeviceExtension, - NULL, - 0, - 0, - 0, - SP_INTERNAL_ADAPTER_ERROR, - __LINE__); - - RhelDbgPrint(TRACE_LEVEL_FATAL, ("Range validation failed %x for %x bytes\n", - (*ConfigInfo->AccessRanges)[0].RangeStart.LowPart, - (*ConfigInfo->AccessRanges)[0].RangeLength)); - - return SP_RETURN_ERROR; - } - - ConfigInfo->NumberOfBuses = 1; ConfigInfo->MaximumNumberOfTargets = 1; ConfigInfo->MaximumNumberOfLogicalUnits = 1; @@ -707,7 +684,7 @@ VirtIoAdapterControl( RhelDbgPrint(TRACE_LEVEL_VERBOSE, ("ScsiRestartAdapter\n")); adaptExt->pci_vq_info.vq = NULL; #ifdef MSI_SUPPORTED - if(!adaptExt->dump_mode & adaptExt->msix_vectors) { + if(!adaptExt->dump_mode && adaptExt->msix_vectors) { adaptExt->pci_vq_info.vq = VirtIODeviceFindVirtualQueue(DeviceExtension, 0, adaptExt->msix_vectors); } #endif --------------020001020705000809040409--