summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2021-06-10 01:34:58 +0300
committerDavid S. Miller <davem@davemloft.net>2021-06-10 01:59:33 +0300
commit2f9be1e90860e8acb43dc164e25c0d0be60f6a7b (patch)
tree7ef33a2b6e80308b7191d086047999fee049a878
parent5e57c6c5a349ed8026e63c9ef70e4655fe171b09 (diff)
downloadlinux-2f9be1e90860e8acb43dc164e25c0d0be60f6a7b.tar.xz
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>
-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;