drm/i915/guc: Convert golden context init to iosys_map
[linux-2.6-microblaze.git] / block / elevator.c
index 19a78d5..ec98aed 100644 (file)
@@ -188,8 +188,10 @@ static void elevator_release(struct kobject *kobj)
        kfree(e);
 }
 
-void __elevator_exit(struct request_queue *q, struct elevator_queue *e)
+void elevator_exit(struct request_queue *q)
 {
+       struct elevator_queue *e = q->elevator;
+
        mutex_lock(&e->sysfs_lock);
        blk_mq_exit_sched(q, e);
        mutex_unlock(&e->sysfs_lock);
@@ -595,7 +597,8 @@ int elevator_switch_mq(struct request_queue *q,
                        elv_unregister_queue(q);
 
                ioc_clear_queue(q);
-               elevator_exit(q, q->elevator);
+               blk_mq_sched_free_rqs(q);
+               elevator_exit(q);
        }
 
        ret = blk_mq_init_sched(q, new_e);
@@ -605,7 +608,8 @@ int elevator_switch_mq(struct request_queue *q,
        if (new_e) {
                ret = elv_register_queue(q, true);
                if (ret) {
-                       elevator_exit(q, q->elevator);
+                       blk_mq_sched_free_rqs(q);
+                       elevator_exit(q);
                        goto out;
                }
        }