public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Subramanian, Sriram" <sriram-s@hpe.com>
To: Wang Fan <fan.wang@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Subramanian@mx0b-002e3701.pphosted.com"
	<Subramanian@mx0b-002e3701.pphosted.com>,
	Ye Ting <ting.ye@intel.com>, "Fu Siyuan" <siyuan.fu@intel.com>,
	Wu Jiaxin <jiaxin.wu@intel.com>
Subject: Re: [Patch v2] NetworkPkg: UefiPxeBcDxe: Add EXCLUSIVE attribute when opening SNP protocol installed by PXE.
Date: Fri, 14 Sep 2018 08:50:46 +0000	[thread overview]
Message-ID: <DF4PR8401MB101998781CCDA7233193C41880190@DF4PR8401MB1019.NAMPRD84.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <20180914082415.800-1-fan.wang@intel.com>

Reviewed-by: Sriram Subramanian <sriram-s@hpe.com>

-----Original Message-----
From: Wang Fan [mailto:fan.wang@intel.com] 
Sent: Friday, September 14, 2018 1:54 PM
To: edk2-devel@lists.01.org
Cc: Subramanian@mx0b-002e3701.pphosted.com; 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.

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



  reply	other threads:[~2018-09-14  8:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-14  8:24 [Patch v2] NetworkPkg: UefiPxeBcDxe: Add EXCLUSIVE attribute when opening SNP protocol installed by PXE Wang Fan
2018-09-14  8:50 ` Subramanian, Sriram [this message]
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=DF4PR8401MB101998781CCDA7233193C41880190@DF4PR8401MB1019.NAMPRD84.PROD.OUTLOOK.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