PCI: Fix IOV resource sorting by alignment requirement
authorWei Yang <weiyang@linux.vnet.ibm.com>
Tue, 19 May 2015 06:24:17 +0000 (14:24 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 27 May 2015 16:47:17 +0000 (11:47 -0500)
commita6b65983dabceb7ccb1801ee7f5bd421c2704d16
tree04d4f169875b6839c5e801534f2a072c906a58b5
parent110baab1d12836508c68a36cd5bb2e76896f2efd
PCI: Fix IOV resource sorting by alignment requirement

In d74b9027a4da ("PCI: Consider additional PF's IOV BAR alignment in sizing
and assigning"), it stores additional alignment in realloc_head and takes
this into consideration for assignment.

After getting the additional alignment, it reorders the head list so
resources with bigger alignment are ahead of resources with smaller
alignment.  It does this by iterating over the head list and inserting
ahead of any resource with smaller alignment.  This should be done for the
first occurrence, but the code currently iterates over the whole list.

Fix this by terminating the loop when we find the first smaller resource in
the head list.

[bhelgaas: changelog]
Fixes: d74b9027a4da ("PCI: Consider additional PF's IOV BAR alignment in sizing and assigning")
Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/setup-bus.c