From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1034647AbcIWVOj (ORCPT ); Fri, 23 Sep 2016 17:14:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55314 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752259AbcIWVOi (ORCPT ); Fri, 23 Sep 2016 17:14:38 -0400 Date: Fri, 23 Sep 2016 16:14:37 -0500 From: Josh Poimboeuf To: Linus Torvalds Cc: Ingo Molnar , Arnaldo Carvalho de Melo , Linux Kernel Mailing List Subject: Re: new objtool warnings again... Message-ID: <20160923211437.bnp6qqwafvyp5kek@treble> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.0.1 (2016-04-01) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 23 Sep 2016 21:14:38 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Sep 23, 2016 at 01:33:45PM -0700, Linus Torvalds wrote: > Josh, > > the current F24 toolchain causes > > kernel/signal.o: warning: objtool: .altinstr_replacement+0x54: > call without frame pointer save/setup > > during a regular allmodconfig build. > > Doing an objdump says: > > ... > 54: e8 00 00 00 00 callq 59 <.altinstr_replacement+0x59> > 55: R_X86_64_PC32 copy_user_generic_string-0x4 > 59: e8 00 00 00 00 callq 5e <.altinstr_replacement+0x5e> > 5a: R_X86_64_PC32 > copy_user_enhanced_fast_string-0x4 > ... > > so it seems to come from the alternative_call_2() in copy_user_generic(). > > It's somewhere in copy_siginfo_to_user(), so I assume it's just the > > if (from->si_code < 0) > return __copy_to_user(to, from, sizeof(siginfo_t)) > ? -EFAULT : 0; > > case. Looking at the code generation, it looks like the frame pointer > generation in that function has been moved down past this code, so the > objtool warning seems to be correct, but this indicates that gcc has > decided that we don't need a frame for that alternative_call_2() > thing. > > So this code is clearly missing the magic to tell gcc that the asm > needs a frame pointer. > > What was that magic again? Mind sending a patch? Is this with your latest pushed master branch? I have F24, but I don't see the warning. In any case, I'll come up with a patch for you to test. -- Josh