From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933204AbcIWEPh (ORCPT ); Fri, 23 Sep 2016 00:15:37 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:41606 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932127AbcIWEPf (ORCPT ); Fri, 23 Sep 2016 00:15:35 -0400 Subject: Re: [PATCH] Work around for enabling CONFIG_CMDLINE on ppc64le To: Michael Ellerman , linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org References: <1474525245-10739-1-git-send-email-akshay.adiga@linux.vnet.ibm.com> <87d1jw8cba.fsf@concordia.ellerman.id.au> Cc: anton@samba.org From: Akshay Adiga Date: Fri, 23 Sep 2016 09:45:24 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <87d1jw8cba.fsf@concordia.ellerman.id.au> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16092304-0004-0000-0000-0000019E1E0B X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16092304-0005-0000-0000-000008BEF3CE Message-Id: <57E4AC5C.5010803@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-09-23_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1609020000 definitions=main-1609230076 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Michael, Anton found this bug and raised it against gcc v7.0 and a fix is available in upstream gcc. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71709 Currently, gcc v5.4.0 and v6.1.1 shipped with Ubuntu 16.04 and 16.10 respectively, are hitting this problem. I have also raised bug against Ubuntu for fixing gcc for 16.04. https://bugzilla.linux.ibm.com/show_bug.cgi?id=146668 On 09/22/2016 03:51 PM, Michael Ellerman wrote: > Akshay Adiga writes: > >> Observed that boot arguments (passed as CONFIG_CMDLINE) are not being >> picked up by kernel while using gcc-ppc64-linux-gnu v5.4.0 and v6.1.1. >> While it works as expected with v5.3.1 . >> >> Found that in init/main.c in setup_command_line() the pointers passed to >> strcpy() is messed up. > Hi Akshay, > > Thanks for debugging this. > >> The problem goes away when compiler optimization is restricted to -O1. >> diff --git a/init/main.c b/init/main.c >> index a8a58e2..4259c42 100644 >> --- a/init/main.c >> +++ b/init/main.c >> @@ -358,7 +358,13 @@ static inline void smp_prepare_cpus(unsigned int maxcpus) { } >> * parsing is performed in place, and we should allow a component to >> * store reference of name/value for future reference. >> */ >> -static void __init setup_command_line(char *command_line) >> +static void __init >> +#ifdef CONFIG_PPC64 >> + #if GCC_VERSION > 50301 >> + __attribute__((optimize("-O1"))) >> + #endif >> +#endif >> + setup_command_line(char *command_line) >> { >> saved_command_line = >> memblock_virt_alloc(strlen(boot_command_line) + 1, 0); > But I can't merge that patch. > > Our options are one or both of: > - get GCC fixed and backport the fix to the compilers we care about. > - blacklist the broken compiler versions. > > Is there a GCC bug filed for this? > > cheers >