(struct uas_dev_info *)sdev->host->hostdata;
 
        sdev->hostdata = devinfo;
-
-       if (devinfo->flags & US_FL_MAX_SECTORS_64)
-               blk_queue_max_hw_sectors(sdev->request_queue, 64);
-       else if (devinfo->flags & US_FL_MAX_SECTORS_240)
-               blk_queue_max_hw_sectors(sdev->request_queue, 240);
-
        return 0;
 }
 
-static int uas_slave_configure(struct scsi_device *sdev)
+static int uas_device_configure(struct scsi_device *sdev,
+               struct queue_limits *lim)
 {
        struct uas_dev_info *devinfo = sdev->hostdata;
 
+       if (devinfo->flags & US_FL_MAX_SECTORS_64)
+               lim->max_hw_sectors = 64;
+       else if (devinfo->flags & US_FL_MAX_SECTORS_240)
+               lim->max_hw_sectors = 240;
+
        if (devinfo->flags & US_FL_NO_REPORT_OPCODES)
                sdev->no_report_opcodes = 1;
 
        .queuecommand = uas_queuecommand,
        .target_alloc = uas_target_alloc,
        .slave_alloc = uas_slave_alloc,
-       .slave_configure = uas_slave_configure,
+       .device_configure = uas_device_configure,
        .eh_abort_handler = uas_eh_abort_handler,
        .eh_device_reset_handler = uas_eh_device_reset_handler,
        .this_id = -1,