From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753806Ab2GUCWO (ORCPT ); Fri, 20 Jul 2012 22:22:14 -0400 Received: from hrndva-omtalb.mail.rr.com ([71.74.56.122]:28027 "EHLO hrndva-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752231Ab2GUCVM (ORCPT ); Fri, 20 Jul 2012 22:21:12 -0400 X-Authority-Analysis: v=2.0 cv=StQSGYy0 c=1 sm=0 a=s5Htg7xnQOKvHEu9STBOug==:17 a=OpT9cpI26MMA:10 a=Ciwy3NGCPMMA:10 a=t-Vslu4qGckA:10 a=5SG0PmZfjMsA:10 a=bbbx4UPp9XUA:10 a=meVymXHHAAAA:8 a=20KFwNOVAAAA:8 a=VwQbUJbxAAAA:8 a=oGMlB6cnAAAA:8 a=VnNF1IyMAAAA:8 a=Z4Rwk6OoAAAA:8 a=pGLkceISAAAA:8 a=3nbZYyFuAAAA:8 a=PgWMebuInx1RzEPmWVUA:9 a=QEXdDO2ut3YA:10 a=jEp0ucaQiEUA:10 a=Zh68SRI7RUMA:10 a=CY6gl2JlH4YA:10 a=jbrJJM5MRmoA:10 a=MSl-tDqOz04A:10 a=EvKJbDF4Ut8A:10 a=jeBq3FmKZ4MA:10 a=VkNXRRI44iGB_DlCy-sA:9 a=s5Htg7xnQOKvHEu9STBOug==:117 X-Cloudmark-Score: 0 X-Originating-IP: 72.230.195.127 Message-Id: <20120721022110.650726104@goodmis.org> User-Agent: quilt/0.60-1 Date: Fri, 20 Jul 2012 22:19:57 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Ingo Molnar , Andrew Morton , Masami Hiramatsu , Frederic Weisbecker , Thomas Gleixner , "H. Peter Anvin" , Ingo Molnar , Ananth N Mavinakayanahalli , "Frank Ch. Eigler" Subject: [PATCH 14/19] kprobes: Inverse taking of module_mutex with kprobe_mutex References: <20120721021943.274162381@goodmis.org> Content-Disposition: inline; filename=0014-kprobes-Inverse-taking-of-module_mutex-with-kprobe_m.patch Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="00GvhwF7k39YY" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --00GvhwF7k39YY Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable From: Steven Rostedt Currently module_mutex is taken before kprobe_mutex, but this can cause issues when we have kprobes register ftrace, as the ftrace mutex is taken before enabling a tracepoint, which currently takes the module mutex. If module_mutex is taken before kprobe_mutex, then we can not have kprobes use the ftrace infrastructure. There seems to be no reason that the kprobe_mutex can't be taken before the module_mutex. Running lockdep shows that it is safe among the kernels I've run. Link: http://lkml.kernel.org/r/20120605102814.27845.21047.stgit@localhost.l= ocaldomain Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: Ananth N Mavinakayanahalli Cc: "Frank Ch. Eigler" Cc: Andrew Morton Cc: Frederic Weisbecker Cc: Masami Hiramatsu Signed-off-by: Steven Rostedt --- kernel/kprobes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/kprobes.c b/kernel/kprobes.c index c62b854..7a8a122 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -561,9 +561,9 @@ static __kprobes void kprobe_optimizer(struct work_stru= ct *work) { LIST_HEAD(free_list); =20 + mutex_lock(&kprobe_mutex); /* Lock modules while optimizing kprobes */ mutex_lock(&module_mutex); - mutex_lock(&kprobe_mutex); =20 /* * Step 1: Unoptimize kprobes and collect cleaned (unused and disarmed) @@ -586,8 +586,8 @@ static __kprobes void kprobe_optimizer(struct work_stru= ct *work) /* Step 4: Free cleaned kprobes after quiesence period */ do_free_cleaned_kprobes(&free_list); =20 - mutex_unlock(&kprobe_mutex); mutex_unlock(&module_mutex); + mutex_unlock(&kprobe_mutex); =20 /* Step 5: Kick optimizer again if needed */ if (!list_empty(&optimizing_list) || !list_empty(&unoptimizing_list)) --=20 1.7.10.4 --00GvhwF7k39YY Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAABAgAGBQJQChIWAAoJEIy3vGnGbaoAacIQAI5Mvxj3McWYh6rl0DCP8f1+ bp1Lw4ADhprGYAktKy4GROlNo6XGY1A1C/oPd/6YY/1cN59FWnMcjJdihNv/Gi4H O0uep5ILfvp68/VMvhCamGxttAUzfVUb1C9u839EaFZ6Xy6CvHGaGm50WJRNT/Dx kTFZ/u/ABZCcv1ZSwmsqZsHaQnEryaBoo+zEcmcTgnJxoBytYfqRs+Zurhz19x4f s4HMRlbmPMaHwsV5XFuZ95SsaZeOnfMrG/iFdEvRReNqguZFaMKF0ASOwjSyWMSj f6mviG7ZGND6xuYzv5VG1v7qk7yfd5r2qe1jTgEpbUzbw9gUfQ9s7bB6cBK/T9UN RcTHsu+emPUo/xNnzp9ds2eANeETeHXaJMCKpr4VZeKIzlZ7qrSMFaFqYR3ibYLd xWtNCSGsYx1JTK5X6eHrt9VGNlKwLAqFKNlPQHyphVeii8ndjFcGkrQ33yep+L8N +e0F7d+ZMlPlxrGXDxVnpvm/NVXo2XGCKHHwhFF0kTc/fqsC3CRPwUar0ULq3kJz 0RA9jz+7Ly9DL32qesE2C038B8KeJu9pB4Gp8K33/2cv4fWiBbpkGoL92yUAHXmH WtWu9s3iCOyr9ufN8AhR9WRE/bWirpgawD5uXSsTrC5racjPWJlv9BxfD4bfMoYG H/qj4RjzpnNPtNcJp5rY =XtU0 -----END PGP SIGNATURE----- --00GvhwF7k39YY--