可以使用ktime来实现等待。例如下面这段code
首先用ktime_get()得到当前时间,然后使用ktime_add_us来得到需要到期的时间。
ktime_t timeout = ktime_add_us(ktime_get(), ARM_SMMU_POLL_TIMEOUT_US);
while (ktime_compare(ktime_get(), timeout) > 0) {
cpu_relax();
udelay(1);
}
其次用ktime_compare 来比较时间是否到期,如果没有到期就执行cpu_relax。
首先用ktime_get()得到当前时间,然后使用ktime_add_us来得到需要到期的时间。
ktime_t timeout = ktime_add_us(ktime_get(), ARM_SMMU_POLL_TIMEOUT_US);
while (ktime_compare(ktime_get(), timeout) > 0) {
cpu_relax();
udelay(1);
}
其次用ktime_compare 来比较时间是否到期,如果没有到期就执行cpu_relax。