net: ipa: validate memory regions at init time
authorAlex Elder <elder@linaro.org>
Wed, 9 Jun 2021 22:34:58 +0000 (17:34 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Jun 2021 22:59:33 +0000 (15:59 -0700)
Move the memory region validation check so it happens earlier when
initializing the driver, at init time rather than config time (i.e.,
before access to hardware is required).

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ipa/ipa_mem.c

index f245e1a..b2d149e 100644 (file)
@@ -215,10 +215,6 @@ int ipa_mem_config(struct ipa *ipa)
        ipa->zero_virt = virt;
        ipa->zero_size = IPA_MEM_MAX;
 
-       /* Make sure all defined memory regions are valid */
-       if (!ipa_mem_valid(ipa))
-               goto err_dma_free;
-
        /* For each region, write "canary" values in the space prior to
         * the region's base address if indicated.
         */
@@ -528,6 +524,10 @@ int ipa_mem_init(struct ipa *ipa, const struct ipa_mem_data *mem_data)
        ipa->mem_count = mem_data->local_count;
        ipa->mem = mem_data->local;
 
+       /* Make sure all defined memory regions are valid */
+       if (!ipa_mem_valid(ipa))
+               goto err_unmap;
+
        ret = ipa_imem_init(ipa, mem_data->imem_addr, mem_data->imem_size);
        if (ret)
                goto err_unmap;