kernel/pci: Don't perform the maximum register number check.
authorSascha Wildner <saw@online.de>
Sun, 26 Feb 2012 14:41:52 +0000 (15:41 +0100)
committerSascha Wildner <saw@online.de>
Wed, 13 Mar 2013 17:12:26 +0000 (18:12 +0100)
Different sub-kinds of PCI buses may have different rules and thus it
is up for the bus backends to do proper input checks. For example,
PCIe allows configuration register numbers < 0x1000, while for PCI
proper the limit is 0x100.

Taken-from: FreeBSD

sys/bus/pci/pci_user.c

index 3dae564..fff1521 100644 (file)
@@ -598,9 +598,8 @@ getconfexit:
                case 4:
                case 2:
                case 1:
-                       /* Make sure register is in bounds and aligned. */
+                       /* Make sure register is not negative and aligned. */
                        if (io->pi_reg < 0 ||
-                           io->pi_reg + io->pi_width > PCI_REGMAX + 1 ||
                            io->pi_reg & (io->pi_width - 1)) {
                                error = EINVAL;
                                break;