Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[platform/kernel/linux-rpi.git] / drivers / scsi / hosts.c
index 6c63672..0738238 100644 (file)
@@ -245,6 +245,11 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev,
 
        shost->dma_dev = dma_dev;
 
+       if (dma_dev->dma_mask) {
+               shost->max_sectors = min_t(unsigned int, shost->max_sectors,
+                               dma_max_mapping_size(dma_dev) >> SECTOR_SHIFT);
+       }
+
        error = scsi_mq_setup_tags(shost);
        if (error)
                goto fail;
@@ -574,8 +579,7 @@ struct Scsi_Host *scsi_host_get(struct Scsi_Host *shost)
 }
 EXPORT_SYMBOL(scsi_host_get);
 
-static bool scsi_host_check_in_flight(struct request *rq, void *data,
-                                     bool reserved)
+static bool scsi_host_check_in_flight(struct request *rq, void *data)
 {
        int *count = data;
        struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq);
@@ -670,7 +674,7 @@ void scsi_flush_work(struct Scsi_Host *shost)
 }
 EXPORT_SYMBOL_GPL(scsi_flush_work);
 
-static bool complete_all_cmds_iter(struct request *rq, void *data, bool rsvd)
+static bool complete_all_cmds_iter(struct request *rq, void *data)
 {
        struct scsi_cmnd *scmd = blk_mq_rq_to_pdu(rq);
        enum scsi_host_status status = *(enum scsi_host_status *)data;
@@ -701,17 +705,16 @@ void scsi_host_complete_all_commands(struct Scsi_Host *shost,
 EXPORT_SYMBOL_GPL(scsi_host_complete_all_commands);
 
 struct scsi_host_busy_iter_data {
-       bool (*fn)(struct scsi_cmnd *, void *, bool);
+       bool (*fn)(struct scsi_cmnd *, void *);
        void *priv;
 };
 
-static bool __scsi_host_busy_iter_fn(struct request *req, void *priv,
-                                  bool reserved)
+static bool __scsi_host_busy_iter_fn(struct request *req, void *priv)
 {
        struct scsi_host_busy_iter_data *iter_data = priv;
        struct scsi_cmnd *sc = blk_mq_rq_to_pdu(req);
 
-       return iter_data->fn(sc, iter_data->priv, reserved);
+       return iter_data->fn(sc, iter_data->priv);
 }
 
 /**
@@ -724,7 +727,7 @@ static bool __scsi_host_busy_iter_fn(struct request *req, void *priv,
  * ithas to be provided by the caller
  **/
 void scsi_host_busy_iter(struct Scsi_Host *shost,
-                        bool (*fn)(struct scsi_cmnd *, void *, bool),
+                        bool (*fn)(struct scsi_cmnd *, void *),
                         void *priv)
 {
        struct scsi_host_busy_iter_data iter_data = {