summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
diff options
context:
space:
mode:
authorDeepak Nibade <dnibade@nvidia.com>2017-06-05 05:09:14 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2017-06-06 11:13:43 -0400
commit8d63a519d99b619f13604461bbb58f82ebf87cc1 (patch)
tree1236576f1ecc12dc1c78c3b5d2616723805c103c /drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
parent16a9ec4a12654b04a3db82de25cf6471389e4693 (diff)
gpu: nvgpu: pass correct parameter to gp10b_ecc_stat_create()
We pass (struct device_attribute *) to gp10b_ecc_stat_create() and gr_gp10b_ecc_stat_create() and then assign a memory allocation to this pointer But since this pointer is local copy to function, static pointer variables are never set in gr_gp10b_create_sysfs() This also results in a resource leak since we never free the storage assigned to local variable Fix this by adding and passing correct parameter (struct device_attribute **) so that the address of the allocation is returned to the caller correctly Bug 200291879 Coverity id : 2567934 Change-Id: I1b1d329265f4d32739abbbe3a4e419a2af62b874 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1495907 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c')
-rw-r--r--drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
index 95bbfbd3..8e68e6cb 100644
--- a/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
+++ b/drivers/gpu/nvgpu/gv11b/platform_gv11b_tegra.c
@@ -206,159 +206,159 @@ void gr_gv11b_create_sysfs(struct device *dev)
206 0, 206 0,
207 "sm_l1_tag_ecc_corrected_err_count", 207 "sm_l1_tag_ecc_corrected_err_count",
208 &g->ecc.gr.t19x.sm_l1_tag_corrected_err_count, 208 &g->ecc.gr.t19x.sm_l1_tag_corrected_err_count,
209 dev_attr_sm_l1_tag_ecc_corrected_err_count_array); 209 &dev_attr_sm_l1_tag_ecc_corrected_err_count_array);
210 210
211 error |= gr_gp10b_ecc_stat_create(dev, 211 error |= gr_gp10b_ecc_stat_create(dev,
212 0, 212 0,
213 "sm_l1_tag_ecc_uncorrected_err_count", 213 "sm_l1_tag_ecc_uncorrected_err_count",
214 &g->ecc.gr.t19x.sm_l1_tag_uncorrected_err_count, 214 &g->ecc.gr.t19x.sm_l1_tag_uncorrected_err_count,
215 dev_attr_sm_l1_tag_ecc_uncorrected_err_count_array); 215 &dev_attr_sm_l1_tag_ecc_uncorrected_err_count_array);
216 216
217 error |= gr_gp10b_ecc_stat_create(dev, 217 error |= gr_gp10b_ecc_stat_create(dev,
218 0, 218 0,
219 "sm_cbu_ecc_corrected_err_count", 219 "sm_cbu_ecc_corrected_err_count",
220 &g->ecc.gr.t19x.sm_cbu_corrected_err_count, 220 &g->ecc.gr.t19x.sm_cbu_corrected_err_count,
221 dev_attr_sm_cbu_ecc_corrected_err_count_array); 221 &dev_attr_sm_cbu_ecc_corrected_err_count_array);
222 222
223 error |= gr_gp10b_ecc_stat_create(dev, 223 error |= gr_gp10b_ecc_stat_create(dev,
224 0, 224 0,
225 "sm_cbu_ecc_uncorrected_err_count", 225 "sm_cbu_ecc_uncorrected_err_count",
226 &g->ecc.gr.t19x.sm_cbu_uncorrected_err_count, 226 &g->ecc.gr.t19x.sm_cbu_uncorrected_err_count,
227 dev_attr_sm_cbu_ecc_uncorrected_err_count_array); 227 &dev_attr_sm_cbu_ecc_uncorrected_err_count_array);
228 228
229 error |= gr_gp10b_ecc_stat_create(dev, 229 error |= gr_gp10b_ecc_stat_create(dev,
230 0, 230 0,
231 "sm_l1_data_ecc_corrected_err_count", 231 "sm_l1_data_ecc_corrected_err_count",
232 &g->ecc.gr.t19x.sm_l1_data_corrected_err_count, 232 &g->ecc.gr.t19x.sm_l1_data_corrected_err_count,
233 dev_attr_sm_l1_data_ecc_corrected_err_count_array); 233 &dev_attr_sm_l1_data_ecc_corrected_err_count_array);
234 234
235 error |= gr_gp10b_ecc_stat_create(dev, 235 error |= gr_gp10b_ecc_stat_create(dev,
236 0, 236 0,
237 "sm_l1_data_ecc_uncorrected_err_count", 237 "sm_l1_data_ecc_uncorrected_err_count",
238 &g->ecc.gr.t19x.sm_l1_data_uncorrected_err_count, 238 &g->ecc.gr.t19x.sm_l1_data_uncorrected_err_count,
239 dev_attr_sm_l1_data_ecc_uncorrected_err_count_array); 239 &dev_attr_sm_l1_data_ecc_uncorrected_err_count_array);
240 240
241 error |= gr_gp10b_ecc_stat_create(dev, 241 error |= gr_gp10b_ecc_stat_create(dev,
242 0, 242 0,
243 "sm_icache_ecc_corrected_err_count", 243 "sm_icache_ecc_corrected_err_count",
244 &g->ecc.gr.t19x.sm_icache_corrected_err_count, 244 &g->ecc.gr.t19x.sm_icache_corrected_err_count,
245 dev_attr_sm_icache_ecc_corrected_err_count_array); 245 &dev_attr_sm_icache_ecc_corrected_err_count_array);
246 246
247 error |= gr_gp10b_ecc_stat_create(dev, 247 error |= gr_gp10b_ecc_stat_create(dev,
248 0, 248 0,
249 "sm_icache_ecc_uncorrected_err_count", 249 "sm_icache_ecc_uncorrected_err_count",
250 &g->ecc.gr.t19x.sm_icache_uncorrected_err_count, 250 &g->ecc.gr.t19x.sm_icache_uncorrected_err_count,
251 dev_attr_sm_icache_ecc_uncorrected_err_count_array); 251 &dev_attr_sm_icache_ecc_uncorrected_err_count_array);
252 252
253 error |= gr_gp10b_ecc_stat_create(dev, 253 error |= gr_gp10b_ecc_stat_create(dev,
254 0, 254 0,
255 "gcc_l15_ecc_corrected_err_count", 255 "gcc_l15_ecc_corrected_err_count",
256 &g->ecc.gr.t19x.gcc_l15_corrected_err_count, 256 &g->ecc.gr.t19x.gcc_l15_corrected_err_count,
257 dev_attr_gcc_l15_ecc_corrected_err_count_array); 257 &dev_attr_gcc_l15_ecc_corrected_err_count_array);
258 258
259 error |= gr_gp10b_ecc_stat_create(dev, 259 error |= gr_gp10b_ecc_stat_create(dev,
260 0, 260 0,
261 "gcc_l15_ecc_uncorrected_err_count", 261 "gcc_l15_ecc_uncorrected_err_count",
262 &g->ecc.gr.t19x.gcc_l15_uncorrected_err_count, 262 &g->ecc.gr.t19x.gcc_l15_uncorrected_err_count,
263 dev_attr_gcc_l15_ecc_uncorrected_err_count_array); 263 &dev_attr_gcc_l15_ecc_uncorrected_err_count_array);
264 264
265 error |= gp10b_ecc_stat_create(dev, 265 error |= gp10b_ecc_stat_create(dev,
266 g->ltc_count, 266 g->ltc_count,
267 "ltc", 267 "ltc",
268 "l2_cache_uncorrected_err_count", 268 "l2_cache_uncorrected_err_count",
269 &g->ecc.ltc.t19x.l2_cache_uncorrected_err_count, 269 &g->ecc.ltc.t19x.l2_cache_uncorrected_err_count,
270 dev_attr_l2_cache_ecc_uncorrected_err_count_array); 270 &dev_attr_l2_cache_ecc_uncorrected_err_count_array);
271 271
272 error |= gp10b_ecc_stat_create(dev, 272 error |= gp10b_ecc_stat_create(dev,
273 g->ltc_count, 273 g->ltc_count,
274 "ltc", 274 "ltc",
275 "l2_cache_corrected_err_count", 275 "l2_cache_corrected_err_count",
276 &g->ecc.ltc.t19x.l2_cache_corrected_err_count, 276 &g->ecc.ltc.t19x.l2_cache_corrected_err_count,
277 dev_attr_l2_cache_ecc_corrected_err_count_array); 277 &dev_attr_l2_cache_ecc_corrected_err_count_array);
278 278
279 error |= gp10b_ecc_stat_create(dev, 279 error |= gp10b_ecc_stat_create(dev,
280 1, 280 1,
281 "gpc", 281 "gpc",
282 "fecs_ecc_uncorrected_err_count", 282 "fecs_ecc_uncorrected_err_count",
283 &g->ecc.gr.t19x.fecs_uncorrected_err_count, 283 &g->ecc.gr.t19x.fecs_uncorrected_err_count,
284 dev_attr_fecs_ecc_uncorrected_err_count_array); 284 &dev_attr_fecs_ecc_uncorrected_err_count_array);
285 285
286 error |= gp10b_ecc_stat_create(dev, 286 error |= gp10b_ecc_stat_create(dev,
287 1, 287 1,
288 "gpc", 288 "gpc",
289 "fecs_ecc_corrected_err_count", 289 "fecs_ecc_corrected_err_count",
290 &g->ecc.gr.t19x.fecs_corrected_err_count, 290 &g->ecc.gr.t19x.fecs_corrected_err_count,
291 dev_attr_fecs_ecc_corrected_err_count_array); 291 &dev_attr_fecs_ecc_corrected_err_count_array);
292 292
293 error |= gp10b_ecc_stat_create(dev, 293 error |= gp10b_ecc_stat_create(dev,
294 g->gr.gpc_count, 294 g->gr.gpc_count,
295 "gpc", 295 "gpc",
296 "gpccs_ecc_uncorrected_err_count", 296 "gpccs_ecc_uncorrected_err_count",
297 &g->ecc.gr.t19x.gpccs_uncorrected_err_count, 297 &g->ecc.gr.t19x.gpccs_uncorrected_err_count,
298 dev_attr_gpccs_ecc_uncorrected_err_count_array); 298 &dev_attr_gpccs_ecc_uncorrected_err_count_array);
299 299
300 error |= gp10b_ecc_stat_create(dev, 300 error |= gp10b_ecc_stat_create(dev,
301 g->gr.gpc_count, 301 g->gr.gpc_count,
302 "gpc", 302 "gpc",
303 "gpccs_ecc_corrected_err_count", 303 "gpccs_ecc_corrected_err_count",
304 &g->ecc.gr.t19x.gpccs_corrected_err_count, 304 &g->ecc.gr.t19x.gpccs_corrected_err_count,
305 dev_attr_gpccs_ecc_corrected_err_count_array); 305 &dev_attr_gpccs_ecc_corrected_err_count_array);
306 306
307 error |= gp10b_ecc_stat_create(dev, 307 error |= gp10b_ecc_stat_create(dev,
308 g->gr.gpc_count, 308 g->gr.gpc_count,
309 "gpc", 309 "gpc",
310 "mmu_l1tlb_ecc_uncorrected_err_count", 310 "mmu_l1tlb_ecc_uncorrected_err_count",
311 &g->ecc.gr.t19x.mmu_l1tlb_uncorrected_err_count, 311 &g->ecc.gr.t19x.mmu_l1tlb_uncorrected_err_count,
312 dev_attr_mmu_l1tlb_ecc_uncorrected_err_count_array); 312 &dev_attr_mmu_l1tlb_ecc_uncorrected_err_count_array);
313 313
314 error |= gp10b_ecc_stat_create(dev, 314 error |= gp10b_ecc_stat_create(dev,
315 g->gr.gpc_count, 315 g->gr.gpc_count,
316 "gpc", 316 "gpc",
317 "mmu_l1tlb_ecc_corrected_err_count", 317 "mmu_l1tlb_ecc_corrected_err_count",
318 &g->ecc.gr.t19x.mmu_l1tlb_corrected_err_count, 318 &g->ecc.gr.t19x.mmu_l1tlb_corrected_err_count,
319 dev_attr_mmu_l1tlb_ecc_corrected_err_count_array); 319 &dev_attr_mmu_l1tlb_ecc_corrected_err_count_array);
320 320
321 error |= gp10b_ecc_stat_create(dev, 321 error |= gp10b_ecc_stat_create(dev,
322 1, 322 1,
323 "eng", 323 "eng",
324 "mmu_l2tlb_ecc_uncorrected_err_count", 324 "mmu_l2tlb_ecc_uncorrected_err_count",
325 &g->ecc.eng.t19x.mmu_l2tlb_uncorrected_err_count, 325 &g->ecc.eng.t19x.mmu_l2tlb_uncorrected_err_count,
326 dev_attr_mmu_l2tlb_ecc_uncorrected_err_count_array); 326 &dev_attr_mmu_l2tlb_ecc_uncorrected_err_count_array);
327 327
328 error |= gp10b_ecc_stat_create(dev, 328 error |= gp10b_ecc_stat_create(dev,
329 1, 329 1,
330 "eng", 330 "eng",
331 "mmu_l2tlb_ecc_corrected_err_count", 331 "mmu_l2tlb_ecc_corrected_err_count",
332 &g->ecc.eng.t19x.mmu_l2tlb_corrected_err_count, 332 &g->ecc.eng.t19x.mmu_l2tlb_corrected_err_count,
333 dev_attr_mmu_l2tlb_ecc_corrected_err_count_array); 333 &dev_attr_mmu_l2tlb_ecc_corrected_err_count_array);
334 334
335 error |= gp10b_ecc_stat_create(dev, 335 error |= gp10b_ecc_stat_create(dev,
336 1, 336 1,
337 "eng", 337 "eng",
338 "mmu_hubtlb_ecc_uncorrected_err_count", 338 "mmu_hubtlb_ecc_uncorrected_err_count",
339 &g->ecc.eng.t19x.mmu_hubtlb_uncorrected_err_count, 339 &g->ecc.eng.t19x.mmu_hubtlb_uncorrected_err_count,
340 dev_attr_mmu_hubtlb_ecc_uncorrected_err_count_array); 340 &dev_attr_mmu_hubtlb_ecc_uncorrected_err_count_array);
341 341
342 error |= gp10b_ecc_stat_create(dev, 342 error |= gp10b_ecc_stat_create(dev,
343 1, 343 1,
344 "eng", 344 "eng",
345 "mmu_hubtlb_ecc_corrected_err_count", 345 "mmu_hubtlb_ecc_corrected_err_count",
346 &g->ecc.eng.t19x.mmu_hubtlb_corrected_err_count, 346 &g->ecc.eng.t19x.mmu_hubtlb_corrected_err_count,
347 dev_attr_mmu_hubtlb_ecc_corrected_err_count_array); 347 &dev_attr_mmu_hubtlb_ecc_corrected_err_count_array);
348 348
349 error |= gp10b_ecc_stat_create(dev, 349 error |= gp10b_ecc_stat_create(dev,
350 1, 350 1,
351 "eng", 351 "eng",
352 "mmu_fillunit_ecc_uncorrected_err_count", 352 "mmu_fillunit_ecc_uncorrected_err_count",
353 &g->ecc.eng.t19x.mmu_fillunit_uncorrected_err_count, 353 &g->ecc.eng.t19x.mmu_fillunit_uncorrected_err_count,
354 dev_attr_mmu_fillunit_ecc_uncorrected_err_count_array); 354 &dev_attr_mmu_fillunit_ecc_uncorrected_err_count_array);
355 355
356 error |= gp10b_ecc_stat_create(dev, 356 error |= gp10b_ecc_stat_create(dev,
357 1, 357 1,
358 "eng", 358 "eng",
359 "mmu_fillunit_ecc_corrected_err_count", 359 "mmu_fillunit_ecc_corrected_err_count",
360 &g->ecc.eng.t19x.mmu_fillunit_corrected_err_count, 360 &g->ecc.eng.t19x.mmu_fillunit_corrected_err_count,
361 dev_attr_mmu_fillunit_ecc_corrected_err_count_array); 361 &dev_attr_mmu_fillunit_ecc_corrected_err_count_array);
362 362
363 if (error) 363 if (error)
364 dev_err(dev, "Failed to create gv11b sysfs attributes!\n"); 364 dev_err(dev, "Failed to create gv11b sysfs attributes!\n");