Commit b5fa5b43 authored by Alexandru Elisei's avatar Alexandru Elisei

arm64: gic: its-trigger: Don't trigger LPI while it is pending

The its-trigger test checks that LPI 8195 is not delivered to the CPU while
it is disabled at the ITS level, after which it is re-enabled and tests
that it's now properly asserted. After it is re-enabled it is triggered
again, which can lead to the same interrupt being delivered twice: once
after the configuration invalidation (which re-enables it) and once after
the INT command.

Get rid of the INT command after it is re-enabled to prevent the LPI from
being asserted twice and add a separate check to test that the INT command
still works for the LPI.
parent d613723d
Pipeline #5 failed with stage
in 0 seconds
......@@ -756,15 +756,22 @@ static void test_its_trigger(void)
"dev2/eventid=20 still does not trigger any LPI");
/* Now call the invall and check the LPI hits */
stats_reset();
wmb();
cpumask_clear(&mask);
cpumask_set_cpu(3, &mask);
its_send_invall(col3);
wait_for_interrupts(&mask);
report(check_acked(&mask, 0, 8195),
"dev2/eventid=20 pending LPI is received");
stats_reset();
wmb();
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");
report(check_acked(&mask, 0, 8195), "dev2/eventid20 triggers an LPI");
report_prefix_pop();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment