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 79EA0C6FD1F for ; Wed, 22 Mar 2023 09:01:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0E4256B0075; Wed, 22 Mar 2023 05:01:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 094576B0078; Wed, 22 Mar 2023 05:01:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E78E16B007B; Wed, 22 Mar 2023 05:01:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id D467C6B0075 for ; Wed, 22 Mar 2023 05:01:25 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9C066403A9 for ; Wed, 22 Mar 2023 09:01:25 +0000 (UTC) X-FDA: 80595940530.27.0236853 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf18.hostedemail.com (Postfix) with ESMTP id BDAF81C0012 for ; Wed, 22 Mar 2023 09:01:21 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Ay8h6Z5t; spf=pass (imf18.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679475682; 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:dkim-signature; bh=mFVpzwEJYt2no2NNxFKxaFJZexC0zVUmzATggS8rAKc=; b=wCBx+DR99hz2ercmdOuYutbPioiYAPvBxjK8tm6mN/Dc07cwEei+dOY2gglZ/+/IZ2p5hg VadQpzmIjJX2lRarXv0qAKCNEpwD68KrVP9Ajo4j1Ztg/T95tQS7uwZk0Bq8DTol+QRFGu x4R1vOgh94kmOYnLFf/QI6xT6igDWl4= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Ay8h6Z5t; spf=pass (imf18.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679475682; a=rsa-sha256; cv=none; b=d1sEpfg38FMldPnDEHYZTElYWU0VdSqUYpIOOS8CKcNJc6gPvcEj4sOPxMOb4/n+7QXInN hJyRHp8osqUVlgfd6j4fWUNhkpe1AWK+B2mvVxtHYiIQ2qaKIHIEX+OlmgnSOsirx+73Qm cst4RHFZV3F8UMOTkNwDq5LXmda2eYc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1679475681; h=from:from: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=mFVpzwEJYt2no2NNxFKxaFJZexC0zVUmzATggS8rAKc=; b=Ay8h6Z5tobI1p5foWiJcEI5LSZ214x4rt/RmPiGTFEr+ZskSL7U6Q6g2INuscYwLuRwMGw 3AB4jGK/6JgY5tYchEI9amRrMVMnnNJDHbRz1zvp4OmfOl0+62qpj25sQ0u7QpSWY5JmUO nx4OlyiOG8QBmjvOMwr61vKbTL39Xg4= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-446-3QCAQD9nM_KFwF2YixDrkA-1; Wed, 22 Mar 2023 05:01:19 -0400 X-MC-Unique: 3QCAQD9nM_KFwF2YixDrkA-1 Received: by mail-wr1-f69.google.com with SMTP id b14-20020a05600003ce00b002cfefd8e637so2041710wrg.15 for ; Wed, 22 Mar 2023 02:01:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679475678; h=content-transfer-encoding:in-reply-to:organization:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=mFVpzwEJYt2no2NNxFKxaFJZexC0zVUmzATggS8rAKc=; b=P+eTuxIpOAw65b2EIX8UO2JWqmFIsWxwiwWb5506dfZMvI1yJZTeCJvYN05s/9UPJ5 UQiLuxvQ280b1l5ac+bIBj2eBcBmPEEbnwkw/6rSIKNk/THrCPmX/IomGMSJsTyajwqa F9a4vE+nZ7VYPMyHNaM/wZCC5gQ5d8EqsXlvTG4V8NMcVT8sUkWOQQ2fELeoENY5J7Rb eYzhMO1RBCXVdsYT+jkYQNyuKXcy9OrgzIY9PPih/fRccwhJgMLwOaQdo4qAr4QCQp5X RLhqV7xET9MPS/z8aVL5U44tWechElf6JUwLyR3q+t79B0TYmLtwOz/zNKaMy4ibO/N7 HNuw== X-Gm-Message-State: AO0yUKWZzqJ7wkDmYcVsaIxQKnl8EgpM96QFXLUjfWu47OG2gy3WHHqo MeLvZ1ixB4KlpaC9nDeP2PklknGLxGze3Holr6B8UYi7osovTgWoa8y/qM9b6FLT9Km4/M5SqWT 2ejbGG+nrsFY= X-Received: by 2002:a05:600c:2155:b0:3ed:93de:49ff with SMTP id v21-20020a05600c215500b003ed93de49ffmr4587065wml.0.1679475678539; Wed, 22 Mar 2023 02:01:18 -0700 (PDT) X-Google-Smtp-Source: AK7set/8yN8AH64pyojIF3y/RKbehT7oWGYoqR9SMYxxN3EQ7/UjR+ICmjI1ZsqeI2QMDySSvO224Q== X-Received: by 2002:a05:600c:2155:b0:3ed:93de:49ff with SMTP id v21-20020a05600c215500b003ed93de49ffmr4587041wml.0.1679475678153; Wed, 22 Mar 2023 02:01:18 -0700 (PDT) Received: from [192.168.3.108] (p5b0c68dc.dip0.t-ipconnect.de. [91.12.104.220]) by smtp.gmail.com with ESMTPSA id d17-20020a05600c34d100b003ee443bf0c7sm3505222wmq.16.2023.03.22.02.01.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 22 Mar 2023 02:01:17 -0700 (PDT) Message-ID: <9b531543-9f97-178f-8a97-494322410806@redhat.com> Date: Wed, 22 Mar 2023 10:01:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [PATCH v4 1/4] mm/mlock: return EINVAL if len overflows for mlock/munlock From: David Hildenbrand To: mawupeng , akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, kuleshovmail@gmail.com, aneesh.kumar@linux.ibm.com References: <20230320024739.224850-1-mawupeng1@huawei.com> <20230320024739.224850-2-mawupeng1@huawei.com> <27b9cb5b-0118-f989-80c2-6a143a4232af@redhat.com> <3ef9520c-6713-527a-0214-ac7a8bb2d49c@huawei.com> <6dd844f7-d43b-c744-f295-9f14c68d3928@redhat.com> <8be13253-b4ca-b134-3e85-b4097484bb29@huawei.com> <9583bc53-716d-f2ff-38e7-1dda7e57dd5d@redhat.com> Organization: Red Hat In-Reply-To: <9583bc53-716d-f2ff-38e7-1dda7e57dd5d@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Stat-Signature: hdoboee8sgtrji8g71fejy8rt73dpmjz X-Rspam-User: X-Rspamd-Queue-Id: BDAF81C0012 X-Rspamd-Server: rspam06 X-HE-Tag: 1679475681-479668 X-HE-Meta: U2FsdGVkX1/Z7Bj0KOpcynH5xqpLk94YeN3r2E6uSw2qWUbH5Mj1xvOmlP6tWlAt8p8quPEwK9SKObtppzvrMNqWZEUXdyfAyZyoTGTFo6+rIOxhbKNa26eRz2dXB4nAIaPL/I5Detf+IaqhScskOgz6fvXuu/8SyF0y0bTe6xblKcna26okTaacby45bDtKLzk6FjKD3b0CSDHFxL8/7VWeBL9WW5yJwqpgMFg9/zcI8+B3zAbJA+S9yz+I9lCEOSws3csdiz6X4q3/66hAV2FSbnMJUPSVaW1k1XBo7egjtTdkbtcApnGKw/8zYcMgby8nTBRgbddks5cSre1PmZIY63jwhx2NGOmKB3DJSWl7HqMRvm9bkxKm8n7NUBGfURVwbdKefSF8YCAil52sYc3DP5Uv5qqYVWiDQPTOnGR/xK1Xwn2LgBZv46VN4/7OZGJya0aZY8CFDrhH8eIQa71kHPenpK6T8yCK/ANP4L0HPT8IDxgrpg+jSazarYCIQbX7MecuKOcVcCV1ftel2+l+ZKup1hsgt3R2zArge7fuctC1hKBqjvJpCcGxMxdvZW8Jq6zlrK47BFWvZe8WDjWJbO7+uhz0xyigqoAi/vDAQgnhBh2ftV+Soww9Znn8ElLnIcQfIdRfKUT0neGzRFkZ6fYm7wrlxLby53krqdaFnyFZ1QrP0hMLWtX++25ZwndKyHIWdh560dO41sqxtaPfF0nbQZYl014bNS1TWu/r2uK+fzWakjsO0/vcpOSZ/uBNCERxVji9bnoC9dN6bc4YlgY7QlfNtP91zb/5Bx4pndHegX0G5oBIi5/2CwyFWvG5dMeCHvEUcY9PQxsOBsImbjyWBCCK5rQ+U6t/ZBHuklGDpKCbp+XCTJhsE1jy4SylG5xQkjfAjqn+z/BdT98figrq8KFzDY8Ehn2ACM4ONk1fvWTpwf9YU1TH12ji0lLpQk/Fh1/yUzKIY3D QvJTVWL4 ENWFSGfJpKcwaiw1lQh5h5Ou6WJ1ACrbhM/0eS3LaqZBVDBvYrO5VOaOvwNveh16SMj3YuUOPg2Kuz9SSP3d3+Clk7jMXg5VkCvwJbxo/iUyMp/MmN5q4+hrYC05yznsJG26T5Dk5nTk5yU6vtBpJIcro+YmT7853hR7/zK5GPCdnn7qi1szdjO6mMQV8pVUsg9eFWqEFQnh69HH88pu/6HJj0oOLonQHyShF/a2BRPFVAeMG4FwVTEkpwvJxU9By0EhFbqdWatVyb2KSz2XfFESAvavi17ck1qInyhDR0T4xnzVKu/aBj4FkV6w4z4eVtmYN0rMHSXzgdZfIyBnZGRz+eP4bIPHTAVASpi25cOi3lcTbvGalUI/tRlKRYdACYbpDlroyjZKmS+GM4WnpkyJAUZrQaoe0uL1CgqVVJ1irPnLNtRsElN6Erg== 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 22.03.23 09:54, David Hildenbrand wrote: > On 22.03.23 03:14, mawupeng wrote: >> >> >> On 2023/3/21 22:19, David Hildenbrand wrote: >>> On 21.03.23 08:44, mawupeng wrote: >>>> >>>> >>>> On 2023/3/20 18:54, David Hildenbrand wrote: >>>>> On 20.03.23 03:47, Wupeng Ma wrote: >>>>>> From: Ma Wupeng >>>>>> >>>>>> While testing mlock, we have a problem if the len of mlock is ULONG_MAX. >>>>>> The return value of mlock is zero. But nothing will be locked since the >>>>>> len in do_mlock overflows to zero due to the following code in mlock: >>>>>> >>>>>>     len = PAGE_ALIGN(len + (offset_in_page(start))); >>>>>> >>>>>> The same problem happens in munlock. >>>>>> >>>>>> Add new check and return -EINVAL to fix this overflowing scenarios since >>>>>> they are absolutely wrong. >>>>> >>>>> Thinking again, wouldn't we reject mlock(0, ULONG_MAX) now as well? >>>> >>>> mlock will return 0 if len is zero which is the same w/o this patchset. >>>> Here is the calltrace if len is zero. >>>> >>>> mlock(len == 0) >>>>     do_mlock(len == 0) >>>>         if (!len) >>>>             return 0 >>>> >>> >>> I was asking about addr=0, len=ULONG_MAX. >>> >>> IIUC, that used to work but could now fail? I haven't played with it, though. >> >> Thanks for reviewing. >> >> Previous for add = 0 and len == ULONG_MAX, mlock will return ok(0) since len overflows to zero. >> IFAICT, this is not right since mlock do noting(lock nothing) and return ok(0). >> >> With this patch, for the same situation, mlock can return EINVAL as expected. > > Quoting the man page: > > "EINVAL (mlock(), mlock2(), and munlock()) The result of the addition > addr+len was less than addr (e.g., the addition may have resulted in an > overflow)." > > ULONG_MAX+0 = ULONG_MAX > > There is no overflow expected. The proper way to implement it would be > to handle that case and not fail with EINVAL. > > At least that would be expected when reading the man page. > As a side note, I agree that failing with EINVAL is better than doing noting (mlocking nothing). But I am not sure what we are expected to do in that case ... the man page is a bit vague on that. -- Thanks, David / dhildenb