From 9f3acbb5c9e10f1bdbf5c4b26c0f7d3739d94543 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Fri, 14 Jun 2013 07:40:59 +0000 Subject: [PATCH] OvmfPkg: VirtioNetDxe: fix some build errors emitted by Visual Studio These were found with the gcc-4.4 option "-Wconversion" after Jordan reported the build failure under Visual Studio. The patch was originally posted to edk2-devel as "silence.patch": http://thread.gmane.org/gmane.comp.bios.tianocore.devel/2804/focus=2972 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek Reviewed-by: Jordan Justen Reviewed-by: Stefan Hajnoczi git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14419 6f19259b-4bc3-4df7-8a09-765794883524 --- OvmfPkg/VirtioNetDxe/SnpInitialize.c | 12 +++++++----- OvmfPkg/VirtioNetDxe/SnpReceive.c | 5 +++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/OvmfPkg/VirtioNetDxe/SnpInitialize.c b/OvmfPkg/VirtioNetDxe/SnpInitialize.c index 39282d9a4a..6cee014072 100644 --- a/OvmfPkg/VirtioNetDxe/SnpInitialize.c +++ b/OvmfPkg/VirtioNetDxe/SnpInitialize.c @@ -120,7 +120,8 @@ VirtioNetInitTx ( { UINTN PktIdx; - Dev->TxMaxPending = MIN (Dev->TxRing.QueueSize / 2, VNET_MAX_PENDING); + Dev->TxMaxPending = (UINT16) MIN (Dev->TxRing.QueueSize / 2, + VNET_MAX_PENDING); Dev->TxCurPending = 0; Dev->TxFreeStack = AllocatePool (Dev->TxMaxPending * sizeof *Dev->TxFreeStack); @@ -141,7 +142,7 @@ VirtioNetInitTx ( Dev->TxRing.Desc[DescIdx].Addr = (UINTN) &Dev->TxSharedReq; Dev->TxRing.Desc[DescIdx].Len = sizeof Dev->TxSharedReq; Dev->TxRing.Desc[DescIdx].Flags = VRING_DESC_F_NEXT; - Dev->TxRing.Desc[DescIdx].Next = DescIdx + 1; + Dev->TxRing.Desc[DescIdx].Next = (UINT16) (DescIdx + 1); // // The second descriptor of each pending TX packet is updated on the fly, @@ -221,7 +222,7 @@ VirtioNetInitRx ( // Limit the number of pending RX packets if the queue is big. The division // by two is due to the above "two descriptors per packet" trait. // - RxAlwaysPending = MIN (Dev->RxRing.QueueSize / 2, VNET_MAX_PENDING); + RxAlwaysPending = (UINT16) MIN (Dev->RxRing.QueueSize / 2, VNET_MAX_PENDING); Dev->RxBuf = AllocatePool (RxAlwaysPending * RxBufSize); if (Dev->RxBuf == NULL) { @@ -261,11 +262,12 @@ VirtioNetInitRx ( Dev->RxRing.Desc[DescIdx].Addr = (UINTN) RxPtr; Dev->RxRing.Desc[DescIdx].Len = sizeof (VIRTIO_NET_REQ); Dev->RxRing.Desc[DescIdx].Flags = VRING_DESC_F_WRITE | VRING_DESC_F_NEXT; - Dev->RxRing.Desc[DescIdx].Next = DescIdx + 1; + Dev->RxRing.Desc[DescIdx].Next = (UINT16) (DescIdx + 1); RxPtr += Dev->RxRing.Desc[DescIdx++].Len; Dev->RxRing.Desc[DescIdx].Addr = (UINTN) RxPtr; - Dev->RxRing.Desc[DescIdx].Len = RxBufSize - sizeof (VIRTIO_NET_REQ); + Dev->RxRing.Desc[DescIdx].Len = (UINT32) (RxBufSize - + sizeof (VIRTIO_NET_REQ)); Dev->RxRing.Desc[DescIdx].Flags = VRING_DESC_F_WRITE; RxPtr += Dev->RxRing.Desc[DescIdx++].Len; } diff --git a/OvmfPkg/VirtioNetDxe/SnpReceive.c b/OvmfPkg/VirtioNetDxe/SnpReceive.c index eb3a2ba9b5..dcff6a09fc 100644 --- a/OvmfPkg/VirtioNetDxe/SnpReceive.c +++ b/OvmfPkg/VirtioNetDxe/SnpReceive.c @@ -156,7 +156,7 @@ VirtioNetReceive ( RxPtr += SIZE_OF_VNET (VhdrMac); if (Protocol != NULL) { - *Protocol = ((UINT16) RxPtr[0] << 8) | RxPtr[1]; + *Protocol = (UINT16) ((RxPtr[0] << 8) | RxPtr[1]); } RxPtr += sizeof (UINT16); @@ -169,7 +169,8 @@ RecycleDesc: // virtio-0.9.5, 2.4.1 Supplying Buffers to The Device // AvailIdx = *Dev->RxRing.Avail.Idx; - Dev->RxRing.Avail.Ring[AvailIdx++ % Dev->RxRing.QueueSize] = DescIdx; + Dev->RxRing.Avail.Ring[AvailIdx++ % Dev->RxRing.QueueSize] = + (UINT16) DescIdx; MemoryFence (); *Dev->RxRing.Avail.Idx = AvailIdx; -- 2.39.2