On 03/25/20 17:09, Liran Alon wrote: > This commit doesn't change semantics. > It is done as a preparation for future commits which will modify > PCI attributes. > > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2567 > Signed-off-by: Liran Alon <liran.a...@oracle.com> > --- > OvmfPkg/PvScsiDxe/PvScsi.c | 54 +++++++++++++++++++++++++++++++++++++- > OvmfPkg/PvScsiDxe/PvScsi.h | 1 + > 2 files changed, 54 insertions(+), 1 deletion(-)
Reviewed-by: Laszlo Ersek <ler...@redhat.com> Thanks, Laszlo > > diff --git a/OvmfPkg/PvScsiDxe/PvScsi.c b/OvmfPkg/PvScsiDxe/PvScsi.c > index e0380d729b3c..5566b4cce467 100644 > --- a/OvmfPkg/PvScsiDxe/PvScsi.c > +++ b/OvmfPkg/PvScsiDxe/PvScsi.c > @@ -283,18 +283,70 @@ PvScsiGetNextTarget ( > return EFI_NOT_FOUND; > } > > +STATIC > +EFI_STATUS > +PvScsiSetPciAttributes ( > + IN OUT PVSCSI_DEV *Dev > + ) > +{ > + EFI_STATUS Status; > + > + // > + // Backup original PCI Attributes > + // > + Status = Dev->PciIo->Attributes ( > + Dev->PciIo, > + EfiPciIoAttributeOperationGet, > + 0, > + &Dev->OriginalPciAttributes > + ); > + if (EFI_ERROR (Status)) { > + return Status; > + } > + > + // > + // TODO: Change PCI Attributes > + // > + > + return EFI_SUCCESS; > +} > + > +STATIC > +VOID > +PvScsiRestorePciAttributes ( > + IN PVSCSI_DEV *Dev > + ) > +{ > + Dev->PciIo->Attributes ( > + Dev->PciIo, > + EfiPciIoAttributeOperationSet, > + Dev->OriginalPciAttributes, > + NULL > + ); > +} > + > STATIC > EFI_STATUS > PvScsiInit ( > IN OUT PVSCSI_DEV *Dev > ) > { > + EFI_STATUS Status; > + > // > // Init configuration > // > Dev->MaxTarget = PcdGet8 (PcdPvScsiMaxTargetLimit); > Dev->MaxLun = PcdGet8 (PcdPvScsiMaxLunLimit); > > + // > + // Set PCI Attributes > + // > + Status = PvScsiSetPciAttributes (Dev); > + if (EFI_ERROR (Status)) { > + return Status; > + } > + > // > // Populate the exported interface's attributes > // > @@ -333,7 +385,7 @@ PvScsiUninit ( > IN OUT PVSCSI_DEV *Dev > ) > { > - // Currently nothing to do here > + PvScsiRestorePciAttributes (Dev); > } > > // > diff --git a/OvmfPkg/PvScsiDxe/PvScsi.h b/OvmfPkg/PvScsiDxe/PvScsi.h > index e1e5ae18ebf2..5f611dbbc98c 100644 > --- a/OvmfPkg/PvScsiDxe/PvScsi.h > +++ b/OvmfPkg/PvScsiDxe/PvScsi.h > @@ -20,6 +20,7 @@ > typedef struct { > UINT32 Signature; > EFI_PCI_IO_PROTOCOL *PciIo; > + UINT64 OriginalPciAttributes; > UINT8 MaxTarget; > UINT8 MaxLun; > EFI_EXT_SCSI_PASS_THRU_PROTOCOL PassThru; > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#56411): https://edk2.groups.io/g/devel/message/56411 Mute This Topic: https://groups.io/mt/72544117/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-