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 4498DC433EF for ; Wed, 13 Apr 2022 03:28:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 870126B0072; Tue, 12 Apr 2022 23:28:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 81F9B6B0073; Tue, 12 Apr 2022 23:28:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6727A6B0074; Tue, 12 Apr 2022 23:28:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0153.hostedemail.com [216.40.44.153]) by kanga.kvack.org (Postfix) with ESMTP id 5606F6B0072 for ; Tue, 12 Apr 2022 23:28:15 -0400 (EDT) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 02731183E6C96 for ; Wed, 13 Apr 2022 03:28:14 +0000 (UTC) X-FDA: 79350422550.21.9B68963 Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2069.outbound.protection.outlook.com [40.107.255.69]) by imf25.hostedemail.com (Postfix) with ESMTP id 11B9CA0007 for ; Wed, 13 Apr 2022 03:28:12 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n3lCP7U17wN3B0Vqj2vdA3BDEaQXmIDfd7SIk3EMh1vyojTnHXudSI7/63LvzGs4JYOppqUtQEb6E/ULAOnasdXNqE0jlwVP/WlIqhi+qLPCT9hDp1j19hm7tS96TaSUt4EbBIDQxGMEL07SW/eI1ociPJsZOvCQ+ed5372XWy2f6mm0wNmsQPGFfXDsBkUC3Ztll9pFE0GeBEJ3ZygE2pvRnlsSi5ztS/Au7elxN68SVgXbFNERQ/SU0rbadHkWwQCBGbDGjAl3S50SSelsHtR22+jtMHlFNyUggDhloGU5DQJm35QiuhZohlc8fHetZ20aJjDHagVLsSAwogMkPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6TYkKW+CNXBLjWigEYKKjPgTdB/1C4yWK1MbqSgEaqo=; b=WgPWs8khhHqLmfMMraHLLZ1hzFO8QT8mNhcSnnSzP/eXG/3Jx5orKss6ivAg5RM/YnMdsKLPddzMCoGN4zhOEg8ICb/LDlDa7kZqFhHsnFYS8jULNSdYcONe74kJ99NZ5n2/KHtsCLcQBT02m0akaLKCo3BMKEFnAenZSnwXVS5DCZpjtOUkX6oTEUCAih8jKNj8Y3kRCYAwKi8jr9TBA1Mw3nePEm5jmUhWpYh3SCewH0AEQoDO1Zc0Y8nhjGv9YgCjcfNRUbJcTSWQP2mHTbzlpk9jZ4lOymOIsGCVJY7AOAuCvRiaaFf7bRWlG4z1kh5z2W7aL1MaRKjQrusL6A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oppo.com; dmarc=pass action=none header.from=oppo.com; dkim=pass header.d=oppo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oppo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6TYkKW+CNXBLjWigEYKKjPgTdB/1C4yWK1MbqSgEaqo=; b=sUToeh0Y8grfZlRjnB/nK0niom6iAoYSqsn8EzN9a8p2UqXKoXzPlmKxfMGFLtIfqUcYezxiw/L/9LwoQjuyR25gW99EOEl4fa7Bu+yfh5IFZ6wZE7k2h9FszCgr3/MkoGD1OjW4b7//REcH2ZhAk4UUGNKJZysdlVaX/bpaLBQ= Received: from TY2PR02MB4431.apcprd02.prod.outlook.com (2603:1096:404:8003::13) by HK0PR02MB3107.apcprd02.prod.outlook.com (2603:1096:203:63::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.30; Wed, 13 Apr 2022 03:28:07 +0000 Received: from TY2PR02MB4431.apcprd02.prod.outlook.com ([fe80::8179:176f:a62e:c998]) by TY2PR02MB4431.apcprd02.prod.outlook.com ([fe80::8179:176f:a62e:c998%5]) with mapi id 15.20.5164.020; Wed, 13 Apr 2022 03:28:07 +0000 Date: Wed, 13 Apr 2022 11:28:05 +0800 From: "lipeifeng@oppo.com" To: akpm Cc: michel , hughd , linux-mm , linux-kernel , "Barry Song" <21cnbao@gmail.com>, zhangshiming Subject: Re: Re: [PATCH] mm: fix align-error when get_addr in unmapped_area_topdown References: <20220412081014.399-1-lipeifeng@oppo.com>, <20220412142238.93e36cc4095e4e0b362db348@linux-foundation.org> X-GUID: E2470FE6-2FF1-4AB7-A0B8-A0C50D3F9265 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Message-ID: <2022041310411426044561@oppo.com> Content-Type: multipart/alternative; boundary="----=_001_NextPart202423771415_=----" X-ClientProxiedBy: HK0PR03CA0105.apcprd03.prod.outlook.com (2603:1096:203:b0::21) To TY2PR02MB4431.apcprd02.prod.outlook.com (2603:1096:404:8003::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8338d4b8-4582-44ea-cd10-08da1cfda011 X-MS-TrafficTypeDiagnostic: HK0PR02MB3107:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bK7+uS+LJMRQSwUHmPgRfjbhnSV3pDL4OyEhjiPnojUCA8VdcLduVwWp7RS8cj4jjXbsuOgqUsLeLqHITf551PvU2atnQH+xbTYaHH9CwmdmE6iDrjncOviCVv3s0+xEQR6IY9w1cSGZhykqQf5Gi4a9QXsncOyE4ypuqLxZrIVf63bjNAO8sXorQsBdAzLcsYsuEWGzkJxWIjC93jCHxwMo27V/g7OolpAY6dyX6lga4A+cbk3gJw6cyPIehFp0Y7gib/TvOFJ/lkl6Lu0C+ion7E5PmB1pgBPmKWU2zlqqnJlWNs+DH+HUiVY8DRnEbgNUvZHDl8Lbdex+NmJJ5omn1Z47+Dme78bncTj8HX8RX2kMI6yOMjHyayliHvECBILUTl3RRW8FEfR/Zi5FbLeN5lojh2HiiEiRBfUCBDQ8mRRlVILJnQQVWVuP5xQczSs78CYf5k+mFE6eG07euewlFmCu+bqbkTk/QYCbAGdZoc0zOSY7mBqxlYegZ7+YGYzonQoDACcdrmxCPAEhYnZhCh7mkpmw1Tl6rvSMexchYSUxC9h7tsrvW3jomaYsT7WF0JAiLwhq3r3+NP2OiIxLBy45n4xOgDJO1KK6pPLX1Qv5l0+URzqmIuue0zP7ViXcT7QrW6KLH4Q1Gb1bmQYum2zPZOG5sRfe50FHTnzdqpxtoFszk2u7p81TkI10Pf5qc5lCmRKTgpWngSfnIw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY2PR02MB4431.apcprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(2906002)(2616005)(4326008)(66476007)(66556008)(6512007)(5660300002)(36756003)(8936002)(37786003)(66946007)(54906003)(98106002)(6486002)(6916009)(8676002)(508600001)(83380400001)(1076003)(186003)(26005)(6506007)(53546011)(52116002)(33964004)(316002)(38350700002)(86362001)(38100700002)(58226001)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OHYyaUR2SUg2ZVNVaC93YlI5eGdwdXRyVWFHMmJ3aUpMRk1URFZMMFZiNWs2?= =?utf-8?B?YVBVaURCWTV4a1ZNR001ZFA1R3k2U3NtQ212bmdicFVSNkh5VUNSNnN4TDJZ?= =?utf-8?B?Q1NTSmcrUWZPaGsxVHNOWXgyOE9KRmc0WmVCTFUrME9zNjZROVJ6L3VKSmMr?= =?utf-8?B?QkRiQkVuemkzbG53VUhnY3RCUVZiVFAzRzlZUjNkaThZeFhlaTVWMTlTOWNa?= =?utf-8?B?UFpIZktydXpuY090UGhVWEoyZHhPTmF5eVlBMjN1OTlBaG5xZGxCZWVoOVFt?= =?utf-8?B?LzJPaG1zVmx2ZEk5QS9pSFpManB4Y01vOEh1TVlncy9XbHpvc1NscE9mK2tn?= =?utf-8?B?Rkh2QUhYc0ZEWm5MNStmdkh4c2xJcDFuV24va2pQd2RzU3VPMjMrN1hDOFFv?= =?utf-8?B?dll6QURjaHNwbW5vcSt4ajVWazdLMXl0U09VTEovV3M3bXBTQlY5RVVVZkFR?= =?utf-8?B?U3ZUc0x1T2x1NHBMUHl1U2FuNFdOZUc5V2tONkhBaksyMGFZNXltQTdjWlFl?= =?utf-8?B?VCtDME04YmJ1cUcvY3pyWmkxb00rZzkrYzlKUnpyZFpkUjgrc3UwMC92enNF?= =?utf-8?B?V0JJYkRwVGUydWhGVVB1a1NHd3dFTWdhSjlpQ0YvdmVtT2tZY3FvMGpjMkpo?= =?utf-8?B?MWlpTE9sVDkrOFBXMXNCS1VuMXRJM2F0aTlCUVRUR2JBSnZnSWhHd29Pd3Iw?= =?utf-8?B?SHZZcmVaYkM5azdlTElBNytvTGg5QlFDbm83TXpudXUxMGthb3RNWGZsTHFx?= =?utf-8?B?WFBLSUtGWDkwc0NwdmxXOXZqV3RDWU16THRkMkZscTRPL2JuVlErbG53RGY5?= =?utf-8?B?SkduUjA0cCsxSk1jK1Q3VEs1SlRmQ0hKOUpGYlBtc1V2Snp6S2JGKzVUd1Vy?= =?utf-8?B?U3gxdmI4MTBRMFZmemV4ZE8zVzRIRHRLODdXbW5SV3BWTDFIdGV1OW5MV3Zk?= =?utf-8?B?Qi9WUkRFcWNyVWJmWWlXckwzN3FEN2o1bVllSUd3TWFxSkg2dzJ6UytJanZG?= =?utf-8?B?OHZKSjBNbVZ4ZXI0clZzcGFmUGVSYk1XVDdQWWZ4MW5qdEl0b1FGaFVHTlhZ?= =?utf-8?B?RVMxRDNCcmtxeWV4NTdsdGk4dHZ3RDd5TWdlcDJETDhieEJjTVBVMG5VMTNt?= =?utf-8?B?T29JQXc0ckM3YWkrSHM3aTdWclRsT3FtUTROd29OM0RSbDFsR05rUG5sNUp4?= =?utf-8?B?U2hudXo3VlQ5ZGgzVkdSTVNqYVZDTEFtOWJ0RWZ6bm5TLzd4OGgrQlFuMnRh?= =?utf-8?B?RGJkSVM5N1V1SkczMFkwY1RraTZ4SC9CUEJsdHpONEIwbG9iQlJ0T2Rxc2J4?= =?utf-8?B?eUJzQWhMcEQ1MVc0enVyQWRhQzlBNjJabmViU05LYzJFVE5oOHJVemZ0MTBk?= =?utf-8?B?ZnI0cFNFZlFocEpmcjdhNno1b1h4TE1YYkdITG1sZFpLa1B4T01PQWJad2k0?= =?utf-8?B?dHc0YXNncnhRbm1Fd216TnpoZnlCbGdIUUw2QjM1VmkzNlhlcTdURkYwOGFw?= =?utf-8?B?TFdSY1dTRndkL2dpY2t0SUs5TVdRRFZZSjI3cWpOanJvbXZqM0pnQ2hjM3Iw?= =?utf-8?B?b0FIV0FiaTNmNURnL2N6RXFOTEtnL3JJSmdCcXhEZmx3VG5Sa0RzZEVraE9o?= =?utf-8?B?T2w0MzBZcEYwWEQyaitPYmVEclJpTUtWeFpCRGdRUnA4WFJXL2lnVDFWMjZZ?= =?utf-8?B?MURLam5ZNDVPNXlJRXhsTVJmMmxTRzlYaEZ1YTF4Y04yWXkwVHVIRUxNbXRB?= =?utf-8?B?dThhR2c4NFdKYW1xaSsxVjJMcGZzYWVlZ3YrS1MyTVdtelI1bTBpU0I0VTRB?= =?utf-8?B?Z3ZGUGkzTTNWM0JYQ3NnVEVNUlVNSUplTTdlVXE2UEloQU16T0x4V2xIaEds?= =?utf-8?B?VlJiMXJQWXQ5RDZDeEc5NEt4VjcrNEIycXdZWHk0dUdMSG5aMUxCWkFQc2lU?= =?utf-8?B?QTZkMStJdGZUT0FlRkxSSmZyYkR3eFlXSEhmMnlvU3RISFFaYjJtOXQzMi8r?= =?utf-8?B?MkVQaXZXRk1UTDVORU95eTVYNjVwVDVkbU9qMTBWa0ZxczlXSW1zenBaV3JV?= =?utf-8?B?TUVDZG1Lc1grSFVKbWhRcTdya2puMVpBZ2hzbFI0MnBqOXdtZUIzdFYxRFdW?= =?utf-8?B?Sm5xVTZjMnMzWENQaVpsc3YyZDNRdmIxVS95UzFUckcyL1RkNTNPbGZRMjkx?= =?utf-8?B?YmZQR0wxcmVtVUo1R2ZNZUlDMzRuamEzREk3YnMzUytMaW9CYXFmRGlBcTZ6?= =?utf-8?B?bTBwK2RyczBmc1Bmc0oxekFKZGtEUk8waGdPWkdQeVdhSy9uRXBQZEJ1SkJZ?= =?utf-8?B?RHhQWjkrZUo3Zk1mcXEwODJRSEFIaEtZWmx4QlJocjczMS96dWJERWpiM2J3?= =?utf-8?Q?Xo7UcP/2DtLG6sdI=3D?= X-OriginatorOrg: oppo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8338d4b8-4582-44ea-cd10-08da1cfda011 X-MS-Exchange-CrossTenant-AuthSource: TY2PR02MB4431.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2022 03:28:06.7608 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f1905eb1-c353-41c5-9516-62b4a54b5ee6 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1MP19aQ+WTmaOc6mKNYj3MsdFHaiZ/kb1IPBlllD998VcXmCue4AJOkwkGc0q1hhThsD4UGSNZxXcbVArAa11g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK0PR02MB3107 Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=oppo.com header.s=selector1 header.b=sUToeh0Y; spf=pass (imf25.hostedemail.com: domain of lipeifeng@oppo.com designates 40.107.255.69 as permitted sender) smtp.mailfrom=lipeifeng@oppo.com; dmarc=pass (policy=quarantine) header.from=oppo.com X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 11B9CA0007 X-Stat-Signature: fmqzstn7ot5fton6eg99bu3kmybrj48z X-HE-Tag: 1649820492-504224 X-Bogosity: Ham, tests=bogofilter, spamicity=0.001505, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: ------=_001_NextPart202423771415_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQphbmQgDQpIaSBBbmRyZXcgTW9ydG9u77yaDQoNCj4gV2hhdCBhcmUgdGhlIHJ1bnRpbWUgYWZm ZWN0cyBvZiB0aGlzIGJ1Zz8NCkl0IHdpbGwgZ2l2ZSBhIGJhZCBhZGRyIHdoaWNoIGlzIG5vdCBh dCB0aGUgZGVzaXJlZCBhbGlnbWVudCB0byB1c2VyIGlmIHRyaWdnZXIsIA0Kd2hpY2ggbWF5YmUg Y2F1c2Ugc29tZSBkZXZpY2UgYWRkciBhY2Nlc3MgZXhjZXB0aW9uLg0KDQpNeSB1bmRlcnN0YW5k aW5nIHdhcyB0aGF0IGl0IGlzIHJlYWxseSByYXJlIHRvIHRyaWdnZXIgYW5kIGkgZG9uJ3Qga25v dw0Kd2hldGhlciBpdCB3aWxsIHRpcmdnZXIgaW4gdXNlci1zY2VuY2UsIHRoZSByZWFzb24gaXMg aW4gImhvdyB0byB0cmlnZ2VyIGl0Ii4NCg0KPiBob3cgYXJlIHlvdSBhYmxlIHRvIHRyaWdnZXIg aXQ/DQpNeSB1bmRlcnN0YW5kaW5nIHdhcyB0aGF0IGl0IGlzIHJlYWxseSByYXJlIHRvIHRyaWdn ZXIsDQpvbmx5IGlmIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KDQoxLiAoaW5m by0+aGlnaF9saW1pdCAtIGluZm8tPmxvd19saW1pdCkgPCAoaW5mby0+bGVuZ3RoICsgaW5mby0+ YWxpZ25fbWFzaykNCjIuIFRoZXJlIGlzIGEgYWRkciBzcGFjZSBpbiBtbS0+bW1fcmINCiAgICAg LS0tLQ0KICAgICAgIHwNCiAgICAgICB8DQogICAgICAgfA0KICAgICAgZ2FwX2VuZCA9IHZtYV9z dGFydF9nYXAodm1hMF91ZXNkKSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAt LS0tLS0tLS0tLS0tLS0tLS0tfA0KICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0K ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfA0KICAgICAgaW5mby0+aGlnaF9saW1pdCAgICAgICAgICAgICAgICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgPiBpbmZvLT5sZW5ndGgNCiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIA0KICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfA0KICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA8IGluZm8tPmxlbmd0aCArICAgaW5m by0+YWxpZ25fbWFzayAgICAgfA0KICAgICAgaW5mby0+bG93X2xpbWl0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQogICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8DQogICAgIGdhcF9zdGFydCA9ICB2bWFfZW5kX2dhcCh2 bWExX3VzZWQpICAgIC0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS18ICAgICAgIA0KICAgICAgIHwNCiAgICANCkluIHRoZSBhYm92ZSBjYXNlLDoNCjIu MSB3ZSB3aWxsIGdldCBnZXBfZW5kIGZpcnN0bHnvvJoNCj4gd2hpbGUgKHRydWUpIHsNCj4gLyog VmlzaXQgcmlnaHQgc3VidHJlZSBpZiBpdCBsb29rcyBwcm9taXNpbmcgKi8NCj4gZ2FwX3N0YXJ0 ID0gdm1hLT52bV9wcmV2ID8gdm1fZW5kX2dhcCh2bWEtPnZtX3ByZXYpIDogMDsNCj4gaWYgKGdh cF9zdGFydCA8PSBoaWdoX2xpbWl0ICYmIHZtYS0+dm1fcmIucmJfcmlnaHQpIHsNCj4gc3RydWN0 IHZtX2FyZWFfc3RydWN0ICpyaWdodCA9DQo+IHJiX2VudHJ5KHZtYS0+dm1fcmIucmJfcmlnaHQs DQo+IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCwgdm1fcmIpOw0KPiBpZiAocmlnaHQtPnJiX3N1YnRy ZWVfZ2FwID49IGxlbmd0aCkgew0KPiB2bWEgPSByaWdodDsNCj4gY29udGludWU7DQo+IH0NCj4g fQ0KPg0KPiBjaGVja19jdXJyZW50Og0KPiAvKiBDaGVjayBpZiBjdXJyZW50IG5vZGUgaGFzIGEg c3VpdGFibGUgZ2FwICovDQo+IGdhcF9lbmQgPSB2bV9zdGFydF9nYXAodm1hKTsNCj4gaWYgKGdh cF9lbmQgPCBsb3dfbGltaXQpDQo+IHJldHVybiAtRU5PTUVNOw0KPiBpZiAoZ2FwX3N0YXJ0IDw9 IGhpZ2hfbGltaXQgJiYNCj4gICAgZ2FwX2VuZCA+IGdhcF9zdGFydCAmJiBnYXBfZW5kIC0gZ2Fw X3N0YXJ0ID49IGxlbmd0aCkgew0KPiBnYXBfZW5kX3RtcCA9IGdhcF9lbmQgLSBpbmZvLT5sZW5n dGg7DQo+IGdhcF9lbmRfdG1wIC09IChnYXBfZW5kX3RtcCAtIGluZm8tPmFsaWduX29mZnNldCkg JiBpbmZvLT5hbGlnbl9tYXNrOw0KPiBpZiAoZ2FwX2VuZF90bXAgPj0gZ2FwX3N0YXJ0KQ0KPiBn b3RvIGZvdW5kOw0KPg0KPiB9DQoNCjIuMiB3ZSBjbGlwIGl0IHdpdGggdGhlIG9yaWdpbmFsIGhp Z2hfbGltaXQ6DQpidXQgaWYgaW5mby0+aGlnaF9saW1pdCAtIGluZm8tPmxvd19saW1pdCA8IGlu Zm8tPmxlbmd0aCArIGluZm8tPmFsaWduX21hc2ssDQp3ZSBjYW4gbm90IHByb21pc2UgZ2V0IGEg YWRkciBhdCB0aGUgZGVzaXJlZCBhbGlnbm1lbnQsIGl0IHdpbGwgY2F1c2UgdG8gcmV0dXJuIGEg YWRkciBpbiBhbGlnbiBlcnJvci4NCiAgIA0KPiBmb3VuZDoNCj4gLyogV2UgZm91bmQgYSBzdWl0 YWJsZSBnYXAuIENsaXAgaXQgd2l0aCB0aGUgb3JpZ2luYWwgaGlnaF9saW1pdC4gKi8NCj4gaWYg KGdhcF9lbmQgPiBpbmZvLT5oaWdoX2xpbWl0KQ0KPiBnYXBfZW5kID0gaW5mby0+aGlnaF9saW1p dDsNCj4NCj4gZm91bmRfaGlnaGVzdDoNCj4gLyogQ29tcHV0ZSBoaWdoZXN0IGdhcCBhZGRyZXNz IGF0IHRoZSBkZXNpcmVkIGFsaWdubWVudCAqLw0KPiBnYXBfZW5kIC09IGluZm8tPmxlbmd0aDsN Cj4gZ2FwX2VuZCAtPSAoZ2FwX2VuZCAtIGluZm8tPmFsaWduX29mZnNldCkgJiBpbmZvLT5hbGln bl9tYXNrOw0KPiBWTV9CVUdfT04oZ2FwX2VuZCA8IGluZm8tPmxvd19saW1pdCk7DQo+IFZNX0JV R19PTihnYXBfZW5kIDwgZ2FwX3N0YXJ0KTsNCj4gcmV0dXJuIGdhcF9lbmQ7DQoNCg0KVGhlIHBh dGNoIG11c3QgcmVxdWlyZTogaW5mby0+aGlnaF9saW1pdCAtIGdhcF9zdGFydCAgPiBpbmZvLT5s ZW5ndGggKyBpbmZvLT5hbGlnbl9tYXNrLg0KU28gdGhhdCB3aGVuIGdhcF9lbmQgPSBpbmZvLT5o aWdoX2xpbWl0LCB3ZSBjYW4gZ2V0IGEgcmlnaHQgYWRkciBhdCB0aGUgZGVzaXJlZCBhbGlnbm1l bnQgYnkgZ2FwX2VuZC4NCg0KVGhhbmsgeW91IHZlcnkgbXVjaCBpbmRlZWQgZm9yIGFza2luZyBz dWNoIG5pY2UgcHJvYmxlbXMgDQpzbyB0aGF0IGkgY2FuIHRyeSBteSBiZXN0IHRvIGV4cGxhaW4g aG93IHRoZSBwYXRjaCB3b3JrLg0KDQpwbHMgbGV0IG1lIGtub3cgaWYgdGhlcmUgYXJlIGFueSBw cm9ibGVtIGluIHRoZSBwYXRjaCwgdGh4cy4NCg0KDQoNCmxpcGVpZmVuZ0BvcHBvLmNvbQ0KIA0K RnJvbTogQW5kcmV3IE1vcnRvbg0KRGF0ZTogMjAyMi0wNC0xMyAwNToyMg0KVG86IGxpcGVpZmVu Zw0KQ0M6IG1pY2hlbDsgaHVnaGQ7IGxpbnV4LW1tOyBsaW51eC1rZXJuZWw7IDIxY25iYW87IHpo YW5nc2hpbWluZw0KU3ViamVjdDogUmU6IFtQQVRDSF0gbW06IGZpeCBhbGlnbi1lcnJvciB3aGVu IGdldF9hZGRyIGluIHVubWFwcGVkX2FyZWFfdG9wZG93bg0KT24gVHVlLCAxMiBBcHIgMjAyMiAx NjoxMDoxNCArMDgwMCBsaXBlaWZlbmdAb3Bwby5jb20gd3JvdGU6DQogDQo+IEZyb206IGxpcGVp ZmVuZyA8bGlwZWlmZW5nQG9wcG8uY29tPg0KPiANCj4gd2hlbiB3ZSBmb3VuZCBhIHN1aXRhYmxl IGdhcF9lbmQoPiBpbmZvLT5oaWdoX2xpbWl0KSwgZ2FwX2VuZA0KPiBtdXN0IGJlIHNldCB0byBp bmZvLT5oaWdoX2xpbWl0LiBBbmQgd2Ugd2lsbCBnZXQgdGhlIGdhcF9lbmQNCj4gYWZ0ZXIgY29t cHV0aW5nIGhpZ2hlc3QgZ2FwIGFkZHJlc3MgYXQgdGhlIGRlc2lyZWQgYWxpZ25tZW50Lg0KPiAN Cj4gMjA5NiBmb3VuZDoNCj4gMjA5NyAgICAgICAgIGlmIChnYXBfZW5kID4gaW5mby0+aGlnaF9s aW1pdCkNCj4gMjA5OCAgICAgICAgICAgICAgICAgZ2FwX2VuZCA9IGluZm8tPmhpZ2hfbGltaXQ7 DQo+IDIwOTkNCj4gMjEwMCBmb3VuZF9oaWdoZXN0Og0KPiAyMTAxICAgICAgICAgZ2FwX2VuZCAt PSBpbmZvLT5sZW5ndGg7DQo+IDIxMDIgICAgICAgICBnYXBfZW5kIC09IChnYXBfZW5kIC0gaW5m by0+YWxpZ25fb2Zmc2V0KSAmIGluZm8tPmFsaWduX21hc2s7DQo+IDIxMDMNCj4gMjEwNCAgICAg ICAgIFZNX0JVR19PTihnYXBfZW5kIDwgaW5mby0+bG93X2xpbWl0KTsNCj4gMjEwNSAgICAgICAg IFZNX0JVR19PTihnYXBfZW5kIDwgZ2FwX3N0YXJ0KTsNCj4gMjEwNiAgICAgICAgIHJldHVybiBn YXBfZW5kOw0KPiANCj4gc28gd2UgbXVzdCBwcm9taXNlOiBpbmZvLT5oaWdoX2xpbWl0IC0gaW5m by0+bG93X2xpbWl0ID49DQo+IGluZm8tPmxlbmd0aCArIGluZm8tPmFsaWduX21hc2suDQo+IE9y IGluIHJhcmUgY2FzZXMoaW5mby0+aGlnaF9saW1pdCAtIGluZm8tPmxvd19saW1pdCA8DQo+IGlu Zm8tPmxlbmd0aCArIGluZm8tPmFsaWduX21hc2spIHdlIHdpbGwgZ2V0IHRoZSBhZGRyIGluDQo+ IGFsaWduLWVycm9yIGlmIGZvdW5kIHN1aXRhYmxlIGdhcF9lbmQoPiBpbmZvLT5oaWdoX2xpbWl0 KS4NCj4gDQogDQpUaGFua3MuDQogDQpXaGF0IGFyZSB0aGUgcnVudGltZSBhZmZlY3RzIG9mIHRo aXMgYnVnLCBhbmQgaG93IGFyZSB5b3UgYWJsZSB0bw0KdHJpZ2dlciBpdD8NCiANCj4gLS0tIGEv bW0vbW1hcC5jDQo+ICsrKyBiL21tL21tYXAuYw0KPiBAQCAtMjAwOSw3ICsyMDA5LDYgQEAgc3Rh dGljIHVuc2lnbmVkIGxvbmcgdW5tYXBwZWRfYXJlYV90b3Bkb3duKHN0cnVjdCB2bV91bm1hcHBl ZF9hcmVhX2luZm8gKmluZm8pDQo+ICBpZiAobGVuZ3RoIDwgaW5mby0+bGVuZ3RoKQ0KPiAgcmV0 dXJuIC1FTk9NRU07DQo+ICANCj4gLSBsZW5ndGggPSBpbmZvLT5sZW5ndGg7DQo+ICAvKg0KPiAg KiBBZGp1c3Qgc2VhcmNoIGxpbWl0cyBieSB0aGUgZGVzaXJlZCBsZW5ndGguDQo+ICAqIFNlZSBp bXBsZW1lbnRhdGlvbiBjb21tZW50IGF0IHRvcCBvZiB1bm1hcHBlZF9hcmVhKCkuDQo+IEBAIC0y MDIxLDYgKzIwMjAsOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyB1bm1hcHBlZF9hcmVhX3RvcGRv d24oc3RydWN0IHZtX3VubWFwcGVkX2FyZWFfaW5mbyAqaW5mbykNCj4gIA0KPiAgaWYgKGluZm8t Pmxvd19saW1pdCA+IGhpZ2hfbGltaXQpDQo+ICByZXR1cm4gLUVOT01FTTsNCj4gKw0KPiArIGxl bmd0aCA9IGluZm8tPmxlbmd0aDsNCj4gIGxvd19saW1pdCA9IGluZm8tPmxvd19saW1pdCArIGxl bmd0aDsNCj4gIA0KPiAgLyogQ2hlY2sgaGlnaGVzdCBnYXAsIHdoaWNoIGRvZXMgbm90IHByZWNl ZGUgYW55IHJidHJlZSBub2RlICovDQo+IC0tIA0KPiAyLjcuNA0K ------=_001_NextPart202423771415_=---- Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom:= 0px; margin-left: 0.5em; }body { font-size: 10.5pt; font-family: 'Microsof= t YaHei UI'; color: rgb(0, 0, 0); line-height: 1.5; }= =0A=

