From: Wang Fan <fan.wang@intel.com>
To: edk2-devel@lists.01.org
Cc: Subramanian, Sriram <sriram-s@hpe.com>,
Ye Ting <ting.ye@intel.com>, Fu Siyuan <siyuan.fu@intel.com>,
Wu Jiaxin <jiaxin.wu@intel.com>
Subject: [Patch v2] NetworkPkg: UefiPxeBcDxe: Add EXCLUSIVE attribute when opening SNP protocol installed by PXE.
Date: Fri, 14 Sep 2018 16:24:15 +0800 [thread overview]
Message-ID: <20180914082415.800-1-fan.wang@intel.com> (raw)
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1152
v2: Sync the same logic to Ipv6 and update code comments.
The PXE driver installs a SNP and open this SNP with attribute BY_DRIVER
to avoid it being opened by MNP driver, this SNP is also expected not to
be opened by other drivers with EXCLUSIVE attribute. In some cases, other
drivers may happen to do this by error, and thus cause a system crash.
This patch adds EXCLUSIVE attribute when opening SNP in PXE driver, and
will reject all OpenProtocol requests by EXCLUSIVE.
Cc: Subramanian, Sriram <sriram-s@hpe.com>
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Wu Jiaxin <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Wang Fan <fan.wang@intel.com>
---
NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c b/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c
index bc9dc914f3..0ab640beca 100644
--- a/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c
+++ b/NetworkPkg/UefiPxeBcDxe/PxeBcDriver.c
@@ -812,20 +812,20 @@ PxeBcCreateIp4Children (
if (EFI_ERROR (Status)) {
goto ON_ERROR;
}
//
- // Open SNP on the child handle BY_DRIVER. It will prevent any additionally
+ // Open SNP on the child handle BY_DRIVER|EXCLUSIVE. It will prevent any additionally
// layering to perform the experiment.
//
Status = gBS->OpenProtocol (
Private->Ip4Nic->Controller,
&gEfiSimpleNetworkProtocolGuid,
(VOID **) &Snp,
This->DriverBindingHandle,
Private->Ip4Nic->Controller,
- EFI_OPEN_PROTOCOL_BY_DRIVER
+ EFI_OPEN_PROTOCOL_BY_DRIVER|EFI_OPEN_PROTOCOL_EXCLUSIVE
);
if (EFI_ERROR (Status)) {
goto ON_ERROR;
}
}
@@ -1155,20 +1155,20 @@ PxeBcCreateIp6Children (
if (EFI_ERROR (Status)) {
goto ON_ERROR;
}
//
- // Open SNP on the child handle BY_DRIVER. It will prevent any additionally
+ // Open SNP on the child handle BY_DRIVER|EXCLUSIVE. It will prevent any additionally
// layering to perform the experiment.
//
Status = gBS->OpenProtocol (
Private->Ip6Nic->Controller,
&gEfiSimpleNetworkProtocolGuid,
(VOID **) &Snp,
This->DriverBindingHandle,
Private->Ip6Nic->Controller,
- EFI_OPEN_PROTOCOL_BY_DRIVER
+ EFI_OPEN_PROTOCOL_BY_DRIVER|EFI_OPEN_PROTOCOL_EXCLUSIVE
);
if (EFI_ERROR (Status)) {
goto ON_ERROR;
}
}
--
2.16.2.windows.1
next reply other threads:[~2018-09-14 8:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-14 8:24 Wang Fan [this message]
2018-09-14 8:50 ` [Patch v2] NetworkPkg: UefiPxeBcDxe: Add EXCLUSIVE attribute when opening SNP protocol installed by PXE Subramanian, Sriram
2018-09-18 10:17 ` Laszlo Ersek
2018-09-19 1:31 ` Wu, Jiaxin
2018-09-19 1:44 ` Wu, Jiaxin
2018-09-19 1:46 ` Wang, Fan
2018-09-19 11:19 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180914082415.800-1-fan.wang@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox