lkml.org 
[lkml]   [2020]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 091/124] of/address: check for invalid range.cpu_addr
    Date
    From: Colin Ian King <colin.king@canonical.com>

    [ Upstream commit f49c7faf776f16607c948d852a03b04a88c3b583 ]

    Currently invalid CPU addresses are not being sanity checked resulting in
    SATA setup failure on a SynQuacer SC2A11 development machine. The original
    check was removed by and earlier commit, so add a sanity check back in
    to avoid this regression.

    Fixes: 7a8b64d17e35 ("of/address: use range parser for of_dma_get_range")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Link: https://lore.kernel.org/r/20200817113208.523805-1-colin.king@canonical.com
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/of/address.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/drivers/of/address.c b/drivers/of/address.c
    index 8eea3f6e29a44..340d3051b1ce2 100644
    --- a/drivers/of/address.c
    +++ b/drivers/of/address.c
    @@ -980,6 +980,11 @@ int of_dma_get_range(struct device_node *np, u64 *dma_addr, u64 *paddr, u64 *siz
    /* Don't error out as we'd break some existing DTs */
    continue;
    }
    + if (range.cpu_addr == OF_BAD_ADDR) {
    + pr_err("translation of DMA address(%llx) to CPU address failed node(%pOF)\n",
    + range.bus_addr, node);
    + continue;
    + }
    dma_offset = range.cpu_addr - range.bus_addr;

    /* Take lower and upper limits */
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-08-24 11:46    [W:4.037 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site