Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3880815ybl; Mon, 27 Jan 2020 12:11:01 -0800 (PST) X-Google-Smtp-Source: APXvYqzuKoUy9Tva+53LUN38GhhihODUvBLhedvt9B5sJTWTG11B/LsXsxt+jFrEJaGF4PIp/IU4 X-Received: by 2002:a05:6830:18c4:: with SMTP id v4mr13207897ote.265.1580155861529; Mon, 27 Jan 2020 12:11:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580155861; cv=none; d=google.com; s=arc-20160816; b=FO0XFcmnL6xxEMC3jr1UgUORbqFf9yrbcEfHzae2MARwJ18NHhp8rTAgkZuGcj4Zqz BzfERU6gyWuBfHSgapRdeRnyMd0oJCFoGgVpuGmra/BNENasVQrCJbk5cm+4TwMmli+/ y1n+IFlNJKK2SugNaLAyxgwTwn9+GJ9O1fqE2mGUTgDl5vyhBxAAo13iasyrboR7PW51 FSCBZonepUyOD9lwD54EB3EOzsRUy7DkOZiAo8/II9aFYeUcSuM4a0aObgZ9PR8J1P4h JmNh0COs6RwUrqRRWnF3a1bWz0go08yKOy/oQoniuaRxmuA82dLwrJKmC8lF/vQXW7XL O4RQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=4lb+jzZzx5qJHMGNgRUPuA1LNn2A4BkpILufYlnmfe0=; b=V+XNM2nl+FMNp5/xifqACfFvPdOnjeIo9ZH5//AgArBzE6H4T59HFACEwLM02oJuDg rH7FfGgLhf5GtXvBvLeyFQvtzKg9cOyz70ihSmi4jfMKYrG3QYWingcENtgxDBvfiTsX jLI1cRn/KxFigwujVwBF1CNqbhNqNfGz7RNRe/JlcetnIH58rU5OD/wdhf7ImvTGiPyF ChLFfK0XNIJwESnVgV0fh7Q5SERA1owe7obuDpmrhaNRF0TU2UXwgpdnSGG78/LE94jB vKoOnkzfHNg7TQ7pzGnxVRYYmPPuSfF43kJQ0fAgLjiOm3V/q4D3wSVkVf1jSWNn54k2 dSOA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p11si7554146ota.300.2020.01.27.12.10.48; Mon, 27 Jan 2020 12:11:01 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726267AbgA0UIr (ORCPT + 99 others); Mon, 27 Jan 2020 15:08:47 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:61278 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725893AbgA0UIq (ORCPT ); Mon, 27 Jan 2020 15:08:46 -0500 Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00RK6JDY123466; Mon, 27 Jan 2020 15:08:42 -0500 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 2xrfej6b3d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jan 2020 15:08:42 -0500 Received: from m0098393.ppops.net (m0098393.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 00RK7wCv128893; Mon, 27 Jan 2020 15:08:42 -0500 Received: from ppma03wdc.us.ibm.com (ba.79.3fa9.ip4.static.sl-reverse.com [169.63.121.186]) by mx0a-001b2d01.pphosted.com with ESMTP id 2xrfej6b2q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jan 2020 15:08:42 -0500 Received: from pps.filterd (ppma03wdc.us.ibm.com [127.0.0.1]) by ppma03wdc.us.ibm.com (8.16.0.27/8.16.0.27) with SMTP id 00RK6bCv031284; Mon, 27 Jan 2020 20:08:40 GMT Received: from b03cxnp07029.gho.boulder.ibm.com (b03cxnp07029.gho.boulder.ibm.com [9.17.130.16]) by ppma03wdc.us.ibm.com with ESMTP id 2xrda63tdy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 27 Jan 2020 20:08:40 +0000 Received: from b03ledav005.gho.boulder.ibm.com (b03ledav005.gho.boulder.ibm.com [9.17.130.236]) by b03cxnp07029.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 00RK8dn242992052 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 27 Jan 2020 20:08:40 GMT Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DC441BE051; Mon, 27 Jan 2020 20:08:39 +0000 (GMT) Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8A549BE053; Mon, 27 Jan 2020 20:08:39 +0000 (GMT) Received: from rascal.austin.ibm.com (unknown [9.41.179.32]) by b03ledav005.gho.boulder.ibm.com (Postfix) with ESMTP; Mon, 27 Jan 2020 20:08:39 +0000 (GMT) From: Scott Cheloha To: linux-kernel@vger.kernel.org, Michael Ellerman Cc: Nathan Fontenont , Nathan Lynch , Rick Lindley Subject: [PATCH] pseries/hotplug-memory: remove dlpar_memory_{add,remove}_by_index() functions Date: Mon, 27 Jan 2020 14:08:39 -0600 Message-Id: <20200127200839.12441-1-cheloha@linux.ibm.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.572 definitions=2020-01-27_07:2020-01-24,2020-01-27 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 spamscore=0 bulkscore=0 clxscore=1011 mlxscore=0 mlxlogscore=999 suspectscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1911200001 definitions=main-2001270160 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The dlpar_memory_{add,remove}_by_index() functions are just special cases of their dlpar_memory_{add,remove}_by_ic() counterparts where the LMB count is 1. There is no need to maintain separate code. In addition, there is a NULL dereference bug in the *_by_index() functions if the LMB in question is not found. This bug is not present in their *_by_ic() counterparts. Signed-off-by: Scott Cheloha --- .../platforms/pseries/hotplug-memory.c | 74 +------------------ 1 file changed, 2 insertions(+), 72 deletions(-) diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c index c126b94d1943..df7854c5c1f2 100644 --- a/arch/powerpc/platforms/pseries/hotplug-memory.c +++ b/arch/powerpc/platforms/pseries/hotplug-memory.c @@ -473,38 +473,6 @@ static int dlpar_memory_remove_by_count(u32 lmbs_to_remove) return rc; } -static int dlpar_memory_remove_by_index(u32 drc_index) -{ - struct drmem_lmb *lmb; - int lmb_found; - int rc; - - pr_info("Attempting to hot-remove LMB, drc index %x\n", drc_index); - - lmb_found = 0; - for_each_drmem_lmb(lmb) { - if (lmb->drc_index == drc_index) { - lmb_found = 1; - rc = dlpar_remove_lmb(lmb); - if (!rc) - dlpar_release_drc(lmb->drc_index); - - break; - } - } - - if (!lmb_found) - rc = -EINVAL; - - if (rc) - pr_info("Failed to hot-remove memory at %llx\n", - lmb->base_addr); - else - pr_info("Memory at %llx was hot-removed\n", lmb->base_addr); - - return rc; -} - static int dlpar_memory_readd_by_index(u32 drc_index) { struct drmem_lmb *lmb; @@ -631,10 +599,6 @@ static int dlpar_memory_remove_by_count(u32 lmbs_to_remove) { return -EOPNOTSUPP; } -static int dlpar_memory_remove_by_index(u32 drc_index) -{ - return -EOPNOTSUPP; -} static int dlpar_memory_readd_by_index(u32 drc_index) { return -EOPNOTSUPP; @@ -762,40 +726,6 @@ static int dlpar_memory_add_by_count(u32 lmbs_to_add) return rc; } -static int dlpar_memory_add_by_index(u32 drc_index) -{ - struct drmem_lmb *lmb; - int rc, lmb_found; - - pr_info("Attempting to hot-add LMB, drc index %x\n", drc_index); - - lmb_found = 0; - for_each_drmem_lmb(lmb) { - if (lmb->drc_index == drc_index) { - lmb_found = 1; - rc = dlpar_acquire_drc(lmb->drc_index); - if (!rc) { - rc = dlpar_add_lmb(lmb); - if (rc) - dlpar_release_drc(lmb->drc_index); - } - - break; - } - } - - if (!lmb_found) - rc = -EINVAL; - - if (rc) - pr_info("Failed to hot-add memory, drc index %x\n", drc_index); - else - pr_info("Memory at %llx (drc index %x) was hot-added\n", - lmb->base_addr, drc_index); - - return rc; -} - static int dlpar_memory_add_by_ic(u32 lmbs_to_add, u32 drc_index) { struct drmem_lmb *lmb, *start_lmb, *end_lmb; @@ -887,7 +817,7 @@ int dlpar_memory(struct pseries_hp_errorlog *hp_elog) break; case PSERIES_HP_ELOG_ID_DRC_INDEX: drc_index = hp_elog->_drc_u.drc_index; - rc = dlpar_memory_add_by_index(drc_index); + rc = dlpar_memory_add_by_ic(1, drc_index); break; case PSERIES_HP_ELOG_ID_DRC_IC: count = hp_elog->_drc_u.ic.count; @@ -908,7 +838,7 @@ int dlpar_memory(struct pseries_hp_errorlog *hp_elog) break; case PSERIES_HP_ELOG_ID_DRC_INDEX: drc_index = hp_elog->_drc_u.drc_index; - rc = dlpar_memory_remove_by_index(drc_index); + rc = dlpar_memory_remove_by_ic(1, drc_index); break; case PSERIES_HP_ELOG_ID_DRC_IC: count = hp_elog->_drc_u.ic.count; -- 2.24.1