From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932307AbdJKEoU (ORCPT ); Wed, 11 Oct 2017 00:44:20 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:50234 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750766AbdJKEoT (ORCPT ); Wed, 11 Oct 2017 00:44:19 -0400 Subject: Re: [PATCH] powerpc/perf: Fix IMC initialization crash To: Michael Ellerman , Anju T Sudhakar Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, hemant@linux.vnet.ibm.com, ppaidipe@linux.vnet.ibm.com References: <1507654315-1620-1-git-send-email-anju@linux.vnet.ibm.com> <87fuaqz5ki.fsf@concordia.ellerman.id.au> From: Madhavan Srinivasan Date: Wed, 11 Oct 2017 10:14:08 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <87fuaqz5ki.fsf@concordia.ellerman.id.au> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-TM-AS-MML: disable x-cbid: 17101104-0040-0000-0000-000003E196D2 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17101104-0041-0000-0000-000025E3A033 Message-Id: <15763134-6b59-ca46-9e74-19f213f6d83f@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-10-11_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=2 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1710110069 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday 11 October 2017 09:41 AM, Michael Ellerman wrote: > Anju T Sudhakar writes: > >> Call trace observed with latest firmware, and upstream kernel. >> >> [ 14.499938] NIP [c0000000000f318c] init_imc_pmu+0x8c/0xcf0 >> [ 14.499973] LR [c0000000000f33f8] init_imc_pmu+0x2f8/0xcf0 >> [ 14.500007] Call Trace: >> [ 14.500027] [c000003fed18f710] [c0000000000f33c8] init_imc_pmu+0x2c8/0xcf0 (unreliable) >> [ 14.500080] [c000003fed18f800] [c0000000000b5ec0] opal_imc_counters_probe+0x300/0x400 >> [ 14.500132] [c000003fed18f900] [c000000000807ef4] platform_drv_probe+0x64/0x110 >> [ 14.500185] [c000003fed18f980] [c000000000804b58] driver_probe_device+0x3d8/0x580 >> [ 14.500236] [c000003fed18fa10] [c000000000804e4c] __driver_attach+0x14c/0x1a0 >> [ 14.500302] [c000003fed18fa90] [c00000000080156c] bus_for_each_dev+0x8c/0xf0 >> [ 14.500353] [c000003fed18fae0] [c000000000803fa4] driver_attach+0x34/0x50 >> [ 14.500397] [c000003fed18fb00] [c000000000803688] bus_add_driver+0x298/0x350 >> [ 14.500449] [c000003fed18fb90] [c00000000080605c] driver_register+0x9c/0x180 >> [ 14.500500] [c000003fed18fc00] [c000000000807dec] __platform_driver_register+0x5c/0x70 >> [ 14.500552] [c000003fed18fc20] [c00000000101cee0] opal_imc_driver_init+0x2c/0x40 >> [ 14.500603] [c000003fed18fc40] [c00000000000d084] do_one_initcall+0x64/0x1d0 >> [ 14.500654] [c000003fed18fd00] [c00000000100434c] kernel_init_freeable+0x280/0x374 >> [ 14.500705] [c000003fed18fdc0] [c00000000000d314] kernel_init+0x24/0x160 >> [ 14.500750] [c000003fed18fe30] [c00000000000b4e8] ret_from_kernel_thread+0x5c/0x74 >> [ 14.500799] Instruction dump: >> [ 14.500827] 4082024c 2f890002 419e054c 2e890003 41960094 2e890001 3ba0ffea 419602d8 >> [ 14.500884] 419e0290 2f890003 419e02a8 e93e0118 2fa30000 419e0010 4827ba41 >> [ 14.500945] ---[ end trace 27b734ad26f1add4 ]--- >> [ 15.908719] >> [ 16.908869] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007 >> [ 16.908869] >> [ 18.125813] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000007] >> >> While registering nest imc at init, cpu-hotplug callback `nest_pmu_cpumask_init()` >> makes an opal call to stop the engine. And if the OPAL call fails, >> imc_common_cpuhp_mem_free() is invoked to cleanup memory and cpuhotplug setup. >> >> But when cleaning up the attribute group, we were dereferencing the attribute >> element array without checking whether the backing element is not NULL. This >> causes the kernel panic. >> >> Factor out the memory freeing part from imc_common_cpuhp_mem_free() to handle >> the failing case gracefully. >> >> Signed-off-by: Anju T Sudhakar >> Reported-by: Pridhiviraj Paidipeddi >> --- >> arch/powerpc/perf/imc-pmu.c | 23 ++++++++++++++++------- >> 1 file changed, 16 insertions(+), 7 deletions(-) > It's the week before rc5, so I'd really like just the absolute minimal > fix. There's sufficient code movement here that I can't even immediately > see where the bug fix is. mpe, We have just re-factored the code to handle the memory freeing and fixed a leak. This is minimal fix. And there are no risks in taking this in. Reviewed-by: Madhavan Srinivasan Maddy > > cheers >