summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/gsp_phys_booter.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index f603c10..bc312b0 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -16634,9 +16634,15 @@ gsp_phys_gr_output_retire_wait(const struct gsp_phys_gr_submit *req,
u32 pj;
bool launch_page = false;
+ /*
+ * Exclude EVERY forwarded launch page - including the
+ * 0xffffffff (non-QMD) ones (pushbuffer/indirect/bank pages
+ * the fill also relocates as high-VA candidates). r150
+ * excluded only the QMD pages and out_base landed on the
+ * 0x1d9000 bank page group: out_pages=3, the wait exited
+ * after 72 ms and the late-write capture was lost.
+ */
for (pj = 0; pj < req->n_pages; pj++) {
- if (req->pages[pj].qmd_word == 0xffffffffu)
- continue;
if (req->pages[pj].guest_va == req->data[di].va) {
launch_page = true;
break;
@@ -16663,9 +16669,6 @@ gsp_phys_gr_output_retire_wait(const struct gsp_phys_gr_submit *req,
bool lp = false;
for (pj = 0; pj < req->n_pages; pj++) {
- if (req->pages[pj].qmd_word ==
- 0xffffffffu)
- continue;
if (req->pages[pj].guest_va ==
req->data[k].va) {
lp = true;