=0A=
and 
Hi Andrew Morton=EF=BC=9A

> What are the runtime affects of this bug?
It will give a bad addr which is not at the trigger it?
My understanding was that= it is really rare to trigger,
only if the following conditions a= re met:

1. (info->high_limit - info->low_lim= it) < (info->length + info->align_mask)
2. There is a ad= dr space in mm->mm_rb
     ----
 = ;      |
       |
&n= bsp;      |
      gap_end =3D vma_s= tart_gap(vma0_uesd)    -------------------------------- ---------= ----------|
       |       &nb= sp;                     &= nbsp;                    =                     &nbs= p;                     &n= bsp;                     =                      = ;   |
       |       &nbs= p;                     &n= bsp;                     =                      = ;                     &nb= sp;                     &= nbsp;                    =   |
       |        = ;                     &nb= sp;                     &= nbsp;                    =                     &nbs= p;                     &n= bsp;                     =   |
      info->high_limit     &= nbsp;             -------------------|  =                     &nbs= p;                     &n= bsp;                     = |   > info->length
       |  =                     &nbs= p;                     &n= bsp;                     =     |                 &nb= sp;                     &= nbsp;                    =       |  
       |  = ;                     &nb= sp;                     &= nbsp;                    =     |                 &n= bsp;                     =                      = ;       |
       |   &nbs= p;                     &n= bsp;                     =                      = ;   |   < info->length +   info->alig= n_mask     |
    =   info->low_limit               =                      = ;            |         &n= bsp;                     =                      = ;               |
   = ;    |                 &n= bsp;                     =                      = ;           |           &= nbsp;                    =                     &nbs= p;             |
    &nbs= p;gap_start =3D  vma_end_gap(vma1_used)    -----|--= --------------------------------------------|       
       |
    
