From patchwork Tue Nov 29 16:44:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 13058817 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 22A24C47088 for ; Tue, 29 Nov 2022 16:44:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A36576B0074; Tue, 29 Nov 2022 11:44:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9E6AF6B0075; Tue, 29 Nov 2022 11:44:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 79D816B0078; Tue, 29 Nov 2022 11:44:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 6C2DF6B0074 for ; Tue, 29 Nov 2022 11:44:27 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 398EA4101B for ; Tue, 29 Nov 2022 16:44:27 +0000 (UTC) X-FDA: 80187052974.27.F03184E Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf18.hostedemail.com (Postfix) with ESMTP id A68391C000A for ; Tue, 29 Nov 2022 16:44:26 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2ATGPo8Z012293; Tue, 29 Nov 2022 16:44:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=xhabUoomI33CKrWaeZkUPrrW6+G0JIovywvm2M4c3RA=; b=QKzj2ubKzprgVA2vYEPU0+RBNGy1N2/ug5jdiJqkq4OlyFxCHhVhoBkmOoxVj05W8DPP F7dKqibYUQekpIFimryud3kq+URyh7N0KXTDJpbJx0OfYXX+/pFjZC2uXE345cgeCk7q u3BS83pWXNrCVbwgwDN7KFRG+AT4F0Hp22jpsEI5sxIUozsz59VMKYsPyOSa0RjYkxOI cB0oNbZuzy1vzysCKDl408D7FNs+a1BmbvvNHUhWDADumMKFSNslPooqEDYZGlikjKPm Gd3AF+FWdUR7nkxzjQcWjHFAURBdzbtx3pfnFg60/rU7zKCiv56KM6TWcdasL/d5+mF1 hA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3m4aemdn8a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:25 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 2ATG7rBW030968; Tue, 29 Nov 2022 16:44:24 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2109.outbound.protection.outlook.com [104.47.58.109]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3m398771pv-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Nov 2022 16:44:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ld2Tlc7FSndcAU4kCK8OrTXp8T6N8ZmuQg7miBEzon7fuzGXb+Q68S1e9JH0nH9n4xKFVXfK/78SuFOVT+H35ujM96szzqq0Qtw71C9nJRlpLsMNYltlbA86P7G2HdzjMUEgnCzgRt0YIlPw/vEPAEaIaoPcEHGGHYtui0F7TQjdstlbwVGC4rYnOv6uVzmQnzfxWV6Qj3NtmLz0aN3JqwZShrlooWaUVvmYYvgxEzfAZDqFfIGHRhtg65z3KsLWambX8DarhWwhGbSqApSYe5bVilkC9ROoZDy42QQSOB2sBwW1ID64/IO0Z2ehIAIiNiKxJo2gDBy5i2+A2rGn2Q== 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=xhabUoomI33CKrWaeZkUPrrW6+G0JIovywvm2M4c3RA=; b=iZloEAnUmnBmq96UN0ZRxfAAQjl3qyLW5LhMcbDQuhl8D+h5aWcZ6n9ToUtRTjs5moH/sIGChZz+HbTAq0ZB7MaIAZXRun22oY7KOsA1YCF4ehyT2vbFDelh8uzIi3ZsN2ePbsHRT+n62HcVUt7c8im9xoTN+e5rtB6thMVe73h6IQnB8V847gaA3t45+5vuP0MTl+4OEJls9+GP3OukVlV9cXpL84LssklkIGtUQyvPTUMGXvB3da4zXiDG4G6v4J30oFFq8hfWCOQrkR5syq0dzAef+dN8u2H3pw9Ao0+iSEWgrYqgVQOeI2TRnCijJ3RqFM7k2cQZ2alczL0SgA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xhabUoomI33CKrWaeZkUPrrW6+G0JIovywvm2M4c3RA=; b=qwz5LsO8eIjM9WjnxwkwkB8rsSlb7W4J/GnBcVENf23VKM0GIWHenIB4WJxYbGW/PbT2PvypG7XdNosBWG5S1YShqniJ+VdK8kBROsdTTzdRBdnoVmmUHBXPjyHI+bAckx2aY1r8Ijicon2XQen9438PkNimSJZIJM/v33ztdUE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CH0PR10MB5321.namprd10.prod.outlook.com (2603:10b6:610:c9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Tue, 29 Nov 2022 16:44:21 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.5857.022; Tue, 29 Nov 2022 16:44:21 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton CC: Liam Howlett , Liam Howlett Subject: [PATCH 04/43] test_maple_tree: Test modifications while iterating Thread-Topic: [PATCH 04/43] test_maple_tree: Test modifications while iterating Thread-Index: AQHZBBHUEYb2GHCqzEqTyyGMfUs5Uw== Date: Tue, 29 Nov 2022 16:44:21 +0000 Message-ID: <20221129164352.3374638-5-Liam.Howlett@oracle.com> References: <20221129164352.3374638-1-Liam.Howlett@oracle.com> In-Reply-To: <20221129164352.3374638-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR10MB3022:EE_|CH0PR10MB5321:EE_ x-ms-office365-filtering-correlation-id: d8c10260-f7bf-4527-b5e9-08dad228f75c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cmiZibVWkH4595dTDVKbMIocxTQ61D1gDg4z9a3Me7yIrfnJqSlyxE6pLy/5556emO77A7Y5lIMwL/Z4hUxNzP/QUPoIK4AfxdF8wQPQlW0cDYvzaSQ0iMN7OHogcBPGc3gCuy1SlhQNa94BNSjB2M8Pac7NtdwytGffytTEMk5kQg/Lk/9EnMChzXCxPeyZi99b4eB9PlGumKuWpy28G97W77AuWCr9U72M6jAdsasZpPmDo0FK+35KuOCBB5Uw9bN6tdkY/PIZJASzLuuLKHFLFxBAtv1VKxGWA9YcTixzecHuZYxJF33nYjRCuCRV3noYouNGnYVbHRyXHiJEJLTEZ7Ecet2yeUoajaz8MP9ECKY9VOiEAq2b0gkB2hKZ/W4/Zb4lzYe8fWFBvyUFjAcbsUknCReTcklclZY9XvU9NQennWGTDF8HVGo87EWSNiHme4Ig4OfMXIfGbqwmeX60VM22P0B/UNzLulzCpwc+NmHQg/ofgsoFA4akt77v+QteR6a3/h1nByz+P0ipsdRKBKOtCYiJMJMlW11PsvAS1u8r2xuFR4HwfTMlQmui1q1FAdlThh9SBS6ddorkd4Gdk8e/9jADN2TQQ5NFpmrevILQQRyyMAjizsqbo1oqKhIjHmg/If/cuBNsI03Kx6puFWJfdDSJXnwKwAmfIIIg3uWbldu82crVXN4AvoYzsKDE4bG+PKOd69Log7YFCA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(39860400002)(346002)(376002)(396003)(366004)(451199015)(83380400001)(54906003)(71200400001)(6506007)(107886003)(110136005)(6486002)(86362001)(36756003)(38070700005)(6512007)(38100700002)(122000001)(2616005)(26005)(1076003)(186003)(8936002)(5660300002)(66446008)(478600001)(44832011)(8676002)(66946007)(66556008)(64756008)(76116006)(66476007)(41300700001)(4326008)(2906002)(91956017)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?qyUjUPaKBYSfoX4mlwHt15a?= =?iso-8859-1?q?jYsSALIOAsyzHlrk/vYEINVoGRKbfsL3wwdse+iFw5BtxOIq28jHQoQEiLH6?= =?iso-8859-1?q?JOvcoSBUbZTZ6RbJR1HtKXk/DdAq7Wbz02zVrs+i66tQ2QseVYpRgCHk4aEV?= =?iso-8859-1?q?4aqZvGsGwfykpvjdGnydXiVzj0uU807KQ4FdnvRHJmnqGKJ1qU5ZzpuJQcg6?= =?iso-8859-1?q?VT/ZsuMQSvVElJs5P/6E4flrpcpiMT+vxFhv92glST7YrX/9fvjFQXVoEgbD?= =?iso-8859-1?q?asjc7s64Q282X+KRSYURT6iUCUhB1HaoVSt0WEU5xFc/VtTdt+k/5O/aDTAf?= =?iso-8859-1?q?OSh5Q+XGyX8eBjPavbxzFGiS7RiJ2wd9GfGx16wYMjRTTyl9umSi+5C7QoRx?= =?iso-8859-1?q?BxoDQcWaQZW6r1bduCnuzitaCN1Hexo/8uzGZR/UAfoypDpIlm12+e51R/TX?= =?iso-8859-1?q?ys+2gUJLrXuzvCjUF/GmdyVctKzWkXQFXIFzbGCNTUraSuDGmdLycUKT8Ke4?= =?iso-8859-1?q?xfFD8SgtO7RViA5gLDT/l82xN/i1Mljfg6Fg/DoUndOeVpxzHYzZCjB7wlAA?= =?iso-8859-1?q?iU9+Zf6C4ZovgVNISGNxu6CbaR7GZkxxSm41kXx3SdVAYGvGvHQqMPhpVhUp?= =?iso-8859-1?q?22F3pO53kvBEbv8uoBh2Yu0fUggRBrNIuhXXIIwp8Kl7Vf2VJXeQvU1rzjEx?= =?iso-8859-1?q?opeMnvqa5hZibu1aQ3fev7kutXqrMYD3yPs6M1SWd8ajdNPVQKpzYNDceIqE?= =?iso-8859-1?q?ZC8whu+9IKzcOkwNAZL5B03LXi+RmMTRtWxJVIC1p7fWVedYmtqolsVlBfJF?= =?iso-8859-1?q?snJF1uBBN6QEtQijpJGE+lIbucp23LuMnpmgMDlyXQ30WdahuwGcJKbn2rlM?= =?iso-8859-1?q?xUMg/Bvh45iokUki/8WN3sTr9azB1LsG1fy+S5NFbGqyVx8qpzkNxG0uAaqq?= =?iso-8859-1?q?6Dx2SdinVMQH0lT4bbFUNbf9URs2lCHb9quW25sm6W1BacmOYDX5NK9Rh2YF?= =?iso-8859-1?q?bBbIJC5D5WHqCwG7r4mrlqyC+FCReLQQE6/VWMTLGax3qbWSdZOSCDwfiOvK?= =?iso-8859-1?q?Xbu2rgOOsN5G0Xrh+i5uNbOudwAVV/82OhK56bZRXAIsz7DGl3QlnDd/SVdp?= =?iso-8859-1?q?sgsiEM8aE0tnRLEOYFQpbFDO9Oi98CKqyHDsVZoXhLR/OlIsi5R3f9xzCA9R?= =?iso-8859-1?q?GPxiV5au8CdcICB3LOF9bXoV4X8n4e33m1SDxtn8tO2JXLJ9lTYKgQt0t+fJ?= =?iso-8859-1?q?JmWalo+8FdwjNxuILkwMIqlnd8TNDz/qIAdKrHsXWDTs3laa5oHz5T4tLc7U?= =?iso-8859-1?q?8LlVutWLIdg7PfZon8tQypKgHLu1fY2GQJ5HceQC2buiBFVMlqKIheUZPPui?= =?iso-8859-1?q?0znl9uoMCeNG7dGQYU5Wi7qBcy6NRRwHN6kTYynfDiEhOeT8bERPnvd4hhCq?= =?iso-8859-1?q?gLrmNh/MKLfj5Cdndqdv50xg2x8OnNeOeygPvSVGojb5qkfCsHyDHY6XhX9l?= =?iso-8859-1?q?/GQSJJQTMTxaU2lq+Xkhqd7W+cgoFfBrdHOdBQoj73s0zbRmcRE7HRXvFzBg?= =?iso-8859-1?q?KBSDl7fEKb2dZ6//oxPyzLjRG5ipde/l09IRQdjldDnDKjMVKeWCXW1p794o?= =?iso-8859-1?q?bqOFBcuWsZ/KwJepXhPuOemb1dlkk49rEYxmZFQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sbUyVG+WqqT1UtMRWBtwmLufnmWd6yoquFGMlbix/hoJ8n6uFLBqlcG3tQsFp4/W8LQ6mZnFfJhXdQg9HZkN3rpFYVGGkLDFAq2JLbu6BdUTJdaKlHk1GDlZ1W+uOJy+PlTcaKiyMDko/0E2s8+DFjY7HbpvfqnrQjJKJ9J5VAT/P968OkxgzTSvOtdWRbXtrgPaWYJaTLxSwtYocc2Bjg5YnkdkcXVQI8JTddFdtcAkWiDZQPEkzt7vwGuX0U3nD7Bf9pDL4o3g09l/UGiWtrFvcnMIEwjKe6Hoaptt3FJfT9muIPZ5jyw65rTqdeHF+vyvqDyy4fNtvB11kH/prH1y5gIwCi2CyA3NDFqc3SF2RIIu1CDOg5/9MhE+FZE7j1diS6f2PcfIBE2h8MgFZjnnvSsxEv6bUo2h22FO+xX4qHJ9C/rTEzd7zEG1MxogbUXZAy7EbL4oEHUgxr9jKoOMX7u7d6vSJgDIGQSLqh5TSTG4zJnf293sMLgpQiqjhuqY1alKZJlolmb6sB2FuziYRoRewRSmk5MlhRyKuZnliI5JQ3yMHv3oXvXa7TwX4wC1Jqwust0VoQ5MI53Oy3HpJbLC7qmiVxLQNfuHYizGAEmgRZdkF9KvEkBNqUynZMqKrz238RsJN3OV81IBquehVfswOF+ujsJ1W/+TlIGXMTOKWc2p4qkmn2LGIZNGInD/Q8RdO5qSlbuMSyItFyxhEm3plCG4JgwD70AiF+j+ElMSvU+UOYS4zcSBGkB5aDKjt4jI//BCaA2FT/WSFysdsZbFSDybtQ4o9G84ponCYJHBQeT501y139URfg1XEn1mTl5KI65/j0hxo49cbZz3pfW41ZmswUx7S49mvc2n0aB0BmbCx23zmL5sxPdZNStnQP74UCa9eirMsTRymw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8c10260-f7bf-4527-b5e9-08dad228f75c X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Nov 2022 16:44:21.2857 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jjgYCXDksjshxA8kGfhbU2wS9221DKNLUdzbTdkLg8Pw5swM18jWWBiWw2eJYpgDznBat+ZEC6RxNX/YxVOx3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5321 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-29_11,2022-11-29_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 suspectscore=0 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211290093 X-Proofpoint-ORIG-GUID: Yex7T016ZFWgS6uYas_95cqyAj6q0Sri X-Proofpoint-GUID: Yex7T016ZFWgS6uYas_95cqyAj6q0Sri ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=QKzj2ubK; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=qwz5LsO8; spf=pass (imf18.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1669740266; a=rsa-sha256; cv=pass; b=G/OMPBsRC+VgTFG7anPMOQJhWy9u2QV0gduH1dAzFYny96eaY4PywZ1d5o7aHGLepFq1+Q fApzvzC0hj7D9SSSAbJqyxJriHVVfOXvZ/UC7GzAWXmyegMRDtgGCkbcHTWyluPyxhP7j5 el6PIqueialHcVIqa1Oe4KEy0pvpmVU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1669740266; 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=xhabUoomI33CKrWaeZkUPrrW6+G0JIovywvm2M4c3RA=; b=bhI1BzPm1ztCIEooD+7MITQr5cBdc5nizam7VuOc7CDKaHCUpUwmOFPA+7tWCgarAXCjRC rqcSx8jqwJzHPfAoVppwE7+31wi1cKO1Meo6LmE/vg+IepTRMOl2VOviIQJhkaJCq+Qr4c k+8zQZ+IUz84rGEWD1hnzN1CCjBt5X0= X-Rspam-User: X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: A68391C000A Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=QKzj2ubK; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=qwz5LsO8; spf=pass (imf18.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") X-Stat-Signature: gdhg1s4re8iuw3w89gh6drgezbaeq1ci X-HE-Tag: 1669740266-457982 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: From: "Liam R. Howlett" Add a testcase to ensure the iterator detects bad states on modifications and does what the user expects Signed-off-by: Liam R. Howlett --- lib/test_maple_tree.c | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index f425f169ef08..ff471fea0194 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -1709,6 +1709,74 @@ static noinline void check_forking(struct maple_tree *mt) mtree_destroy(&newmt); } +static noinline void check_iteration(struct maple_tree *mt) +{ + int i, nr_entries = 125; + void *val; + MA_STATE(mas, mt, 0, 0); + + for (i = 0; i <= nr_entries; i++) + mtree_store_range(mt, i * 10, i * 10 + 9, + xa_mk_value(i), GFP_KERNEL); + + mt_set_non_kernel(99999); + + i = 0; + mas_lock(&mas); + mas_for_each(&mas, val, 925) { + MT_BUG_ON(mt, mas.index != i * 10); + MT_BUG_ON(mt, mas.last != i * 10 + 9); + /* Overwrite end of entry 92 */ + if (i == 92) { + mas.index = 925; + mas.last = 929; + mas_store(&mas, val); + } + i++; + } + /* Ensure mas_find() gets the next value */ + val = mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val != xa_mk_value(i)); + + mas_set(&mas, 0); + i = 0; + mas_for_each(&mas, val, 785) { + MT_BUG_ON(mt, mas.index != i * 10); + MT_BUG_ON(mt, mas.last != i * 10 + 9); + /* Overwrite start of entry 78 */ + if (i == 78) { + mas.index = 780; + mas.last = 785; + mas_store(&mas, val); + } else { + i++; + } + } + val = mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val != xa_mk_value(i)); + + mas_set(&mas, 0); + i = 0; + mas_for_each(&mas, val, 765) { + MT_BUG_ON(mt, mas.index != i * 10); + MT_BUG_ON(mt, mas.last != i * 10 + 9); + /* Overwrite end of entry 76 and advance to the end */ + if (i == 76) { + mas.index = 760; + mas.last = 765; + mas_store(&mas, val); + mas_next(&mas, ULONG_MAX); + } + i++; + } + /* Make sure the next find returns the one after 765, 766-769 */ + val = mas_find(&mas, ULONG_MAX); + MT_BUG_ON(mt, val != xa_mk_value(76)); + mas_unlock(&mas); + mas_destroy(&mas); + mt_set_non_kernel(0); +} + static noinline void check_mas_store_gfp(struct maple_tree *mt) { @@ -2555,6 +2623,10 @@ static int maple_tree_seed(void) goto skip; #endif + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); + check_iteration(&tree); + mtree_destroy(&tree); + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); check_forking(&tree); mtree_destroy(&tree);