From patchwork Sat Sep 24 07:45:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 12987442 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8794AC32771 for ; Sat, 24 Sep 2022 07:55:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=4YRwWQ89DXncTXh+1aD8xdKC4tErfsmW8hbo0dxhlEw=; b=jNnFwwZyrQVZs3 jOEQA6xCqFMnZvj+la6YUTlPGwePbsURe7/DLlqU+wxXiSHKCFg3Umk27RuRP1Wm0sMKeUZgXXga0 50O7HLPZ77zpT4RVDBhfRjrA75IC6M7K79GRSF4A4z/nD1IPPeQVHEuWHZZneOrSXMM9tnLMtXWP1 CBKhxc1Qw7E9EfbFNXMZRhVgyLfMwN7n4D52uZ9jfFNa0ezVZEvl4pa+SalDgKsTRe4dCGq9skL35 ZzjcBFMGFaWwoXZBKOROPxvCF+NwMj2Im04FBd9jAUsN5fnUM9C0H6Oj9JwPQyb+kZaSGxs2vXKr8 YWWfpg+DmRlrGN/IJ/TA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1obzzz-006b4w-Fu; Sat, 24 Sep 2022 07:54:55 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1obzzw-006b4G-Ed for linux-riscv@lists.infradead.org; Sat, 24 Sep 2022 07:54:54 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B22A9B80DA7; Sat, 24 Sep 2022 07:54:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 28EF4C433D6; Sat, 24 Sep 2022 07:54:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664006088; bh=u9mYajIuHBlZGE/ehPJVW7yGMSCvpdioE5IvcFBScms=; h=From:To:Cc:Subject:Date:From; b=RXXMLyv6uUFmBZ6NzmtPEAgS4krpYJvwGo+WpbrfFTUPDK1F3jMqBSk2jOFOCo+vb MEGJZlzR9ayY8mPXkdgdzoWSIWejpLxBhcjVQtZZwIN31HcNJ9YSwH9wt+0LZB35ME JYX2t5UlPDDRCnrBJj95Y9vSw4bZ8rb3bTv5JZQ1DsU7YNaDcMoRslK+eOO69wVax3 VxLxH6shQDx6Kv1STwhgHLSptBvDUotG8dAYLMi76dvb1/c1zh/7WLrUhapXXvYz9n 4DPkGFjChjI6oiqzhk/hKHY4AJfV0UgMq3UYJZvCswJ5uRjYye2yqn1+Mer1ahXOEX E05lIvFUXPc5g== From: Jisheng Zhang To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Guo Ren Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] riscv: vdso: reorganise the file to remove two forward declarations. Date: Sat, 24 Sep 2022 15:45:23 +0800 Message-Id: <20220924074523.3764-1-jszhang@kernel.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220924_005452_838024_DAFB3BEF X-CRM114-Status: GOOD ( 14.53 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Move the vdso_join_timens() after the compat_vdso_info and vdso_info structure definitions so that we can remove the two forward declarations. No functional changes. Signed-off-by: Jisheng Zhang --- arch/riscv/kernel/vdso.c | 65 +++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/arch/riscv/kernel/vdso.c b/arch/riscv/kernel/vdso.c index 4abc9aebdfae..3c5fb27085a0 100644 --- a/arch/riscv/kernel/vdso.c +++ b/arch/riscv/kernel/vdso.c @@ -60,11 +60,6 @@ struct __vdso_info { struct vm_special_mapping *cm; }; -static struct __vdso_info vdso_info; -#ifdef CONFIG_COMPAT -static struct __vdso_info compat_vdso_info; -#endif - static int vdso_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma) { @@ -108,35 +103,6 @@ struct vdso_data *arch_get_vdso_data(void *vvar_page) return (struct vdso_data *)(vvar_page); } -/* - * The vvar mapping contains data for a specific time namespace, so when a task - * changes namespace we must unmap its vvar data for the old namespace. - * Subsequent faults will map in data for the new namespace. - * - * For more details see timens_setup_vdso_data(). - */ -int vdso_join_timens(struct task_struct *task, struct time_namespace *ns) -{ - struct mm_struct *mm = task->mm; - struct vm_area_struct *vma; - - mmap_read_lock(mm); - - for (vma = mm->mmap; vma; vma = vma->vm_next) { - unsigned long size = vma->vm_end - vma->vm_start; - - if (vma_is_special_mapping(vma, vdso_info.dm)) - zap_page_range(vma, vma->vm_start, size); -#ifdef CONFIG_COMPAT - if (vma_is_special_mapping(vma, compat_vdso_info.dm)) - zap_page_range(vma, vma->vm_start, size); -#endif - } - - mmap_read_unlock(mm); - return 0; -} - static struct page *find_timens_vvar_page(struct vm_area_struct *vma) { if (likely(vma->vm_mm == current->mm)) @@ -234,6 +200,37 @@ static struct __vdso_info compat_vdso_info __ro_after_init = { }; #endif +#ifdef CONFIG_TIME_NS +/* + * The vvar mapping contains data for a specific time namespace, so when a task + * changes namespace we must unmap its vvar data for the old namespace. + * Subsequent faults will map in data for the new namespace. + * + * For more details see timens_setup_vdso_data(). + */ +int vdso_join_timens(struct task_struct *task, struct time_namespace *ns) +{ + struct mm_struct *mm = task->mm; + struct vm_area_struct *vma; + + mmap_read_lock(mm); + + for (vma = mm->mmap; vma; vma = vma->vm_next) { + unsigned long size = vma->vm_end - vma->vm_start; + + if (vma_is_special_mapping(vma, vdso_info.dm)) + zap_page_range(vma, vma->vm_start, size); +#ifdef CONFIG_COMPAT + if (vma_is_special_mapping(vma, compat_vdso_info.dm)) + zap_page_range(vma, vma->vm_start, size); +#endif + } + + mmap_read_unlock(mm); + return 0; +} +#endif + static int __init vdso_init(void) { __vdso_init(&vdso_info);