Fix “reconnect -r” ASSERT after VLAN configured.

Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Zhang, Chao B <chao.b.zhang@intel.com>
Reviewed-by: Jin, Eric <eric.jin@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15048 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Fu Siyuan 2014-01-06 02:17:12 +00:00 committed by sfu5
parent ecec420440
commit 8ff272ee83
1 changed files with 10 additions and 15 deletions

View File

@ -1,7 +1,7 @@
/** @file
Implementation of Managed Network Protocol I/O functions.
Copyright (c) 2005 - 2013, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions
of the BSD License which accompanies this distribution. The full
@ -128,16 +128,13 @@ MnpBuildTxPacket (
MNP_DEVICE_DATA *MnpDerviceData;
MnpDerviceData = MnpServiceData->MnpDeviceData;
//
// Reserve space for vlan tag.
//
*PktBuf = MnpDerviceData->TxBuf + NET_VLAN_TAG_LEN;
if ((TxData->DestinationAddress == NULL) && (TxData->FragmentCount == 1)) {
//
// Reserve space for vlan tag,if necessary.
//
if (MnpServiceData->VlanId != 0) {
*PktBuf = MnpDerviceData->TxBuf + NET_VLAN_TAG_LEN;
} else {
*PktBuf = MnpDerviceData->TxBuf;
}
CopyMem (
*PktBuf,
TxData->FragmentTable[0].FragmentBuffer,
@ -151,9 +148,8 @@ MnpBuildTxPacket (
// one fragment, copy the data into the packet buffer. Reserve the
// media header space if necessary.
//
SnpMode = MnpDerviceData->Snp->Mode;
DstPos = MnpDerviceData->TxBuf;
SnpMode = MnpDerviceData->Snp->Mode;
DstPos = *PktBuf;
*PktLen = 0;
if (TxData->DestinationAddress != NULL) {
//
@ -177,9 +173,8 @@ MnpBuildTxPacket (
}
//
// Set the buffer pointer and the buffer length.
// Set the buffer length.
//
*PktBuf = MnpDerviceData->TxBuf;
*PktLen += TxData->DataLength + TxData->HeaderLength;
}
}