int cqn;
int eqes_found = 0;
int set_ci = 0;
+ static const uint32_t cDpcMaxTime = 10000; //max time to spend in a while loop
+
+ uint64_t start = cl_get_time_stamp();
while ((eqe = next_eqe_sw(eq))) {
/*
default:
mlx4_warn(dev, "Unhandled event %02x(%02x) on EQ %d at index %u\n",
eqe->type, eqe->subtype, eq->eqn, eq->cons_index);
+
break;
};
eq_set_ci(eq, 0);
set_ci = 0;
}
+
+ if (cl_get_time_stamp() - start > cDpcMaxTime ) {
+ break; //allow other DPCs as well
+ }
}
eq_set_ci(eq, 1);