lkml.org 
[lkml]   [2016]   [Sep]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 09/15] hisi_sas: set dma mask before allocate DMA memory
    Date
    The device DMA mask was being set after the bulk of the
    DMA allocations in the driver init, so potentially
    DMA allocates fail.
    To resolve, relocate before allocating the DMA memory when
    initialising the driver.

    Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
    Signed-off-by: John Garry <john.garry@huawei.com>
    ---
    drivers/scsi/hisi_sas/hisi_sas_main.c | 13 ++++++-------
    1 file changed, 6 insertions(+), 7 deletions(-)

    diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
    index d58e223..2f872f7 100644
    --- a/drivers/scsi/hisi_sas/hisi_sas_main.c
    +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
    @@ -1439,6 +1439,12 @@ static struct Scsi_Host *hisi_sas_shost_alloc(struct platform_device *pdev,
    &hisi_hba->queue_count))
    goto err_out;

    + if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)) &&
    + dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))) {
    + dev_err(dev, "No usable DMA addressing method\n");
    + goto err_out;
    + }
    +
    res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
    hisi_hba->regs = devm_ioremap_resource(dev, res);
    if (IS_ERR(hisi_hba->regs))
    @@ -1486,13 +1492,6 @@ int hisi_sas_probe(struct platform_device *pdev,
    hisi_hba = shost_priv(shost);
    platform_set_drvdata(pdev, sha);

    - if (dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)) &&
    - dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))) {
    - dev_err(dev, "No usable DMA addressing method\n");
    - rc = -EIO;
    - goto err_out_ha;
    - }
    -
    phy_nr = port_nr = hisi_hba->n_phy;

    arr_phy = devm_kcalloc(dev, phy_nr, sizeof(void *), GFP_KERNEL);
    --
    1.9.1
    \
     
     \ /
      Last update: 2016-09-17 09:58    [W:2.866 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site