In the above case,:
2.1 we will get gep_end firstly=EF= =BC=9A
> while (true) {
> /* Visit right subtree if it looks prom= ising */
> gap_start =3D vma->vm_prev ? vm_end_gap(vma->vm_prev) := 0;
>= if (gap_start <=3D high_limit && vma->vm_rb.rb_right= ) {
>= struct vm_area_struct *right =3D
> rb_entry(vma->vm_rb.rb= _right,
> struct vm_area_struct, vm_rb);
> if (right->rb_su= btree_gap >=3D length) {
> vma =3D right;
> continue;
> }<= /div>
> }
>
> check_current:
> /* Check if curren= t node has a suitable gap */
> gap_end =3D vm_start_gap(vma);
= > if (g= ap_end < low_limit)
> return -ENOMEM;
> if (gap_start <=3D h= igh_limit &&
>    gap_end > gap_start && g= ap_end - gap_start >=3D length) {
> gap_end_tmp =3D gap_end - info-&= gt;length;
> gap_end_tmp -=3D (gap_end_tmp - info->align_offset) &am= p; info->align_mask;
> if (gap_end_tmp >=3D gap_start)
> go= to found;
>
> }

2.2 we clip = it with the original high_limit:
but if info->high_limit -&nbs= p;info->low_limit < info->length + i= nfo->align_mask,
we can not promise get a addr= at the desired alignment, it will cause to return a addr in align error.
   
> found:
> /* We found a = suitable gap. Clip it with the original high_limit. */
> if (gap_end >= info->high_limit)
> gap_end =3D info->high_limit;
><= /div>
> found_highest:
> /* Compute highest gap address at the des= ired alignment */
> gap_end -=3D info->length;
> gap_end -=3D (gap_e= nd - info->align_offset) & info->align_mask;
> VM_BU= G_ON(gap_end < info->low_limit);
> VM_BUG_ON(gap_end < gap_start= );
> = return gap_end;


The pa= tch must require: info->high_limit - = gap_start  > info->length + info->align_mask.
So that when <= span style=3D"font-size: 10.5pt; line-height: 1.5; background-color: transp= arent;">gap_end =3D info->high_limit, we can get a right addr at the des= ired alignment by gap_end.

= Thank you very much indeed for asking such nice problems 
so that i can try my best to explain how the patch work.

pls l= et me know if there are any problem in the patch, thxs.


=0A=
lipeifeng@oppo.com
=0A=
 
Fr= om: Andrew Morton=
Date: 2022-04-13 05:22
To:&nbs= p;lipeifeng
Subject: Re: [PATCH] m= m: fix align-error when get_addr in unmapped_area_topdown
=
On Tue, 12 Apr 2022 16:10:14 +0800 lipeifeng@oppo.com wrote:=0A=
 
=0A=
> From: lipeifeng <lipeifeng@oppo.com>
=0A=
>
=0A=
> when we found a suitable gap_end(> info->high_limit), gap_e= nd
=0A=
> must be set to info->high_limit. And we will get the gap_end=0A=
> after computing highest gap address at the desired alignment.=0A=
>
=0A=
> 2096 found:
=0A=
> 2097         if (gap_end = > info->high_limit)
=0A=
> 2098          &= nbsp;      gap_end =3D info->high_limit;
= =0A=
> 2099
=0A=
> 2100 found_highest:
=0A=
> 2101         gap_end -=3D= info->length;
=0A=
> 2102         gap_end -=3D= (gap_end - info->align_offset) & info->align_mask;
=0A=
> 2103
=0A=
> 2104         VM_BUG_ON(ga= p_end < info->low_limit);
=0A=
> 2105         VM_BUG_ON(ga= p_end < gap_start);
=0A=
> 2106         return gap_e= nd;
=0A=
>
=0A=
> so we must promise: info->high_limit - info->low_limit >= =3D
=0A=
> info->length + info->align_mask.
=0A=
> Or in rare cases(info->high_limit - info->low_limit <=0A=
> info->length + info->align_mask) we will get the addr in=0A=
> align-error if found suitable gap_end(> info->high_limit).<= /div>=0A=
>
=0A=
 
=0A=
Thanks.
=0A=
 
=0A=
What are the runtime affects of this bug, and how are you able to=0A=
trigger it?
=0A=
 
=0A=
> --- a/mm/mmap.c
=0A=
> +++ b/mm/mmap.c
=0A=
> @@ -2009,7 +2009,6 @@ static unsigned long unmapped_area_topdown(= struct vm_unmapped_area_info *info)
=0A=
>  if (length < info->length)
=0A=
>  return -ENOMEM;
=0A=
=0A=
> - length =3D info->length;
=0A=
>  /*
=0A=
>  * Adjust search limits by the desired length.
=0A=
>  * See implementation comment at top of unmapped_area().=0A=
> @@ -2021,6 +2020,8 @@ static unsigned long unmapped_area_topdown(= struct vm_unmapped_area_info *info)
=0A=
=0A=
>  if (info->low_limit > high_limit)
=0A=
>  return -ENOMEM;
=0A=
> +
=0A=
> + length =3D info->length;
=0A=
>  low_limit =3D info->low_limit + length;
=0A=
=0A=
>  /* Check highest gap, which does not precede any rbtree no= de */
=0A=
> --
=0A=
> 2.7.4
=0A=
=0A= = ------=_001_NextPart202423771415_=------