aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ipa/ipa_mem.c
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2021-06-09 17:34:58 -0500
committerDavid S. Miller <davem@davemloft.net>2021-06-09 15:59:33 -0700
commit2f9be1e90860e8acb43dc164e25c0d0be60f6a7b (patch)
tree7ef33a2b6e80308b7191d086047999fee049a878 /drivers/net/ipa/ipa_mem.c
parentnet: ipa: separate region range check from other validation (diff)
downloadlinux-dev-2f9be1e90860e8acb43dc164e25c0d0be60f6a7b.tar.xz
linux-dev-2f9be1e90860e8acb43dc164e25c0d0be60f6a7b.zip
net: ipa: validate memory regions at init time
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>
Diffstat (limited to 'drivers/net/ipa/ipa_mem.c')
-rw-r--r--drivers/net/ipa/ipa_mem.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ipa/ipa_mem.c b/drivers/net/ipa/ipa_mem.c
index f245e1a60a44..b2d149e7c5f0 100644
--- a/drivers/net/ipa/ipa_mem.c
+++ b/drivers/net/ipa/ipa_mem.c
@@ -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;