Merge tag 'for-5.4/libata-2019-09-15' of git://git.kernel.dk/linux-block
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 17 Sep 2019 23:54:40 +0000 (16:54 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 17 Sep 2019 23:54:40 +0000 (16:54 -0700)
Pull libata updates from Jens Axboe:

 - Kill unused export (Andy)

 - Use dma_set_mask_and_coherent() throughout (Christoph)

 - Drop PCS quirk on Denverton, which has different register layout
   (Dan)

 - Support non-boot time detection for pata_buddha (Max)

* tag 'for-5.4/libata-2019-09-15' of git://git.kernel.dk/linux-block:
  libata/ahci: Drop PCS quirk for Denverton and beyond
  ahci: Do not export local variable ahci_em_messages
  libata: switch remaining drivers to use dma_set_mask_and_coherent
  sata_sil24: use dma_set_mask_and_coherent
  sata_qstor: use dma_set_mask_and_coherent
  sata_nv: use dma_set_mask_and_coherent
  sata_mv: use dma_set_mask_and_coherent
  pdc_adma: use dma_set_mask_and_coherent
  ahci: use dma_set_mask_and_coherent
  acard_ahci: use dma_set_mask_and_coherent
  ata/pata_buddha: Probe via modalias instead of initcall

1  2 
drivers/ata/libata-sff.c

diff --combined drivers/ata/libata-sff.c
index 4f115adb4ee83b3836f1d596e1350ce3785011d6,d911514de05c3a50ed3a17b67c3b91f4fcb62714..4ed682da52ae915e7e0662a189f3f29b95174458
@@@ -658,10 -658,6 +658,10 @@@ static void ata_pio_sector(struct ata_q
        unsigned int offset;
        unsigned char *buf;
  
 +      if (!qc->cursg) {
 +              qc->curbytes = qc->nbytes;
 +              return;
 +      }
        if (qc->curbytes == qc->nbytes - qc->sect_size)
                ap->hsm_task_state = HSM_ST_LAST;
  
  
        if (qc->cursg_ofs == qc->cursg->length) {
                qc->cursg = sg_next(qc->cursg);
 +              if (!qc->cursg)
 +                      ap->hsm_task_state = HSM_ST_LAST;
                qc->cursg_ofs = 0;
        }
  }
@@@ -3153,15 -3147,9 +3153,9 @@@ void ata_pci_bmdma_init(struct ata_hos
         * ->sff_irq_clear method.  Try to initialize bmdma_addr
         * regardless of dma masks.
         */
-       rc = dma_set_mask(&pdev->dev, ATA_DMA_MASK);
+       rc = dma_set_mask_and_coherent(&pdev->dev, ATA_DMA_MASK);
        if (rc)
                ata_bmdma_nodma(host, "failed to set dma mask");
-       if (!rc) {
-               rc = dma_set_coherent_mask(&pdev->dev, ATA_DMA_MASK);
-               if (rc)
-                       ata_bmdma_nodma(host,
-                                       "failed to set consistent dma mask");
-       }
  
        /* request and iomap DMA region */
        rc = pcim_iomap_regions(pdev, 1 << 4, dev_driver_string(gdev));