Received: by 2002:a05:6a10:6006:0:0:0:0 with SMTP id w6csp1891294pxa; Sat, 29 Aug 2020 06:58:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweDyX3tm8h+XOJbLM/CmpCyvjBY5WniCkZ/SDGfjnLb7k3JSMuTV7xgVxoRAVClP5uJ1ko X-Received: by 2002:a17:907:20e5:: with SMTP id rh5mr3580784ejb.194.1598709483880; Sat, 29 Aug 2020 06:58:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598709483; cv=none; d=google.com; s=arc-20160816; b=HaIWPnSVncArNzi6dadivx72G+kdQmluf2wIUMywAjw8mkWCcgc9PedAKPrhWBePY4 5jAin2W92oCX7SB00x8PyxSG5guPLNY64gjO4CLYBz47W2mQOkg9wlCroSdoaxJSDXKU jrH8Po83FDOI4yW55sx0/xh7il587z8wRQ2CuTkLGIUNrPlihAVqUICGXQjCRa1IdVFv zsq1eZxBQXt2XxNdXsWLKDqzrabRyCK73+tXFqCf9wsbya108svSBOglhFuM3qzYP6H9 6f2+zaAQs7g6Yu9xvYw2sRetV23ABIgfO7rpSGx0GJ1rIYgmZLEUhsmi8p1xLSfTT/r0 WfuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=Q+T/P2xBoZODkLNUPYkBirQKBsexOA+DOyVtLmv1E+o=; b=0dS2xXOgstlHQqpu15pxZ3O+Bb6qJo15YQuoohvsaaBHl04kVa3XLoInOPV4jTF1o5 T8AHIgpABD3qQ9TtLrsKmwpEyr7WEF7S+ykT4waXhoQT0wlt5rETbhkNz4A1NJObHO8o pKWqrzdSd+ybThUnVye5faMmld/NGUnVIm1rQ5fLmor438/xukK71pc0vSOo/GYJGOyN mZafwIjuiskAWO4l9YpkxveZKkySdeFSbKday0lTtVkCtgCwBWLPhiqvfwqA0/06iUgm lMfuFWTrtlXPWxAGzEf64zdaPT0v9u3OpyxQjUYRGfMP0Jt5kTfOhzuLITVHnHKvpHvB Ks1g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=savD7E7x; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id lc15si1685145ejb.526.2020.08.29.06.57.38; Sat, 29 Aug 2020 06:58:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=savD7E7x; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728113AbgH2N5A (ORCPT + 99 others); Sat, 29 Aug 2020 09:57:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:41352 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728040AbgH2N47 (ORCPT ); Sat, 29 Aug 2020 09:56:59 -0400 Received: from localhost (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id F08BE208A9; Sat, 29 Aug 2020 13:56:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1598709418; bh=8dNd/+HarCuZT6TLxU41GXJj/D7iMLgdNwDKWpUYY3Q=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=savD7E7xyfXbOUYCfubBXQWeCIgPYKBSzqPuxelbZrXSYVhjTxYrevZPe5QNR9jBf Eisnnzj2ll4AHNysVWx7KjUh9hp4rljIasZKAHXqCe8eMOIfB6QAKh7aHjw1iLxlWQ Qpjv/VM6JK6A9F90UzhFnc3nsDVgSNeVP++gJ5zw= Date: Sat, 29 Aug 2020 09:56:56 -0400 From: Sasha Levin To: Hauke Mehrtens Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, Victor Kamensky , Bruce Ashfield , Paul Burton , linux-mips@vger.kernel.org, Ralf Baechle , James Hogan , Vincenzo Frascino , richard.purdie@linuxfoundation.org, Tony Ambardar Subject: Re: [PATCH AUTOSEL 5.4 10/58] mips: vdso: fix 'jalr t9' crash in vdso code Message-ID: <20200829135656.GX8670@sasha-vm> References: <20200305171420.29595-1-sashal@kernel.org> <20200305171420.29595-10-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Aug 29, 2020 at 03:08:01PM +0200, Hauke Mehrtens wrote: >On 3/5/20 6:13 PM, Sasha Levin wrote: >> From: Victor Kamensky >> >> [ Upstream commit d3f703c4359ff06619b2322b91f69710453e6b6d ] >> >> Observed that when kernel is built with Yocto mips64-poky-linux-gcc, >> and mips64-poky-linux-gnun32-gcc toolchain, resulting vdso contains >> 'jalr t9' instructions in its code and since in vdso case nobody >> sets GOT table code crashes when instruction reached. On other hand >> observed that when kernel is built mips-poky-linux-gcc toolchain, the >> same 'jalr t9' instruction are replaced with PC relative function >> calls using 'bal' instructions. >> >> The difference boils down to -mrelax-pic-calls and -mexplicit-relocs >> gcc options that gets different default values depending on gcc >> target triplets and corresponding binutils. -mrelax-pic-calls got >> enabled by default only in mips-poky-linux-gcc case. MIPS binutils >> ld relies on R_MIPS_JALR relocation to convert 'jalr t9' into 'bal' >> and such relocation is generated only if -mrelax-pic-calls option >> is on. >> >> Please note 'jalr t9' conversion to 'bal' can happen only to static >> functions. These static PIC calls use mips local GOT entries that >> are supposed to be filled with start of DSO value by run-time linker >> (missing in VDSO case) and they do not have dynamic relocations. >> Global mips GOT entries must have dynamic relocations and they should >> be prevented by cmd_vdso_check Makefile rule. >> >> Solution call out -mrelax-pic-calls and -mexplicit-relocs options >> explicitly while compiling MIPS vdso code. That would get correct >> and consistent between different toolchains behaviour. >> >> Reported-by: Bruce Ashfield >> Signed-off-by: Victor Kamensky >> Signed-off-by: Paul Burton >> Cc: linux-mips@vger.kernel.org >> Cc: Ralf Baechle >> Cc: James Hogan >> Cc: Vincenzo Frascino >> Cc: richard.purdie@linuxfoundation.org >> Signed-off-by: Sasha Levin >> --- >> arch/mips/vdso/Makefile | 1 + >> 1 file changed, 1 insertion(+) >> > >Hi Sasha, > >Why was this not added to the 5.4 stable branch? > >Some OpenWrt users ran into this problem with kernel 5.4 on MIPS64 [0]. >We backported this patch on our own in OpenWrt [1], but it should be >added to the sable branch in my opinion as it fixes a real problem. > >@Sasha: Can you add it to the 5.4 stable branch or should I send some >special email? It failed building on 5.4. If you'd like it included, please send me a tested backport for 5.4. -- Thanks, Sasha