The IORT table usually only contains single mappings. While on the LX2K there
authorpatrick <patrick@openbsd.org>
Fri, 26 Nov 2021 15:21:26 +0000 (15:21 +0000)
committerpatrick <patrick@openbsd.org>
Fri, 26 Nov 2021 15:21:26 +0000 (15:21 +0000)
is a non-single mapping for the networking subsystem, we don't yet have support
for it and apparently Linux has trouble with it as well.  So for now we can
remove the code, because it uses an uninitialized variable and there's no easy
way to fix it without re-thinking the concept.  The code got there in the first
place because it's a copy of the same pattern in our other IOMMU code.

ok jsg@

sys/arch/arm64/dev/acpiiort.c

index 7bee4da..93626c9 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpiiort.c,v 1.4 2021/06/25 17:41:22 patrick Exp $ */
+/* $OpenBSD: acpiiort.c,v 1.5 2021/11/26 15:21:26 patrick Exp $ */
 /*
  * Copyright (c) 2021 Patrick Wildt <patrick@blueri.se>
  *
@@ -169,13 +169,6 @@ acpiiort_device_map(struct aml_node *root, bus_dma_tag_t dmat)
                        rid = map[i].output_base;
                        break;
                }
-
-               /* Mapping encodes number of IDs in the range minus one. */
-               if (map[i].input_base <= rid &&
-                   rid <= map[i].input_base + map[i].number_of_ids) {
-                       rid = map[i].output_base + (rid - map[i].input_base);
-                       break;
-               }
        }
 
        /* No mapping found? Even weirder. */