]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
PCI: Make minimum bridge window alignment reference more obvious
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 7 May 2024 10:25:22 +0000 (13:25 +0300)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 12 Jun 2024 19:51:07 +0000 (14:51 -0500)
Calculations related to bridge window size contain literal 20 that is the
minimum alignment for a bridge window. Make the code more obvious by
converting the literal 20 to __ffs(SZ_1M).

Link: https://lore.kernel.org/r/20240507102523.57320-8-ilpo.jarvinen@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
[bhelgaas: squash https://lore.kernel.org/r/20240612093250.17544-1-ilpo.jarvinen@linux.intel.com]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/pci/setup-bus.c

index 141d6b31959be2c48d669d6fa7f80858b782415e..03bb449cf260d5b496ad761dd0eeb31e3f9b7bea 100644 (file)
@@ -14,6 +14,7 @@
  *          tighter packing. Prefetchable range support.
  */
 
+#include <linux/bitops.h>
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -21,6 +22,7 @@
 #include <linux/errno.h>
 #include <linux/ioport.h>
 #include <linux/cache.h>
+#include <linux/sizes.h>
 #include <linux/slab.h>
 #include <linux/acpi.h>
 #include "pci.h"
@@ -957,7 +959,7 @@ static inline resource_size_t calculate_mem_align(resource_size_t *aligns,
        for (order = 0; order <= max_order; order++) {
                resource_size_t align1 = 1;
 
-               align1 <<= (order + 20);
+               align1 <<= order + __ffs(SZ_1M);
 
                if (!align)
                        min_align = align1;
@@ -1047,7 +1049,7 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
                         * resources.
                         */
                        align = pci_resource_alignment(dev, r);
-                       order = __ffs(align) - 20;
+                       order = __ffs(align) - __ffs(SZ_1M);
                        if (order < 0)
                                order = 0;
                        if (order >= ARRAY_SIZE(aligns)) {