From patchwork Mon Oct 1 17:58:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Salyzyn X-Patchwork-Id: 10622519 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B66D9112B for ; Mon, 1 Oct 2018 18:07:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A3294282E8 for ; Mon, 1 Oct 2018 18:07:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9528C284D2; Mon, 1 Oct 2018 18:07:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E1054282E8 for ; Mon, 1 Oct 2018 18:07:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZfWQjMMLqZXvdgDSXCjCU7G6VKRRP7oJTzftzzZZGfI=; b=B3bWHY2agGqY3d iZKsRLn6xamrOHgucoLwH0IJkb03A9Q8r4Z0ALwj33ZskRn92rbP5zD53aZuQuOwAoQs3HDMqPIfQ +fEYc10Gyc9Qs2vYeexJwBPWlWTsX2SMjP8P0IM3aoa/VLADmv3MIdDY/Nq/QWDSZQ6LQWJLL8vNz +Adx6nHT21Pp1bEIhQG2TSonrRFLyJCmbJ/1RWg1QFvTgrwTD9RNfo/nPAtowLeAJmlYu5VFEc/XI KiaKJPuisKQEodQCZ6uworKkBNKceefDZgP+i6YA8uXxjmyQEA27wqLsVETlT9IQJOSlngRXa1HfH sIlURzjm5gZ3KBNUUeDA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1g72be-0002Lu-ER; Mon, 01 Oct 2018 18:07:42 +0000 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1g72YL-0008BV-6Z for linux-arm-kernel@lists.infradead.org; Mon, 01 Oct 2018 18:05:23 +0000 Received: by mail-pf1-x443.google.com with SMTP id p24-v6so1283906pff.10 for ; Mon, 01 Oct 2018 11:04:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=a082AL/4Oj65cVJFcdJAwbuKyRvNhbo+1Hg117kQxIY=; b=i/RbAs4izAdc8l6xtU2dFlH7VxCmErKV/xX/K1VzpZVyWk9JWxuGM0W40qGHVufztV SrKvBz49Ps+yH4ERe38Tzoy+6czv+p16TEUGlR8nEHBiECbcyvWsofsPHOnxOb97DrON 1t06AWfcy08CuFXSioU1S0pmUNjdYMZeS2xYvcmTvqKJ/6c2NHVpeyls2klSVX7+CZOl tU/TquASqsX2EyTjJKi8RrgtgPT253ad79p0O9HiQkoDuylMZf1OH2bZFttVbyUTvsk3 KKXTPZ4TYv9VtYdPf9WKd5STOTJCOpTvsNhbCOAYRORYvUqdu7hdNf01VuZoYRL2YqtI SzNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=a082AL/4Oj65cVJFcdJAwbuKyRvNhbo+1Hg117kQxIY=; b=NEtCYV/N1z+qaAu7p2M/B/Yd5LwfmbeoLLwiPMd+PKsnAu6aP3/fI6GzCLHbjSyDId H3m90LWaKxdlzlELzue88zVTDo268zEa4rEeJJXEAmMQtodYRWJtOiG0UcNWi6b4lAB0 1GiVpRKmR69Y62pA1iyzpDq/kpxLAvrKsw3waCz3R0dQ4RhU7bETF/NMj9z9xz8T53nd qywze++Se58owG4Ae3fJR0Vf2nqGlY6vIxcxLMyVu+zqk2Q9xsR5HuIPz5N/uCmulD3P c6H3eWWi7J1DRxx0OgpHARpQdUTDK2IrE2wvNxmyXRCfPgH4am4gdzLfP4HZ7rFtj+U9 t6mQ== X-Gm-Message-State: ABuFfojWsTnpPyDvUJGeiFcurNtc4jAZvsdQT8g29wCma7CgTf609sYh TeOMXIsmLrgAkn+khz49ftEFJQ== X-Google-Smtp-Source: ACcGV61cLdG7DWQiudJJIj+s/q2sNeMqzZ9N0MvqOmIuRztv9JsFZ08pWU7HSiH3MsKmL19dWYicKQ== X-Received: by 2002:a63:3747:: with SMTP id g7-v6mr11311032pgn.59.1538417046158; Mon, 01 Oct 2018 11:04:06 -0700 (PDT) Received: from nebulus.mtv.corp.google.com ([2620:0:1000:1612:b4fb:6752:f21f:3502]) by smtp.gmail.com with ESMTPSA id d186-v6sm24469261pfg.173.2018.10.01.11.04.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Oct 2018 11:04:05 -0700 (PDT) From: Mark Salyzyn To: linux-kernel@vger.kernel.org Subject: RESEND [PATCH 2/6] arm64: elf: Set AT_SYSINFO_EHDR in compat processes Date: Mon, 1 Oct 2018 10:58:39 -0700 Message-Id: <20181001175845.168430-20-salyzyn@android.com> X-Mailer: git-send-email 2.19.0.605.g01d371f741-goog In-Reply-To: <20181001175845.168430-1-salyzyn@android.com> References: <20181001175845.168430-1-salyzyn@android.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181001_110417_302593_F92789F7 X-CRM114-Status: GOOD ( 15.87 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Laura Abbott , Kees Cook , Ard Biesheuvel , Catalin Marinas , Kevin Brodsky , Will Deacon , Russell King , Jeremy Linton , Mark Salyzyn , android-kernel@android.com, James Morse , Andrew Pinski , Dmitry Safonov , Andy Gross , John Stultz , Thomas Gleixner , Andy Lutomirski , Ben Hutchings , Dave Martin , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kevin Brodsky If the compat vDSO is enabled, we need to set AT_SYSINFO_EHDR in the auxiliary vector of compat processes to the address of the vDSO code page, so that the dynamic linker can find it (just like the regular vDSO). Note that we cast context.vdso to Elf64_Off, instead of elf_addr_t, because elf_addr_t is Elf32_Off in compat_binfmt_elf.c, and casting context.vdso to u32 would trigger a pointer narrowing warning. Signed-off-by: Kevin Brodsky Signed-off-by: Mark Salyzyn Tested-by: Mark Salyzyn Cc: James Morse Cc: Russell King Cc: Catalin Marinas Cc: Will Deacon Cc: Andy Lutomirski Cc: Dmitry Safonov Cc: John Stultz Cc: Mark Rutland Cc: Laura Abbott Cc: Kees Cook Cc: Ard Biesheuvel Cc: Andy Gross Cc: Andrew Pinski Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: Jeremy Linton Cc: android-kernel@android.com --- arch/arm64/include/asm/elf.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index 433b9554c6a1..bf4672a0491b 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -147,10 +147,10 @@ typedef struct user_fpsimd_state elf_fpregset_t; }) /* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */ -#define ARCH_DLINFO \ +#define _SET_AUX_ENT_VDSO \ do { \ NEW_AUX_ENT(AT_SYSINFO_EHDR, \ - (elf_addr_t)current->mm->context.vdso); \ + (Elf64_Off)current->mm->context.vdso); \ \ /* \ * Should always be nonzero unless there's a kernel bug. \ @@ -162,6 +162,7 @@ do { \ else \ NEW_AUX_ENT(AT_IGNORE, 0); \ } while (0) +#define ARCH_DLINFO _SET_AUX_ENT_VDSO #define ARCH_HAS_SETUP_ADDITIONAL_PAGES struct linux_binprm; @@ -209,7 +210,11 @@ typedef compat_elf_greg_t compat_elf_gregset_t[COMPAT_ELF_NGREG]; ({ \ set_thread_flag(TIF_32BIT); \ }) +#ifdef CONFIG_VDSO32 +#define COMPAT_ARCH_DLINFO _SET_AUX_ENT_VDSO +#else #define COMPAT_ARCH_DLINFO +#endif extern int aarch32_setup_vectors_page(struct linux_binprm *bprm, int uses_interp); #define compat_arch_setup_additional_pages \