Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752895AbcKYJGb convert rfc822-to-8bit (ORCPT ); Fri, 25 Nov 2016 04:06:31 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:39167 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751948AbcKYJGG (ORCPT ); Fri, 25 Nov 2016 04:06:06 -0500 Date: Fri, 25 Nov 2016 10:05:49 +0100 From: Martin Schwidefsky To: Guenter Roeck Cc: Heiko Carstens , linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: next: s390 crash due to 's390: move sys_call_table and last_break from thread_info to thread_struct' In-Reply-To: References: <20161115153554.GA22064@roeck-us.net> <20161115165416.00dbc85d@mschwide> X-Mailer: Claws Mail 3.9.3 (GTK+ 2.24.23; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8BIT X-TM-AS-GCONF: 00 X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16112509-0012-0000-0000-000004966AAA X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 16112509-0013-0000-0000-000016593202 Message-Id: <20161125100549.2ea9dda4@mschwide> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-11-25_04:,, 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-1609300000 definitions=main-1611250162 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2557 Lines: 75 Hi Guenter, On Thu, 24 Nov 2016 12:53:52 -0800 Guenter Roeck wrote: > > Thanks for the report. Builds for Z900 and Z990 are borked. This hunk > > > > @@ -287,7 +292,13 @@ ENTRY(system_call) > > mvc __PT_INT_CODE(4,%r11),__LC_SVC_ILC > > stg %r14,__PT_FLAGS(%r11) > > .Lsysc_do_svc: > > - lg %r10,__TI_sysc_table(%r12) # address of system call table > > + # load address of system call table > > +#ifdef CONFIG_HAVE_MARCH_Z990_FEATURES > > + lg %r10,__TASK_thread+__THREAD_sysc_table(%r12) > > +#else > > + lghi %r10,__TASK_thread > > + lg %r10,__THREAD_sysc_table(%r10,%r12) > > +#endif > > llgh %r8,__PT_INT_CODE+2(%r11) > > slag %r8,%r8,2 # shift and test for svc 0 > > jnz .Lsysc_nr_ok > > > > makes ill use of %r10 in the #else part. Should be fixed now and tomorrows -next > > tree will have the fix. Thanks again. > > > > This is still crashing in -next with exactly the same message. Yes, it is (note to myself: don't do things in a hurry). The patch below gets linux-next booting again for CONFIG_MARCH_Z900=y on my test system. Sorry about the trouble. -- >From 2ec05f7c28963c12e9618e9f7f3b29edcec40482 Mon Sep 17 00:00:00 2001 From: Martin Schwidefsky Date: Fri, 25 Nov 2016 09:53:42 +0100 Subject: [PATCH] s390: fix kernel oops for CONFIG_MARCH_Z900=y builds The LAST_BREAK macro in entry.S uses a different instruction sequence for CONFIG_MARCH_Z900 builds. The branch target offset to skip the store of the last breaking event address needs to take the different length of the code block into account. Fixes: f8fc82b47149e344 ("s390: move sys_call_table and last_break from thread_info to thread_struct") Reported-by: Guenter Roeck Signed-off-by: Martin Schwidefsky --- arch/s390/kernel/entry.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 1cc4578..e2e47f7 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S @@ -123,10 +123,11 @@ _PIF_WORK = (_PIF_PER_TRAP) .macro LAST_BREAK scratch srag \scratch,%r10,23 - jz .+10 #ifdef CONFIG_HAVE_MARCH_Z990_FEATURES + jz .+10 stg %r10,__TASK_thread+__THREAD_last_break(%r12) #else + jz .+14 lghi \scratch,__TASK_thread stg %r10,__THREAD_last_break(\scratch,%r12) #endif -- 2.8.4 -- blue skies, Martin. "Reality continues to ruin my life." - Calvin.