From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752315AbbKQDfR (ORCPT ); Mon, 16 Nov 2015 22:35:17 -0500 Received: from mga01.intel.com ([192.55.52.88]:45741 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751582AbbKQDfN (ORCPT ); Mon, 16 Nov 2015 22:35:13 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,305,1444719600"; d="scan'208";a="840214390" Subject: [PATCH 01/37] uprobes: dont pass around current->mm To: linux-kernel@vger.kernel.org Cc: x86@kernel.org, Dave Hansen , dave.hansen@linux.intel.com From: Dave Hansen Date: Mon, 16 Nov 2015 19:35:12 -0800 References: <20151117033511.BFFA1440@viggo.jf.intel.com> In-Reply-To: <20151117033511.BFFA1440@viggo.jf.intel.com> Message-Id: <20151117033512.80B0F505@viggo.jf.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Hansen It doesn't make a whole lot of sense to pass around 'mm' when there is only one call path and that path passes current->mm in all sitautions. Remove 'mm' from one such path in uprobes. Signed-off-by: Dave Hansen --- b/kernel/events/uprobes.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff -puN kernel/events/uprobes.c~uprobes-dont-pass-around-current-mm kernel/events/uprobes.c --- a/kernel/events/uprobes.c~uprobes-dont-pass-around-current-mm 2015-11-16 12:35:34.870150592 -0800 +++ b/kernel/events/uprobes.c 2015-11-16 12:35:34.874150773 -0800 @@ -1685,7 +1685,7 @@ static void mmf_recalc_uprobes(struct mm clear_bit(MMF_HAS_UPROBES, &mm->flags); } -static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr) +static int is_trap_at_addr(unsigned long vaddr) { struct page *page; uprobe_opcode_t opcode; @@ -1699,7 +1699,7 @@ static int is_trap_at_addr(struct mm_str if (likely(result == 0)) goto out; - result = get_user_pages(NULL, mm, vaddr, 1, 0, 1, &page, NULL); + result = get_user_pages(NULL, current->mm, vaddr, 1, 0, 1, &page, NULL); if (result < 0) return result; @@ -1727,7 +1727,7 @@ static struct uprobe *find_active_uprobe } if (!uprobe) - *is_swbp = is_trap_at_addr(mm, bp_vaddr); + *is_swbp = is_trap_at_addr(bp_vaddr); } else { *is_swbp = -EFAULT; } _