Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1381294

[PATCH -tip 3/3] locking/pvqspinlock: Robustify init_qspinlock_stat()

From Davidlohr Bueso <dave@stgolabs.net>
Newsgroups linux.kernel
Subject [PATCH -tip 3/3] locking/pvqspinlock: Robustify init_qspinlock_stat()
Date 2016-04-18 08:40 +0200
Message-ID <rpb0L-WR-31@gated-at.bofh.it> (permalink)
References <rpb0J-WR-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Specifically around the debugfs file creation calls,
I have no idea if they could ever possibly fail, but
this is core code (debug aside) so lets at least
check the return value and inform anything fishy.

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
---
 kernel/locking/qspinlock_stat.h | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/kernel/locking/qspinlock_stat.h b/kernel/locking/qspinlock_stat.h
index 72722334237a..ddcd653c942c 100644
--- a/kernel/locking/qspinlock_stat.h
+++ b/kernel/locking/qspinlock_stat.h
@@ -225,12 +225,18 @@ static int __init init_qspinlock_stat(void)
 	 * performance.
 	 */
 	for (i = 0; i < qstat_num; i++)
-		debugfs_create_file(qstat_names[i], 0400, d_qstat,
-				   (void *)(long)i, &fops_qstat);
+		if (!debugfs_create_file(qstat_names[i], 0400, d_qstat,
+					 (void *)(long)i, &fops_qstat))
+			goto fail;
+
+	if (!debugfs_create_file(qstat_names[qstat_reset_cnts], 0200, d_qstat,
+				 (void *)(long)qstat_reset_cnts, &fops_qstat))
+		goto fail;
 
-	debugfs_create_file(qstat_names[qstat_reset_cnts], 0200, d_qstat,
-			   (void *)(long)qstat_reset_cnts, &fops_qstat);
 	return 0;
+fail:
+	debugfs_remove_recursive(d_qstat);
+	return 1;
 }
 fs_initcall(init_qspinlock_stat);
 
-- 
2.8.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH -tip 1/3] locking/pvqspinlock: Fix div by 0 in qstats Davidlohr Bueso <dave@stgolabs.net> - 2016-04-18 08:40 +0200
  [PATCH -tip 3/3] locking/pvqspinlock: Robustify init_qspinlock_stat() Davidlohr Bueso <dave@stgolabs.net> - 2016-04-18 08:40 +0200
    Re: [PATCH -tip 3/3] locking/pvqspinlock: Robustify  init_qspinlock_stat() Davidlohr Bueso <dave@stgolabs.net> - 2016-04-18 18:20 +0200
      [PATCH -tip v3 3/3] locking/pvqspinlock: Robustify  init_qspinlock_stat() Davidlohr Bueso <dave@stgolabs.net> - 2016-04-20 06:20 +0200
        Re: [PATCH -tip v3 3/3] locking/pvqspinlock: Robustify init_qspinlock_stat() Waiman Long <waiman.long@hpe.com> - 2016-04-20 22:10 +0200
      Re: [PATCH -tip v2] locking/pvqspinlock: Robustify  init_qspinlock_stat() Davidlohr Bueso <dave@stgolabs.net> - 2016-04-20 06:20 +0200
      [PATCH -tip v2] locking/pvqspinlock: Robustify init_qspinlock_stat() Davidlohr Bueso <dave@stgolabs.net> - 2016-04-20 06:20 +0200
    Re: [PATCH -tip 3/3] locking/pvqspinlock: Robustify init_qspinlock_stat() Waiman Long <waiman.long@hpe.com> - 2016-04-18 21:50 +0200
  [PATCH -tip 2/3] locking/pvqspinlock: Avoid double resetting of stats Davidlohr Bueso <dave@stgolabs.net> - 2016-04-18 08:40 +0200
    Re: [PATCH -tip 2/3] locking/pvqspinlock: Avoid double resetting  of stats Waiman Long <waiman.long@hpe.com> - 2016-04-18 22:20 +0200
  Re: [PATCH -tip 1/3] locking/pvqspinlock: Fix div by 0 in qstats Waiman Long <waiman.long@hpe.com> - 2016-04-18 21:40 +0200
  [tip:locking/urgent] locking/pvqspinlock: Fix division by zero in  qstat_read() tip-bot for Davidlohr Bueso <tipbot@zytor.com> - 2016-04-19 11:40 +0200

csiph-web