MdeModulePkg/FvSimpleFs: don't open DevicePath with BY_DRIVER mode
The device path protocol doesn't get closed at FvSimpleFilesystem driver stop() when it's opened at start() with BY_DRIVER mode. We change it to open DevicePath with GET_PROTOCOL mode as FV2 protocol with BY_DRIVER is enough. Cc: Chao Zhang <chao.b.zhang@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Chao Zhang <chao.b.zhang@intel.com>
This commit is contained in:
@ -12,7 +12,7 @@
|
|||||||
from the UEFI shell. It is entirely read-only.
|
from the UEFI shell. It is entirely read-only.
|
||||||
|
|
||||||
Copyright (c) 2014, ARM Limited. All rights reserved.
|
Copyright (c) 2014, ARM Limited. All rights reserved.
|
||||||
Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
@ -452,9 +452,7 @@ FvSimpleFileSystemDriverStart (
|
|||||||
// Create an instance
|
// Create an instance
|
||||||
//
|
//
|
||||||
Instance = AllocateZeroPool (sizeof (FV_FILESYSTEM_INSTANCE));
|
Instance = AllocateZeroPool (sizeof (FV_FILESYSTEM_INSTANCE));
|
||||||
if (Instance == NULL) {
|
ASSERT (Instance != NULL);
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
Instance->Root = NULL;
|
Instance->Root = NULL;
|
||||||
Instance->FvProtocol = FvProtocol;
|
Instance->FvProtocol = FvProtocol;
|
||||||
@ -469,6 +467,7 @@ FvSimpleFileSystemDriverStart (
|
|||||||
EFI_NATIVE_INTERFACE,
|
EFI_NATIVE_INTERFACE,
|
||||||
&Instance->SimpleFs
|
&Instance->SimpleFs
|
||||||
);
|
);
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Decide on a filesystem volume label, which will include the FV's guid.
|
// Decide on a filesystem volume label, which will include the FV's guid.
|
||||||
@ -481,7 +480,7 @@ FvSimpleFileSystemDriverStart (
|
|||||||
(VOID **) &FvDevicePath,
|
(VOID **) &FvDevicePath,
|
||||||
gImageHandle,
|
gImageHandle,
|
||||||
ControllerHandle,
|
ControllerHandle,
|
||||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||||
);
|
);
|
||||||
if (!EFI_ERROR (Status)) {
|
if (!EFI_ERROR (Status)) {
|
||||||
//
|
//
|
||||||
@ -528,7 +527,7 @@ FvSimpleFileSystemDriverStart (
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Status;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user