diff options
author | Preetham Chandru Ramchandra <pchandru@nvidia.com> | 2019-01-17 12:07:39 -0500 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2019-01-22 22:14:57 -0500 |
commit | 61bb9dc40395257fa1dc15d267496e3deb32a3e5 (patch) | |
tree | 1e7d152b857260a3b4ddc54d82d50776a64cd92d /drivers/gpu/nvgpu | |
parent | dbb014e34f89298391d65ca2177baac43b60455e (diff) |
gpu: nvgpu: nvgpu locks to vanilla Linux locks
Replace nvgpu locks to vanilla Linux locks. For the custom kernel
driver when they include nv-p2p.h, nvgpu/linux/lock.h will not be
available because nvgpu/linux/lock.h is not copied to
/usr/src/kernel_header_file.
Bug 200438879
Change-Id: I55b52c6f791970650388b7d51c4d30b5fe75bbb8
Signed-off-by: Preetham Chandru Ramchandra <pchandru@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1997950
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Alex Waterman <alexw@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
(cherry picked from commit eb887094e4f4446e6eed9c17e88f4a36ac5ae972)
Reviewed-on: https://git-master.nvidia.com/r/2000831
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/os/linux/nvidia_p2p.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/nvidia_p2p.c b/drivers/gpu/nvgpu/os/linux/nvidia_p2p.c index 7289f311..11d27b47 100644 --- a/drivers/gpu/nvgpu/os/linux/nvidia_p2p.c +++ b/drivers/gpu/nvgpu/os/linux/nvidia_p2p.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. | 2 | * Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved. |
3 | * | 3 | * |
4 | * Permission is hereby granted, free of charge, to any person obtaining a | 4 | * Permission is hereby granted, free of charge, to any person obtaining a |
5 | * copy of this software and associated documentation files (the "Software"), | 5 | * copy of this software and associated documentation files (the "Software"), |
@@ -101,7 +101,7 @@ int nvidia_p2p_get_pages(u64 vaddr, u64 size, | |||
101 | (*page_table)->free_callback = free_callback; | 101 | (*page_table)->free_callback = free_callback; |
102 | (*page_table)->data = data; | 102 | (*page_table)->data = data; |
103 | (*page_table)->vaddr = vaddr; | 103 | (*page_table)->vaddr = vaddr; |
104 | nvgpu_mutex_init(&(*page_table)->lock); | 104 | mutex_init(&(*page_table)->lock); |
105 | (*page_table)->mapped = NVIDIA_P2P_PINNED; | 105 | (*page_table)->mapped = NVIDIA_P2P_PINNED; |
106 | 106 | ||
107 | ret = mmu_notifier_register(&(*page_table)->mn, (*page_table)->mm); | 107 | ret = mmu_notifier_register(&(*page_table)->mn, (*page_table)->mm); |
@@ -143,7 +143,7 @@ int nvidia_p2p_free_page_table(struct nvidia_p2p_page_table *page_table) | |||
143 | return 0; | 143 | return 0; |
144 | } | 144 | } |
145 | 145 | ||
146 | nvgpu_mutex_acquire(&page_table->lock); | 146 | mutex_lock(&page_table->lock); |
147 | 147 | ||
148 | if (page_table->mapped & NVIDIA_P2P_MAPPED) { | 148 | if (page_table->mapped & NVIDIA_P2P_MAPPED) { |
149 | WARN(1, "Attempting to free unmapped pages"); | 149 | WARN(1, "Attempting to free unmapped pages"); |
@@ -161,7 +161,7 @@ int nvidia_p2p_free_page_table(struct nvidia_p2p_page_table *page_table) | |||
161 | page_table->mapped &= (u32)~NVIDIA_P2P_PINNED; | 161 | page_table->mapped &= (u32)~NVIDIA_P2P_PINNED; |
162 | } | 162 | } |
163 | 163 | ||
164 | nvgpu_mutex_release(&page_table->lock); | 164 | mutex_unlock(&page_table->lock); |
165 | 165 | ||
166 | return 0; | 166 | return 0; |
167 | } | 167 | } |
@@ -183,18 +183,18 @@ int nvidia_p2p_map_pages(struct device *dev, | |||
183 | return -EINVAL; | 183 | return -EINVAL; |
184 | } | 184 | } |
185 | 185 | ||
186 | nvgpu_mutex_acquire(&page_table->lock); | 186 | mutex_lock(&page_table->lock); |
187 | 187 | ||
188 | pages = page_table->pages; | 188 | pages = page_table->pages; |
189 | nr_pages = page_table->entries; | 189 | nr_pages = page_table->entries; |
190 | if (nr_pages <= 0) { | 190 | if (nr_pages <= 0) { |
191 | nvgpu_mutex_release(&page_table->lock); | 191 | mutex_unlock(&page_table->lock); |
192 | return -EINVAL; | 192 | return -EINVAL; |
193 | } | 193 | } |
194 | 194 | ||
195 | *dma_mapping = kzalloc(sizeof(**dma_mapping), GFP_KERNEL); | 195 | *dma_mapping = kzalloc(sizeof(**dma_mapping), GFP_KERNEL); |
196 | if (!*dma_mapping) { | 196 | if (!*dma_mapping) { |
197 | nvgpu_mutex_release(&page_table->lock); | 197 | mutex_unlock(&page_table->lock); |
198 | return -ENOMEM; | 198 | return -ENOMEM; |
199 | } | 199 | } |
200 | sgt = kzalloc(sizeof(*sgt), GFP_KERNEL); | 200 | sgt = kzalloc(sizeof(*sgt), GFP_KERNEL); |
@@ -235,7 +235,7 @@ int nvidia_p2p_map_pages(struct device *dev, | |||
235 | (*dma_mapping)->hw_len[i] = sg_dma_len(sg); | 235 | (*dma_mapping)->hw_len[i] = sg_dma_len(sg); |
236 | } | 236 | } |
237 | (*dma_mapping)->page_table->mapped |= NVIDIA_P2P_MAPPED; | 237 | (*dma_mapping)->page_table->mapped |= NVIDIA_P2P_MAPPED; |
238 | nvgpu_mutex_release(&page_table->lock); | 238 | mutex_unlock(&page_table->lock); |
239 | 239 | ||
240 | return 0; | 240 | return 0; |
241 | free_hw_address: | 241 | free_hw_address: |
@@ -250,7 +250,7 @@ free_sgt: | |||
250 | free_dma_mapping: | 250 | free_dma_mapping: |
251 | kfree(*dma_mapping); | 251 | kfree(*dma_mapping); |
252 | *dma_mapping = NULL; | 252 | *dma_mapping = NULL; |
253 | nvgpu_mutex_release(&page_table->lock); | 253 | mutex_unlock(&page_table->lock); |
254 | 254 | ||
255 | return ret; | 255 | return ret; |
256 | } | 256 | } |
@@ -269,7 +269,7 @@ int nvidia_p2p_unmap_pages(struct nvidia_p2p_dma_mapping *dma_mapping) | |||
269 | return -EFAULT; | 269 | return -EFAULT; |
270 | } | 270 | } |
271 | 271 | ||
272 | nvgpu_mutex_acquire(&page_table->lock); | 272 | mutex_lock(&page_table->lock); |
273 | if (page_table->mapped & NVIDIA_P2P_MAPPED) { | 273 | if (page_table->mapped & NVIDIA_P2P_MAPPED) { |
274 | kfree(dma_mapping->hw_len); | 274 | kfree(dma_mapping->hw_len); |
275 | kfree(dma_mapping->hw_address); | 275 | kfree(dma_mapping->hw_address); |
@@ -283,7 +283,7 @@ int nvidia_p2p_unmap_pages(struct nvidia_p2p_dma_mapping *dma_mapping) | |||
283 | kfree(dma_mapping); | 283 | kfree(dma_mapping); |
284 | page_table->mapped &= (u32)~NVIDIA_P2P_MAPPED; | 284 | page_table->mapped &= (u32)~NVIDIA_P2P_MAPPED; |
285 | } | 285 | } |
286 | nvgpu_mutex_release(&page_table->lock); | 286 | mutex_unlock(&page_table->lock); |
287 | 287 | ||
288 | return 0; | 288 | return 0; |
289 | } | 289 | } |