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 X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20D6CC47404 for ; Fri, 4 Oct 2019 06:58:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C211E215EA for ; Fri, 4 Oct 2019 06:58:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="CenMNnEM" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387430AbfJDG6K (ORCPT ); Fri, 4 Oct 2019 02:58:10 -0400 Received: from mail-eopbgr770051.outbound.protection.outlook.com ([40.107.77.51]:58274 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728264AbfJDG6J (ORCPT ); Fri, 4 Oct 2019 02:58:09 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DJ+GxL2fU/gY3PsO6V+ISlNc0ETVt2P5FACrh8LqOsfDzg8X4vwd8R76H3TOFO2FXNMU+W4jWQ1V0wRJJtd9kV8IjPUzFoJy9G8mtt0s1U500dPcTdb3F62z7ttQPoeNOtntXawuIsijjnjap+m+V25DwrRLVlrMNOluMrTu1ciC65nzcO7zPhLpUZkDCr56cr/zloYDxBU+30A6iIQyADhAHQSKvDih8DbVMxwI0uh+sWVjFx/pZLesOpOgHw/qALRVmYqAmdda0A/nYNI2pCkuNoQall76Lc+oW+sMDSYghEFahDaaXe+YBcULsSFkSE3E7EEWaPnOc3wNhEFd/Q== 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-SenderADCheck; bh=EJeN9EXmyhOrfN2qjz45wPiU+2pjwudIdwx/YtL8nxc=; b=Iiyr74dKaa3PN/l9ReVeOjK/8YNNZgLmDYRwluchpJLuMoWSXCqJ/mTDu3zcKZ7fE5RZERj2Y9hd9J0HXxJMD4o/yejT5AaC4vUTgMrCsV515yE23k2QmhVmC4tOufYweoNTPHftuC9AAeaMAQfl6G5W5rhtv9C6E1wm47Z6Xk4Ulrfj4+gdt+z8T35FuoNEGh4Orzrxw8COivFJyXlMIs5bv7fBEsaQWVdHOP0uvUQJ++vGBjS26iegbIr/wLbIxn4uHG1jnCiw0oW28dJW3ZV08VXYUzEnHhpm/HW/d1QrpWvN0b5lUOBXCaEQGdCWAb1BIhq1jPHLic22fcxkiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EJeN9EXmyhOrfN2qjz45wPiU+2pjwudIdwx/YtL8nxc=; b=CenMNnEMlkqh4hUws3MmWilTSepBlSZzKZE8HsUpVb5gsZw6LjhyASRqrVTvDBKy/Sls/X8NzcPC3PcnZ8CUJfrsPYRIs9ITNl2YMFrrmF5WemJ8dIr2dO8LWrl4YnMuHoI4XmgJojddj15HleKjShaG6AWd7h6h69DH/NoOWbQ= Received: from BN6PR12MB1699.namprd12.prod.outlook.com (10.175.97.148) by BN6PR12MB1507.namprd12.prod.outlook.com (10.172.24.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.20; Fri, 4 Oct 2019 06:58:00 +0000 Received: from BN6PR12MB1699.namprd12.prod.outlook.com ([fe80::7d62:3e74:d0f0:be92]) by BN6PR12MB1699.namprd12.prod.outlook.com ([fe80::7d62:3e74:d0f0:be92%3]) with mapi id 15.20.2305.023; Fri, 4 Oct 2019 06:58:00 +0000 From: "Koenig, Christian" To: Davidlohr Bueso , "akpm@linux-foundation.org" CC: "walken@google.com" , "peterz@infradead.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "dri-devel@lists.freedesktop.org" , "linux-rdma@vger.kernel.org" , "Deucher, Alexander" , David Airlie , Daniel Vetter , Doug Ledford , Joerg Roedel , =?utf-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Davidlohr Bueso Subject: Re: [PATCH 09/11] lib/interval-tree: convert interval_tree to half closed intervals Thread-Topic: [PATCH 09/11] lib/interval-tree: convert interval_tree to half closed intervals Thread-Index: AQHVeigExCQU8/OvY02NFnOXX43dg6dKDccA Date: Fri, 4 Oct 2019 06:57:59 +0000 Message-ID: References: <20191003201858.11666-1-dave@stgolabs.net> <20191003201858.11666-10-dave@stgolabs.net> In-Reply-To: <20191003201858.11666-10-dave@stgolabs.net> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 x-originating-ip: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] x-clientproxiedby: AM0PR0402CA0036.eurprd04.prod.outlook.com (2603:10a6:208:15::49) To BN6PR12MB1699.namprd12.prod.outlook.com (2603:10b6:404:ff::20) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Christian.Koenig@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0d4a43bc-1e0a-4c09-4e2d-08d748983156 x-ms-office365-filtering-ht: Tenant x-ms-traffictypediagnostic: BN6PR12MB1507: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 018093A9B5 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(396003)(376002)(366004)(39860400002)(346002)(136003)(199004)(189003)(2906002)(6436002)(6486002)(31696002)(229853002)(86362001)(486006)(7416002)(478600001)(6512007)(4326008)(66574012)(256004)(71200400001)(71190400001)(476003)(14444005)(11346002)(6246003)(14454004)(46003)(54906003)(2501003)(66946007)(66556008)(66446008)(36756003)(386003)(25786009)(110136005)(316002)(6506007)(64756008)(66476007)(58126008)(6116002)(30864003)(8676002)(305945005)(186003)(81166006)(81156014)(8936002)(7736002)(102836004)(52116002)(99286004)(31686004)(76176011)(65806001)(65956001)(2616005)(5660300002)(446003);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1507;H:BN6PR12MB1699.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: c+GVdn/OzkFKzgOTQ5W0br4nlap/OHgdlkS1LlyTL5NurU1BDDvr9+b8mJjIwEopBJX1c+wY08RUdoJz88M5+gYvqntfJEIa0Mt7MsWcBpaPNt0CbPNgt1mGFQR6zNuEGQmUwm2ssnSbVGHre8QtJLwiF783BSio1w+g2nMcCxM1FHJLzWrmDxBu2HlvVlzoq7A8zOGJNzla/dbKAdUiVmlHNOpR4mSozBoXXXB9jG2KlMrjWBQwfqV1UZegavzGmLSoFlk8AAnSBeXLSehaktmdeCRGgEtDPa4cZ/6+X7bQaqXgdxCBqNY6vCcTFoKdj0Y10nZIH2wKZDIQGeULxn5uQH0iq0THpzVsM8Nt1OeF5mIqhV/ihOOgOZ1fhnNDFS6UxVN6xcaAXFmeEQvS/2sN+RNXWysZr2qjDBb8PQ0= Content-Type: text/plain; charset="utf-8" Content-ID: <19CC4817594C8A43966A8ABD43B6D8EB@namprd12.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d4a43bc-1e0a-4c09-4e2d-08d748983156 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2019 06:57:59.8791 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cQSQrU2Q+X4tr4iBwZ7dKISKbl+B8yGvOXgSSwfiOrX5FxfPv/aQeXfO6yWj4P0f X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1507 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org QW0gMDMuMTAuMTkgdW0gMjI6MTggc2NocmllYiBEYXZpZGxvaHIgQnVlc286DQo+IFRoZSBnZW5l cmljIHRyZWUgdHJlZSByZWFsbHkgd2FudHMgW2EsIGIpIGludGVydmFscywgbm90IGZ1bGx5IGNs b3NlZC4NCj4gQXMgc3VjaCBjb252ZXJ0IGl0IHRvIHVzZSB0aGUgbmV3IGludGVydmFsX3RyZWVf Z2VuLmguIE1vc3Qgb2YgdGhlDQo+IGNvbnZlcnNpb25zIGFyZSBzdHJhaWdodGZvcndhcmQsIHdp dGggdGhlIGV4Y2VwdGlvbiBvZiBwZXJoYXBzDQo+IHJhZGVvbl92bV9ib19zZXRfYWRkcigpLCBi dXQgc2VtYW50aWNzIGhhdmUgYmVlbiB0cmllZCB0byBiZSBsZWZ0DQo+IHVudG91Y2hlZC4NCg0K TkFLLCB0aGUgd2hvbGUgdGhpbmcgd29uJ3Qgd29yay4NCg0KU2VlIHdlIG5lZWQgdG8gaGFuZGxl IHRoZSBmdWxsIGRldmljZSBhZGRyZXNzIHNwYWNlIHdoaWNoIG1lYW5zIHdlIGhhdmUgDQp2YWx1 ZXMgaW4gdGhlIHJhbmdlIG9mIDB4MC0weGZmZmZmZmZmLg0KDQpJZiB5b3UgbWFrZSB0aGlzIGEg Y2xvc2VkIGludGVydmFsIHRoZW4gdGhlIGVuZCB3b3VsZCB3cmFwIGFyb3VuZCB0byAweDAgDQpp ZiBsb25nIGlzIG9ubHkgMzJiaXQuDQoNClJlZ2FyZHMsDQpDaHJpc3RpYW4uDQoNCj4NCj4gQ2M6 ICJDaHJpc3RpYW4gS8O2bmlnIiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0KPiBDYzogQWxl eCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPg0KPiBDYzogRGF2aWQgQWlybGll IDxhaXJsaWVkQGxpbnV4LmllPg0KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNo Pg0KPiBDYzogRG91ZyBMZWRmb3JkIDxkbGVkZm9yZEByZWRoYXQuY29tPg0KPiBDYzogSm9lcmcg Um9lZGVsIDxqb3JvQDhieXRlcy5vcmc+DQo+IENjOiAiSsOpcsO0bWUgR2xpc3NlIiA8amdsaXNz ZUByZWRoYXQuY29tPg0KPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBD YzogbGludXgtcmRtYUB2Z2VyLmtlcm5lbC5vcmcNCj4gU2lnbmVkLW9mZi1ieTogRGF2aWRsb2hy IEJ1ZXNvIDxkYnVlc29Ac3VzZS5kZT4NCj4gLS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X21uLmMgICAgICB8IDEyICsrKy0tLS0tLS0tLQ0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRyLmMgfCAgNSArLS0tLQ0KPiAgIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMgICAgICAgICAgfCAxMSArKysrLS0tLS0tLQ0KPiAg IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmggICAgICAgfCAgMiArLQ0KPiAg IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMgICAgICAgICAgfCAyNiArKysrKysr KysrKysrLS0tLS0tLS0tLS0tLQ0KPiAgIGRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2Rw LmMgICAgICAgICAgfCAyMSArKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gICBkcml2ZXJzL2lvbW11 L3ZpcnRpby1pb21tdS5jICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tDQo+ICAgaW5jbHVkZS9s aW51eC9pbnRlcnZhbF90cmVlLmggICAgICAgICAgICAgICB8ICAyICstDQo+ICAgaW5jbHVkZS9y ZG1hL2liX3VtZW1fb2RwLmggICAgICAgICAgICAgICAgICB8ICA0ICsrLS0NCj4gICBsaWIvaW50 ZXJ2YWxfdHJlZS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tDQo+ICAgMTAg ZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pDQo+DQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5jDQo+IGluZGV4IDMxZDRkZWI1ZDI5NC4u NGJiYWE5ZmZhNTcwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfbW4uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4u Yw0KPiBAQCAtMjA1LDkgKzIwNSw2IEBAIGFtZGdwdV9tbl9zeW5jX3BhZ2V0YWJsZXNfZ2Z4KHN0 cnVjdCBobW1fbWlycm9yICptaXJyb3IsDQo+ICAgCWJvb2wgYmxvY2thYmxlID0gbW11X25vdGlm aWVyX3JhbmdlX2Jsb2NrYWJsZSh1cGRhdGUpOw0KPiAgIAlzdHJ1Y3QgaW50ZXJ2YWxfdHJlZV9u b2RlICppdDsNCj4gICANCj4gLQkvKiBub3RpZmljYXRpb24gaXMgZXhjbHVzaXZlLCBidXQgaW50 ZXJ2YWwgaXMgaW5jbHVzaXZlICovDQo+IC0JZW5kIC09IDE7DQo+IC0NCj4gICAJLyogVE9ETyB3 ZSBzaG91bGQgYmUgYWJsZSB0byBzcGxpdCBsb2NraW5nIGZvciBpbnRlcnZhbCB0cmVlIGFuZA0K PiAgIAkgKiBhbWRncHVfbW5faW52YWxpZGF0ZV9ub2RlDQo+ICAgCSAqLw0KPiBAQCAtMjU0LDkg KzI1MSw2IEBAIGFtZGdwdV9tbl9zeW5jX3BhZ2V0YWJsZXNfaHNhKHN0cnVjdCBobW1fbWlycm9y ICptaXJyb3IsDQo+ICAgCWJvb2wgYmxvY2thYmxlID0gbW11X25vdGlmaWVyX3JhbmdlX2Jsb2Nr YWJsZSh1cGRhdGUpOw0KPiAgIAlzdHJ1Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICppdDsNCj4gICAN Cj4gLQkvKiBub3RpZmljYXRpb24gaXMgZXhjbHVzaXZlLCBidXQgaW50ZXJ2YWwgaXMgaW5jbHVz aXZlICovDQo+IC0JZW5kIC09IDE7DQo+IC0NCj4gICAJaWYgKGFtZGdwdV9tbl9yZWFkX2xvY2so YW1uLCBibG9ja2FibGUpKQ0KPiAgIAkJcmV0dXJuIC1FQUdBSU47DQo+ICAgDQo+IEBAIC0zNzQs NyArMzY4LDcgQEAgc3RydWN0IGFtZGdwdV9tbiAqYW1kZ3B1X21uX2dldChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwNCj4gICAgKi8NCj4gICBpbnQgYW1kZ3B1X21uX3JlZ2lzdGVyKHN0cnVj dCBhbWRncHVfYm8gKmJvLCB1bnNpZ25lZCBsb25nIGFkZHIpDQo+ICAgew0KPiAtCXVuc2lnbmVk IGxvbmcgZW5kID0gYWRkciArIGFtZGdwdV9ib19zaXplKGJvKSAtIDE7DQo+ICsJdW5zaWduZWQg bG9uZyBlbmQgPSBhZGRyICsgYW1kZ3B1X2JvX3NpemUoYm8pOw0KPiAgIAlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiby0+dGJvLmJkZXYpOw0KPiAgIAllbnVt IGFtZGdwdV9tbl90eXBlIHR5cGUgPQ0KPiAgIAkJYm8tPmtmZF9ibyA/IEFNREdQVV9NTl9UWVBF X0hTQSA6IEFNREdQVV9NTl9UWVBFX0dGWDsNCj4gQEAgLTQwMCw3ICszOTQsNyBAQCBpbnQgYW1k Z3B1X21uX3JlZ2lzdGVyKHN0cnVjdCBhbWRncHVfYm8gKmJvLCB1bnNpZ25lZCBsb25nIGFkZHIp DQo+ICAgCQlub2RlID0gY29udGFpbmVyX29mKGl0LCBzdHJ1Y3QgYW1kZ3B1X21uX25vZGUsIGl0 KTsNCj4gICAJCWludGVydmFsX3RyZWVfcmVtb3ZlKCZub2RlLT5pdCwgJmFtbi0+b2JqZWN0cyk7 DQo+ICAgCQlhZGRyID0gbWluKGl0LT5zdGFydCwgYWRkcik7DQo+IC0JCWVuZCA9IG1heChpdC0+ bGFzdCwgZW5kKTsNCj4gKwkJZW5kID0gbWF4KGl0LT5lbmQsIGVuZCk7DQo+ICAgCQlsaXN0X3Nw bGljZSgmbm9kZS0+Ym9zLCAmYm9zKTsNCj4gICAJfQ0KPiAgIA0KPiBAQCAtNDEyLDcgKzQwNiw3 IEBAIGludCBhbWRncHVfbW5fcmVnaXN0ZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHVuc2lnbmVk IGxvbmcgYWRkcikNCj4gICAJYm8tPm1uID0gYW1uOw0KPiAgIA0KPiAgIAlub2RlLT5pdC5zdGFy dCA9IGFkZHI7DQo+IC0Jbm9kZS0+aXQubGFzdCA9IGVuZDsNCj4gKwlub2RlLT5pdC5lbmQgPSBl bmQ7DQo+ICAgCUlOSVRfTElTVF9IRUFEKCZub2RlLT5ib3MpOw0KPiAgIAlsaXN0X3NwbGljZSgm Ym9zLCAmbm9kZS0+Ym9zKTsNCj4gICAJbGlzdF9hZGQoJmJvLT5tbl9saXN0LCAmbm9kZS0+Ym9z KTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2Vy cHRyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdXNlcnB0ci5jDQo+IGlu ZGV4IDExYjIzMWMxODdjNS4uODE4ZmY2YjMzMTAyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdXNlcnB0ci5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRyLmMNCj4gQEAgLTk5LDkgKzk5LDYgQEAgdXNlcnB0 cl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKl9tbiwNCj4g ICAJaWYgKFJCX0VNUFRZX1JPT1QoJm1uLT5vYmplY3RzLnJiX3Jvb3QpKQ0KPiAgIAkJcmV0dXJu IDA7DQo+ICAgDQo+IC0JLyogaW50ZXJ2YWwgcmFuZ2VzIGFyZSBpbmNsdXNpdmUsIGJ1dCBpbnZh bGlkYXRlIHJhbmdlIGlzIGV4Y2x1c2l2ZSAqLw0KPiAtCWVuZCA9IHJhbmdlLT5lbmQgLSAxOw0K PiAtDQo+ICAgCXNwaW5fbG9jaygmbW4tPmxvY2spOw0KPiAgIAlpdCA9IGludGVydmFsX3RyZWVf aXRlcl9maXJzdCgmbW4tPm9iamVjdHMsIHJhbmdlLT5zdGFydCwgZW5kKTsNCj4gICAJd2hpbGUg KGl0KSB7DQo+IEBAIC0yNzUsNyArMjcyLDcgQEAgaTkxNV9nZW1fdXNlcnB0cl9pbml0X19tbXVf bm90aWZpZXIoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwNCj4gICAJbW8tPm1uID0g bW47DQo+ICAgCW1vLT5vYmogPSBvYmo7DQo+ICAgCW1vLT5pdC5zdGFydCA9IG9iai0+dXNlcnB0 ci5wdHI7DQo+IC0JbW8tPml0Lmxhc3QgPSBvYmotPnVzZXJwdHIucHRyICsgb2JqLT5iYXNlLnNp emUgLSAxOw0KPiArCW1vLT5pdC5lbmQgPSBvYmotPnVzZXJwdHIucHRyICsgb2JqLT5iYXNlLnNp emU7DQo+ICAgCVJCX0NMRUFSX05PREUoJm1vLT5pdC5yYik7DQo+ICAgDQo+ICAgCW9iai0+dXNl cnB0ci5tbXVfb2JqZWN0ID0gbW87DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9tbi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYw0KPiBp bmRleCBkYmFiOWEzYTk2OWIuLjQ4MTA0MjFkYWNjMiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9tbi5jDQo+IEBAIC02NiwxMiArNjYsOSBAQCBzdGF0aWMgaW50IHJhZGVvbl9tbl9p bnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLA0KPiAgIAlzdHJ1 Y3QgcmFkZW9uX21uICpybW4gPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCByYWRlb25fbW4sIG1u KTsNCj4gICAJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07 DQo+ICAgCXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKml0Ow0KPiAtCXVuc2lnbmVkIGxvbmcg ZW5kOw0KPiArCXVuc2lnbmVkIGxvbmcgZW5kID0gcmFuZ2UtPmVuZDsNCj4gICAJaW50IHJldCA9 IDA7DQo+ICAgDQo+IC0JLyogbm90aWZpY2F0aW9uIGlzIGV4Y2x1c2l2ZSwgYnV0IGludGVydmFs IGlzIGluY2x1c2l2ZSAqLw0KPiAtCWVuZCA9IHJhbmdlLT5lbmQgLSAxOw0KPiAtDQo+ICAgCS8q IFRPRE8gd2Ugc2hvdWxkIGJlIGFibGUgdG8gc3BsaXQgbG9ja2luZyBmb3IgaW50ZXJ2YWwgdHJl ZSBhbmQNCj4gICAJICogdGhlIHRlYXIgZG93bi4NCj4gICAJICovDQo+IEBAIC0xNzQsNyArMTcx LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzIHJhZGVvbl9tbl9vcHMg PSB7DQo+ICAgICovDQo+ICAgaW50IHJhZGVvbl9tbl9yZWdpc3RlcihzdHJ1Y3QgcmFkZW9uX2Jv ICpibywgdW5zaWduZWQgbG9uZyBhZGRyKQ0KPiAgIHsNCj4gLQl1bnNpZ25lZCBsb25nIGVuZCA9 IGFkZHIgKyByYWRlb25fYm9fc2l6ZShibykgLSAxOw0KPiArCXVuc2lnbmVkIGxvbmcgZW5kID0g YWRkciArIHJhZGVvbl9ib19zaXplKGJvKTsNCj4gICAJc3RydWN0IG1tdV9ub3RpZmllciAqbW47 DQo+ICAgCXN0cnVjdCByYWRlb25fbW4gKnJtbjsNCj4gICAJc3RydWN0IHJhZGVvbl9tbl9ub2Rl ICpub2RlID0gTlVMTDsNCj4gQEAgLTE5NSw3ICsxOTIsNyBAQCBpbnQgcmFkZW9uX21uX3JlZ2lz dGVyKHN0cnVjdCByYWRlb25fYm8gKmJvLCB1bnNpZ25lZCBsb25nIGFkZHIpDQo+ICAgCQlub2Rl ID0gY29udGFpbmVyX29mKGl0LCBzdHJ1Y3QgcmFkZW9uX21uX25vZGUsIGl0KTsNCj4gICAJCWlu dGVydmFsX3RyZWVfcmVtb3ZlKCZub2RlLT5pdCwgJnJtbi0+b2JqZWN0cyk7DQo+ICAgCQlhZGRy ID0gbWluKGl0LT5zdGFydCwgYWRkcik7DQo+IC0JCWVuZCA9IG1heChpdC0+bGFzdCwgZW5kKTsN Cj4gKwkJZW5kID0gbWF4KGl0LT5lbmQsIGVuZCk7DQo+ICAgCQlsaXN0X3NwbGljZSgmbm9kZS0+ Ym9zLCAmYm9zKTsNCj4gICAJfQ0KPiAgIA0KPiBAQCAtMjEwLDcgKzIwNyw3IEBAIGludCByYWRl b25fbW5fcmVnaXN0ZXIoc3RydWN0IHJhZGVvbl9ibyAqYm8sIHVuc2lnbmVkIGxvbmcgYWRkcikN Cj4gICAJYm8tPm1uID0gcm1uOw0KPiAgIA0KPiAgIAlub2RlLT5pdC5zdGFydCA9IGFkZHI7DQo+ IC0Jbm9kZS0+aXQubGFzdCA9IGVuZDsNCj4gKwlub2RlLT5pdC5lbmQgPSBlbmQ7DQo+ICAgCUlO SVRfTElTVF9IRUFEKCZub2RlLT5ib3MpOw0KPiAgIAlsaXN0X3NwbGljZSgmYm9zLCAmbm9kZS0+ Ym9zKTsNCj4gICAJbGlzdF9hZGQoJmJvLT5tbl9saXN0LCAmbm9kZS0+Ym9zKTsNCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmggYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl90cmFjZS5oDQo+IGluZGV4IGM5M2YzYWIzYzRlMy4uNDMyNGYz ZmM1ZDgyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90cmFj ZS5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmgNCj4gQEAg LTczLDcgKzczLDcgQEAgVFJBQ0VfRVZFTlQocmFkZW9uX3ZtX2JvX3VwZGF0ZSwNCj4gICANCj4g ICAJICAgIFRQX2Zhc3RfYXNzaWduKA0KPiAgIAkJCSAgIF9fZW50cnktPnNvZmZzZXQgPSBib192 YS0+aXQuc3RhcnQ7DQo+IC0JCQkgICBfX2VudHJ5LT5lb2Zmc2V0ID0gYm9fdmEtPml0Lmxhc3Qg KyAxOw0KPiArCQkJICAgX19lbnRyeS0+ZW9mZnNldCA9IGJvX3ZhLT5pdC5lbmQ7DQo+ICAgCQkJ ICAgX19lbnRyeS0+ZmxhZ3MgPSBib192YS0+ZmxhZ3M7DQo+ICAgCQkJICAgKSwNCj4gICAJICAg IFRQX3ByaW50aygic29mZnM9JTAxMGxseCwgZW9mZnM9JTAxMGxseCwgZmxhZ3M9JTA4eCIsDQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYw0KPiBpbmRleCBlMGFkNTQ3Nzg2ZTguLmIyYTU0 YWZmMjFmNCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0u Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jDQo+IEBAIC0zMjks NyArMzI5LDcgQEAgc3RydWN0IHJhZGVvbl9ib192YSAqcmFkZW9uX3ZtX2JvX2FkZChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwNCj4gICAJYm9fdmEtPnZtID0gdm07DQo+ICAgCWJvX3ZhLT5i byA9IGJvOw0KPiAgIAlib192YS0+aXQuc3RhcnQgPSAwOw0KPiAtCWJvX3ZhLT5pdC5sYXN0ID0g MDsNCj4gKwlib192YS0+aXQuZW5kID0gMDsNCj4gICAJYm9fdmEtPmZsYWdzID0gMDsNCj4gICAJ Ym9fdmEtPnJlZl9jb3VudCA9IDE7DQo+ICAgCUlOSVRfTElTVF9IRUFEKCZib192YS0+Ym9fbGlz dCk7DQo+IEBAIC00NTYsNyArNDU2LDcgQEAgaW50IHJhZGVvbl92bV9ib19zZXRfYWRkcihzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4gICANCj4gICAJaWYgKHNvZmZzZXQpIHsNCj4gICAJ CS8qIG1ha2Ugc3VyZSBvYmplY3QgZml0IGF0IHRoaXMgb2Zmc2V0ICovDQo+IC0JCWVvZmZzZXQg PSBzb2Zmc2V0ICsgc2l6ZSAtIDE7DQo+ICsJCWVvZmZzZXQgPSBzb2Zmc2V0ICsgc2l6ZTsNCj4g ICAJCWlmIChzb2Zmc2V0ID49IGVvZmZzZXQpIHsNCj4gICAJCQlyID0gLUVJTlZBTDsNCj4gICAJ CQlnb3RvIGVycm9yX3VucmVzZXJ2ZTsNCj4gQEAgLTQ4NiwxNCArNDg2LDE0IEBAIGludCByYWRl b25fdm1fYm9fc2V0X2FkZHIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsDQo+ICAgCQkJLyog Ym8gYW5kIHRtcCBvdmVybGFwLCBpbnZhbGlkIG9mZnNldCAqLw0KPiAgIAkJCWRldl9lcnIocmRl di0+ZGV2LCAiYm8gJXAgdmEgMHglMDEwTHggY29uZmxpY3Qgd2l0aCAiDQo+ICAgCQkJCSIoYm8g JXAgMHglMDEwbHggMHglMDEwbHgpXG4iLCBib192YS0+Ym8sDQo+IC0JCQkJc29mZnNldCwgdG1w LT5ibywgdG1wLT5pdC5zdGFydCwgdG1wLT5pdC5sYXN0KTsNCj4gKwkJCQlzb2Zmc2V0LCB0bXAt PmJvLCB0bXAtPml0LnN0YXJ0LCB0bXAtPml0LmVuZCk7DQo+ICAgCQkJbXV0ZXhfdW5sb2NrKCZ2 bS0+bXV0ZXgpOw0KPiAgIAkJCXIgPSAtRUlOVkFMOw0KPiAgIAkJCWdvdG8gZXJyb3JfdW5yZXNl cnZlOw0KPiAgIAkJfQ0KPiAgIAl9DQo+ICAgDQo+IC0JaWYgKGJvX3ZhLT5pdC5zdGFydCB8fCBi b192YS0+aXQubGFzdCkgew0KPiArCWlmIChib192YS0+aXQuc3RhcnQgfHwgYm9fdmEtPml0LmVu ZCkgew0KPiAgIAkJLyogYWRkIGEgY2xvbmUgb2YgdGhlIGJvX3ZhIHRvIGNsZWFyIHRoZSBvbGQg YWRkcmVzcyAqLw0KPiAgIAkJc3RydWN0IHJhZGVvbl9ib192YSAqdG1wOw0KPiAgIAkJdG1wID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVvbl9ib192YSksIEdGUF9LRVJORUwpOw0KPiBAQCAt NTAzLDE0ICs1MDMsMTQgQEAgaW50IHJhZGVvbl92bV9ib19zZXRfYWRkcihzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwNCj4gICAJCQlnb3RvIGVycm9yX3VucmVzZXJ2ZTsNCj4gICAJCX0NCj4g ICAJCXRtcC0+aXQuc3RhcnQgPSBib192YS0+aXQuc3RhcnQ7DQo+IC0JCXRtcC0+aXQubGFzdCA9 IGJvX3ZhLT5pdC5sYXN0Ow0KPiArCQl0bXAtPml0LmVuZCA9IGJvX3ZhLT5pdC5lbmQ7DQo+ICAg CQl0bXAtPnZtID0gdm07DQo+ICAgCQl0bXAtPmJvID0gcmFkZW9uX2JvX3JlZihib192YS0+Ym8p Ow0KPiAgIA0KPiAgIAkJaW50ZXJ2YWxfdHJlZV9yZW1vdmUoJmJvX3ZhLT5pdCwgJnZtLT52YSk7 DQo+ICAgCQlzcGluX2xvY2soJnZtLT5zdGF0dXNfbG9jayk7DQo+ICAgCQlib192YS0+aXQuc3Rh cnQgPSAwOw0KPiAtCQlib192YS0+aXQubGFzdCA9IDA7DQo+ICsJCWJvX3ZhLT5pdC5lbmQgPSAw Ow0KPiAgIAkJbGlzdF9kZWxfaW5pdCgmYm9fdmEtPnZtX3N0YXR1cyk7DQo+ICAgCQlsaXN0X2Fk ZCgmdG1wLT52bV9zdGF0dXMsICZ2bS0+ZnJlZWQpOw0KPiAgIAkJc3Bpbl91bmxvY2soJnZtLT5z dGF0dXNfbG9jayk7DQo+IEBAIC01MTksNyArNTE5LDcgQEAgaW50IHJhZGVvbl92bV9ib19zZXRf YWRkcihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4gICAJaWYgKHNvZmZzZXQgfHwgZW9m ZnNldCkgew0KPiAgIAkJc3Bpbl9sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOw0KPiAgIAkJYm9fdmEt Pml0LnN0YXJ0ID0gc29mZnNldDsNCj4gLQkJYm9fdmEtPml0Lmxhc3QgPSBlb2Zmc2V0Ow0KPiAr CQlib192YS0+aXQuZW5kID0gZW9mZnNldDsNCj4gICAJCWxpc3RfYWRkKCZib192YS0+dm1fc3Rh dHVzLCAmdm0tPmNsZWFyZWQpOw0KPiAgIAkJc3Bpbl91bmxvY2soJnZtLT5zdGF0dXNfbG9jayk7 DQo+ICAgCQlpbnRlcnZhbF90cmVlX2luc2VydCgmYm9fdmEtPml0LCAmdm0tPnZhKTsNCj4gQEAg LTk2NCw3ICs5NjQsNyBAQCBpbnQgcmFkZW9uX3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwNCj4gICANCj4gICAJdHJhY2VfcmFkZW9uX3ZtX2JvX3VwZGF0ZShib192YSk7 DQo+ICAgDQo+IC0JbnB0ZXMgPSBib192YS0+aXQubGFzdCAtIGJvX3ZhLT5pdC5zdGFydCArIDE7 DQo+ICsJbnB0ZXMgPSBib192YS0+aXQuZW5kIC0gYm9fdmEtPml0LnN0YXJ0Ow0KPiAgIA0KPiAg IAkvKiByZXNlcnZlIHNwYWNlIGZvciBvbmUgY29tbWFuZCBldmVyeSAoMSA8PCBCTE9DS19TSVpF KSBlbnRyaWVzDQo+ICAgCSAgIG9yIDJrIGR3b3JkcyAod2hhdGV2ZXIgaXMgc21hbGxlcikgKi8N Cj4gQEAgLTEwMTAsNyArMTAxMCw3IEBAIGludCByYWRlb25fdm1fYm9fdXBkYXRlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LA0KPiAgIAl9DQo+ICAgDQo+ICAgCXIgPSByYWRlb25fdm1fdXBk YXRlX3B0ZXMocmRldiwgdm0sICZpYiwgYm9fdmEtPml0LnN0YXJ0LA0KPiAtCQkJCSAgYm9fdmEt Pml0Lmxhc3QgKyAxLCBhZGRyLA0KPiArCQkJCSAgYm9fdmEtPml0LmVuZCwgYWRkciwNCj4gICAJ CQkJICByYWRlb25fdm1fcGFnZV9mbGFncyhib192YS0+ZmxhZ3MpKTsNCj4gICAJaWYgKHIpIHsN Cj4gICAJCXJhZGVvbl9pYl9mcmVlKHJkZXYsICZpYik7DQo+IEBAIC0xMDI2LDcgKzEwMjYsNyBA QCBpbnQgcmFkZW9uX3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4g ICAJCXJldHVybiByOw0KPiAgIAl9DQo+ICAgCWliLmZlbmNlLT5pc192bV91cGRhdGUgPSB0cnVl Ow0KPiAtCXJhZGVvbl92bV9mZW5jZV9wdHModm0sIGJvX3ZhLT5pdC5zdGFydCwgYm9fdmEtPml0 Lmxhc3QgKyAxLCBpYi5mZW5jZSk7DQo+ICsJcmFkZW9uX3ZtX2ZlbmNlX3B0cyh2bSwgYm9fdmEt Pml0LnN0YXJ0LCBib192YS0+aXQuZW5kLCBpYi5mZW5jZSk7DQo+ICAgCXJhZGVvbl9mZW5jZV91 bnJlZigmYm9fdmEtPmxhc3RfcHRfdXBkYXRlKTsNCj4gICAJYm9fdmEtPmxhc3RfcHRfdXBkYXRl ID0gcmFkZW9uX2ZlbmNlX3JlZihpYi5mZW5jZSk7DQo+ICAgCXJhZGVvbl9pYl9mcmVlKHJkZXYs ICZpYik7DQo+IEBAIC0xMTI0LDEyICsxMTI0LDEyIEBAIHZvaWQgcmFkZW9uX3ZtX2JvX3Jtdihz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4gICAJbGlzdF9kZWwoJmJvX3ZhLT5ib19saXN0 KTsNCj4gICANCj4gICAJbXV0ZXhfbG9jaygmdm0tPm11dGV4KTsNCj4gLQlpZiAoYm9fdmEtPml0 LnN0YXJ0IHx8IGJvX3ZhLT5pdC5sYXN0KQ0KPiArCWlmIChib192YS0+aXQuc3RhcnQgfHwgYm9f dmEtPml0LmVuZCkNCj4gICAJCWludGVydmFsX3RyZWVfcmVtb3ZlKCZib192YS0+aXQsICZ2bS0+ dmEpOw0KPiAgIA0KPiAgIAlzcGluX2xvY2soJnZtLT5zdGF0dXNfbG9jayk7DQo+ICAgCWxpc3Rf ZGVsKCZib192YS0+dm1fc3RhdHVzKTsNCj4gLQlpZiAoYm9fdmEtPml0LnN0YXJ0IHx8IGJvX3Zh LT5pdC5sYXN0KSB7DQo+ICsJaWYgKGJvX3ZhLT5pdC5zdGFydCB8fCBib192YS0+aXQuZW5kKSB7 DQo+ICAgCQlib192YS0+Ym8gPSByYWRlb25fYm9fcmVmKGJvX3ZhLT5ibyk7DQo+ICAgCQlsaXN0 X2FkZCgmYm9fdmEtPnZtX3N0YXR1cywgJnZtLT5mcmVlZCk7DQo+ICAgCX0gZWxzZSB7DQo+IEBA IC0xMTU4LDcgKzExNTgsNyBAQCB2b2lkIHJhZGVvbl92bV9ib19pbnZhbGlkYXRlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LA0KPiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvX3ZhLCAmYm8t PnZhLCBib19saXN0KSB7DQo+ICAgCQlzcGluX2xvY2soJmJvX3ZhLT52bS0+c3RhdHVzX2xvY2sp Ow0KPiAgIAkJaWYgKGxpc3RfZW1wdHkoJmJvX3ZhLT52bV9zdGF0dXMpICYmDQo+IC0JCSAgICAo Ym9fdmEtPml0LnN0YXJ0IHx8IGJvX3ZhLT5pdC5sYXN0KSkNCj4gKwkJICAgIChib192YS0+aXQu c3RhcnQgfHwgYm9fdmEtPml0LmVuZCkpDQo+ICAgCQkJbGlzdF9hZGQoJmJvX3ZhLT52bV9zdGF0 dXMsICZib192YS0+dm0tPmludmFsaWRhdGVkKTsNCj4gICAJCXNwaW5fdW5sb2NrKCZib192YS0+ dm0tPnN0YXR1c19sb2NrKTsNCj4gICAJfQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmli YW5kL2NvcmUvdW1lbV9vZHAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMN Cj4gaW5kZXggZjY3YTMwZmRhMWVkLi45YjdhYzkzMjIzZDYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMNCj4gKysrIGIvZHJpdmVycy9pbmZpbmliYW5k L2NvcmUvdW1lbV9vZHAuYw0KPiBAQCAtMjE5LDI2ICsyMTksMTkgQEAgc3RhdGljIGlubGluZSBp bnQgaWJfaW5pdF91bWVtX29kcChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQ0KPiAgIAkJ CUFMSUdOX0RPV04odW1lbV9vZHAtPnVtZW0uYWRkcmVzcywgcGFnZV9zaXplKTsNCj4gICAJCWlm IChjaGVja19hZGRfb3ZlcmZsb3codW1lbV9vZHAtPnVtZW0uYWRkcmVzcywNCj4gICAJCQkJICAg ICAgICh1bnNpZ25lZCBsb25nKXVtZW1fb2RwLT51bWVtLmxlbmd0aCwNCj4gLQkJCQkgICAgICAg JnVtZW1fb2RwLT5pbnRlcnZhbF90cmVlLmxhc3QpKQ0KPiArCQkJCSAgICAgICAmdW1lbV9vZHAt PmludGVydmFsX3RyZWUuZW5kKSkNCj4gICAJCQlyZXR1cm4gLUVPVkVSRkxPVzsNCj4gLQkJdW1l bV9vZHAtPmludGVydmFsX3RyZWUubGFzdCA9DQo+IC0JCQlBTElHTih1bWVtX29kcC0+aW50ZXJ2 YWxfdHJlZS5sYXN0LCBwYWdlX3NpemUpOw0KPiAtCQlpZiAodW5saWtlbHkodW1lbV9vZHAtPmlu dGVydmFsX3RyZWUubGFzdCA8IHBhZ2Vfc2l6ZSkpDQo+ICsJCXVtZW1fb2RwLT5pbnRlcnZhbF90 cmVlLmVuZCA9DQo+ICsJCQlBTElHTih1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5lbmQsIHBhZ2Vf c2l6ZSk7DQo+ICsJCWlmICh1bmxpa2VseSh1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5lbmQgPCBw YWdlX3NpemUpKQ0KPiAgIAkJCXJldHVybiAtRU9WRVJGTE9XOw0KPiAgIA0KPiAtCQlwYWdlcyA9 ICh1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5sYXN0IC0NCj4gKwkJcGFnZXMgPSAodW1lbV9vZHAt PmludGVydmFsX3RyZWUuZW5kIC0NCj4gICAJCQkgdW1lbV9vZHAtPmludGVydmFsX3RyZWUuc3Rh cnQpID4+DQo+ICAgCQkJdW1lbV9vZHAtPnBhZ2Vfc2hpZnQ7DQo+ICAgCQlpZiAoIXBhZ2VzKQ0K PiAgIAkJCXJldHVybiAtRUlOVkFMOw0KPiAgIA0KPiAtCQkvKg0KPiAtCQkgKiBOb3RlIHRoYXQg dGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlcnZhbHMgaW4gdGhlDQo+IC0JCSAqIGludGVy dmFsIHRyZWUgY29uc2lkZXJzIHRoZSBlbmRpbmcgcG9pbnQgYXMgY29udGFpbmVkIGluDQo+IC0J CSAqIHRoZSBpbnRlcnZhbC4NCj4gLQkJICovDQo+IC0JCXVtZW1fb2RwLT5pbnRlcnZhbF90cmVl Lmxhc3QtLTsNCj4gLQ0KPiAgIAkJdW1lbV9vZHAtPnBhZ2VfbGlzdCA9IGt2Y2FsbG9jKA0KPiAg IAkJCXBhZ2VzLCBzaXplb2YoKnVtZW1fb2RwLT5wYWdlX2xpc3QpLCBHRlBfS0VSTkVMKTsNCj4g ICAJCWlmICghdW1lbV9vZHAtPnBhZ2VfbGlzdCkNCj4gQEAgLTc3NywxMiArNzcwLDEyIEBAIGlu dCByYnRfaWJfdW1lbV9mb3JfZWFjaF9pbl9yYW5nZShzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJv b3QsDQo+ICAgCWlmICh1bmxpa2VseShzdGFydCA9PSBsYXN0KSkNCj4gICAJCXJldHVybiByZXRf dmFsOw0KPiAgIA0KPiAtCWZvciAobm9kZSA9IGludGVydmFsX3RyZWVfaXRlcl9maXJzdChyb290 LCBzdGFydCwgbGFzdCAtIDEpOw0KPiArCWZvciAobm9kZSA9IGludGVydmFsX3RyZWVfaXRlcl9m aXJzdChyb290LCBzdGFydCwgbGFzdCk7DQo+ICAgCQkJbm9kZTsgbm9kZSA9IG5leHQpIHsNCj4g ICAJCS8qIFRPRE8gbW92ZSB0aGUgYmxvY2thYmxlIGRlY2lzaW9uIHVwIHRvIHRoZSBjYWxsYmFj ayAqLw0KPiAgIAkJaWYgKCFibG9ja2FibGUpDQo+ICAgCQkJcmV0dXJuIC1FQUdBSU47DQo+IC0J CW5leHQgPSBpbnRlcnZhbF90cmVlX2l0ZXJfbmV4dChub2RlLCBzdGFydCwgbGFzdCAtIDEpOw0K PiArCQluZXh0ID0gaW50ZXJ2YWxfdHJlZV9pdGVyX25leHQobm9kZSwgc3RhcnQsIGxhc3QpOw0K PiAgIAkJdW1lbSA9IGNvbnRhaW5lcl9vZihub2RlLCBzdHJ1Y3QgaWJfdW1lbV9vZHAsIGludGVy dmFsX3RyZWUpOw0KPiAgIAkJcmV0X3ZhbCA9IGNiKHVtZW0sIHN0YXJ0LCBsYXN0LCBjb29raWUp IHx8IHJldF92YWw7DQo+ICAgCX0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvdmlydGlv LWlvbW11LmMgYi9kcml2ZXJzL2lvbW11L3ZpcnRpby1pb21tdS5jDQo+IGluZGV4IDNlYTlkNzY4 Mjk5OS4uNzcxNzQwOTgxZjQzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2lvbW11L3ZpcnRpby1p b21tdS5jDQo+ICsrKyBiL2RyaXZlcnMvaW9tbXUvdmlydGlvLWlvbW11LmMNCj4gQEAgLTMyMyw3 ICszMjMsNyBAQCBzdGF0aWMgaW50IHZpb21tdV9hZGRfbWFwcGluZyhzdHJ1Y3QgdmlvbW11X2Rv bWFpbiAqdmRvbWFpbiwgdW5zaWduZWQgbG9uZyBpb3ZhLA0KPiAgIA0KPiAgIAltYXBwaW5nLT5w YWRkcgkJPSBwYWRkcjsNCj4gICAJbWFwcGluZy0+aW92YS5zdGFydAk9IGlvdmE7DQo+IC0JbWFw cGluZy0+aW92YS5sYXN0CT0gaW92YSArIHNpemUgLSAxOw0KPiArCW1hcHBpbmctPmlvdmEuZW5k CT0gaW92YSArIHNpemU7DQo+ICAgCW1hcHBpbmctPmZsYWdzCQk9IGZsYWdzOw0KPiAgIA0KPiAg IAlzcGluX2xvY2tfaXJxc2F2ZSgmdmRvbWFpbi0+bWFwcGluZ3NfbG9jaywgaXJxZmxhZ3MpOw0K PiBAQCAtMzQ4LDcgKzM0OCw3IEBAIHN0YXRpYyBzaXplX3QgdmlvbW11X2RlbF9tYXBwaW5ncyhz dHJ1Y3QgdmlvbW11X2RvbWFpbiAqdmRvbWFpbiwNCj4gICB7DQo+ICAgCXNpemVfdCB1bm1hcHBl ZCA9IDA7DQo+ICAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+IC0JdW5zaWduZWQgbG9uZyBsYXN0 ID0gaW92YSArIHNpemUgLSAxOw0KPiArCXVuc2lnbmVkIGxvbmcgbGFzdCA9IGlvdmEgKyBzaXpl Ow0KPiAgIAlzdHJ1Y3QgdmlvbW11X21hcHBpbmcgKm1hcHBpbmcgPSBOVUxMOw0KPiAgIAlzdHJ1 Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICpub2RlLCAqbmV4dDsNCj4gICANCj4gQEAgLTM2Nyw3ICsz NjcsNyBAQCBzdGF0aWMgc2l6ZV90IHZpb21tdV9kZWxfbWFwcGluZ3Moc3RydWN0IHZpb21tdV9k b21haW4gKnZkb21haW4sDQo+ICAgCQkgKiBWaXJ0aW8taW9tbXUgZG9lc24ndCBhbGxvdyBVTk1B UCB0byBzcGxpdCBhIG1hcHBpbmcgY3JlYXRlZA0KPiAgIAkJICogd2l0aCBhIHNpbmdsZSBNQVAg cmVxdWVzdCwgc28gcmVtb3ZlIHRoZSBmdWxsIG1hcHBpbmcuDQo+ICAgCQkgKi8NCj4gLQkJdW5t YXBwZWQgKz0gbWFwcGluZy0+aW92YS5sYXN0IC0gbWFwcGluZy0+aW92YS5zdGFydCArIDE7DQo+ ICsJCXVubWFwcGVkICs9IG1hcHBpbmctPmlvdmEuZW5kIC0gbWFwcGluZy0+aW92YS5zdGFydDsN Cj4gICANCj4gICAJCWludGVydmFsX3RyZWVfcmVtb3ZlKG5vZGUsICZ2ZG9tYWluLT5tYXBwaW5n cyk7DQo+ICAgCQlrZnJlZShtYXBwaW5nKTsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv aW50ZXJ2YWxfdHJlZS5oIGIvaW5jbHVkZS9saW51eC9pbnRlcnZhbF90cmVlLmgNCj4gaW5kZXgg Mjg4YzI2ZjUwNzMyLi5mM2QxZWE5ZTQwMDMgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgv aW50ZXJ2YWxfdHJlZS5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgvaW50ZXJ2YWxfdHJlZS5oDQo+ IEBAIC03LDcgKzcsNyBAQA0KPiAgIHN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgew0KPiAgIAlz dHJ1Y3QgcmJfbm9kZSByYjsNCj4gICAJdW5zaWduZWQgbG9uZyBzdGFydDsJLyogU3RhcnQgb2Yg aW50ZXJ2YWwgKi8NCj4gLQl1bnNpZ25lZCBsb25nIGxhc3Q7CS8qIExhc3QgbG9jYXRpb24gX2lu XyBpbnRlcnZhbCAqLw0KPiArCXVuc2lnbmVkIGxvbmcgZW5kOwkvKiBMYXN0IGxvY2F0aW9uIF9v dXRzaWRlXyBpbnRlcnZhbCAqLw0KPiAgIAl1bnNpZ25lZCBsb25nIF9fc3VidHJlZV9sYXN0Ow0K PiAgIH07DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfdW1lbV9vZHAuaCBi L2luY2x1ZGUvcmRtYS9pYl91bWVtX29kcC5oDQo+IGluZGV4IDI1M2RmMWExZmE1NC4uZDBhZTdh YTIxMzliIDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL3JkbWEvaWJfdW1lbV9vZHAuaA0KPiArKysg Yi9pbmNsdWRlL3JkbWEvaWJfdW1lbV9vZHAuaA0KPiBAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgaWJfdW1lbV9zdGFydChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVt ZW1fb2RwKQ0KPiAgIC8qIFJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhlIHBhZ2UgYWZ0ZXIgdGhl IGxhc3Qgb25lIG9mIGFuIE9EUCB1bWVtLiAqLw0KPiAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQg bG9uZyBpYl91bWVtX2VuZChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQ0KPiAgIHsNCj4g LQlyZXR1cm4gdW1lbV9vZHAtPmludGVydmFsX3RyZWUubGFzdCArIDE7DQo+ICsJcmV0dXJuIHVt ZW1fb2RwLT5pbnRlcnZhbF90cmVlLmVuZDsNCj4gICB9DQo+ICAgDQo+ICAgc3RhdGljIGlubGlu ZSBzaXplX3QgaWJfdW1lbV9vZHBfbnVtX3BhZ2VzKHN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9v ZHApDQo+IEBAIC0xNjUsNyArMTY1LDcgQEAgcmJ0X2liX3VtZW1fbG9va3VwKHN0cnVjdCByYl9y b290X2NhY2hlZCAqcm9vdCwgdTY0IGFkZHIsIHU2NCBsZW5ndGgpDQo+ICAgew0KPiAgIAlzdHJ1 Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICpub2RlOw0KPiAgIA0KPiAtCW5vZGUgPSBpbnRlcnZhbF90 cmVlX2l0ZXJfZmlyc3Qocm9vdCwgYWRkciwgYWRkciArIGxlbmd0aCAtIDEpOw0KPiArCW5vZGUg PSBpbnRlcnZhbF90cmVlX2l0ZXJfZmlyc3Qocm9vdCwgYWRkciwgYWRkciArIGxlbmd0aCk7DQo+ ICAgCWlmICghbm9kZSkNCj4gICAJCXJldHVybiBOVUxMOw0KPiAgIAlyZXR1cm4gY29udGFpbmVy X29mKG5vZGUsIHN0cnVjdCBpYl91bWVtX29kcCwgaW50ZXJ2YWxfdHJlZSk7DQo+IGRpZmYgLS1n aXQgYS9saWIvaW50ZXJ2YWxfdHJlZS5jIGIvbGliL2ludGVydmFsX3RyZWUuYw0KPiBpbmRleCA1 OTNjZTU2ZWNlNTAuLjMzNmVjNTExM2EyOCAxMDA2NDQNCj4gLS0tIGEvbGliL2ludGVydmFsX3Ry ZWUuYw0KPiArKysgYi9saWIvaW50ZXJ2YWxfdHJlZS5jDQo+IEBAIC0xLDE1ICsxLDE1IEBADQo+ ICAgLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KPiAgICNpbmNsdWRl IDxsaW51eC9pbnRlcnZhbF90cmVlLmg+DQo+IC0jaW5jbHVkZSA8bGludXgvaW50ZXJ2YWxfdHJl ZV9nZW5lcmljLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvaW50ZXJ2YWxfdHJlZV9nZW4uaD4NCj4g ICAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4NCj4gICAjaW5jbHVkZSA8bGludXgvZXhwb3J0 Lmg+DQo+ICAgDQo+ICAgI2RlZmluZSBTVEFSVChub2RlKSAoKG5vZGUpLT5zdGFydCkNCj4gLSNk ZWZpbmUgTEFTVChub2RlKSAgKChub2RlKS0+bGFzdCkNCj4gKyNkZWZpbmUgRU5EKG5vZGUpICAo KG5vZGUpLT5lbmQpDQo+ICAgDQo+ICAgSU5URVJWQUxfVFJFRV9ERUZJTkUoc3RydWN0IGludGVy dmFsX3RyZWVfbm9kZSwgcmIsDQo+ICAgCQkgICAgIHVuc2lnbmVkIGxvbmcsIF9fc3VidHJlZV9s YXN0LA0KPiAtCQkgICAgIFNUQVJULCBMQVNULCwgaW50ZXJ2YWxfdHJlZSkNCj4gKwkJICAgICBT VEFSVCwgRU5ELCwgaW50ZXJ2YWxfdHJlZSkNCj4gICANCj4gICBFWFBPUlRfU1lNQk9MX0dQTChp bnRlcnZhbF90cmVlX2luc2VydCk7DQo+ICAgRVhQT1JUX1NZTUJPTF9HUEwoaW50ZXJ2YWxfdHJl ZV9yZW1vdmUpOw0KDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH 09/11] lib/interval-tree: convert interval_tree to half closed intervals Date: Fri, 4 Oct 2019 06:57:59 +0000 Message-ID: References: <20191003201858.11666-1-dave@stgolabs.net> <20191003201858.11666-10-dave@stgolabs.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-eopbgr770084.outbound.protection.outlook.com [40.107.77.84]) by gabe.freedesktop.org (Postfix) with ESMTPS id 933E16E2B6 for ; Fri, 4 Oct 2019 06:58:02 +0000 (UTC) In-Reply-To: <20191003201858.11666-10-dave@stgolabs.net> Content-Language: en-US Content-ID: <19CC4817594C8A43966A8ABD43B6D8EB@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Davidlohr Bueso , "akpm@linux-foundation.org" Cc: =?utf-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Davidlohr Bueso , "peterz@infradead.org" , David Airlie , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linux-mm@kvack.org" , Doug Ledford , "Deucher, Alexander" , "walken@google.com" , "linux-rdma@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org QW0gMDMuMTAuMTkgdW0gMjI6MTggc2NocmllYiBEYXZpZGxvaHIgQnVlc286DQo+IFRoZSBnZW5l cmljIHRyZWUgdHJlZSByZWFsbHkgd2FudHMgW2EsIGIpIGludGVydmFscywgbm90IGZ1bGx5IGNs b3NlZC4NCj4gQXMgc3VjaCBjb252ZXJ0IGl0IHRvIHVzZSB0aGUgbmV3IGludGVydmFsX3RyZWVf Z2VuLmguIE1vc3Qgb2YgdGhlDQo+IGNvbnZlcnNpb25zIGFyZSBzdHJhaWdodGZvcndhcmQsIHdp dGggdGhlIGV4Y2VwdGlvbiBvZiBwZXJoYXBzDQo+IHJhZGVvbl92bV9ib19zZXRfYWRkcigpLCBi dXQgc2VtYW50aWNzIGhhdmUgYmVlbiB0cmllZCB0byBiZSBsZWZ0DQo+IHVudG91Y2hlZC4NCg0K TkFLLCB0aGUgd2hvbGUgdGhpbmcgd29uJ3Qgd29yay4NCg0KU2VlIHdlIG5lZWQgdG8gaGFuZGxl IHRoZSBmdWxsIGRldmljZSBhZGRyZXNzIHNwYWNlIHdoaWNoIG1lYW5zIHdlIGhhdmUgDQp2YWx1 ZXMgaW4gdGhlIHJhbmdlIG9mIDB4MC0weGZmZmZmZmZmLg0KDQpJZiB5b3UgbWFrZSB0aGlzIGEg Y2xvc2VkIGludGVydmFsIHRoZW4gdGhlIGVuZCB3b3VsZCB3cmFwIGFyb3VuZCB0byAweDAgDQpp ZiBsb25nIGlzIG9ubHkgMzJiaXQuDQoNClJlZ2FyZHMsDQpDaHJpc3RpYW4uDQoNCj4NCj4gQ2M6 ICJDaHJpc3RpYW4gS8O2bmlnIiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0KPiBDYzogQWxl eCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPg0KPiBDYzogRGF2aWQgQWlybGll IDxhaXJsaWVkQGxpbnV4LmllPg0KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNo Pg0KPiBDYzogRG91ZyBMZWRmb3JkIDxkbGVkZm9yZEByZWRoYXQuY29tPg0KPiBDYzogSm9lcmcg Um9lZGVsIDxqb3JvQDhieXRlcy5vcmc+DQo+IENjOiAiSsOpcsO0bWUgR2xpc3NlIiA8amdsaXNz ZUByZWRoYXQuY29tPg0KPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBD YzogbGludXgtcmRtYUB2Z2VyLmtlcm5lbC5vcmcNCj4gU2lnbmVkLW9mZi1ieTogRGF2aWRsb2hy IEJ1ZXNvIDxkYnVlc29Ac3VzZS5kZT4NCj4gLS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X21uLmMgICAgICB8IDEyICsrKy0tLS0tLS0tLQ0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRyLmMgfCAgNSArLS0tLQ0KPiAgIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX21uLmMgICAgICAgICAgfCAxMSArKysrLS0tLS0tLQ0KPiAg IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmggICAgICAgfCAgMiArLQ0KPiAg IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMgICAgICAgICAgfCAyNiArKysrKysr KysrKysrLS0tLS0tLS0tLS0tLQ0KPiAgIGRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2Rw LmMgICAgICAgICAgfCAyMSArKysrKysrLS0tLS0tLS0tLS0tLS0NCj4gICBkcml2ZXJzL2lvbW11 L3ZpcnRpby1pb21tdS5jICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tDQo+ICAgaW5jbHVkZS9s aW51eC9pbnRlcnZhbF90cmVlLmggICAgICAgICAgICAgICB8ICAyICstDQo+ICAgaW5jbHVkZS9y ZG1hL2liX3VtZW1fb2RwLmggICAgICAgICAgICAgICAgICB8ICA0ICsrLS0NCj4gICBsaWIvaW50 ZXJ2YWxfdHJlZS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tDQo+ICAgMTAg ZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pDQo+DQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5jDQo+IGluZGV4IDMxZDRkZWI1ZDI5NC4u NGJiYWE5ZmZhNTcwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfbW4uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4u Yw0KPiBAQCAtMjA1LDkgKzIwNSw2IEBAIGFtZGdwdV9tbl9zeW5jX3BhZ2V0YWJsZXNfZ2Z4KHN0 cnVjdCBobW1fbWlycm9yICptaXJyb3IsDQo+ICAgCWJvb2wgYmxvY2thYmxlID0gbW11X25vdGlm aWVyX3JhbmdlX2Jsb2NrYWJsZSh1cGRhdGUpOw0KPiAgIAlzdHJ1Y3QgaW50ZXJ2YWxfdHJlZV9u b2RlICppdDsNCj4gICANCj4gLQkvKiBub3RpZmljYXRpb24gaXMgZXhjbHVzaXZlLCBidXQgaW50 ZXJ2YWwgaXMgaW5jbHVzaXZlICovDQo+IC0JZW5kIC09IDE7DQo+IC0NCj4gICAJLyogVE9ETyB3 ZSBzaG91bGQgYmUgYWJsZSB0byBzcGxpdCBsb2NraW5nIGZvciBpbnRlcnZhbCB0cmVlIGFuZA0K PiAgIAkgKiBhbWRncHVfbW5faW52YWxpZGF0ZV9ub2RlDQo+ICAgCSAqLw0KPiBAQCAtMjU0LDkg KzI1MSw2IEBAIGFtZGdwdV9tbl9zeW5jX3BhZ2V0YWJsZXNfaHNhKHN0cnVjdCBobW1fbWlycm9y ICptaXJyb3IsDQo+ICAgCWJvb2wgYmxvY2thYmxlID0gbW11X25vdGlmaWVyX3JhbmdlX2Jsb2Nr YWJsZSh1cGRhdGUpOw0KPiAgIAlzdHJ1Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICppdDsNCj4gICAN Cj4gLQkvKiBub3RpZmljYXRpb24gaXMgZXhjbHVzaXZlLCBidXQgaW50ZXJ2YWwgaXMgaW5jbHVz aXZlICovDQo+IC0JZW5kIC09IDE7DQo+IC0NCj4gICAJaWYgKGFtZGdwdV9tbl9yZWFkX2xvY2so YW1uLCBibG9ja2FibGUpKQ0KPiAgIAkJcmV0dXJuIC1FQUdBSU47DQo+ICAgDQo+IEBAIC0zNzQs NyArMzY4LDcgQEAgc3RydWN0IGFtZGdwdV9tbiAqYW1kZ3B1X21uX2dldChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwNCj4gICAgKi8NCj4gICBpbnQgYW1kZ3B1X21uX3JlZ2lzdGVyKHN0cnVj dCBhbWRncHVfYm8gKmJvLCB1bnNpZ25lZCBsb25nIGFkZHIpDQo+ICAgew0KPiAtCXVuc2lnbmVk IGxvbmcgZW5kID0gYWRkciArIGFtZGdwdV9ib19zaXplKGJvKSAtIDE7DQo+ICsJdW5zaWduZWQg bG9uZyBlbmQgPSBhZGRyICsgYW1kZ3B1X2JvX3NpemUoYm8pOw0KPiAgIAlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiby0+dGJvLmJkZXYpOw0KPiAgIAllbnVt IGFtZGdwdV9tbl90eXBlIHR5cGUgPQ0KPiAgIAkJYm8tPmtmZF9ibyA/IEFNREdQVV9NTl9UWVBF X0hTQSA6IEFNREdQVV9NTl9UWVBFX0dGWDsNCj4gQEAgLTQwMCw3ICszOTQsNyBAQCBpbnQgYW1k Z3B1X21uX3JlZ2lzdGVyKHN0cnVjdCBhbWRncHVfYm8gKmJvLCB1bnNpZ25lZCBsb25nIGFkZHIp DQo+ICAgCQlub2RlID0gY29udGFpbmVyX29mKGl0LCBzdHJ1Y3QgYW1kZ3B1X21uX25vZGUsIGl0 KTsNCj4gICAJCWludGVydmFsX3RyZWVfcmVtb3ZlKCZub2RlLT5pdCwgJmFtbi0+b2JqZWN0cyk7 DQo+ICAgCQlhZGRyID0gbWluKGl0LT5zdGFydCwgYWRkcik7DQo+IC0JCWVuZCA9IG1heChpdC0+ bGFzdCwgZW5kKTsNCj4gKwkJZW5kID0gbWF4KGl0LT5lbmQsIGVuZCk7DQo+ICAgCQlsaXN0X3Nw bGljZSgmbm9kZS0+Ym9zLCAmYm9zKTsNCj4gICAJfQ0KPiAgIA0KPiBAQCAtNDEyLDcgKzQwNiw3 IEBAIGludCBhbWRncHVfbW5fcmVnaXN0ZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHVuc2lnbmVk IGxvbmcgYWRkcikNCj4gICAJYm8tPm1uID0gYW1uOw0KPiAgIA0KPiAgIAlub2RlLT5pdC5zdGFy dCA9IGFkZHI7DQo+IC0Jbm9kZS0+aXQubGFzdCA9IGVuZDsNCj4gKwlub2RlLT5pdC5lbmQgPSBl bmQ7DQo+ICAgCUlOSVRfTElTVF9IRUFEKCZub2RlLT5ib3MpOw0KPiAgIAlsaXN0X3NwbGljZSgm Ym9zLCAmbm9kZS0+Ym9zKTsNCj4gICAJbGlzdF9hZGQoJmJvLT5tbl9saXN0LCAmbm9kZS0+Ym9z KTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV91c2Vy cHRyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdXNlcnB0ci5jDQo+IGlu ZGV4IDExYjIzMWMxODdjNS4uODE4ZmY2YjMzMTAyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fdXNlcnB0ci5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV91c2VycHRyLmMNCj4gQEAgLTk5LDkgKzk5LDYgQEAgdXNlcnB0 cl9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKl9tbiwNCj4g ICAJaWYgKFJCX0VNUFRZX1JPT1QoJm1uLT5vYmplY3RzLnJiX3Jvb3QpKQ0KPiAgIAkJcmV0dXJu IDA7DQo+ICAgDQo+IC0JLyogaW50ZXJ2YWwgcmFuZ2VzIGFyZSBpbmNsdXNpdmUsIGJ1dCBpbnZh bGlkYXRlIHJhbmdlIGlzIGV4Y2x1c2l2ZSAqLw0KPiAtCWVuZCA9IHJhbmdlLT5lbmQgLSAxOw0K PiAtDQo+ICAgCXNwaW5fbG9jaygmbW4tPmxvY2spOw0KPiAgIAlpdCA9IGludGVydmFsX3RyZWVf aXRlcl9maXJzdCgmbW4tPm9iamVjdHMsIHJhbmdlLT5zdGFydCwgZW5kKTsNCj4gICAJd2hpbGUg KGl0KSB7DQo+IEBAIC0yNzUsNyArMjcyLDcgQEAgaTkxNV9nZW1fdXNlcnB0cl9pbml0X19tbXVf bm90aWZpZXIoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwNCj4gICAJbW8tPm1uID0g bW47DQo+ICAgCW1vLT5vYmogPSBvYmo7DQo+ICAgCW1vLT5pdC5zdGFydCA9IG9iai0+dXNlcnB0 ci5wdHI7DQo+IC0JbW8tPml0Lmxhc3QgPSBvYmotPnVzZXJwdHIucHRyICsgb2JqLT5iYXNlLnNp emUgLSAxOw0KPiArCW1vLT5pdC5lbmQgPSBvYmotPnVzZXJwdHIucHRyICsgb2JqLT5iYXNlLnNp emU7DQo+ICAgCVJCX0NMRUFSX05PREUoJm1vLT5pdC5yYik7DQo+ICAgDQo+ICAgCW9iai0+dXNl cnB0ci5tbXVfb2JqZWN0ID0gbW87DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9tbi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYw0KPiBp bmRleCBkYmFiOWEzYTk2OWIuLjQ4MTA0MjFkYWNjMiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fbW4uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9tbi5jDQo+IEBAIC02NiwxMiArNjYsOSBAQCBzdGF0aWMgaW50IHJhZGVvbl9tbl9p bnZhbGlkYXRlX3JhbmdlX3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLA0KPiAgIAlzdHJ1 Y3QgcmFkZW9uX21uICpybW4gPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCByYWRlb25fbW4sIG1u KTsNCj4gICAJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07 DQo+ICAgCXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKml0Ow0KPiAtCXVuc2lnbmVkIGxvbmcg ZW5kOw0KPiArCXVuc2lnbmVkIGxvbmcgZW5kID0gcmFuZ2UtPmVuZDsNCj4gICAJaW50IHJldCA9 IDA7DQo+ICAgDQo+IC0JLyogbm90aWZpY2F0aW9uIGlzIGV4Y2x1c2l2ZSwgYnV0IGludGVydmFs IGlzIGluY2x1c2l2ZSAqLw0KPiAtCWVuZCA9IHJhbmdlLT5lbmQgLSAxOw0KPiAtDQo+ICAgCS8q IFRPRE8gd2Ugc2hvdWxkIGJlIGFibGUgdG8gc3BsaXQgbG9ja2luZyBmb3IgaW50ZXJ2YWwgdHJl ZSBhbmQNCj4gICAJICogdGhlIHRlYXIgZG93bi4NCj4gICAJICovDQo+IEBAIC0xNzQsNyArMTcx LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzIHJhZGVvbl9tbl9vcHMg PSB7DQo+ICAgICovDQo+ICAgaW50IHJhZGVvbl9tbl9yZWdpc3RlcihzdHJ1Y3QgcmFkZW9uX2Jv ICpibywgdW5zaWduZWQgbG9uZyBhZGRyKQ0KPiAgIHsNCj4gLQl1bnNpZ25lZCBsb25nIGVuZCA9 IGFkZHIgKyByYWRlb25fYm9fc2l6ZShibykgLSAxOw0KPiArCXVuc2lnbmVkIGxvbmcgZW5kID0g YWRkciArIHJhZGVvbl9ib19zaXplKGJvKTsNCj4gICAJc3RydWN0IG1tdV9ub3RpZmllciAqbW47 DQo+ICAgCXN0cnVjdCByYWRlb25fbW4gKnJtbjsNCj4gICAJc3RydWN0IHJhZGVvbl9tbl9ub2Rl ICpub2RlID0gTlVMTDsNCj4gQEAgLTE5NSw3ICsxOTIsNyBAQCBpbnQgcmFkZW9uX21uX3JlZ2lz dGVyKHN0cnVjdCByYWRlb25fYm8gKmJvLCB1bnNpZ25lZCBsb25nIGFkZHIpDQo+ICAgCQlub2Rl ID0gY29udGFpbmVyX29mKGl0LCBzdHJ1Y3QgcmFkZW9uX21uX25vZGUsIGl0KTsNCj4gICAJCWlu dGVydmFsX3RyZWVfcmVtb3ZlKCZub2RlLT5pdCwgJnJtbi0+b2JqZWN0cyk7DQo+ICAgCQlhZGRy ID0gbWluKGl0LT5zdGFydCwgYWRkcik7DQo+IC0JCWVuZCA9IG1heChpdC0+bGFzdCwgZW5kKTsN Cj4gKwkJZW5kID0gbWF4KGl0LT5lbmQsIGVuZCk7DQo+ICAgCQlsaXN0X3NwbGljZSgmbm9kZS0+ Ym9zLCAmYm9zKTsNCj4gICAJfQ0KPiAgIA0KPiBAQCAtMjEwLDcgKzIwNyw3IEBAIGludCByYWRl b25fbW5fcmVnaXN0ZXIoc3RydWN0IHJhZGVvbl9ibyAqYm8sIHVuc2lnbmVkIGxvbmcgYWRkcikN Cj4gICAJYm8tPm1uID0gcm1uOw0KPiAgIA0KPiAgIAlub2RlLT5pdC5zdGFydCA9IGFkZHI7DQo+ IC0Jbm9kZS0+aXQubGFzdCA9IGVuZDsNCj4gKwlub2RlLT5pdC5lbmQgPSBlbmQ7DQo+ICAgCUlO SVRfTElTVF9IRUFEKCZub2RlLT5ib3MpOw0KPiAgIAlsaXN0X3NwbGljZSgmYm9zLCAmbm9kZS0+ Ym9zKTsNCj4gICAJbGlzdF9hZGQoJmJvLT5tbl9saXN0LCAmbm9kZS0+Ym9zKTsNCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmggYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl90cmFjZS5oDQo+IGluZGV4IGM5M2YzYWIzYzRlMy4uNDMyNGYz ZmM1ZDgyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90cmFj ZS5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3RyYWNlLmgNCj4gQEAg LTczLDcgKzczLDcgQEAgVFJBQ0VfRVZFTlQocmFkZW9uX3ZtX2JvX3VwZGF0ZSwNCj4gICANCj4g ICAJICAgIFRQX2Zhc3RfYXNzaWduKA0KPiAgIAkJCSAgIF9fZW50cnktPnNvZmZzZXQgPSBib192 YS0+aXQuc3RhcnQ7DQo+IC0JCQkgICBfX2VudHJ5LT5lb2Zmc2V0ID0gYm9fdmEtPml0Lmxhc3Qg KyAxOw0KPiArCQkJICAgX19lbnRyeS0+ZW9mZnNldCA9IGJvX3ZhLT5pdC5lbmQ7DQo+ICAgCQkJ ICAgX19lbnRyeS0+ZmxhZ3MgPSBib192YS0+ZmxhZ3M7DQo+ICAgCQkJICAgKSwNCj4gICAJICAg IFRQX3ByaW50aygic29mZnM9JTAxMGxseCwgZW9mZnM9JTAxMGxseCwgZmxhZ3M9JTA4eCIsDQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYw0KPiBpbmRleCBlMGFkNTQ3Nzg2ZTguLmIyYTU0 YWZmMjFmNCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0u Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jDQo+IEBAIC0zMjks NyArMzI5LDcgQEAgc3RydWN0IHJhZGVvbl9ib192YSAqcmFkZW9uX3ZtX2JvX2FkZChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwNCj4gICAJYm9fdmEtPnZtID0gdm07DQo+ICAgCWJvX3ZhLT5i byA9IGJvOw0KPiAgIAlib192YS0+aXQuc3RhcnQgPSAwOw0KPiAtCWJvX3ZhLT5pdC5sYXN0ID0g MDsNCj4gKwlib192YS0+aXQuZW5kID0gMDsNCj4gICAJYm9fdmEtPmZsYWdzID0gMDsNCj4gICAJ Ym9fdmEtPnJlZl9jb3VudCA9IDE7DQo+ICAgCUlOSVRfTElTVF9IRUFEKCZib192YS0+Ym9fbGlz dCk7DQo+IEBAIC00NTYsNyArNDU2LDcgQEAgaW50IHJhZGVvbl92bV9ib19zZXRfYWRkcihzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4gICANCj4gICAJaWYgKHNvZmZzZXQpIHsNCj4gICAJ CS8qIG1ha2Ugc3VyZSBvYmplY3QgZml0IGF0IHRoaXMgb2Zmc2V0ICovDQo+IC0JCWVvZmZzZXQg PSBzb2Zmc2V0ICsgc2l6ZSAtIDE7DQo+ICsJCWVvZmZzZXQgPSBzb2Zmc2V0ICsgc2l6ZTsNCj4g ICAJCWlmIChzb2Zmc2V0ID49IGVvZmZzZXQpIHsNCj4gICAJCQlyID0gLUVJTlZBTDsNCj4gICAJ CQlnb3RvIGVycm9yX3VucmVzZXJ2ZTsNCj4gQEAgLTQ4NiwxNCArNDg2LDE0IEBAIGludCByYWRl b25fdm1fYm9fc2V0X2FkZHIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsDQo+ICAgCQkJLyog Ym8gYW5kIHRtcCBvdmVybGFwLCBpbnZhbGlkIG9mZnNldCAqLw0KPiAgIAkJCWRldl9lcnIocmRl di0+ZGV2LCAiYm8gJXAgdmEgMHglMDEwTHggY29uZmxpY3Qgd2l0aCAiDQo+ICAgCQkJCSIoYm8g JXAgMHglMDEwbHggMHglMDEwbHgpXG4iLCBib192YS0+Ym8sDQo+IC0JCQkJc29mZnNldCwgdG1w LT5ibywgdG1wLT5pdC5zdGFydCwgdG1wLT5pdC5sYXN0KTsNCj4gKwkJCQlzb2Zmc2V0LCB0bXAt PmJvLCB0bXAtPml0LnN0YXJ0LCB0bXAtPml0LmVuZCk7DQo+ICAgCQkJbXV0ZXhfdW5sb2NrKCZ2 bS0+bXV0ZXgpOw0KPiAgIAkJCXIgPSAtRUlOVkFMOw0KPiAgIAkJCWdvdG8gZXJyb3JfdW5yZXNl cnZlOw0KPiAgIAkJfQ0KPiAgIAl9DQo+ICAgDQo+IC0JaWYgKGJvX3ZhLT5pdC5zdGFydCB8fCBi b192YS0+aXQubGFzdCkgew0KPiArCWlmIChib192YS0+aXQuc3RhcnQgfHwgYm9fdmEtPml0LmVu ZCkgew0KPiAgIAkJLyogYWRkIGEgY2xvbmUgb2YgdGhlIGJvX3ZhIHRvIGNsZWFyIHRoZSBvbGQg YWRkcmVzcyAqLw0KPiAgIAkJc3RydWN0IHJhZGVvbl9ib192YSAqdG1wOw0KPiAgIAkJdG1wID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVvbl9ib192YSksIEdGUF9LRVJORUwpOw0KPiBAQCAt NTAzLDE0ICs1MDMsMTQgQEAgaW50IHJhZGVvbl92bV9ib19zZXRfYWRkcihzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwNCj4gICAJCQlnb3RvIGVycm9yX3VucmVzZXJ2ZTsNCj4gICAJCX0NCj4g ICAJCXRtcC0+aXQuc3RhcnQgPSBib192YS0+aXQuc3RhcnQ7DQo+IC0JCXRtcC0+aXQubGFzdCA9 IGJvX3ZhLT5pdC5sYXN0Ow0KPiArCQl0bXAtPml0LmVuZCA9IGJvX3ZhLT5pdC5lbmQ7DQo+ICAg CQl0bXAtPnZtID0gdm07DQo+ICAgCQl0bXAtPmJvID0gcmFkZW9uX2JvX3JlZihib192YS0+Ym8p Ow0KPiAgIA0KPiAgIAkJaW50ZXJ2YWxfdHJlZV9yZW1vdmUoJmJvX3ZhLT5pdCwgJnZtLT52YSk7 DQo+ICAgCQlzcGluX2xvY2soJnZtLT5zdGF0dXNfbG9jayk7DQo+ICAgCQlib192YS0+aXQuc3Rh cnQgPSAwOw0KPiAtCQlib192YS0+aXQubGFzdCA9IDA7DQo+ICsJCWJvX3ZhLT5pdC5lbmQgPSAw Ow0KPiAgIAkJbGlzdF9kZWxfaW5pdCgmYm9fdmEtPnZtX3N0YXR1cyk7DQo+ICAgCQlsaXN0X2Fk ZCgmdG1wLT52bV9zdGF0dXMsICZ2bS0+ZnJlZWQpOw0KPiAgIAkJc3Bpbl91bmxvY2soJnZtLT5z dGF0dXNfbG9jayk7DQo+IEBAIC01MTksNyArNTE5LDcgQEAgaW50IHJhZGVvbl92bV9ib19zZXRf YWRkcihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4gICAJaWYgKHNvZmZzZXQgfHwgZW9m ZnNldCkgew0KPiAgIAkJc3Bpbl9sb2NrKCZ2bS0+c3RhdHVzX2xvY2spOw0KPiAgIAkJYm9fdmEt Pml0LnN0YXJ0ID0gc29mZnNldDsNCj4gLQkJYm9fdmEtPml0Lmxhc3QgPSBlb2Zmc2V0Ow0KPiAr CQlib192YS0+aXQuZW5kID0gZW9mZnNldDsNCj4gICAJCWxpc3RfYWRkKCZib192YS0+dm1fc3Rh dHVzLCAmdm0tPmNsZWFyZWQpOw0KPiAgIAkJc3Bpbl91bmxvY2soJnZtLT5zdGF0dXNfbG9jayk7 DQo+ICAgCQlpbnRlcnZhbF90cmVlX2luc2VydCgmYm9fdmEtPml0LCAmdm0tPnZhKTsNCj4gQEAg LTk2NCw3ICs5NjQsNyBAQCBpbnQgcmFkZW9uX3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwNCj4gICANCj4gICAJdHJhY2VfcmFkZW9uX3ZtX2JvX3VwZGF0ZShib192YSk7 DQo+ICAgDQo+IC0JbnB0ZXMgPSBib192YS0+aXQubGFzdCAtIGJvX3ZhLT5pdC5zdGFydCArIDE7 DQo+ICsJbnB0ZXMgPSBib192YS0+aXQuZW5kIC0gYm9fdmEtPml0LnN0YXJ0Ow0KPiAgIA0KPiAg IAkvKiByZXNlcnZlIHNwYWNlIGZvciBvbmUgY29tbWFuZCBldmVyeSAoMSA8PCBCTE9DS19TSVpF KSBlbnRyaWVzDQo+ICAgCSAgIG9yIDJrIGR3b3JkcyAod2hhdGV2ZXIgaXMgc21hbGxlcikgKi8N Cj4gQEAgLTEwMTAsNyArMTAxMCw3IEBAIGludCByYWRlb25fdm1fYm9fdXBkYXRlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LA0KPiAgIAl9DQo+ICAgDQo+ICAgCXIgPSByYWRlb25fdm1fdXBk YXRlX3B0ZXMocmRldiwgdm0sICZpYiwgYm9fdmEtPml0LnN0YXJ0LA0KPiAtCQkJCSAgYm9fdmEt Pml0Lmxhc3QgKyAxLCBhZGRyLA0KPiArCQkJCSAgYm9fdmEtPml0LmVuZCwgYWRkciwNCj4gICAJ CQkJICByYWRlb25fdm1fcGFnZV9mbGFncyhib192YS0+ZmxhZ3MpKTsNCj4gICAJaWYgKHIpIHsN Cj4gICAJCXJhZGVvbl9pYl9mcmVlKHJkZXYsICZpYik7DQo+IEBAIC0xMDI2LDcgKzEwMjYsNyBA QCBpbnQgcmFkZW9uX3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4g ICAJCXJldHVybiByOw0KPiAgIAl9DQo+ICAgCWliLmZlbmNlLT5pc192bV91cGRhdGUgPSB0cnVl Ow0KPiAtCXJhZGVvbl92bV9mZW5jZV9wdHModm0sIGJvX3ZhLT5pdC5zdGFydCwgYm9fdmEtPml0 Lmxhc3QgKyAxLCBpYi5mZW5jZSk7DQo+ICsJcmFkZW9uX3ZtX2ZlbmNlX3B0cyh2bSwgYm9fdmEt Pml0LnN0YXJ0LCBib192YS0+aXQuZW5kLCBpYi5mZW5jZSk7DQo+ICAgCXJhZGVvbl9mZW5jZV91 bnJlZigmYm9fdmEtPmxhc3RfcHRfdXBkYXRlKTsNCj4gICAJYm9fdmEtPmxhc3RfcHRfdXBkYXRl ID0gcmFkZW9uX2ZlbmNlX3JlZihpYi5mZW5jZSk7DQo+ICAgCXJhZGVvbl9pYl9mcmVlKHJkZXYs ICZpYik7DQo+IEBAIC0xMTI0LDEyICsxMTI0LDEyIEBAIHZvaWQgcmFkZW9uX3ZtX2JvX3Jtdihz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4gICAJbGlzdF9kZWwoJmJvX3ZhLT5ib19saXN0 KTsNCj4gICANCj4gICAJbXV0ZXhfbG9jaygmdm0tPm11dGV4KTsNCj4gLQlpZiAoYm9fdmEtPml0 LnN0YXJ0IHx8IGJvX3ZhLT5pdC5sYXN0KQ0KPiArCWlmIChib192YS0+aXQuc3RhcnQgfHwgYm9f dmEtPml0LmVuZCkNCj4gICAJCWludGVydmFsX3RyZWVfcmVtb3ZlKCZib192YS0+aXQsICZ2bS0+ dmEpOw0KPiAgIA0KPiAgIAlzcGluX2xvY2soJnZtLT5zdGF0dXNfbG9jayk7DQo+ICAgCWxpc3Rf ZGVsKCZib192YS0+dm1fc3RhdHVzKTsNCj4gLQlpZiAoYm9fdmEtPml0LnN0YXJ0IHx8IGJvX3Zh LT5pdC5sYXN0KSB7DQo+ICsJaWYgKGJvX3ZhLT5pdC5zdGFydCB8fCBib192YS0+aXQuZW5kKSB7 DQo+ICAgCQlib192YS0+Ym8gPSByYWRlb25fYm9fcmVmKGJvX3ZhLT5ibyk7DQo+ICAgCQlsaXN0 X2FkZCgmYm9fdmEtPnZtX3N0YXR1cywgJnZtLT5mcmVlZCk7DQo+ICAgCX0gZWxzZSB7DQo+IEBA IC0xMTU4LDcgKzExNTgsNyBAQCB2b2lkIHJhZGVvbl92bV9ib19pbnZhbGlkYXRlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LA0KPiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJvX3ZhLCAmYm8t PnZhLCBib19saXN0KSB7DQo+ICAgCQlzcGluX2xvY2soJmJvX3ZhLT52bS0+c3RhdHVzX2xvY2sp Ow0KPiAgIAkJaWYgKGxpc3RfZW1wdHkoJmJvX3ZhLT52bV9zdGF0dXMpICYmDQo+IC0JCSAgICAo Ym9fdmEtPml0LnN0YXJ0IHx8IGJvX3ZhLT5pdC5sYXN0KSkNCj4gKwkJICAgIChib192YS0+aXQu c3RhcnQgfHwgYm9fdmEtPml0LmVuZCkpDQo+ICAgCQkJbGlzdF9hZGQoJmJvX3ZhLT52bV9zdGF0 dXMsICZib192YS0+dm0tPmludmFsaWRhdGVkKTsNCj4gICAJCXNwaW5fdW5sb2NrKCZib192YS0+ dm0tPnN0YXR1c19sb2NrKTsNCj4gICAJfQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmli YW5kL2NvcmUvdW1lbV9vZHAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMN Cj4gaW5kZXggZjY3YTMwZmRhMWVkLi45YjdhYzkzMjIzZDYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMNCj4gKysrIGIvZHJpdmVycy9pbmZpbmliYW5k L2NvcmUvdW1lbV9vZHAuYw0KPiBAQCAtMjE5LDI2ICsyMTksMTkgQEAgc3RhdGljIGlubGluZSBp bnQgaWJfaW5pdF91bWVtX29kcChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQ0KPiAgIAkJ CUFMSUdOX0RPV04odW1lbV9vZHAtPnVtZW0uYWRkcmVzcywgcGFnZV9zaXplKTsNCj4gICAJCWlm IChjaGVja19hZGRfb3ZlcmZsb3codW1lbV9vZHAtPnVtZW0uYWRkcmVzcywNCj4gICAJCQkJICAg ICAgICh1bnNpZ25lZCBsb25nKXVtZW1fb2RwLT51bWVtLmxlbmd0aCwNCj4gLQkJCQkgICAgICAg JnVtZW1fb2RwLT5pbnRlcnZhbF90cmVlLmxhc3QpKQ0KPiArCQkJCSAgICAgICAmdW1lbV9vZHAt PmludGVydmFsX3RyZWUuZW5kKSkNCj4gICAJCQlyZXR1cm4gLUVPVkVSRkxPVzsNCj4gLQkJdW1l bV9vZHAtPmludGVydmFsX3RyZWUubGFzdCA9DQo+IC0JCQlBTElHTih1bWVtX29kcC0+aW50ZXJ2 YWxfdHJlZS5sYXN0LCBwYWdlX3NpemUpOw0KPiAtCQlpZiAodW5saWtlbHkodW1lbV9vZHAtPmlu dGVydmFsX3RyZWUubGFzdCA8IHBhZ2Vfc2l6ZSkpDQo+ICsJCXVtZW1fb2RwLT5pbnRlcnZhbF90 cmVlLmVuZCA9DQo+ICsJCQlBTElHTih1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5lbmQsIHBhZ2Vf c2l6ZSk7DQo+ICsJCWlmICh1bmxpa2VseSh1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5lbmQgPCBw YWdlX3NpemUpKQ0KPiAgIAkJCXJldHVybiAtRU9WRVJGTE9XOw0KPiAgIA0KPiAtCQlwYWdlcyA9 ICh1bWVtX29kcC0+aW50ZXJ2YWxfdHJlZS5sYXN0IC0NCj4gKwkJcGFnZXMgPSAodW1lbV9vZHAt PmludGVydmFsX3RyZWUuZW5kIC0NCj4gICAJCQkgdW1lbV9vZHAtPmludGVydmFsX3RyZWUuc3Rh cnQpID4+DQo+ICAgCQkJdW1lbV9vZHAtPnBhZ2Vfc2hpZnQ7DQo+ICAgCQlpZiAoIXBhZ2VzKQ0K PiAgIAkJCXJldHVybiAtRUlOVkFMOw0KPiAgIA0KPiAtCQkvKg0KPiAtCQkgKiBOb3RlIHRoYXQg dGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlcnZhbHMgaW4gdGhlDQo+IC0JCSAqIGludGVy dmFsIHRyZWUgY29uc2lkZXJzIHRoZSBlbmRpbmcgcG9pbnQgYXMgY29udGFpbmVkIGluDQo+IC0J CSAqIHRoZSBpbnRlcnZhbC4NCj4gLQkJICovDQo+IC0JCXVtZW1fb2RwLT5pbnRlcnZhbF90cmVl Lmxhc3QtLTsNCj4gLQ0KPiAgIAkJdW1lbV9vZHAtPnBhZ2VfbGlzdCA9IGt2Y2FsbG9jKA0KPiAg IAkJCXBhZ2VzLCBzaXplb2YoKnVtZW1fb2RwLT5wYWdlX2xpc3QpLCBHRlBfS0VSTkVMKTsNCj4g ICAJCWlmICghdW1lbV9vZHAtPnBhZ2VfbGlzdCkNCj4gQEAgLTc3NywxMiArNzcwLDEyIEBAIGlu dCByYnRfaWJfdW1lbV9mb3JfZWFjaF9pbl9yYW5nZShzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQgKnJv b3QsDQo+ICAgCWlmICh1bmxpa2VseShzdGFydCA9PSBsYXN0KSkNCj4gICAJCXJldHVybiByZXRf dmFsOw0KPiAgIA0KPiAtCWZvciAobm9kZSA9IGludGVydmFsX3RyZWVfaXRlcl9maXJzdChyb290 LCBzdGFydCwgbGFzdCAtIDEpOw0KPiArCWZvciAobm9kZSA9IGludGVydmFsX3RyZWVfaXRlcl9m aXJzdChyb290LCBzdGFydCwgbGFzdCk7DQo+ICAgCQkJbm9kZTsgbm9kZSA9IG5leHQpIHsNCj4g ICAJCS8qIFRPRE8gbW92ZSB0aGUgYmxvY2thYmxlIGRlY2lzaW9uIHVwIHRvIHRoZSBjYWxsYmFj ayAqLw0KPiAgIAkJaWYgKCFibG9ja2FibGUpDQo+ICAgCQkJcmV0dXJuIC1FQUdBSU47DQo+IC0J CW5leHQgPSBpbnRlcnZhbF90cmVlX2l0ZXJfbmV4dChub2RlLCBzdGFydCwgbGFzdCAtIDEpOw0K PiArCQluZXh0ID0gaW50ZXJ2YWxfdHJlZV9pdGVyX25leHQobm9kZSwgc3RhcnQsIGxhc3QpOw0K PiAgIAkJdW1lbSA9IGNvbnRhaW5lcl9vZihub2RlLCBzdHJ1Y3QgaWJfdW1lbV9vZHAsIGludGVy dmFsX3RyZWUpOw0KPiAgIAkJcmV0X3ZhbCA9IGNiKHVtZW0sIHN0YXJ0LCBsYXN0LCBjb29raWUp IHx8IHJldF92YWw7DQo+ICAgCX0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvdmlydGlv LWlvbW11LmMgYi9kcml2ZXJzL2lvbW11L3ZpcnRpby1pb21tdS5jDQo+IGluZGV4IDNlYTlkNzY4 Mjk5OS4uNzcxNzQwOTgxZjQzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2lvbW11L3ZpcnRpby1p b21tdS5jDQo+ICsrKyBiL2RyaXZlcnMvaW9tbXUvdmlydGlvLWlvbW11LmMNCj4gQEAgLTMyMyw3 ICszMjMsNyBAQCBzdGF0aWMgaW50IHZpb21tdV9hZGRfbWFwcGluZyhzdHJ1Y3QgdmlvbW11X2Rv bWFpbiAqdmRvbWFpbiwgdW5zaWduZWQgbG9uZyBpb3ZhLA0KPiAgIA0KPiAgIAltYXBwaW5nLT5w YWRkcgkJPSBwYWRkcjsNCj4gICAJbWFwcGluZy0+aW92YS5zdGFydAk9IGlvdmE7DQo+IC0JbWFw cGluZy0+aW92YS5sYXN0CT0gaW92YSArIHNpemUgLSAxOw0KPiArCW1hcHBpbmctPmlvdmEuZW5k CT0gaW92YSArIHNpemU7DQo+ICAgCW1hcHBpbmctPmZsYWdzCQk9IGZsYWdzOw0KPiAgIA0KPiAg IAlzcGluX2xvY2tfaXJxc2F2ZSgmdmRvbWFpbi0+bWFwcGluZ3NfbG9jaywgaXJxZmxhZ3MpOw0K PiBAQCAtMzQ4LDcgKzM0OCw3IEBAIHN0YXRpYyBzaXplX3QgdmlvbW11X2RlbF9tYXBwaW5ncyhz dHJ1Y3QgdmlvbW11X2RvbWFpbiAqdmRvbWFpbiwNCj4gICB7DQo+ICAgCXNpemVfdCB1bm1hcHBl ZCA9IDA7DQo+ICAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+IC0JdW5zaWduZWQgbG9uZyBsYXN0 ID0gaW92YSArIHNpemUgLSAxOw0KPiArCXVuc2lnbmVkIGxvbmcgbGFzdCA9IGlvdmEgKyBzaXpl Ow0KPiAgIAlzdHJ1Y3QgdmlvbW11X21hcHBpbmcgKm1hcHBpbmcgPSBOVUxMOw0KPiAgIAlzdHJ1 Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICpub2RlLCAqbmV4dDsNCj4gICANCj4gQEAgLTM2Nyw3ICsz NjcsNyBAQCBzdGF0aWMgc2l6ZV90IHZpb21tdV9kZWxfbWFwcGluZ3Moc3RydWN0IHZpb21tdV9k b21haW4gKnZkb21haW4sDQo+ICAgCQkgKiBWaXJ0aW8taW9tbXUgZG9lc24ndCBhbGxvdyBVTk1B UCB0byBzcGxpdCBhIG1hcHBpbmcgY3JlYXRlZA0KPiAgIAkJICogd2l0aCBhIHNpbmdsZSBNQVAg cmVxdWVzdCwgc28gcmVtb3ZlIHRoZSBmdWxsIG1hcHBpbmcuDQo+ICAgCQkgKi8NCj4gLQkJdW5t YXBwZWQgKz0gbWFwcGluZy0+aW92YS5sYXN0IC0gbWFwcGluZy0+aW92YS5zdGFydCArIDE7DQo+ ICsJCXVubWFwcGVkICs9IG1hcHBpbmctPmlvdmEuZW5kIC0gbWFwcGluZy0+aW92YS5zdGFydDsN Cj4gICANCj4gICAJCWludGVydmFsX3RyZWVfcmVtb3ZlKG5vZGUsICZ2ZG9tYWluLT5tYXBwaW5n cyk7DQo+ICAgCQlrZnJlZShtYXBwaW5nKTsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv aW50ZXJ2YWxfdHJlZS5oIGIvaW5jbHVkZS9saW51eC9pbnRlcnZhbF90cmVlLmgNCj4gaW5kZXgg Mjg4YzI2ZjUwNzMyLi5mM2QxZWE5ZTQwMDMgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvbGludXgv aW50ZXJ2YWxfdHJlZS5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgvaW50ZXJ2YWxfdHJlZS5oDQo+ IEBAIC03LDcgKzcsNyBAQA0KPiAgIHN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgew0KPiAgIAlz dHJ1Y3QgcmJfbm9kZSByYjsNCj4gICAJdW5zaWduZWQgbG9uZyBzdGFydDsJLyogU3RhcnQgb2Yg aW50ZXJ2YWwgKi8NCj4gLQl1bnNpZ25lZCBsb25nIGxhc3Q7CS8qIExhc3QgbG9jYXRpb24gX2lu XyBpbnRlcnZhbCAqLw0KPiArCXVuc2lnbmVkIGxvbmcgZW5kOwkvKiBMYXN0IGxvY2F0aW9uIF9v dXRzaWRlXyBpbnRlcnZhbCAqLw0KPiAgIAl1bnNpZ25lZCBsb25nIF9fc3VidHJlZV9sYXN0Ow0K PiAgIH07DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfdW1lbV9vZHAuaCBi L2luY2x1ZGUvcmRtYS9pYl91bWVtX29kcC5oDQo+IGluZGV4IDI1M2RmMWExZmE1NC4uZDBhZTdh YTIxMzliIDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL3JkbWEvaWJfdW1lbV9vZHAuaA0KPiArKysg Yi9pbmNsdWRlL3JkbWEvaWJfdW1lbV9vZHAuaA0KPiBAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgaWJfdW1lbV9zdGFydChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVt ZW1fb2RwKQ0KPiAgIC8qIFJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhlIHBhZ2UgYWZ0ZXIgdGhl IGxhc3Qgb25lIG9mIGFuIE9EUCB1bWVtLiAqLw0KPiAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQg bG9uZyBpYl91bWVtX2VuZChzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwKQ0KPiAgIHsNCj4g LQlyZXR1cm4gdW1lbV9vZHAtPmludGVydmFsX3RyZWUubGFzdCArIDE7DQo+ICsJcmV0dXJuIHVt ZW1fb2RwLT5pbnRlcnZhbF90cmVlLmVuZDsNCj4gICB9DQo+ICAgDQo+ICAgc3RhdGljIGlubGlu ZSBzaXplX3QgaWJfdW1lbV9vZHBfbnVtX3BhZ2VzKHN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9v ZHApDQo+IEBAIC0xNjUsNyArMTY1LDcgQEAgcmJ0X2liX3VtZW1fbG9va3VwKHN0cnVjdCByYl9y b290X2NhY2hlZCAqcm9vdCwgdTY0IGFkZHIsIHU2NCBsZW5ndGgpDQo+ICAgew0KPiAgIAlzdHJ1 Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICpub2RlOw0KPiAgIA0KPiAtCW5vZGUgPSBpbnRlcnZhbF90 cmVlX2l0ZXJfZmlyc3Qocm9vdCwgYWRkciwgYWRkciArIGxlbmd0aCAtIDEpOw0KPiArCW5vZGUg PSBpbnRlcnZhbF90cmVlX2l0ZXJfZmlyc3Qocm9vdCwgYWRkciwgYWRkciArIGxlbmd0aCk7DQo+ ICAgCWlmICghbm9kZSkNCj4gICAJCXJldHVybiBOVUxMOw0KPiAgIAlyZXR1cm4gY29udGFpbmVy X29mKG5vZGUsIHN0cnVjdCBpYl91bWVtX29kcCwgaW50ZXJ2YWxfdHJlZSk7DQo+IGRpZmYgLS1n aXQgYS9saWIvaW50ZXJ2YWxfdHJlZS5jIGIvbGliL2ludGVydmFsX3RyZWUuYw0KPiBpbmRleCA1 OTNjZTU2ZWNlNTAuLjMzNmVjNTExM2EyOCAxMDA2NDQNCj4gLS0tIGEvbGliL2ludGVydmFsX3Ry ZWUuYw0KPiArKysgYi9saWIvaW50ZXJ2YWxfdHJlZS5jDQo+IEBAIC0xLDE1ICsxLDE1IEBADQo+ ICAgLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KPiAgICNpbmNsdWRl IDxsaW51eC9pbnRlcnZhbF90cmVlLmg+DQo+IC0jaW5jbHVkZSA8bGludXgvaW50ZXJ2YWxfdHJl ZV9nZW5lcmljLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvaW50ZXJ2YWxfdHJlZV9nZW4uaD4NCj4g ICAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4NCj4gICAjaW5jbHVkZSA8bGludXgvZXhwb3J0 Lmg+DQo+ICAgDQo+ICAgI2RlZmluZSBTVEFSVChub2RlKSAoKG5vZGUpLT5zdGFydCkNCj4gLSNk ZWZpbmUgTEFTVChub2RlKSAgKChub2RlKS0+bGFzdCkNCj4gKyNkZWZpbmUgRU5EKG5vZGUpICAo KG5vZGUpLT5lbmQpDQo+ICAgDQo+ICAgSU5URVJWQUxfVFJFRV9ERUZJTkUoc3RydWN0IGludGVy dmFsX3RyZWVfbm9kZSwgcmIsDQo+ICAgCQkgICAgIHVuc2lnbmVkIGxvbmcsIF9fc3VidHJlZV9s YXN0LA0KPiAtCQkgICAgIFNUQVJULCBMQVNULCwgaW50ZXJ2YWxfdHJlZSkNCj4gKwkJICAgICBT VEFSVCwgRU5ELCwgaW50ZXJ2YWxfdHJlZSkNCj4gICANCj4gICBFWFBPUlRfU1lNQk9MX0dQTChp bnRlcnZhbF90cmVlX2luc2VydCk7DQo+ICAgRVhQT1JUX1NZTUJPTF9HUEwoaW50ZXJ2YWxfdHJl ZV9yZW1vdmUpOw0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=