Disabling preemption in the GRU driver is unnecessary, and clashes with
sleeping locks in several code paths.  Remove preempt_disable and
preempt_enable from the GRU driver.
Signed-off-by: Dimitri Sivanich <sivanich@hpe.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
        int lcpu;
 
        BUG_ON(dsr_bytes > GRU_NUM_KERNEL_DSR_BYTES);
-       preempt_disable();
        bs = gru_lock_kernel_context(-1);
        lcpu = uv_blade_processor_id();
        *cb = bs->kernel_cb + lcpu * GRU_HANDLE_STRIDE;
 static void gru_free_cpu_resources(void *cb, void *dsr)
 {
        gru_unlock_kernel_context(uv_numa_blade_id());
-       preempt_enable();
 }
 
 /*
 
 
 again:
        mutex_lock(>s->ts_ctxlock);
-       preempt_disable();
 
        if (gru_check_context_placement(gts)) {
-               preempt_enable();
                mutex_unlock(>s->ts_ctxlock);
                gru_unload_context(gts, 1);
                return VM_FAULT_NOPAGE;
        if (!gts->ts_gru) {
                STAT(load_user_context);
                if (!gru_assign_gru_context(gts)) {
-                       preempt_enable();
                        mutex_unlock(>s->ts_ctxlock);
                        set_current_state(TASK_INTERRUPTIBLE);
                        schedule_timeout(GRU_ASSIGN_DELAY);  /* true hack ZZZ */
                                vma->vm_page_prot);
        }
 
-       preempt_enable();
        mutex_unlock(>s->ts_ctxlock);
 
        return VM_FAULT_NOPAGE;
 
        struct gru_tlb_global_handle *tgh;
        int n;
 
-       preempt_disable();
        if (uv_numa_blade_id() == gru->gs_blade_id)
                n = get_on_blade_tgh(gru);
        else
 static void get_unlock_tgh_handle(struct gru_tlb_global_handle *tgh)
 {
        unlock_tgh_handle(tgh);
-       preempt_enable();
 }
 
 /*