All of lore.kernel.org
 help / color / mirror / Atom feed
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] oprofile: don't call arch exit code from init code on failure
Date: Sun, 29 Aug 2010 19:51:59 +0100	[thread overview]
Message-ID: <1283107921-21464-2-git-send-email-will.deacon@arm.com> (raw)
In-Reply-To: <1283107921-21464-1-git-send-email-will.deacon@arm.com>

oprofile_init calls oprofile_arch_init to initialise the architecture-specific
backend code. If this backend code returns failure, oprofile_arch_exit is
called immediately, making it difficult to allocate and free resources
correctly.

This patch removes the oprofile_arch_exit call from oprofile_init,
meaning that all architectures must ensure that oprofile_arch_init
cleans up any mess it's made before returning an error. As far as
I can tell, this only affects the code for ARM and x86.

Cc: Robert Richter <robert.richter@amd.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Will Deacon <will.deacon@arm.com>
---
 drivers/oprofile/oprof.c |   11 ++---------
 1 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
index b336cd9..b4a6857 100644
--- a/drivers/oprofile/oprof.c
+++ b/drivers/oprofile/oprof.c
@@ -257,16 +257,9 @@ static int __init oprofile_init(void)
 		printk(KERN_INFO "oprofile: using timer interrupt.\n");
 		err = oprofile_timer_init(&oprofile_ops);
 		if (err)
-			goto out_arch;
+			return err;
 	}
-	err = oprofilefs_register();
-	if (err)
-		goto out_arch;
-	return 0;
-
-out_arch:
-	oprofile_arch_exit();
-	return err;
+	return oprofilefs_register();
 }
 
 
-- 
1.6.3.3

WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon@arm.com>
To: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org,
	Will Deacon <will.deacon@arm.com>,
	Robert Richter <robert.richter@amd.com>,
	Matt Fleming <matt@console-pimps.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>
Subject: [PATCH 1/3] oprofile: don't call arch exit code from init code on failure
Date: Sun, 29 Aug 2010 19:51:59 +0100	[thread overview]
Message-ID: <1283107921-21464-2-git-send-email-will.deacon@arm.com> (raw)
In-Reply-To: <1283107921-21464-1-git-send-email-will.deacon@arm.com>

oprofile_init calls oprofile_arch_init to initialise the architecture-specific
backend code. If this backend code returns failure, oprofile_arch_exit is
called immediately, making it difficult to allocate and free resources
correctly.

This patch removes the oprofile_arch_exit call from oprofile_init,
meaning that all architectures must ensure that oprofile_arch_init
cleans up any mess it's made before returning an error. As far as
I can tell, this only affects the code for ARM and x86.

Cc: Robert Richter <robert.richter@amd.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Will Deacon <will.deacon@arm.com>
---
 drivers/oprofile/oprof.c |   11 ++---------
 1 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
index b336cd9..b4a6857 100644
--- a/drivers/oprofile/oprof.c
+++ b/drivers/oprofile/oprof.c
@@ -257,16 +257,9 @@ static int __init oprofile_init(void)
 		printk(KERN_INFO "oprofile: using timer interrupt.\n");
 		err = oprofile_timer_init(&oprofile_ops);
 		if (err)
-			goto out_arch;
+			return err;
 	}
-	err = oprofilefs_register();
-	if (err)
-		goto out_arch;
-	return 0;
-
-out_arch:
-	oprofile_arch_exit();
-	return err;
+	return oprofilefs_register();
 }
 
 
-- 
1.6.3.3


  reply	other threads:[~2010-08-29 18:51 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-29 18:51 [PATCH 0/3] stop OProfile calling arch_exit when arch_init fails Will Deacon
2010-08-29 18:51 ` Will Deacon
2010-08-29 18:51 ` Will Deacon [this message]
2010-08-29 18:51   ` [PATCH 1/3] oprofile: don't call arch exit code from init code on failure Will Deacon
2010-08-29 18:52   ` [PATCH 2/3] ARM: oprofile: fix and simplify init/exit functions Will Deacon
2010-08-29 18:52     ` Will Deacon
2010-08-29 18:52     ` [PATCH 3/3] x86: oprofile: fix oprofile_arch_init behaviour on failure Will Deacon
2010-08-29 18:52       ` Will Deacon
2010-08-30  9:09       ` Robert Richter
2010-08-30  9:09         ` Robert Richter
2010-08-31  8:54         ` Will Deacon
2010-08-31  8:54           ` Will Deacon
2010-08-31  9:05           ` Robert Richter
2010-08-31  9:05             ` Robert Richter
2010-08-31  9:31             ` Will Deacon
2010-08-31  9:31               ` Will Deacon
2010-08-31  9:47               ` Robert Richter
2010-08-31  9:47                 ` Robert Richter
2010-08-31 10:30               ` [PATCH] oprofile, x86: fix init_sysfs error handling Robert Richter
2010-08-31 10:30                 ` Robert Richter
2010-09-01  9:51                 ` Ingo Molnar
2010-09-01  9:51                   ` Ingo Molnar
2010-09-01 13:07                   ` Robert Richter
2010-09-01 13:07                     ` Robert Richter
2010-08-31 11:01 ` [PATCH 0/3] stop OProfile calling arch_exit when arch_init fails Robert Richter
2010-08-31 11:01   ` Robert Richter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1283107921-21464-2-git-send-email-will.deacon@arm.com \
    --to=will.deacon@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.