summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGary R Hook <gary.hook@amd.com>2017-06-28 12:56:47 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2017-07-18 05:50:53 -0400
commit33460b2dd13f7b4845364c59fccb79c778d7c5e0 (patch)
treeecd32d7133dfe90b7900c0a6477efb1916618584
parentbce386af148c85f1cd19bb9bfa04ec92a947e473 (diff)
crypto: ccp - Provide an error path for debugfs setup failure
Changes since v2: - On failure remove only the DebugFS heirarchy for this device Changes since v1: - Remove unneeded local variable Signed-off-by: Gary R Hook <gary.hook@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/ccp/ccp-debugfs.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/crypto/ccp/ccp-debugfs.c b/drivers/crypto/ccp/ccp-debugfs.c
index 3cd6c83754e0..59d4ca4e72d8 100644
--- a/drivers/crypto/ccp/ccp-debugfs.c
+++ b/drivers/crypto/ccp/ccp-debugfs.c
@@ -305,19 +305,19 @@ void ccp5_debugfs_setup(struct ccp_device *ccp)
305 305
306 ccp->debugfs_instance = debugfs_create_dir(ccp->name, ccp_debugfs_dir); 306 ccp->debugfs_instance = debugfs_create_dir(ccp->name, ccp_debugfs_dir);
307 if (!ccp->debugfs_instance) 307 if (!ccp->debugfs_instance)
308 return; 308 goto err;
309 309
310 debugfs_info = debugfs_create_file("info", 0400, 310 debugfs_info = debugfs_create_file("info", 0400,
311 ccp->debugfs_instance, ccp, 311 ccp->debugfs_instance, ccp,
312 &ccp_debugfs_info_ops); 312 &ccp_debugfs_info_ops);
313 if (!debugfs_info) 313 if (!debugfs_info)
314 return; 314 goto err;
315 315
316 debugfs_stats = debugfs_create_file("stats", 0600, 316 debugfs_stats = debugfs_create_file("stats", 0600,
317 ccp->debugfs_instance, ccp, 317 ccp->debugfs_instance, ccp,
318 &ccp_debugfs_stats_ops); 318 &ccp_debugfs_stats_ops);
319 if (!debugfs_stats) 319 if (!debugfs_stats)
320 return; 320 goto err;
321 321
322 for (i = 0; i < ccp->cmd_q_count; i++) { 322 for (i = 0; i < ccp->cmd_q_count; i++) {
323 cmd_q = &ccp->cmd_q[i]; 323 cmd_q = &ccp->cmd_q[i];
@@ -327,15 +327,20 @@ void ccp5_debugfs_setup(struct ccp_device *ccp)
327 debugfs_q_instance = 327 debugfs_q_instance =
328 debugfs_create_dir(name, ccp->debugfs_instance); 328 debugfs_create_dir(name, ccp->debugfs_instance);
329 if (!debugfs_q_instance) 329 if (!debugfs_q_instance)
330 return; 330 goto err;
331 331
332 debugfs_q_stats = 332 debugfs_q_stats =
333 debugfs_create_file("stats", 0600, 333 debugfs_create_file("stats", 0600,
334 debugfs_q_instance, cmd_q, 334 debugfs_q_instance, cmd_q,
335 &ccp_debugfs_queue_ops); 335 &ccp_debugfs_queue_ops);
336 if (!debugfs_q_stats) 336 if (!debugfs_q_stats)
337 return; 337 goto err;
338 } 338 }
339
340 return;
341
342err:
343 debugfs_remove_recursive(ccp->debugfs_instance);
339} 344}
340 345
341void ccp5_debugfs_destroy(void) 346void ccp5_debugfs_destroy(void)