kmap_ctrl
DEBUG_LOCKS_WARN_ON(current->kmap_ctrl.idx);
struct kmap_ctrl kmap_ctrl;
if (unlikely(current->kmap_ctrl.idx))
if (unlikely(current->kmap_ctrl.idx))
struct kmap_ctrl *kctrl = ¤t->kmap_ctrl;
current->kmap_ctrl.idx += KM_INCR;
BUG_ON(current->kmap_ctrl.idx >= KM_MAX_IDX);
return current->kmap_ctrl.idx - 1;
return current->kmap_ctrl.idx - 1;
current->kmap_ctrl.idx -= KM_INCR;
BUG_ON(current->kmap_ctrl.idx < 0);
current->kmap_ctrl.pteval[kmap_local_idx()] = pteval;
current->kmap_ctrl.pteval[kmap_local_idx()] = __pte(0);
for (i = 0; i < tsk->kmap_ctrl.idx; i++) {
pte_t pteval = tsk->kmap_ctrl.pteval[i];
for (i = 0; i < tsk->kmap_ctrl.idx; i++) {
pte_t pteval = tsk->kmap_ctrl.pteval[i];
if (WARN_ON_ONCE(tsk->kmap_ctrl.idx))
memset(&tsk->kmap_ctrl, 0, sizeof(tsk->kmap_ctrl));