Pārlūkot izejas kodu

Revert "x86/PCI: allocate space from the end of a region, not the beginning"

This reverts commit dc9887dc02e37bcf83f4e792aa14b07782ef54cf.

Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Bjorn Helgaas 14 gadi atpakaļ
vecāks
revīzija
d14125ecfe
1 mainītis faili ar 6 papildinājumiem un 11 dzēšanām
  1. 6 11
      arch/x86/pci/i386.c

+ 6 - 11
arch/x86/pci/i386.c

@@ -65,21 +65,16 @@ pcibios_align_resource(void *data, const struct resource *res,
 			resource_size_t size, resource_size_t align)
 			resource_size_t size, resource_size_t align)
 {
 {
 	struct pci_dev *dev = data;
 	struct pci_dev *dev = data;
-	resource_size_t start = round_down(res->end - size + 1, align);
+	resource_size_t start = res->start;
 
 
 	if (res->flags & IORESOURCE_IO) {
 	if (res->flags & IORESOURCE_IO) {
-
-		/*
-		 * If we're avoiding ISA aliases, the largest contiguous I/O
-		 * port space is 256 bytes.  Clearing bits 9 and 10 preserves
-		 * all 256-byte and smaller alignments, so the result will
-		 * still be correctly aligned.
-		 */
-		if (!skip_isa_ioresource_align(dev))
-			start &= ~0x300;
+		if (skip_isa_ioresource_align(dev))
+			return start;
+		if (start & 0x300)
+			start = (start + 0x3ff) & ~0x3ff;
 	} else if (res->flags & IORESOURCE_MEM) {
 	} else if (res->flags & IORESOURCE_MEM) {
 		if (start < BIOS_END)
 		if (start < BIOS_END)
-			start = res->end;	/* fail; no space */
+			start = BIOS_END;
 	}
 	}
 	return start;
 	return start;
 }
 }