{"id":833372,"url":"http://patchwork.ozlabs.org/api/1.2/patches/833372/?format=json","web_url":"http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20171102140501.87671-13-gwalbon@linux.vnet.ibm.com/","project":{"id":15,"url":"http://patchwork.ozlabs.org/api/1.2/projects/15/?format=json","name":"Ubuntu Kernel","link_name":"ubuntu-kernel","list_id":"kernel-team.lists.ubuntu.com","list_email":"kernel-team@lists.ubuntu.com","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20171102140501.87671-13-gwalbon@linux.vnet.ibm.com>","list_archive_url":null,"date":"2017-11-02T14:05:01","name":"[Artful,12/12] powerpc/perf: Fix IMC initialization crash","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"dd88a05118fd27665cb9aff49e341ed12c6cc70f","submitter":{"id":71662,"url":"http://patchwork.ozlabs.org/api/1.2/people/71662/?format=json","name":"Gustavo Walbon","email":"gwalbon@linux.vnet.ibm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20171102140501.87671-13-gwalbon@linux.vnet.ibm.com/mbox/","series":[{"id":11509,"url":"http://patchwork.ozlabs.org/api/1.2/series/11509/?format=json","web_url":"http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=11509","date":"2017-11-02T14:04:50","name":"Backport for Power9 Nest PMU Instrumentation","version":1,"mbox":"http://patchwork.ozlabs.org/series/11509/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/833372/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/833372/checks/","tags":{},"related":[],"headers":{"Return-Path":"<kernel-team-bounces@lists.ubuntu.com>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com\n\t(client-ip=91.189.94.19; helo=huckleberry.canonical.com;\n\tenvelope-from=kernel-team-bounces@lists.ubuntu.com;\n\treceiver=<UNKNOWN>)","Received":["from huckleberry.canonical.com (huckleberry.canonical.com\n\t[91.189.94.19])\n\tby ozlabs.org (Postfix) with ESMTP id 3ySRgk199Lz9t3f;\n\tFri,  3 Nov 2017 01:05:38 +1100 (AEDT)","from localhost ([127.0.0.1] helo=huckleberry.canonical.com)\n\tby huckleberry.canonical.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1eAG7i-0002X6-HQ; Thu, 02 Nov 2017 14:05:34 +0000","from mx0a-001b2d01.pphosted.com ([148.163.156.1])\n\tby huckleberry.canonical.com with esmtps\n\t(TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2)\n\t(envelope-from <gwalbon@linux.vnet.ibm.com>) id 1eAG7f-0002R6-Vz\n\tfor kernel-team@lists.ubuntu.com; Thu, 02 Nov 2017 14:05:32 +0000","from pps.filterd (m0098396.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tvA2E4U3F062551\n\tfor <kernel-team@lists.ubuntu.com>; Thu, 2 Nov 2017 10:05:30 -0400","from e16.ny.us.ibm.com (e16.ny.us.ibm.com [129.33.205.206])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2e038upfmx-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <kernel-team@lists.ubuntu.com>; Thu, 02 Nov 2017 10:05:30 -0400","from localhost\n\tby e16.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <kernel-team@lists.ubuntu.com> from <gwalbon@linux.vnet.ibm.com>; \n\tThu, 2 Nov 2017 10:05:29 -0400","from b01cxnp22035.gho.pok.ibm.com (9.57.198.25)\n\tby e16.ny.us.ibm.com (146.89.104.203) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tThu, 2 Nov 2017 10:05:26 -0400","from b01ledav005.gho.pok.ibm.com (b01ledav005.gho.pok.ibm.com\n\t[9.57.199.110])\n\tby b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP\n\tid vA2E5Qnx49479766; Thu, 2 Nov 2017 14:05:26 GMT","from b01ledav005.gho.pok.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id DA088AE034;\n\tThu,  2 Nov 2017 10:06:12 -0400 (EDT)","from localhost (unknown [9.85.138.60])\n\tby b01ledav005.gho.pok.ibm.com (Postfix) with ESMTP id 534CCAE03B;\n\tThu,  2 Nov 2017 10:06:12 -0400 (EDT)"],"From":"Gustavo Walbon <gwalbon@linux.vnet.ibm.com>","To":"kernel-team@lists.ubuntu.com","Subject":"[Artful][PATCH 12/12] powerpc/perf: Fix IMC initialization crash","Date":"Thu,  2 Nov 2017 12:05:01 -0200","X-Mailer":"git-send-email 2.13.3","In-Reply-To":"<20171102140501.87671-1-gwalbon@linux.vnet.ibm.com>","References":"<20171102140501.87671-1-gwalbon@linux.vnet.ibm.com>","X-TM-AS-GCONF":"00","x-cbid":"17110214-0024-0000-0000-000002EC66E6","X-IBM-SpamModules-Scores":"","X-IBM-SpamModules-Versions":"BY=3.00007997; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000239; SDB=6.00940090; UDB=6.00474019;\n\tIPR=6.00720346; \n\tBA=6.00005666; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00017836;\n\tXFM=3.00000015; UTC=2017-11-02 14:05:27","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17110214-0025-0000-0000-000045EA5291","Message-Id":"<20171102140501.87671-13-gwalbon@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-11-02_05:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tpriorityscore=1501\n\tmalwarescore=0 suspectscore=3 phishscore=0 bulkscore=0 spamscore=0\n\tclxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0\n\tclassifier=spam adjust=0 reason=mlx scancount=1\n\tengine=8.0.1-1707230000\n\tdefinitions=main-1711020178","X-BeenThere":"kernel-team@lists.ubuntu.com","X-Mailman-Version":"2.1.20","Precedence":"list","List-Id":"Kernel team discussions <kernel-team.lists.ubuntu.com>","List-Unsubscribe":"<https://lists.ubuntu.com/mailman/options/kernel-team>,\n\t<mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>","List-Archive":"<https://lists.ubuntu.com/archives/kernel-team>","List-Post":"<mailto:kernel-team@lists.ubuntu.com>","List-Help":"<mailto:kernel-team-request@lists.ubuntu.com?subject=help>","List-Subscribe":"<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n\t<mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"kernel-team-bounces@lists.ubuntu.com","Sender":"\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>"},"content":"From: Anju T Sudhakar <anju@linux.vnet.ibm.com>\n\nBugLink: https://bugs.launchpad.net/bugs/1481347\n\nPanic observed with latest firmware, and upstream kernel:\n\n NIP init_imc_pmu+0x8c/0xcf0\n LR  init_imc_pmu+0x2f8/0xcf0\n Call Trace:\n   init_imc_pmu+0x2c8/0xcf0 (unreliable)\n   opal_imc_counters_probe+0x300/0x400\n   platform_drv_probe+0x64/0x110\n   driver_probe_device+0x3d8/0x580\n   __driver_attach+0x14c/0x1a0\n   bus_for_each_dev+0x8c/0xf0\n   driver_attach+0x34/0x50\n   bus_add_driver+0x298/0x350\n   driver_register+0x9c/0x180\n   __platform_driver_register+0x5c/0x70\n   opal_imc_driver_init+0x2c/0x40\n   do_one_initcall+0x64/0x1d0\n   kernel_init_freeable+0x280/0x374\n   kernel_init+0x24/0x160\n   ret_from_kernel_thread+0x5c/0x74\n\nWhile registering nest imc at init, cpu-hotplug callback\nnest_pmu_cpumask_init() makes an OPAL call to stop the engine. And if\nthe OPAL call fails, imc_common_cpuhp_mem_free() is invoked to cleanup\nmemory and cpuhotplug setup.\n\nBut when cleaning up the attribute group, we are dereferencing the\nattribute element array without checking whether the backing element\nis not NULL. This causes the kernel panic.\n\nAdd a check for the backing element prior to dereferencing the\nattribute element, to handle the failing case gracefully.\n\nSigned-off-by: Anju T Sudhakar <anju@linux.vnet.ibm.com>\nReported-by: Pridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com>\n[mpe: Trim change log]\nSigned-off-by: Michael Ellerman <mpe@ellerman.id.au>\n(cherry-picked from 0d8ba16278ec30a262d931875018abee332f926f)\nSigned-off-by: Gustavo Walbon <gwalbon@linux.vnet.ibm.com>\n---\n arch/powerpc/perf/imc-pmu.c | 3 ++-\n 1 file changed, 2 insertions(+), 1 deletion(-)","diff":"diff --git a/arch/powerpc/perf/imc-pmu.c b/arch/powerpc/perf/imc-pmu.c\nindex 39a0203fd8a5..88126245881b 100644\n--- a/arch/powerpc/perf/imc-pmu.c\n+++ b/arch/powerpc/perf/imc-pmu.c\n@@ -1176,7 +1176,8 @@ static void imc_common_cpuhp_mem_free(struct imc_pmu *pmu_ptr)\n \t}\n \n \t/* Only free the attr_groups which are dynamically allocated  */\n-\tkfree(pmu_ptr->attr_groups[IMC_EVENT_ATTR]->attrs);\n+\tif (pmu_ptr->attr_groups[IMC_EVENT_ATTR])\n+\t\tkfree(pmu_ptr->attr_groups[IMC_EVENT_ATTR]->attrs);\n \tkfree(pmu_ptr->attr_groups[IMC_EVENT_ATTR]);\n \tkfree(pmu_ptr);\n \treturn;\n","prefixes":["Artful","12/12"]}