}
 EXPORT_SYMBOL_GPL(blk_queue_write_cache);
 
-/**
- * blk_queue_required_elevator_features - Set a queue required elevator features
- * @q:         the request queue for the target device
- * @features:  Required elevator features OR'ed together
- *
- * Tell the block layer that for the device controlled through @q, only the
- * only elevators that can be used are those that implement at least the set of
- * features specified by @features.
- */
-void blk_queue_required_elevator_features(struct request_queue *q,
-                                         unsigned int features)
-{
-       q->required_elevator_features = features;
-}
-EXPORT_SYMBOL_GPL(blk_queue_required_elevator_features);
-
 /**
  * blk_queue_can_use_dma_map_merging - configure queue for merging segments.
  * @q:         the request queue for the device
 
 }
 EXPORT_SYMBOL(elv_bio_merge_ok);
 
-static inline bool elv_support_features(struct request_queue *q,
-               const struct elevator_type *e)
-{
-       return (q->required_elevator_features & e->elevator_features) ==
-               q->required_elevator_features;
-}
-
 /**
  * elevator_match - Check whether @e's name or alias matches @name
  * @e: Scheduler to test
 
        spin_lock(&elv_list_lock);
        e = __elevator_find(name);
-       if (e && (!elv_support_features(q, e) || !elevator_tryget(e)))
+       if (e && (!elevator_tryget(e)))
                e = NULL;
        spin_unlock(&elv_list_lock);
        return e;
 }
 
 /*
- * Get the first elevator providing the features required by the request queue.
- * Default to "none" if no matching elevator is found.
- */
-static struct elevator_type *elevator_get_by_features(struct request_queue *q)
-{
-       struct elevator_type *e, *found = NULL;
-
-       spin_lock(&elv_list_lock);
-
-       list_for_each_entry(e, &elv_list, list) {
-               if (elv_support_features(q, e)) {
-                       found = e;
-                       break;
-               }
-       }
-
-       if (found && !elevator_tryget(found))
-               found = NULL;
-
-       spin_unlock(&elv_list_lock);
-       return found;
-}
-
-/*
- * For a device queue that has no required features, use the default elevator
- * settings. Otherwise, use the first elevator available matching the required
- * features. If no suitable elevator is find or if the chosen elevator
- * initialization fails, fall back to the "none" elevator (no elevator).
+ * Use the default elevator settings. If the chosen elevator initialization
+ * fails, fall back to the "none" elevator (no elevator).
  */
 void elevator_init_mq(struct request_queue *q)
 {
        if (unlikely(q->elevator))
                return;
 
-       if (!q->required_elevator_features)
-               e = elevator_get_default(q);
-       else
-               e = elevator_get_by_features(q);
+       e = elevator_get_default(q);
        if (!e)
                return;
 
        list_for_each_entry(e, &elv_list, list) {
                if (e == cur)
                        len += sprintf(name+len, "[%s] ", e->elevator_name);
-               else if (elv_support_features(q, e))
+               else
                        len += sprintf(name+len, "%s ", e->elevator_name);
        }
        spin_unlock(&elv_list_lock);
 
 
        atomic_t                nr_active_requests_shared_tags;
 
-       unsigned int            required_elevator_features;
-
        struct blk_mq_tags      *sched_shared_tags;
 
        struct list_head        icq_list;
 void disk_set_independent_access_ranges(struct gendisk *disk,
                                struct blk_independent_access_ranges *iars);
 
-/*
- * Elevator features for blk_queue_required_elevator_features:
- */
-/* Supports zoned block devices sequential write constraint */
-#define ELEVATOR_F_ZBD_SEQ_WRITE       (1U << 0)
-
-extern void blk_queue_required_elevator_features(struct request_queue *q,
-                                                unsigned int features);
 extern bool blk_queue_can_use_dma_map_merging(struct request_queue *q,
                                              struct device *dev);