diff options
author | Gary R Hook <gary.hook@amd.com> | 2017-06-28 12:56:47 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2017-07-18 05:50:53 -0400 |
commit | 33460b2dd13f7b4845364c59fccb79c778d7c5e0 (patch) | |
tree | ecd32d7133dfe90b7900c0a6477efb1916618584 | |
parent | bce386af148c85f1cd19bb9bfa04ec92a947e473 (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.c | 15 |
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 | |||
342 | err: | ||
343 | debugfs_remove_recursive(ccp->debugfs_instance); | ||
339 | } | 344 | } |
340 | 345 | ||
341 | void ccp5_debugfs_destroy(void) | 346 | void ccp5_debugfs_destroy(void) |