@@ -732,34 +732,22 @@ static void test_its_trigger(void)
"dev2/eventid=20 does not trigger any LPI");
/*
- * re-enable the LPI but willingly do not call invall
- * so the change in config is not taken into account.
- * The LPI should not hit
+ * re-enable the LPI. While "A change to the LPI configuration
+ * is not guaranteed to be visible until an appropriate
+ * invalidation operation has completed" hardware that doesn't
+ * implement caches may have delivered the event at any point
+ * after the enabling. Check the LPI has hit by the time the
+ * invall is done.
*/
- gicv3_lpi_set_config(8195, LPI_PROP_DEFAULT);
- stats_reset();
- cpumask_clear(&mask);
- its_send_int(dev2, 20);
- wait_for_interrupts(&mask);
- report(check_acked(&mask, -1, -1),
- "dev2/eventid=20 still does not trigger any LPI");
-
- /* Now call the invall and check the LPI hits */
stats_reset();
- cpumask_clear(&mask);
- cpumask_set_cpu(3, &mask);
+ gicv3_lpi_set_config(8195, LPI_PROP_DEFAULT);
its_send_invall(col3);
- wait_for_interrupts(&mask);
- report(check_acked(&mask, 0, 8195),
- "dev2/eventid=20 pending LPI is received");
-
- stats_reset();
cpumask_clear(&mask);
cpumask_set_cpu(3, &mask);
its_send_int(dev2, 20);
wait_for_interrupts(&mask);
report(check_acked(&mask, 0, 8195),
- "dev2/eventid=20 now triggers an LPI");
+ "dev2/eventid=20 triggers an LPI");
report_prefix_pop();