Hi Drew, On 4/2/20 8:01 PM, Andrew Jones wrote: > [ Without the fix this test would hang, as timeouts don't work with > the migration scripts (yet). Use errata to skip instead of hang. ] > Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> > --- > arm/gic.c | 18 ++++++++++++++++-- > errata.txt | 1 + > 2 files changed, 17 insertions(+), 2 deletions(-) > > diff --git a/arm/gic.c b/arm/gic.c > index ddf0f9d09b14..c0781f8c2c80 100644 > --- a/arm/gic.c > +++ b/arm/gic.c > @@ -12,6 +12,7 @@ > * This work is licensed under the terms of the GNU LGPL, version 2. > */ > #include <libcflat.h> > +#include <errata.h> > #include <asm/setup.h> > #include <asm/processor.h> > #include <asm/delay.h> > @@ -812,13 +813,23 @@ static void test_its_migration(void) > check_lpi_stats("dev7/eventid=255 triggers LPI 8196 on PE #2 after migration"); > } > > +#define ERRATA_UNMAPPED_COLLECTIONS "ERRATA_8c58be34494b" > + > static void test_migrate_unmapped_collection(void) > { > - struct its_collection *col; > - struct its_device *dev2, *dev7; > + struct its_collection *col = NULL; > + struct its_device *dev2 = NULL, *dev7 = NULL; > + bool test_skipped = false; > int pe0 = 0; > u8 config; > > + if (!errata(ERRATA_UNMAPPED_COLLECTIONS)) { > + report_skip("Skipping test, as this test hangs without the fix. " > + "Set %s=y to enable.", ERRATA_UNMAPPED_COLLECTIONS); > + test_skipped = true; > + goto do_migrate; out of curiosity why do you still do the migration and not directly return. Besides, what caused the migration to fail without 8c58be34494b is bypassed so: Reviewed-by: Eric Auger <eric.auger@xxxxxxxxxx> Tested-by: Eric Auger <eric.auger@xxxxxxxxxx> Thank you for the fixup Eric > + } > + > if (its_setup1()) > return; > > @@ -830,9 +841,12 @@ static void test_migrate_unmapped_collection(void) > its_send_mapti(dev2, 8192, 0, col); > gicv3_lpi_set_config(8192, LPI_PROP_DEFAULT); > > +do_migrate: > puts("Now migrate the VM, then press a key to continue...\n"); > (void)getchar(); > report_info("Migration complete"); > + if (test_skipped) > + return; > > /* on the destination, map the collection */ > its_send_mapc(col, true); > diff --git a/errata.txt b/errata.txt > index 7d6abc2a7bf6..b66afaa9c079 100644 > --- a/errata.txt > +++ b/errata.txt > @@ -5,4 +5,5 @@ > 9e3f7a296940 : 4.9 : arm64: KVM: pmu: Fix AArch32 cycle counter access > 7b6b46311a85 : 4.11 : KVM: arm/arm64: Emulate the EL1 phys timer registers > 6c7a5dce22b3 : 4.12 : KVM: arm/arm64: fix races in kvm_psci_vcpu_on > +8c58be34494b : 5.6 : KVM: arm/arm64: vgic-its: Fix restoration of unmapped collections > #---------------:-------------------------------:--------------------------------------------------- >