diff options
author | Deepak Nibade <dnibade@nvidia.com> | 2014-06-24 08:41:25 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:10:17 -0400 |
commit | 7ed71374e90f8e5c8554cb7d2f14aa8e9a807862 (patch) | |
tree | 3e29602dcd521417fbc07302f524cd4bc7bd52cd /drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c | |
parent | 2680d6be576ce2c1b74f03e6e4cc5cbf321ef2bc (diff) |
gpu: nvgpu: do not abort probe if secure page alloc fails
Do not abort GPU probe if secure page alloc fails.
We can just note that this allocation failed (using bool
secure_alloc_ready) and prevent further secure memory
allocation if this flag is not set.
Bug 1525465
Change-Id: Ie4eb6393951690174013d2de3db507876d7b657f
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/427730
GVS: Gerrit_Virtual_Submit
Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c index 28f82816..148496dd 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c | |||
@@ -135,6 +135,7 @@ static int gk20a_tegra_secure_alloc(struct platform_device *pdev, | |||
135 | struct gr_ctx_buffer_desc *desc, | 135 | struct gr_ctx_buffer_desc *desc, |
136 | size_t size) | 136 | size_t size) |
137 | { | 137 | { |
138 | struct gk20a_platform *platform = platform_get_drvdata(pdev); | ||
138 | struct device *dev = &pdev->dev; | 139 | struct device *dev = &pdev->dev; |
139 | DEFINE_DMA_ATTRS(attrs); | 140 | DEFINE_DMA_ATTRS(attrs); |
140 | dma_addr_t iova; | 141 | dma_addr_t iova; |
@@ -142,6 +143,9 @@ static int gk20a_tegra_secure_alloc(struct platform_device *pdev, | |||
142 | struct page *page; | 143 | struct page *page; |
143 | int err = 0; | 144 | int err = 0; |
144 | 145 | ||
146 | if (!platform->secure_alloc_ready) | ||
147 | return -EINVAL; | ||
148 | |||
145 | (void)dma_alloc_attrs(&tegra_vpr_dev, size, &iova, | 149 | (void)dma_alloc_attrs(&tegra_vpr_dev, size, &iova, |
146 | DMA_MEMORY_NOMAP, &attrs); | 150 | DMA_MEMORY_NOMAP, &attrs); |
147 | if (dma_mapping_error(&tegra_vpr_dev, iova)) | 151 | if (dma_mapping_error(&tegra_vpr_dev, iova)) |