From patchwork Wed Jan 16 06:51:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 10765457 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 73DB61390 for ; Wed, 16 Jan 2019 06:51:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5CD232A2C0 for ; Wed, 16 Jan 2019 06:51:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4D8432CE45; Wed, 16 Jan 2019 06:51:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E1A782A2C0 for ; Wed, 16 Jan 2019 06:51:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D53CE8E0004; Wed, 16 Jan 2019 01:51:32 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id CD9CC8E0002; Wed, 16 Jan 2019 01:51:32 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB3B98E0004; Wed, 16 Jan 2019 01:51:32 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by kanga.kvack.org (Postfix) with ESMTP id 73CD98E0002 for ; Wed, 16 Jan 2019 01:51:32 -0500 (EST) Received: by mail-pl1-f199.google.com with SMTP id t10so3245698plo.13 for ; Tue, 15 Jan 2019 22:51:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id; bh=C6GSANTdNSCUkC5x2ZelYWN693hKgmokaaCkhroHDIA=; b=NOypXnhl9hLajxr7jzduu4EeDSHvfoLVCso+iNDcqv97chFju4x7nb7auDhgVahpKm N3REBcKRTAcce9fhG0AoK8WmGeIDINGoeyf/g/f9XM3gudlqiMMCMTOJ5RVcciRvpNzJ PvedzZ8xgZu2qLPfcLieY8vnp0E6/oFa+m05CZfp+gM9ZFDNrvzZLlX4oAZ5mTOd13Vg nWW99N2tr7Xf8fxQAnk7P5zPJEipJNOS499SeXd4F2i+9f6P6dbdaILHLFh+wIY+tdWm mAA8U31m3DyPB0+p5vs2Iv96UJm69zE/Utl+VnBExka/QKOl0pKCc90OgjjOat3Rhv4n nxgQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of rppt@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=rppt@linux.ibm.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com X-Gm-Message-State: AJcUukcbHGpRp29XmmoeB8+idzffhYkVXaRW4M0pzqpyGQaMkCO/JROf F0/UFmsvjy7fxLGI7theZ6imqSWVBSg5VedfwN/F+wF4owLL23zxleo3FkNqpyPZDdaITUIUbEN jUYOlTSG6MTobNwi299vPmQUl0VfbZ0c1TpB20HBQt1wUPFaQpPmkTbZRyWjs4l+YbQ== X-Received: by 2002:a63:b81a:: with SMTP id p26mr7529697pge.433.1547621492057; Tue, 15 Jan 2019 22:51:32 -0800 (PST) X-Google-Smtp-Source: ALg8bN4o6RMHCjqoA5/RLdn/kOJxdEA2A3jgLf9Hvse04gbGxQ3gezzrjzu36RllhTwSAi4xK8JI X-Received: by 2002:a63:b81a:: with SMTP id p26mr7529661pge.433.1547621491247; Tue, 15 Jan 2019 22:51:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547621491; cv=none; d=google.com; s=arc-20160816; b=sFBd1kF9/zoCdmFQbrQEenpG1hA8pwfSbIzvRqITw8+hyR9RczzV1Mr31uB60cXAV2 LIg/rxBrLBOfmWoMFGgSCiQXZX/sa/gY2XrDVGbN+Yo8t9uWcu37JNKINgCktDBMIcwp 17dy7Pzs3HxjvxFT+zefsBX2iLn42GpXvUvi0hy2zWfHwkYJ2JRTGWPnHFuPGaGfg4vw 9Yujg/GYijoAVUvDb+bpIktttOfJ112oW20LNaIg/xsGjYQEiIr7FPuY9L8KXeI20DdU 4yGQcMcI+4Wr1tkNw9qMu0qZESHDnniO7NS1PRjjXcLKzf27OKSNbHBsfK5lyIa1loPh NZGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from; bh=C6GSANTdNSCUkC5x2ZelYWN693hKgmokaaCkhroHDIA=; b=KD/3fVF9bGICZuooL9zVi+i6CV4kaMgf4wnxVr4SNuBp5bpFYv6J/g1u63GyhwsCrs xtW3BDgLdXxKKb4JsahGPj7xMcv5qiE+OHLXTJ5MO+nK+0yz4q5w/vghLNYRnc0SkutN Oqb5P0uhIZ7rBySswctO60dH7rAeRN6xCVWRz/lfZu2Boao5YjTwZhQcNr13B3crn16c zYrKfA0a8YB0cUY7IUcIim857/8yR+qeObCb+Nr3BiXHP9bsWtD+jK2RhajqLhpCd1Nr AdhoDWSZB3WaTAyhM/n0HHYwjUcMUqbR46IeYWEnYSQfPdO/2FQfiZn44Q3e6DqFt3aG mELg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of rppt@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=rppt@linux.ibm.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com. [148.163.156.1]) by mx.google.com with ESMTPS id d23si5330170pgj.558.2019.01.15.22.51.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 15 Jan 2019 22:51:31 -0800 (PST) Received-SPF: pass (google.com: domain of rppt@linux.ibm.com designates 148.163.156.1 as permitted sender) client-ip=148.163.156.1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of rppt@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=rppt@linux.ibm.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id x0G6iIZV136406 for ; Wed, 16 Jan 2019 01:51:30 -0500 Received: from e06smtp04.uk.ibm.com (e06smtp04.uk.ibm.com [195.75.94.100]) by mx0a-001b2d01.pphosted.com with ESMTP id 2q1xdckve5-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 16 Jan 2019 01:51:30 -0500 Received: from localhost by e06smtp04.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 16 Jan 2019 06:51:28 -0000 Received: from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198) by e06smtp04.uk.ibm.com (192.168.101.134) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Wed, 16 Jan 2019 06:51:25 -0000 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x0G6pOlp1114580 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 16 Jan 2019 06:51:24 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BCC3CA4040; Wed, 16 Jan 2019 06:51:24 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 65FDEA4051; Wed, 16 Jan 2019 06:51:23 +0000 (GMT) Received: from rapoport-lnx (unknown [9.148.8.226]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTPS; Wed, 16 Jan 2019 06:51:23 +0000 (GMT) Received: by rapoport-lnx (sSMTP sendmail emulation); Wed, 16 Jan 2019 08:51:22 +0200 From: Mike Rapoport To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Rapoport Subject: [PATCH] mm/page_alloc: check return value of memblock_alloc_node_nopanic() Date: Wed, 16 Jan 2019 08:51:21 +0200 X-Mailer: git-send-email 2.7.4 X-TM-AS-GCONF: 00 x-cbid: 19011606-0016-0000-0000-0000024616F4 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19011606-0017-0000-0000-000032A031BE Message-Id: <1547621481-8374-1-git-send-email-rppt@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-01-16_02:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=871 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901160057 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP There are two early memory allocations that use memblock_alloc_node_nopanic() and do not check its return value. While this happens very early during boot and chances that the allocation will fail are diminishing, it is still worth to have proper checks for the allocation errors. Signed-off-by: Mike Rapoport Reviewed-by: William Kucharski --- mm/page_alloc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d295c9bc01a8..7801accbe02a 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6376,10 +6376,14 @@ static void __ref setup_usemap(struct pglist_data *pgdat, { unsigned long usemapsize = usemap_size(zone_start_pfn, zonesize); zone->pageblock_flags = NULL; - if (usemapsize) + if (usemapsize) { zone->pageblock_flags = memblock_alloc_node_nopanic(usemapsize, pgdat->node_id); + if (!zone->pageblock_flags) + panic("Failed to allocate %ld bytes for zone %s pageblock flags\n", + usemapsize, zone->name); + } } #else static inline void setup_usemap(struct pglist_data *pgdat, struct zone *zone, @@ -6609,6 +6613,9 @@ static void __ref alloc_node_mem_map(struct pglist_data *pgdat) end = ALIGN(end, MAX_ORDER_NR_PAGES); size = (end - start) * sizeof(struct page); map = memblock_alloc_node_nopanic(size, pgdat->node_id); + if (!map) + panic("Failed to allocate %ld bytes for memory map\n", + size); pgdat->node_mem_map = map + offset; } pr_debug("%s: node %d, pgdat %08lx, node_mem_map %08lx\n",