From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 045FBC83F10 for ; Wed, 30 Aug 2023 03:17:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4F2C2680002; Tue, 29 Aug 2023 23:17:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 47BAD8E000B; Tue, 29 Aug 2023 23:17:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3431D680002; Tue, 29 Aug 2023 23:17:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 20A068E000B for ; Tue, 29 Aug 2023 23:17:21 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CFC72A0416 for ; Wed, 30 Aug 2023 03:17:20 +0000 (UTC) X-FDA: 81179310240.20.B6EF7E1 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf01.hostedemail.com (Postfix) with ESMTP id 79E094000C for ; Wed, 30 Aug 2023 03:17:18 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf01.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693365439; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=t/qEmNGMSh1JTS+SQ0RKCKnW73+lbLMG5eaD0VXRs+E=; b=J30wngFPK9w3KbZBTkD54i8NJSbbjIA2kMIrgc8HcqLkshxwOeH2bM68QXbDR96eJb1o+R uldKORWbaN4Ol4KEZm5pqTXRysGfGBFgpFMVQ/8tE8UoySGhzbZebJTyjBYxZDRPQvYpvd 3rkf2wZSSX5b98IyDSyIu06VG3PMIv8= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf01.hostedemail.com: domain of anshuman.khandual@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=anshuman.khandual@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693365439; a=rsa-sha256; cv=none; b=2HuOrLtYE0EwkCWOewt5wRr4zL2hXK4JO1XeEYPtaLniKmWj84UptXSYYQuoAeyNR4KJFv Yxt9ArAI/oaPudd40xO4IFRA4e75k761cr+F5sxNlHOZKi4H7Tw7UgReMS6R+MXe0PZe0H HIJciXFnOLvNa70iP2NLuuz43gYHMS8= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CE4162F4; Tue, 29 Aug 2023 20:17:56 -0700 (PDT) Received: from [10.163.58.191] (unknown [10.163.58.191]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D535F3F740; Tue, 29 Aug 2023 20:17:15 -0700 (PDT) Message-ID: Date: Wed, 30 Aug 2023 08:47:12 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH] mm/mmap: Tighten up cmdline_parse_stack_guard_gap() Content-Language: en-US To: Matthew Wilcox Cc: linux-mm@kvack.org, Andrew Morton , linux-kernel@vger.kernel.org References: <20230828052212.748872-1-anshuman.khandual@arm.com> From: Anshuman Khandual In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: eyz1f7e5i15hje4stjd3i6c1zaw6i7dc X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 79E094000C X-HE-Tag: 1693365438-129782 X-HE-Meta: U2FsdGVkX18l2ipQXpWnmhRfDfRanf6+8bUQphBuxq46U7At0c+kAlpwBNhanNj+9POhFFzX9nrEMIBzWuuAuJGMjkJbT+6K3ABIPlfSZzsZhqaGatdbJEFbErOm32NZOwFVzs2vIVn8xKXQgx3xXZqwhXsFTk9DycDfeG/3U7YGeyLGWJmGV75HgVQ6p5lnsF79qzUXChHWQsAA/mJnycvUo5nHgMfAZ3SLFVme/M/SUzN0qamb2xpS9dk2gcuLeP9ebxamrt0WYskQufYngCltMUxwBnT6LHt0ypEaT4Zj/pvZeZ4vqkyaU6Rs1kJTFguUb7KXs+lkLLfiyWh93ay6o1fSZmCzPPkhTp6ti2Q7nYkgGgdKplz++EXCQpQnK52YrsNOtJAxYCRyn3kx7VgLgZa9pWNhOxvxk3P8Vf6PChmxEcHYxBgECI2zB9/WlcQZSoMCpf3HvlCoLaqA7jG8ZUQ22/XbzhuARcPdgF7yqN4Z5CMQp0A00fWicvurt3HcQErHmetDcJddAJfhDbHAp9wzLR84HCFgTF8x6necRBp7q0EoBNoLIaRJruZ0JDvRDg1075vYGkCHl9ve5lgeWfYkINmkPxwK348SQO7XbH2e8Oj5QWX8g9ADq2GAbPuWNPso21EZ1GRksnGfBNVoRjVRL9GehgHme+5MPF1BoV2CACXbUGUMROqMGz0ZfJGMpSs/7gUrc4WsXJpPQa1yGqEEYdY5YMr6vrDYj5vAGAhUPL8UXP99OQJgekgHOSvpeAO/8ueLhNG5Q5d294ft5aKVtlGX2RjSMWm2WWKgKWqZhP6DCirswV4cYsoteWf5cj/1un9IryF3M4DXAO1TvjcZpPvedtfoZGw7RpmrpgDoLZUhwLrqM7J0KaPUfhJwORsmw496PxFcKrjDch2jw0iTfuOOpU/E4k79aGgPC/DN1S5oojeT3L1+VqrpW/k73x0Q3RdBs3ecNeU +0j/nAKl DmEi7T/4s7ZKw9hnnIN6Z5CkYUcDzuFm9zrC5cBJBobsMIDa7F0HetGLElHyW77PB8KCKZkKV9mSNiYacOiTPvjYjQnGQ1wAoydCTGs0016E/bvyx1fb/XWWYoQwpzH7LZlJgyBX/5wZZj9idfzPGQbB/Tg== 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: On 8/29/23 18:21, Matthew Wilcox wrote: > On Mon, Aug 28, 2023 at 10:52:12AM +0530, Anshuman Khandual wrote: >> -static int __init cmdline_parse_stack_guard_gap(char *p) >> +static int __init cmdline_parse_stack_guard_gap(char *str) >> { >> unsigned long val; >> - char *endptr; >> >> - val = simple_strtoul(p, &endptr, 10); >> - if (!*endptr) >> - stack_guard_gap = val << PAGE_SHIFT; >> + if (!str) >> + return 0; > > Please explain how this function can be called with a NULL pointer. This is an additional check just in case. We have similar constructs in the following __setup() functions as well. __setup("hashdist=", set_hashdist) __setup("numa_balancing=", setup_numabalancing) __setup("transparent_hugepage=", setup_transparent_hugepage) Also it might be a better to warn, when returning unhandled with 0 like in those scenarios. > >> - return 1; >> + val = simple_strtoul(str, &str, 10); >> + if (!*str && val) { >> + stack_guard_gap = val << PAGE_SHIFT; >> + return 1; >> + } >> + return 0; >> } > > Now you've removed the abillity for someone to say stack_guard_gap=0, > which seems potentially useful. In that case, should the following two scenarios be differentiated ? * stack_guard_gap= - Retains DEFAULT_STACK_GUARD_GAP * stack_guard_gap=0 - Changes to 0 pages