]> git.proxmox.com Git - mirror_edk2.git/commit
DuetPkg: exit pci function loops early if device is not multi-function
authorJoseph Shifflett <joseph.shifflett@hpe.com>
Tue, 6 Oct 2015 20:55:36 +0000 (20:55 +0000)
committerlersek <lersek@Edk2>
Tue, 6 Oct 2015 20:55:36 +0000 (20:55 +0000)
commit30a35388d12944e499642a0694c038a7e3ad6770
tree50a7bed5fbd525d982086aadab96c1ba70cd3dab
parent25a2664625f892e4a35cdb57a567e060bcde043c
DuetPkg: exit pci function loops early if device is not multi-function

When looping through all PCI functions, code should not look for functions
1-7 if function 0 is not present or if function 0 indicates the device is
not multifunction.  Prior to this fix the code would use stale data in a
buffer to determine if a device is multifunction even if function 0 is not
present.  This fixes a code bug and provides very small performance
improvements.

PCI 2.3 Specification states: They [multifunction devices] are also
required to always implement function 0 in the device. Implementing other
functions is optional and may be assigned in any order.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Joseph Shifflett <joseph.shifflett@hpe.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18575 6f19259b-4bc3-4df7-8a09-765794883524
DuetPkg/PciBusNoEnumerationDxe/PciEnumeratorSupport.c