OK.OK.:) I will generate V3.
A improper patch can never escape from your eyes.

Regards,
Ray

From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Laszlo 
Ersek
Sent: Friday, February 19, 2016 6:41 PM
To: Ni, Ruiyu <ruiyu...@intel.com>; edk2-de...@ml01.01.org
Cc: Tian, Feng <feng.t...@intel.com>; Fan, Jeff <jeff....@intel.com>
Subject: Re: [edk2] [Patch V2 1/2] MdeModulePkg/PciBus: Refine to reduce code 
lines.

On 02/19/16 03:18, Ruiyu Ni wrote:
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ruiyu Ni <ruiyu...@intel.com<mailto:ruiyu...@intel.com>>
> Cc: Feng Tian <feng.t...@intel.com<mailto:feng.t...@intel.com>>
> Cc: Jeff Fan <jeff....@intel.com<mailto:jeff....@intel.com>>
> ---
>  MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c | 70 
> ++++++++++++----------------------
>  1 file changed, 24 insertions(+), 46 deletions(-)

I think this patch is correct. However, it is very hard to read.

I'd like to propose the following two improvements:

(1) Please split this patch in two. In the first step, please do not
    reorganize the control flow, *only* rename the variable.

    In the second step (a separate patch), the control flow can be
    reorganized.

    Both of the patches should point out that they incur no observable
    change.

(2) In the reorganized version, please add

  //
  // fall through
  //

comments. Although they are not required by the coding style, I've seen
them elsewhere in edk2, and they are quite helpful.

Thanks
Laszlo


>
> diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c 
> b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
> index 4160632..50ed866 100644
> --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
> +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c
> @@ -1,7 +1,7 @@
>  /** @file
>    EFI PCI IO protocol functions implementation for PCI Bus module.
>
> -Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2006 - 2016, 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 text of the license may be 
> found at
> @@ -1774,9 +1774,8 @@ PciIoGetBarAttributes (
>    OUT VOID                           **Resources OPTIONAL
>    )
>  {
> -  UINT8                             *Configuration;
>    PCI_IO_DEVICE                     *PciIoDevice;
> -  EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *AddressSpace;
> +  EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor;
>    EFI_ACPI_END_TAG_DESCRIPTOR       *End;
>
>    PciIoDevice = PCI_IO_DEVICE_FROM_PCI_IO_THIS (This);
> @@ -1798,19 +1797,18 @@ PciIoGetBarAttributes (
>    }
>
>    if (Resources != NULL) {
> -    Configuration = AllocateZeroPool (sizeof 
> (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) + sizeof (EFI_ACPI_END_TAG_DESCRIPTOR));
> -    if (Configuration == NULL) {
> +    Descriptor = AllocateZeroPool (sizeof 
> (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) + sizeof (EFI_ACPI_END_TAG_DESCRIPTOR));
> +    if (Descriptor == NULL) {
>        return EFI_OUT_OF_RESOURCES;
>      }
>
> -    AddressSpace = (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *) Configuration;
> +    *Resources   = Descriptor;
>
> -    AddressSpace->Desc         = ACPI_ADDRESS_SPACE_DESCRIPTOR;
> -    AddressSpace->Len          = (UINT16) (sizeof 
> (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3);
> -
> -    AddressSpace->AddrRangeMin = PciIoDevice->PciBar[BarIndex].BaseAddress;
> -    AddressSpace->AddrLen      = PciIoDevice->PciBar[BarIndex].Length;
> -    AddressSpace->AddrRangeMax = PciIoDevice->PciBar[BarIndex].Alignment;
> +    Descriptor->Desc         = ACPI_ADDRESS_SPACE_DESCRIPTOR;
> +    Descriptor->Len          = (UINT16) (sizeof 
> (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR) - 3);
> +    Descriptor->AddrRangeMin = PciIoDevice->PciBar[BarIndex].BaseAddress;
> +    Descriptor->AddrLen      = PciIoDevice->PciBar[BarIndex].Length;
> +    Descriptor->AddrRangeMax = PciIoDevice->PciBar[BarIndex].Alignment;
>
>      switch (PciIoDevice->PciBar[BarIndex].BarType) {
>      case PciBarTypeIo16:
> @@ -1818,59 +1816,41 @@ PciIoGetBarAttributes (
>        //
>        // Io
>        //
> -      AddressSpace->ResType = ACPI_ADDRESS_SPACE_TYPE_IO;
> -      break;
> -
> -    case PciBarTypeMem32:
> -      //
> -      // Mem
> -      //
> -      AddressSpace->ResType = ACPI_ADDRESS_SPACE_TYPE_MEM;
> -      //
> -      // 32 bit
> -      //
> -      AddressSpace->AddrSpaceGranularity = 32;
> +      Descriptor->ResType = ACPI_ADDRESS_SPACE_TYPE_IO;
>        break;
>
>      case PciBarTypePMem32:
>        //
> -      // Mem
> -      //
> -      AddressSpace->ResType = ACPI_ADDRESS_SPACE_TYPE_MEM;
> -      //
>        // prefechable
>        //
> -      AddressSpace->SpecificFlag = 0x6;
> -      //
> -      // 32 bit
> -      //
> -      AddressSpace->AddrSpaceGranularity = 32;
> -      break;
> +      Descriptor->SpecificFlag = 
> EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE;
>
> -    case PciBarTypeMem64:
> +    case PciBarTypeMem32:
>        //
>        // Mem
>        //
> -      AddressSpace->ResType = ACPI_ADDRESS_SPACE_TYPE_MEM;
> +      Descriptor->ResType = ACPI_ADDRESS_SPACE_TYPE_MEM;
>        //
> -      // 64 bit
> +      // 32 bit
>        //
> -      AddressSpace->AddrSpaceGranularity = 64;
> +      Descriptor->AddrSpaceGranularity = 32;
>        break;
>
>      case PciBarTypePMem64:
>        //
> -      // Mem
> +      // prefechable
>        //
> -      AddressSpace->ResType = ACPI_ADDRESS_SPACE_TYPE_MEM;
> +      Descriptor->SpecificFlag = 
> EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE;
> +
> +    case PciBarTypeMem64:
>        //
> -      // prefechable
> +      // Mem
>        //
> -      AddressSpace->SpecificFlag = 0x6;
> +      Descriptor->ResType = ACPI_ADDRESS_SPACE_TYPE_MEM;
>        //
>        // 64 bit
>        //
> -      AddressSpace->AddrSpaceGranularity = 64;
> +      Descriptor->AddrSpaceGranularity = 64;
>        break;
>
>      default:
> @@ -1880,11 +1860,9 @@ PciIoGetBarAttributes (
>      //
>      // put the checksum
>      //
> -    End           = (EFI_ACPI_END_TAG_DESCRIPTOR *) (AddressSpace + 1);
> +    End           = (EFI_ACPI_END_TAG_DESCRIPTOR *) (Descriptor + 1);
>      End->Desc     = ACPI_END_TAG_DESCRIPTOR;
>      End->Checksum = 0;
> -
> -    *Resources    = Configuration;
>    }
>
>    return EFI_SUCCESS;
>

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to