Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2343674imm; Mon, 16 Jul 2018 06:32:52 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfDlVQr+S/J+evXaV4ZWkNPlyBRuwn1qK/NRRbAqs2DpoMSzboi9rEw3Wo0t4qV5iAppdSl X-Received: by 2002:a62:fc4b:: with SMTP id e72-v6mr18312525pfh.168.1531747972603; Mon, 16 Jul 2018 06:32:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531747972; cv=none; d=google.com; s=arc-20160816; b=hIqvi9qLiPJiU2g3mFcgMSWy4QszkKJO4HjsWBHyktFhc7RriKmNt2g7/SZlTGH3A6 KW4d0Gs6jswztJUGunT3RBeV/91zLrsPHhivFg/G35vE0O3007578//yWOBkubWZsRiA o3D0GolHcQMCjSuqBpRCykx9IFMhQH5QFJ56hS1Jvme8tW8HMZZfTuCo64N1cVZp9T0o 1Wnf/RfkhYqX7gbEkrDAYMRNrfXgWVfB2ee+cjqS0w/w4y+tWyKo0edfHcz5xwvWYElA 6XJlqz8Lwbh7HDpFWqDAqoDONx8w6CfZJOuxgibWz9JiHPUqukB5KtLzwAJ9m49hircN 2ryQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=uKMcdnBTgflVCZ96lWR/S6eU7Fmk03GxaBgzO1c1NrU=; b=GAuPvqAsok69ukCKCEfjor7DZCOMqPLHLhnACOLxeDuAdp2dpkHdGEenD7Q9Q05OW+ +5J+hQfb77cOKR2UCOQvdHHnu8siMAIz8W4SD1BPK36GAb/lv0VZFL0t/7Q0DG3EnkoC ROm/kka2A69c7evvxGtrZcUtQ3lh8CLywlebxlyT1lYcdcB5jW4ktWENRf8AwoYmoDts bNV2QltwPzzF1gyn56LoBaVZ0oB9V//BaUu9ruVo2H9VYWDuLyw4VrV6TxAvvZIKiXlf ywGKqaXSFgFqfws9W3G+UsXK6xkC1kFLaCJetV48seNiy1FVXXgFAUg92+uBbY7fNntP jPqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@toradex.com header.s=selector1 header.b=VQlH5jzx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=toradex.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r28-v6si29731926pgk.458.2018.07.16.06.32.37; Mon, 16 Jul 2018 06:32:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@toradex.com header.s=selector1 header.b=VQlH5jzx; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=toradex.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728197AbeGPN6O (ORCPT + 99 others); Mon, 16 Jul 2018 09:58:14 -0400 Received: from mail-he1eur01on0109.outbound.protection.outlook.com ([104.47.0.109]:5609 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726841AbeGPN6O (ORCPT ); Mon, 16 Jul 2018 09:58:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=toradex.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uKMcdnBTgflVCZ96lWR/S6eU7Fmk03GxaBgzO1c1NrU=; b=VQlH5jzxmN9Vx55U+X/IsX4WK1yaq+Vk6M9K0sHMb6lUz4PsLHZLAftQmJ9bmGO9dz17SbFxCveGssMlscp0cfYp5dPVGOh0VTJVgdGh99oVHhHFVzV8J7l7MqP54fimdLKtwV9fQMMOb2qnrDnvE/6RxOw2454IuCkFG/rE7x0= Received: from VI1PR0501MB2590.eurprd05.prod.outlook.com (10.168.137.14) by VI1PR0501MB2671.eurprd05.prod.outlook.com (10.172.13.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.952.18; Mon, 16 Jul 2018 13:30:34 +0000 Received: from VI1PR0501MB2590.eurprd05.prod.outlook.com ([fe80::dc61:4a61:b84:357e]) by VI1PR0501MB2590.eurprd05.prod.outlook.com ([fe80::dc61:4a61:b84:357e%6]) with mapi id 15.20.0952.021; Mon, 16 Jul 2018 13:30:34 +0000 From: Marcel Ziswiler To: "kirill.shutemov@linux.intel.com" , "akpm@linux-foundation.org" CC: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "aarcange@redhat.com" , "dvyukov@google.com" , "oleg@redhat.com" , "linux-tegra@vger.kernel.org" Subject: REGRESSION: [PATCHv2 2/2] mm: Drop unneeded ->vm_ops checks Thread-Topic: REGRESSION: [PATCHv2 2/2] mm: Drop unneeded ->vm_ops checks Thread-Index: AQHUHQkskmdquMaiLk2VU0qVHONcGA== Date: Mon, 16 Jul 2018 13:30:34 +0000 Message-ID: <1531747832.6547.7.camel@toradex.com> References: <20180712145626.41665-1-kirill.shutemov@linux.intel.com> <20180712145626.41665-3-kirill.shutemov@linux.intel.com> In-Reply-To: <20180712145626.41665-3-kirill.shutemov@linux.intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [46.140.72.82] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;VI1PR0501MB2671;7:FQxjFDScfKLmZD2hlVxECmaPwyO6SI1MJtiazvOtI2fn30Cc5+1fXrHKumxpa7uR+7Nyjd+Yo5FyGbb4riQWZjd1zKfAWgWpdhKADQlFsnuvVIr5H7vJzDf4fg6/6xy/ApgDqcTSjjFrrn3x7WZ6OraJol5WBbMEhhzrIcuYBGLunVsZV2rII3piLWydA0Irl8ieeVq9FbV/3mYw5EEyXraBMjK684a+CX6Pc96CtNOReYRH2N8XRDxukgHOtzAC x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 364e0a9b-b2d0-48a6-12e5-08d5eb204f88 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989117)(5600053)(711020)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020);SRVR:VI1PR0501MB2671; x-ms-traffictypediagnostic: VI1PR0501MB2671: authentication-results: spf=none (sender IP is ) smtp.mailfrom=marcel.ziswiler@toradex.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(84791874153150)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231311)(944501410)(52105095)(93006095)(93001095)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(6072148)(201708071742011)(7699016);SRVR:VI1PR0501MB2671;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0501MB2671; x-forefront-prvs: 073515755F x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(346002)(376002)(39840400004)(136003)(366004)(189003)(199004)(256004)(54906003)(186003)(110136005)(53936002)(53946003)(2501003)(102836004)(6506007)(99286004)(26005)(86362001)(316002)(966005)(2906002)(575784001)(25786009)(14444005)(66066001)(5250100002)(76176011)(478600001)(5660300001)(97736004)(44832011)(476003)(81166006)(103116003)(81156014)(8676002)(7736002)(6436002)(36756003)(8936002)(106356001)(6306002)(105586002)(6512007)(2900100001)(486006)(4326008)(446003)(3846002)(6116002)(11346002)(6486002)(45080400002)(305945005)(2616005)(14454004)(68736007);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0501MB2671;H:VI1PR0501MB2590.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: toradex.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 2Ufq3h6jAUfQw4qZoF2cLRsAe7Y7VzLAwDXCa4bfMM9yEu/bmkMPzuPpFDMXyzD4LhW0tvDhItqPCg+SueLbg/uNzw+7JYrTO4C1/lRBvxboJD8BCOn7Z6SbFnq+v2wcP+/X9auCrzxOiI1XhAQgdTGHXeXHsi+JEKgqUxDcnHeNUCnlU9TGq6wfAiQcBxU6ntgnYIp6VtBpd1MZ8eJeAZ/x+hSBeP9MRrwJIB9fcxFg1oh+N6XwJKMFMiqENMo0s1lU5wUsj54yxzxaevK61hL3iOKU/1+cqbMPxGS3RzWxVnmfVqLf6JznOUKJIoACRt8IS+3gkwaFy1yvPJhf4aVUhnmayx1Knv6fHAkxvrY= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <55F4A5D41DF9C24491F352D46C9F7105@eurprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-Network-Message-Id: 364e0a9b-b2d0-48a6-12e5-08d5eb204f88 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jul 2018 13:30:34.6872 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2671 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVGh1LCAyMDE4LTA3LTEyIGF0IDE3OjU2ICswMzAwLCBLaXJpbGwgQS4gU2h1dGVtb3Ygd3Jv dGU6DQo+IFdlIG5vdyBoYXZlIGFsbCBWTUFzIHdpdGggLT52bV9vcHMgc2V0IGFuZCBkb24ndCBu ZWVkIHRvIGNoZWNrIGl0IGZvcg0KPiBOVUxMIGV2ZXJ5d2hlcmUuDQo+IA0KPiBTaWduZWQtb2Zm LWJ5OiBLaXJpbGwgQS4gU2h1dGVtb3YgPGtpcmlsbC5zaHV0ZW1vdkBsaW51eC5pbnRlbC5jb20+ DQo+IC0tLQ0KPiAgZnMvYmluZm10X2VsZi5jICAgICAgfCAgMiArLQ0KPiAgZnMva2VybmZzL2Zp bGUuYyAgICAgfCAyMCArLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgZnMvcHJvYy90YXNrX21tdS5j ICAgfCAgMiArLQ0KPiAga2VybmVsL2V2ZW50cy9jb3JlLmMgfCAgMiArLQ0KPiAga2VybmVsL2Zv cmsuYyAgICAgICAgfCAgMiArLQ0KPiAgbW0vZ3VwLmMgICAgICAgICAgICAgfCAgMiArLQ0KPiAg bW0vaHVnZXRsYi5jICAgICAgICAgfCAgMiArLQ0KPiAgbW0vbWVtb3J5LmMgICAgICAgICAgfCAx MiArKysrKystLS0tLS0NCj4gIG1tL21lbXBvbGljeS5jICAgICAgIHwgMTAgKysrKystLS0tLQ0K PiAgbW0vbW1hcC5jICAgICAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQ0KPiAgbW0vbXJlbWFw LmMgICAgICAgICAgfCAgMiArLQ0KPiAgbW0vbm9tbXUuYyAgICAgICAgICAgfCAgNCArKy0tDQo+ ICAxMiBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMoLSkNCj4g DQo+IGRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmLmMgYi9mcy9iaW5mbXRfZWxmLmMNCj4gaW5k ZXggMGFjNDU2YjUyYmRkLi40ZjE3MWNmMjFiYzIgMTAwNjQ0DQo+IC0tLSBhL2ZzL2JpbmZtdF9l bGYuYw0KPiArKysgYi9mcy9iaW5mbXRfZWxmLmMNCj4gQEAgLTEzMDIsNyArMTMwMiw3IEBAIHN0 YXRpYyBib29sIGFsd2F5c19kdW1wX3ZtYShzdHJ1Y3QNCj4gdm1fYXJlYV9zdHJ1Y3QgKnZtYSkN Cj4gIAkgKiBBc3N1bWUgdGhhdCBhbGwgdm1hcyB3aXRoIGEgLm5hbWUgb3Agc2hvdWxkIGFsd2F5 cyBiZQ0KPiBkdW1wZWQuDQo+ICAJICogSWYgdGhpcyBjaGFuZ2VzLCBhIG5ldyB2bV9vcHMgZmll bGQgY2FuIGVhc2lseSBiZSBhZGRlZC4NCj4gIAkgKi8NCj4gLQlpZiAodm1hLT52bV9vcHMgJiYg dm1hLT52bV9vcHMtPm5hbWUgJiYgdm1hLT52bV9vcHMtDQo+ID5uYW1lKHZtYSkpDQo+ICsJaWYg KHZtYS0+dm1fb3BzLT5uYW1lICYmIHZtYS0+dm1fb3BzLT5uYW1lKHZtYSkpDQo+ICAJCXJldHVy biB0cnVlOw0KPiAgDQo+ICAJLyoNCj4gZGlmZiAtLWdpdCBhL2ZzL2tlcm5mcy9maWxlLmMgYi9m cy9rZXJuZnMvZmlsZS5jDQo+IGluZGV4IDIwMTVkOGM0NWU0YS4uOTQ1YzNkMzA2ZDhmIDEwMDY0 NA0KPiAtLS0gYS9mcy9rZXJuZnMvZmlsZS5jDQo+ICsrKyBiL2ZzL2tlcm5mcy9maWxlLmMNCj4g QEAgLTMzNiw5ICszMzYsNiBAQCBzdGF0aWMgdm9pZCBrZXJuZnNfdm1hX29wZW4oc3RydWN0IHZt X2FyZWFfc3RydWN0DQo+ICp2bWEpDQo+ICAJc3RydWN0IGZpbGUgKmZpbGUgPSB2bWEtPnZtX2Zp bGU7DQo+ICAJc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mID0ga2VybmZzX29mKGZpbGUpOw0K PiAgDQo+IC0JaWYgKCFvZi0+dm1fb3BzKQ0KPiAtCQlyZXR1cm47DQo+IC0NCj4gIAlpZiAoIWtl cm5mc19nZXRfYWN0aXZlKG9mLT5rbikpDQo+ICAJCXJldHVybjsNCj4gIA0KPiBAQCAtMzU0LDkg KzM1MSw2IEBAIHN0YXRpYyB2bV9mYXVsdF90IGtlcm5mc192bWFfZmF1bHQoc3RydWN0DQo+IHZt X2ZhdWx0ICp2bWYpDQo+ICAJc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mID0ga2VybmZzX29m KGZpbGUpOw0KPiAgCXZtX2ZhdWx0X3QgcmV0Ow0KPiAgDQo+IC0JaWYgKCFvZi0+dm1fb3BzKQ0K PiAtCQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOw0KPiAtDQo+ICAJaWYgKCFrZXJuZnNfZ2V0X2Fj dGl2ZShvZi0+a24pKQ0KPiAgCQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOw0KPiAgDQo+IEBAIC0z NzQsOSArMzY4LDYgQEAgc3RhdGljIHZtX2ZhdWx0X3Qga2VybmZzX3ZtYV9wYWdlX21rd3JpdGUo c3RydWN0DQo+IHZtX2ZhdWx0ICp2bWYpDQo+ICAJc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9m ID0ga2VybmZzX29mKGZpbGUpOw0KPiAgCXZtX2ZhdWx0X3QgcmV0Ow0KPiAgDQo+IC0JaWYgKCFv Zi0+dm1fb3BzKQ0KPiAtCQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOw0KPiAtDQo+ICAJaWYgKCFr ZXJuZnNfZ2V0X2FjdGl2ZShvZi0+a24pKQ0KPiAgCQlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOw0K PiAgDQo+IEBAIC0zOTcsOSArMzg4LDYgQEAgc3RhdGljIGludCBrZXJuZnNfdm1hX2FjY2Vzcyhz dHJ1Y3QNCj4gdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyLA0KPiAgCXN0 cnVjdCBrZXJuZnNfb3Blbl9maWxlICpvZiA9IGtlcm5mc19vZihmaWxlKTsNCj4gIAlpbnQgcmV0 Ow0KPiAgDQo+IC0JaWYgKCFvZi0+dm1fb3BzKQ0KPiAtCQlyZXR1cm4gLUVJTlZBTDsNCj4gLQ0K PiAgCWlmICgha2VybmZzX2dldF9hY3RpdmUob2YtPmtuKSkNCj4gIAkJcmV0dXJuIC1FSU5WQUw7 DQo+ICANCj4gQEAgLTQxOSw5ICs0MDcsNiBAQCBzdGF0aWMgaW50IGtlcm5mc192bWFfc2V0X3Bv bGljeShzdHJ1Y3QNCj4gdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCj4gIAlzdHJ1Y3Qga2VybmZzX29w ZW5fZmlsZSAqb2YgPSBrZXJuZnNfb2YoZmlsZSk7DQo+ICAJaW50IHJldDsNCj4gIA0KPiAtCWlm ICghb2YtPnZtX29wcykNCj4gLQkJcmV0dXJuIDA7DQo+IC0NCj4gIAlpZiAoIWtlcm5mc19nZXRf YWN0aXZlKG9mLT5rbikpDQo+ICAJCXJldHVybiAtRUlOVkFMOw0KPiAgDQo+IEBAIC00NDAsOSAr NDI1LDYgQEAgc3RhdGljIHN0cnVjdCBtZW1wb2xpY3kNCj4gKmtlcm5mc192bWFfZ2V0X3BvbGlj eShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCj4gIAlzdHJ1Y3Qga2VybmZzX29wZW5fZmls ZSAqb2YgPSBrZXJuZnNfb2YoZmlsZSk7DQo+ICAJc3RydWN0IG1lbXBvbGljeSAqcG9sOw0KPiAg DQo+IC0JaWYgKCFvZi0+dm1fb3BzKQ0KPiAtCQlyZXR1cm4gdm1hLT52bV9wb2xpY3k7DQo+IC0N Cj4gIAlpZiAoIWtlcm5mc19nZXRfYWN0aXZlKG9mLT5rbikpDQo+ICAJCXJldHVybiB2bWEtPnZt X3BvbGljeTsNCj4gIA0KPiBAQCAtNTExLDcgKzQ5Myw3IEBAIHN0YXRpYyBpbnQga2VybmZzX2Zv cF9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLA0KPiBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkN Cj4gIAkgKiBTbyBlcnJvciBpZiBzb21lb25lIGlzIHRyeWluZyB0byB1c2UgY2xvc2UuDQo+ICAJ ICovDQo+ICAJcmMgPSAtRUlOVkFMOw0KPiAtCWlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZtX29w cy0+Y2xvc2UpDQo+ICsJaWYgKHZtYS0+dm1fb3BzLT5jbG9zZSkNCj4gIAkJZ290byBvdXRfcHV0 Ow0KPiAgDQo+ICAJcmMgPSAwOw0KPiBkaWZmIC0tZ2l0IGEvZnMvcHJvYy90YXNrX21tdS5jIGIv ZnMvcHJvYy90YXNrX21tdS5jDQo+IGluZGV4IGU5Njc5MDE2MjcxZi4uZTk1OTYyMzEyM2U0IDEw MDY0NA0KPiAtLS0gYS9mcy9wcm9jL3Rhc2tfbW11LmMNCj4gKysrIGIvZnMvcHJvYy90YXNrX21t dS5jDQo+IEBAIC0zMjYsNyArMzI2LDcgQEAgc2hvd19tYXBfdm1hKHN0cnVjdCBzZXFfZmlsZSAq bSwgc3RydWN0DQo+IHZtX2FyZWFfc3RydWN0ICp2bWEsIGludCBpc19waWQpDQo+ICAJCWdvdG8g ZG9uZTsNCj4gIAl9DQo+ICANCj4gLQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9vcHMtPm5h bWUpIHsNCj4gKwlpZiAodm1hLT52bV9vcHMtPm5hbWUpIHsNCj4gIAkJbmFtZSA9IHZtYS0+dm1f b3BzLT5uYW1lKHZtYSk7DQo+ICAJCWlmIChuYW1lKQ0KPiAgCQkJZ290byBkb25lOw0KPiBkaWZm IC0tZ2l0IGEva2VybmVsL2V2ZW50cy9jb3JlLmMgYi9rZXJuZWwvZXZlbnRzL2NvcmUuYw0KPiBp bmRleCA4ZjA0MzRhOTk1MWEuLjJlMzU0MDFhNWM2OCAxMDA2NDQNCj4gLS0tIGEva2VybmVsL2V2 ZW50cy9jb3JlLmMNCj4gKysrIGIva2VybmVsL2V2ZW50cy9jb3JlLmMNCj4gQEAgLTcyNjksNyAr NzI2OSw3IEBAIHN0YXRpYyB2b2lkIHBlcmZfZXZlbnRfbW1hcF9ldmVudChzdHJ1Y3QNCj4gcGVy Zl9tbWFwX2V2ZW50ICptbWFwX2V2ZW50KQ0KPiAgDQo+ICAJCWdvdG8gZ290X25hbWU7DQo+ICAJ fSBlbHNlIHsNCj4gLQkJaWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5uYW1lKSB7DQo+ ICsJCWlmICh2bWEtPnZtX29wcy0+bmFtZSkgew0KPiAgCQkJbmFtZSA9IChjaGFyICopIHZtYS0+ dm1fb3BzLT5uYW1lKHZtYSk7DQo+ICAJCQlpZiAobmFtZSkNCj4gIAkJCQlnb3RvIGNweV9uYW1l Ow0KPiBkaWZmIC0tZ2l0IGEva2VybmVsL2ZvcmsuYyBiL2tlcm5lbC9mb3JrLmMNCj4gaW5kZXgg OTQ0MGQ2MWI5MjVjLi5lNWU3YTIyMGExMjQgMTAwNjQ0DQo+IC0tLSBhL2tlcm5lbC9mb3JrLmMN Cj4gKysrIGIva2VybmVsL2ZvcmsuYw0KPiBAQCAtNTE5LDcgKzUxOSw3IEBAIHN0YXRpYyBfX2xh dGVudF9lbnRyb3B5IGludCBkdXBfbW1hcChzdHJ1Y3QNCj4gbW1fc3RydWN0ICptbSwNCj4gIAkJ aWYgKCEodG1wLT52bV9mbGFncyAmIFZNX1dJUEVPTkZPUkspKQ0KPiAgCQkJcmV0dmFsID0gY29w eV9wYWdlX3JhbmdlKG1tLCBvbGRtbSwgbXBudCk7DQo+ICANCj4gLQkJaWYgKHRtcC0+dm1fb3Bz ICYmIHRtcC0+dm1fb3BzLT5vcGVuKQ0KPiArCQlpZiAodG1wLT52bV9vcHMtPm9wZW4pDQo+ICAJ CQl0bXAtPnZtX29wcy0+b3Blbih0bXApOw0KPiAgDQo+ICAJCWlmIChyZXR2YWwpDQo+IGRpZmYg LS1naXQgYS9tbS9ndXAuYyBiL21tL2d1cC5jDQo+IGluZGV4IGI3MGQ3YmE3Y2MxMy4uYjczMjc2 OGVkM2FjIDEwMDY0NA0KPiAtLS0gYS9tbS9ndXAuYw0KPiArKysgYi9tbS9ndXAuYw0KPiBAQCAt MzEsNyArMzEsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKm5vX3BhZ2VfdGFibGUoc3RydWN0DQo+ IHZtX2FyZWFfc3RydWN0ICp2bWEsDQo+ICAJICogQnV0IHdlIGNhbiBvbmx5IG1ha2UgdGhpcyBv cHRpbWl6YXRpb24gd2hlcmUgYSBob2xlIHdvdWxkDQo+IHN1cmVseQ0KPiAgCSAqIGJlIHplcm8t ZmlsbGVkIGlmIGhhbmRsZV9tbV9mYXVsdCgpIGFjdHVhbGx5IGRpZCBoYW5kbGUNCj4gaXQuDQo+ ICAJICovDQo+IC0JaWYgKChmbGFncyAmIEZPTExfRFVNUCkgJiYgKCF2bWEtPnZtX29wcyB8fCAh dm1hLT52bV9vcHMtDQo+ID5mYXVsdCkpDQo+ICsJaWYgKChmbGFncyAmIEZPTExfRFVNUCkgJiYg IXZtYS0+dm1fb3BzLT5mYXVsdCkNCj4gIAkJcmV0dXJuIEVSUl9QVFIoLUVGQVVMVCk7DQo+ICAJ cmV0dXJuIE5VTEw7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9tbS9odWdldGxiLmMgYi9tbS9odWdl dGxiLmMNCj4gaW5kZXggMDM5ZGRiYzU3NGU5Li4yMDY1YWNjNWE2YWEgMTAwNjQ0DQo+IC0tLSBh L21tL2h1Z2V0bGIuYw0KPiArKysgYi9tbS9odWdldGxiLmMNCj4gQEAgLTYzNyw3ICs2MzcsNyBA QCBFWFBPUlRfU1lNQk9MX0dQTChsaW5lYXJfaHVnZXBhZ2VfaW5kZXgpOw0KPiAgICovDQo+ICB1 bnNpZ25lZCBsb25nIHZtYV9rZXJuZWxfcGFnZXNpemUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEpDQo+ICB7DQo+IC0JaWYgKHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5wYWdlc2l6ZSkN Cj4gKwlpZiAodm1hLT52bV9vcHMtPnBhZ2VzaXplKQ0KPiAgCQlyZXR1cm4gdm1hLT52bV9vcHMt PnBhZ2VzaXplKHZtYSk7DQo+ICAJcmV0dXJuIFBBR0VfU0laRTsNCj4gIH0NCj4gZGlmZiAtLWdp dCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMNCj4gaW5kZXggNzIwNmE2MzQyNzBiLi4wMmZi ZWYyYmQwMjQgMTAwNjQ0DQo+IC0tLSBhL21tL21lbW9yeS5jDQo+ICsrKyBiL21tL21lbW9yeS5j DQo+IEBAIC03NjgsNyArNzY4LDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfYmFkX3B0ZShzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3QNCj4gKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyLA0KPiAgCQkgKHZvaWQg KilhZGRyLCB2bWEtPnZtX2ZsYWdzLCB2bWEtPmFub25fdm1hLA0KPiBtYXBwaW5nLCBpbmRleCk7 DQo+ICAJcHJfYWxlcnQoImZpbGU6JXBEIGZhdWx0OiVwZiBtbWFwOiVwZiByZWFkcGFnZTolcGZc biIsDQo+ICAJCSB2bWEtPnZtX2ZpbGUsDQo+IC0JCSB2bWEtPnZtX29wcyA/IHZtYS0+dm1fb3Bz LT5mYXVsdCA6IE5VTEwsDQo+ICsJCSB2bWEtPnZtX29wcy0+ZmF1bHQsDQo+ICAJCSB2bWEtPnZt X2ZpbGUgPyB2bWEtPnZtX2ZpbGUtPmZfb3AtPm1tYXAgOiBOVUxMLA0KPiAgCQkgbWFwcGluZyA/ IG1hcHBpbmctPmFfb3BzLT5yZWFkcGFnZSA6IE5VTEwpOw0KPiAgCWR1bXBfc3RhY2soKTsNCj4g QEAgLTgyNSw3ICs4MjUsNyBAQCBzdHJ1Y3QgcGFnZSAqX3ZtX25vcm1hbF9wYWdlKHN0cnVjdA0K PiB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsDQo+ICAJaWYgKElTX0VO QUJMRUQoQ09ORklHX0FSQ0hfSEFTX1BURV9TUEVDSUFMKSkgew0KPiAgCQlpZiAobGlrZWx5KCFw dGVfc3BlY2lhbChwdGUpKSkNCj4gIAkJCWdvdG8gY2hlY2tfcGZuOw0KPiAtCQlpZiAodm1hLT52 bV9vcHMgJiYgdm1hLT52bV9vcHMtPmZpbmRfc3BlY2lhbF9wYWdlKQ0KPiArCQlpZiAodm1hLT52 bV9vcHMtPmZpbmRfc3BlY2lhbF9wYWdlKQ0KPiAgCQkJcmV0dXJuIHZtYS0+dm1fb3BzLT5maW5k X3NwZWNpYWxfcGFnZSh2bWEsDQo+IGFkZHIpOw0KPiAgCQlpZiAodm1hLT52bV9mbGFncyAmIChW TV9QRk5NQVAgfCBWTV9NSVhFRE1BUCkpDQo+ICAJCQlyZXR1cm4gTlVMTDsNCj4gQEAgLTI0MDQs NyArMjQwNCw3IEBAIHN0YXRpYyB2b2lkIGZhdWx0X2RpcnR5X3NoYXJlZF9wYWdlKHN0cnVjdA0K PiB2bV9hcmVhX3N0cnVjdCAqdm1hLA0KPiAgew0KPiAgCXN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nOw0KPiAgCWJvb2wgZGlydGllZDsNCj4gLQlib29sIHBhZ2VfbWt3cml0ZSA9IHZtYS0+ dm1fb3BzICYmIHZtYS0+dm1fb3BzLQ0KPiA+cGFnZV9ta3dyaXRlOw0KPiArCWJvb2wgcGFnZV9t a3dyaXRlID0gdm1hLT52bV9vcHMtPnBhZ2VfbWt3cml0ZTsNCj4gIA0KPiAgCWRpcnRpZWQgPSBz ZXRfcGFnZV9kaXJ0eShwYWdlKTsNCj4gIAlWTV9CVUdfT05fUEFHRShQYWdlQW5vbihwYWdlKSwg cGFnZSk7DQo+IEBAIC0yNjQ4LDcgKzI2NDgsNyBAQCBzdGF0aWMgaW50IHdwX3Bmbl9zaGFyZWQo c3RydWN0IHZtX2ZhdWx0ICp2bWYpDQo+ICB7DQo+ICAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEgPSB2bWYtPnZtYTsNCj4gIA0KPiAtCWlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZtX29wcy0+ cGZuX21rd3JpdGUpIHsNCj4gKwlpZiAodm1hLT52bV9vcHMtPnBmbl9ta3dyaXRlKSB7DQo+ICAJ CWludCByZXQ7DQo+ICANCj4gIAkJcHRlX3VubWFwX3VubG9jayh2bWYtPnB0ZSwgdm1mLT5wdGwp Ow0KPiBAQCAtMjY2OSw3ICsyNjY5LDcgQEAgc3RhdGljIGludCB3cF9wYWdlX3NoYXJlZChzdHJ1 Y3Qgdm1fZmF1bHQgKnZtZikNCj4gIA0KPiAgCWdldF9wYWdlKHZtZi0+cGFnZSk7DQo+ICANCj4g LQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9vcHMtPnBhZ2VfbWt3cml0ZSkgew0KPiArCWlm ICh2bWEtPnZtX29wcy0+cGFnZV9ta3dyaXRlKSB7DQo+ICAJCWludCB0bXA7DQo+ICANCj4gIAkJ cHRlX3VubWFwX3VubG9jayh2bWYtPnB0ZSwgdm1mLT5wdGwpOw0KPiBAQCAtNDQzOSw3ICs0NDM5 LDcgQEAgaW50IF9fYWNjZXNzX3JlbW90ZV92bShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywNCj4g c3RydWN0IG1tX3N0cnVjdCAqbW0sDQo+ICAJCQl2bWEgPSBmaW5kX3ZtYShtbSwgYWRkcik7DQo+ ICAJCQlpZiAoIXZtYSB8fCB2bWEtPnZtX3N0YXJ0ID4gYWRkcikNCj4gIAkJCQlicmVhazsNCj4g LQkJCWlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZtX29wcy0+YWNjZXNzKQ0KPiArCQkJaWYgKHZt YS0+dm1fb3BzLT5hY2Nlc3MpDQo+ICAJCQkJcmV0ID0gdm1hLT52bV9vcHMtPmFjY2Vzcyh2bWEs IGFkZHIsDQo+IGJ1ZiwNCj4gIAkJCQkJCQkgIGxlbiwNCj4gd3JpdGUpOw0KPiAgCQkJaWYgKHJl dCA8PSAwKQ0KPiBkaWZmIC0tZ2l0IGEvbW0vbWVtcG9saWN5LmMgYi9tbS9tZW1wb2xpY3kuYw0K PiBpbmRleCA5YWM0OWVmMTdiNGUuLmYwZmNmNzBiY2VjNyAxMDA2NDQNCj4gLS0tIGEvbW0vbWVt cG9saWN5LmMNCj4gKysrIGIvbW0vbWVtcG9saWN5LmMNCj4gQEAgLTY1MSwxMyArNjUxLDEzIEBA IHN0YXRpYyBpbnQgdm1hX3JlcGxhY2VfcG9saWN5KHN0cnVjdA0KPiB2bV9hcmVhX3N0cnVjdCAq dm1hLA0KPiAgCXByX2RlYnVnKCJ2bWEgJWx4LSVseC8lbHggdm1fb3BzICVwIHZtX2ZpbGUgJXAg c2V0X3BvbGljeQ0KPiAlcFxuIiwNCj4gIAkJIHZtYS0+dm1fc3RhcnQsIHZtYS0+dm1fZW5kLCB2 bWEtPnZtX3Bnb2ZmLA0KPiAgCQkgdm1hLT52bV9vcHMsIHZtYS0+dm1fZmlsZSwNCj4gLQkJIHZt YS0+dm1fb3BzID8gdm1hLT52bV9vcHMtPnNldF9wb2xpY3kgOiBOVUxMKTsNCj4gKwkJIHZtYS0+ dm1fb3BzLT5zZXRfcG9saWN5KTsNCj4gIA0KPiAgCW5ldyA9IG1wb2xfZHVwKHBvbCk7DQo+ICAJ aWYgKElTX0VSUihuZXcpKQ0KPiAgCQlyZXR1cm4gUFRSX0VSUihuZXcpOw0KPiAgDQo+IC0JaWYg KHZtYS0+dm1fb3BzICYmIHZtYS0+dm1fb3BzLT5zZXRfcG9saWN5KSB7DQo+ICsJaWYgKHZtYS0+ dm1fb3BzLT5zZXRfcG9saWN5KSB7DQo+ICAJCWVyciA9IHZtYS0+dm1fb3BzLT5zZXRfcG9saWN5 KHZtYSwgbmV3KTsNCj4gIAkJaWYgKGVycikNCj4gIAkJCWdvdG8gZXJyX291dDsNCj4gQEAgLTg0 NSw3ICs4NDUsNyBAQCBzdGF0aWMgbG9uZyBkb19nZXRfbWVtcG9saWN5KGludCAqcG9saWN5LA0K PiBub2RlbWFza190ICpubWFzaywNCj4gIAkJCXVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7DQo+ICAJ CQlyZXR1cm4gLUVGQVVMVDsNCj4gIAkJfQ0KPiAtCQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52 bV9vcHMtPmdldF9wb2xpY3kpDQo+ICsJCWlmICh2bWEtPnZtX29wcy0+Z2V0X3BvbGljeSkNCj4g IAkJCXBvbCA9IHZtYS0+dm1fb3BzLT5nZXRfcG9saWN5KHZtYSwgYWRkcik7DQo+ICAJCWVsc2UN Cj4gIAkJCXBvbCA9IHZtYS0+dm1fcG9saWN5Ow0KPiBAQCAtMTYxNyw3ICsxNjE3LDcgQEAgc3Ry dWN0IG1lbXBvbGljeSAqX19nZXRfdm1hX3BvbGljeShzdHJ1Y3QNCj4gdm1fYXJlYV9zdHJ1Y3Qg KnZtYSwNCj4gIAlzdHJ1Y3QgbWVtcG9saWN5ICpwb2wgPSBOVUxMOw0KPiAgDQo+ICAJaWYgKHZt YSkgew0KPiAtCQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9vcHMtPmdldF9wb2xpY3kpIHsN Cj4gKwkJaWYgKHZtYS0+dm1fb3BzLT5nZXRfcG9saWN5KSB7DQo+ICAJCQlwb2wgPSB2bWEtPnZt X29wcy0+Z2V0X3BvbGljeSh2bWEsIGFkZHIpOw0KPiAgCQl9IGVsc2UgaWYgKHZtYS0+dm1fcG9s aWN5KSB7DQo+ICAJCQlwb2wgPSB2bWEtPnZtX3BvbGljeTsNCj4gQEAgLTE2NjMsNyArMTY2Myw3 IEBAIGJvb2wgdm1hX3BvbGljeV9tb2Yoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpDQo+ICB7 DQo+ICAJc3RydWN0IG1lbXBvbGljeSAqcG9sOw0KPiAgDQo+IC0JaWYgKHZtYS0+dm1fb3BzICYm IHZtYS0+dm1fb3BzLT5nZXRfcG9saWN5KSB7DQo+ICsJaWYgKHZtYS0+dm1fb3BzLT5nZXRfcG9s aWN5KSB7DQo+ICAJCWJvb2wgcmV0ID0gZmFsc2U7DQo+ICANCj4gIAkJcG9sID0gdm1hLT52bV9v cHMtPmdldF9wb2xpY3kodm1hLCB2bWEtPnZtX3N0YXJ0KTsNCj4gZGlmZiAtLWdpdCBhL21tL21t YXAuYyBiL21tL21tYXAuYw0KPiBpbmRleCA1MjdjMTdmMzE2MzUuLjVhZGFmOWY5Yjk0MSAxMDA2 NDQNCj4gLS0tIGEvbW0vbW1hcC5jDQo+ICsrKyBiL21tL21tYXAuYw0KPiBAQCAtMTc3LDcgKzE3 Nyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnJlbW92ZV92bWEoc3RydWN0DQo+ IHZtX2FyZWFfc3RydWN0ICp2bWEpDQo+ICAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICpuZXh0ID0g dm1hLT52bV9uZXh0Ow0KPiAgDQo+ICAJbWlnaHRfc2xlZXAoKTsNCj4gLQlpZiAodm1hLT52bV9v cHMgJiYgdm1hLT52bV9vcHMtPmNsb3NlKQ0KPiArCWlmICh2bWEtPnZtX29wcy0+Y2xvc2UpDQo+ ICAJCXZtYS0+dm1fb3BzLT5jbG9zZSh2bWEpOw0KPiAgCWlmICh2bWEtPnZtX2ZpbGUpDQo+ICAJ CWZwdXQodm1hLT52bV9maWxlKTsNCj4gQEAgLTk5OCw3ICs5OTgsNyBAQCBzdGF0aWMgaW5saW5l IGludCBpc19tZXJnZWFibGVfdm1hKHN0cnVjdA0KPiB2bV9hcmVhX3N0cnVjdCAqdm1hLA0KPiAg CQlyZXR1cm4gMDsNCj4gIAlpZiAodm1hLT52bV9maWxlICE9IGZpbGUpDQo+ICAJCXJldHVybiAw Ow0KPiAtCWlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZtX29wcy0+Y2xvc2UpDQo+ICsJaWYgKHZt YS0+dm1fb3BzLT5jbG9zZSkNCj4gIAkJcmV0dXJuIDA7DQo+ICAJaWYgKCFpc19tZXJnZWFibGVf dm1fdXNlcmZhdWx0ZmRfY3R4KHZtYSwNCj4gdm1fdXNlcmZhdWx0ZmRfY3R4KSkNCj4gIAkJcmV0 dXJuIDA7DQo+IEBAIC0xNjM4LDcgKzE2MzgsNyBAQCBpbnQgdm1hX3dhbnRzX3dyaXRlbm90aWZ5 KHN0cnVjdCB2bV9hcmVhX3N0cnVjdA0KPiAqdm1hLCBwZ3Byb3RfdCB2bV9wYWdlX3Byb3QpDQo+ ICAJCXJldHVybiAwOw0KPiAgDQo+ICAJLyogVGhlIGJhY2tlciB3aXNoZXMgdG8ga25vdyB3aGVu IHBhZ2VzIGFyZSBmaXJzdCB3cml0dGVuDQo+IHRvPyAqLw0KPiAtCWlmICh2bV9vcHMgJiYgKHZt X29wcy0+cGFnZV9ta3dyaXRlIHx8IHZtX29wcy0+cGZuX21rd3JpdGUpKQ0KPiArCWlmICh2bV9v cHMtPnBhZ2VfbWt3cml0ZSB8fCB2bV9vcHMtPnBmbl9ta3dyaXRlKQ0KPiAgCQlyZXR1cm4gMTsN Cj4gIA0KPiAgCS8qIFRoZSBvcGVuIHJvdXRpbmUgZGlkIHNvbWV0aGluZyB0byB0aGUgcHJvdGVj dGlvbnMgdGhhdA0KPiBwZ3Byb3RfbW9kaWZ5DQo+IEBAIC0yNjI0LDcgKzI2MjQsNyBAQCBpbnQg X19zcGxpdF92bWEoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdA0KPiB2bV9hcmVhX3N0cnVj dCAqdm1hLA0KPiAgCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqbmV3Ow0KPiAgCWludCBlcnI7DQo+ ICANCj4gLQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9vcHMtPnNwbGl0KSB7DQo+ICsJaWYg KHZtYS0+dm1fb3BzLT5zcGxpdCkgew0KPiAgCQllcnIgPSB2bWEtPnZtX29wcy0+c3BsaXQodm1h LCBhZGRyKTsNCj4gIAkJaWYgKGVycikNCj4gIAkJCXJldHVybiBlcnI7DQo+IEBAIC0yNjU3LDcg KzI2NTcsNyBAQCBpbnQgX19zcGxpdF92bWEoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdA0K PiB2bV9hcmVhX3N0cnVjdCAqdm1hLA0KPiAgCWlmIChuZXctPnZtX2ZpbGUpDQo+ICAJCWdldF9m aWxlKG5ldy0+dm1fZmlsZSk7DQo+ICANCj4gLQlpZiAobmV3LT52bV9vcHMgJiYgbmV3LT52bV9v cHMtPm9wZW4pDQo+ICsJaWYgKG5ldy0+dm1fb3BzLT5vcGVuKQ0KPiAgCQluZXctPnZtX29wcy0+ b3BlbihuZXcpOw0KPiAgDQo+ICAJaWYgKG5ld19iZWxvdykNCj4gQEAgLTI2NzEsNyArMjY3MSw3 IEBAIGludCBfX3NwbGl0X3ZtYShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0DQo+IHZtX2Fy ZWFfc3RydWN0ICp2bWEsDQo+ICAJCXJldHVybiAwOw0KPiAgDQo+ICAJLyogQ2xlYW4gZXZlcnl0 aGluZyB1cCBpZiB2bWFfYWRqdXN0IGZhaWxlZC4gKi8NCj4gLQlpZiAobmV3LT52bV9vcHMgJiYg bmV3LT52bV9vcHMtPmNsb3NlKQ0KPiArCWlmIChuZXctPnZtX29wcy0+Y2xvc2UpDQo+ICAJCW5l dy0+dm1fb3BzLT5jbG9zZShuZXcpOw0KPiAgCWlmIChuZXctPnZtX2ZpbGUpDQo+ICAJCWZwdXQo bmV3LT52bV9maWxlKTsNCj4gQEAgLTMyMzIsNyArMzIzMiw3IEBAIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqY29weV92bWEoc3RydWN0DQo+IHZtX2FyZWFfc3RydWN0ICoqdm1hcCwNCj4gIAkJCWdv dG8gb3V0X2ZyZWVfbWVtcG9sOw0KPiAgCQlpZiAobmV3X3ZtYS0+dm1fZmlsZSkNCj4gIAkJCWdl dF9maWxlKG5ld192bWEtPnZtX2ZpbGUpOw0KPiAtCQlpZiAobmV3X3ZtYS0+dm1fb3BzICYmIG5l d192bWEtPnZtX29wcy0+b3BlbikNCj4gKwkJaWYgKG5ld192bWEtPnZtX29wcy0+b3BlbikNCj4g IAkJCW5ld192bWEtPnZtX29wcy0+b3BlbihuZXdfdm1hKTsNCj4gIAkJdm1hX2xpbmsobW0sIG5l d192bWEsIHByZXYsIHJiX2xpbmssIHJiX3BhcmVudCk7DQo+ICAJCSpuZWVkX3JtYXBfbG9ja3Mg PSBmYWxzZTsNCj4gZGlmZiAtLWdpdCBhL21tL21yZW1hcC5jIGIvbW0vbXJlbWFwLmMNCj4gaW5k ZXggNWMyZTE4NTA1Zjc1Li43YWIyMjJjMjgzZGUgMTAwNjQ0DQo+IC0tLSBhL21tL21yZW1hcC5j DQo+ICsrKyBiL21tL21yZW1hcC5jDQo+IEBAIC0zMDIsNyArMzAyLDcgQEAgc3RhdGljIHVuc2ln bmVkIGxvbmcgbW92ZV92bWEoc3RydWN0DQo+IHZtX2FyZWFfc3RydWN0ICp2bWEsDQo+ICAJCQkJ ICAgICBuZWVkX3JtYXBfbG9ja3MpOw0KPiAgCWlmIChtb3ZlZF9sZW4gPCBvbGRfbGVuKSB7DQo+ ICAJCWVyciA9IC1FTk9NRU07DQo+IC0JfSBlbHNlIGlmICh2bWEtPnZtX29wcyAmJiB2bWEtPnZt X29wcy0+bXJlbWFwKSB7DQo+ICsJfSBlbHNlIGlmICh2bWEtPnZtX29wcy0+bXJlbWFwKSB7DQo+ ICAJCWVyciA9IHZtYS0+dm1fb3BzLT5tcmVtYXAobmV3X3ZtYSk7DQo+ICAJfQ0KPiAgDQo+IGRp ZmYgLS1naXQgYS9tbS9ub21tdS5jIGIvbW0vbm9tbXUuYw0KPiBpbmRleCBmMDBmMjA5ODMzYWIu LjczZjY2ZTgxY2ZiMCAxMDA2NDQNCj4gLS0tIGEvbW0vbm9tbXUuYw0KPiArKysgYi9tbS9ub21t dS5jDQo+IEBAIC03NjQsNyArNzY0LDcgQEAgc3RhdGljIHZvaWQgZGVsZXRlX3ZtYV9mcm9tX21t KHN0cnVjdA0KPiB2bV9hcmVhX3N0cnVjdCAqdm1hKQ0KPiAgICovDQo+ICBzdGF0aWMgdm9pZCBk ZWxldGVfdm1hKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QNCj4g KnZtYSkNCj4gIHsNCj4gLQlpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9vcHMtPmNsb3NlKQ0K PiArCWlmICh2bWEtPnZtX29wcy0+Y2xvc2UpDQo+ICAJCXZtYS0+dm1fb3BzLT5jbG9zZSh2bWEp Ow0KPiAgCWlmICh2bWEtPnZtX2ZpbGUpDQo+ICAJCWZwdXQodm1hLT52bV9maWxlKTsNCj4gQEAg LTE0OTYsNyArMTQ5Niw3IEBAIGludCBzcGxpdF92bWEoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0 cnVjdA0KPiB2bV9hcmVhX3N0cnVjdCAqdm1hLA0KPiAgCQlyZWdpb24tPnZtX3Bnb2ZmID0gbmV3 LT52bV9wZ29mZiArPSBucGFnZXM7DQo+ICAJfQ0KPiAgDQo+IC0JaWYgKG5ldy0+dm1fb3BzICYm IG5ldy0+dm1fb3BzLT5vcGVuKQ0KPiArCWlmIChuZXctPnZtX29wcy0+b3BlbikNCj4gIAkJbmV3 LT52bV9vcHMtPm9wZW4obmV3KTsNCj4gIA0KPiAgCWRlbGV0ZV92bWFfZnJvbV9tbSh2bWEpOw0K DQpUb2RheSdzIC1uZXh0IG9uIEFwYWxpcyBUMzAgWzFdIGdpdmVzIHRoZSBmb2xsb3dpbmcgZXJy b3IgdXBvbiBib290Og0KDQpbICAgMTYuMTQ3NDk2XSBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBO VUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQNCnZpcnR1YWwgYWRkcmVzcyAwMDAwMDAyYw0KWyAg IDE2LjE1NjE1Ml0gcGdkID0gODQzMDQ1YWYNClsgICAxNi4xNTg5ODZdIFswMDAwMDAyY10gKnBn ZD1mYWNkOTgzMQ0KWyAgIDE2LjE2MjU3OF0gSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDE3IFsjMV0g UFJFRU1QVCBTTVAgQVJNDQpbICAgMTYuMTY3OTcwXSBNb2R1bGVzIGxpbmtlZCBpbjoNClsgICAx Ni4xNzEwMzRdIENQVTogMiBQSUQ6IDQ0MiBDb21tOiBwb2xraXRkIE5vdCB0YWludGVkIDQuMTgu MC1yYzUtDQpuZXh0LTIwMTgwNzE2LWRpcnR5ICM3NQ0KWyAgIDE2LjE3OTExMV0gSGFyZHdhcmUg bmFtZTogTlZJRElBIFRlZ3JhIFNvQyAoRmxhdHRlbmVkIERldmljZSBUcmVlKQ0KWyAgIDE2LjE4 NTM4Ml0gUEMgaXMgYXQgc2hvd19tYXBfdm1hLmNvbnN0cHJvcC4zKzB4YWMvMHgxNTgNClsgICAx Ni4xOTA2ODZdIExSIGlzIGF0IHNob3dfbWFwX3ZtYS5jb25zdHByb3AuMysweGE4LzB4MTU4DQpb ICAgMTYuMTk1OTg5XSBwYyA6IFs8YzAyYzQ5MDA+XSAgICBsciA6IFs8YzAyYzQ4ZmM+XSAgICBw c3I6IDgwMGUwMDEzDQpbICAgMTYuMjAyMjQzXSBzcCA6IGVjMDJkZTYwICBpcCA6IDAwMDAwM2Nl ICBmcCA6IGMwZjA5YTNjDQpbICAgMTYuMjA3NDU3XSByMTA6IGVjMDJkZjc4ICByOSA6IDAwMDAw MDAwICByOCA6IDAwMDAwMDAwDQpbICAgMTYuMjEyNjcyXSByNyA6IDAwMDAwMDAwICByNiA6IGVk YThlYzQ4ICByNSA6IDAwMDAwMDAwICByNCA6DQpjMGYwOWEzYw0KWyAgIDE2LjIxOTE4OF0gcjMg OiAwMDAwMDAwMCAgcjIgOiBlZDFkZjAwMCAgcjEgOiAwMDAwMDAyMCAgcjAgOg0KZWRhOGVjNDgN ClsgICAxNi4yMjU3MDVdIEZsYWdzOiBOemN2ICBJUlFzIG9uICBGSVFzIG9uICBNb2RlIFNWQ18z MiAgSVNBDQpBUk0gIFNlZ21lbnQgbm9uZQ0KWyAgIDE2LjIzMjgyOV0gQ29udHJvbDogMTBjNTM4 N2QgIFRhYmxlOiBhYzAxODA0YSAgREFDOiAwMDAwMDA1MQ0KWyAgIDE2LjIzODU3M10gUHJvY2Vz cyBwb2xraXRkIChwaWQ6IDQ0Miwgc3RhY2sgbGltaXQgPSAweGMwZTgzY2U1KQ0KWyAgIDE2LjI0 NDU3Ml0gU3RhY2s6ICgweGVjMDJkZTYwIHRvIDB4ZWMwMmUwMDApDQpbICAgMTYuMjQ4OTI4XSBk ZTYwOiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBlZGE4ZWM0OA0KZWRhOGVj NDggYzBmMDlhM2MgMDAwMDAzYTYNClsgICAxNi4yNTcwOTddIGRlODA6IGVjZjQ2MzAwIDAwMDAw MDk2IDAwMDAwMDAwIGMwMmM0ZWZjIGVkYThlYzQ4DQowMDAwMDAwMCAwMDAwMDNhNiBjMDI4OTkw OA0KWyAgIDE2LjI2NTI4N10gZGVhMDogMDAwMDAwMGMgZWRhOGVjNzggZWNmNDYzMDAgMDAwMDAz ZjQgMDAwODExMTQNCmVkYThlYzYwIDAwMDAwMDAwIGMwZjA0YzQ4DQpbICAgMTYuMjczNDgyXSBk ZWMwOiBjMDI4OTU2YyAwMDAwMDQwMCBlYzAyZGY3OCAwMDAwMDAwMCAwMDA4MTEwOA0KMDAwMDA0 MDAgMDAwMDAwMDAgYzAyNjNiMjANClsgICAxNi4yODE2NzFdIGRlZTA6IDViNGM5YTdjIDBlZTZi MjgwIDAwMDAzOWVhIDAwMDAwMDAwIGMwZjA0YzQ4DQo4YmIzZWM1NiBjMGYwNGM0OCBiZThjN2Ew MA0KWyAgIDE2LjI4OTg1M10gZGYwMDogZWNmNDYzMDggMDAwMDAwMDAgMDAwMDA3ZmYgYzBmMDRj NDggMDAwMDAwMDENCjAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwDQpbICAgMTYuMjk4MDM3XSBk ZjIwOiAwMDAwMDAwMCA4YmIzZWM1NiAwMDAwMzllYSA4YmIzZWM1NiBlY2Y0NjMwMA0KMDAwODEx MDggMDAwMDA0MDAgZWMwMmRmNzgNClsgICAxNi4zMDYyMTBdIGRmNDA6IDAwMDAwMDAwIDAwMDgx MTA4IDAwMDAwNDAwIGMwMjYzY2RjIGMwZjA0YzQ4DQpiNjg2YWM3OCAwMDAwMDVlOCBjMGYwNGM0 OA0KWyAgIDE2LjMxNDM4MV0gZGY2MDogZWNmNDYzMDMgMDAwMDI0MDAgMDAwMDAwMDAgZWNmNDYz MDAgMDAwODExMDgNCmMwMjY0MWMwIDAwMDAyNDAwIDAwMDAwMDAwDQpbICAgMTYuMzIyNTQ5XSBk ZjgwOiAwMDAwMDAwMCA4YmIzZWM1NiAwMDAyMjY5OCBiNjg2YWM3OCAwMDAwMDVlOA0KMDAwMDAw MDMgYzAxMDEyMDQgZWMwMmMwMDANClsgICAxNi4zMzA3MThdIGRmYTA6IDAwMDAwMDAzIGMwMTAx MDAwIDAwMDIyNjk4IGI2ODZhYzc4IDAwMDAwMDA5DQowMDA4MTEwOCAwMDAwMDQwMCAwMDAwMDBj Mg0KWyAgIDE2LjMzODg4Nl0gZGZjMDogMDAwMjI2OTggYjY4NmFjNzggMDAwMDA1ZTggMDAwMDAw MDMgMDAwMDAwNGINCmJlOGM3YWY0IDAwMDAwMDAwIDAwMDAwMDAwDQpbICAgMTYuMzQ3MDUzXSBk ZmUwOiAwMDA0ZDFiMiBiZThjN2E4NCBiNjg2Yjk0YyBiNjg2YWM5OCAwMDBlMDAxMA0KMDAwMDAw MDkgMDAwMDAwMDAgMDAwMDAwMDANClsgICAxNi4zNTUyMzddIFs8YzAyYzQ5MDA+XSAoc2hvd19t YXBfdm1hLmNvbnN0cHJvcC4zKSBmcm9tDQpbPGMwMmM0ZWZjPl0gKHNob3dfcGlkX21hcCsweDEw LzB4MzQpICANClsgICAxNi4zNjM4NDZdIFs8YzAyYzRlZmM+XSAoc2hvd19waWRfbWFwKSBmcm9t IFs8YzAyODk5MDg+XQ0KKHNlcV9yZWFkKzB4MzljLzB4NGY0KQ0KWyAgIDE2LjM3MTI2NF0gWzxj MDI4OTkwOD5dIChzZXFfcmVhZCkgZnJvbSBbPGMwMjYzYjIwPl0NCihfX3Zmc19yZWFkKzB4MmMv MHgxNWMpDQpbICAgMTYuMzc4NDAxXSBbPGMwMjYzYjIwPl0gKF9fdmZzX3JlYWQpIGZyb20gWzxj MDI2M2NkYz5dDQoodmZzX3JlYWQrMHg4Yy8weDExMCkNClsgICAxNi4zODU1NDZdIFs8YzAyNjNj ZGM+XSAodmZzX3JlYWQpIGZyb20gWzxjMDI2NDFjMD5dDQooa3N5c19yZWFkKzB4NGMvMHhhYykN ClsgICAxNi4zOTI1MTldIFs8YzAyNjQxYzA+XSAoa3N5c19yZWFkKSBmcm9tIFs8YzAxMDEwMDA+ XQ0KKHJldF9mYXN0X3N5c2NhbGwrMHgwLzB4NTQpDQpbICAgMTYuNDAwMDgzXSBFeGNlcHRpb24g c3RhY2soMHhlYzAyZGZhOCB0byAweGVjMDJkZmYwKQ0KWyAgIDE2LjQwNTEzNV0gZGZhMDogICAg ICAgICAgICAgICAgICAgMDAwMjI2OTggYjY4NmFjNzggMDAwMDAwMDkNCjAwMDgxMTA4IDAwMDAw NDAwIDAwMDAwMGMyDQpbICAgMTYuNDEzMzExXSBkZmMwOiAwMDAyMjY5OCBiNjg2YWM3OCAwMDAw MDVlOCAwMDAwMDAwMyAwMDAwMDA0Yg0KYmU4YzdhZjQgMDAwMDAwMDAgMDAwMDAwMDANClsgICAx Ni40MjE0ODVdIGRmZTA6IDAwMDRkMWIyIGJlOGM3YTg0IGI2ODZiOTRjIGI2ODZhYzk4DQpbICAg MTYuNDI2NTQyXSBDb2RlOiBlMWNkODBmMCBlNTk0NzAyMCBlYmZmZmI0ZiBlNTk0MzA0OCAoZTU5 MzMwMmMpDQpbICAgMTYuNDMyNzM0XSAtLS1bIGVuZCB0cmFjZSA1ZGJmOTFjNjRkYTZiZDkxIF0t LS0NCg0KUmV2ZXJ0aW5nIHRoaXMgbWFrZXMgaXQgYmVoYXZlIGFzIGV4cGVjdGVkIGFnYWluLiBB bnlib2R5IGtub3dzIHdoYXQgaXMNCmdvaW5nIG9uPw0KDQpbMV0gaHR0cHM6Ly9naXQua2VybmVs Lm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvbmV4dC9saW51eC1uZXh0LmdpdA0KL3RyZWUv YXJjaC9hcm0vYm9vdC9kdHMvdGVncmEzMC1hcGFsaXMtZXZhbC5kdHM/aD1uZXh0LTIwMTgwNzE2 DQotLSANCkJlc3QgcmVnYXJkcyAtIE1pdCBmcmV1bmRsaWNoZW4gR3LDvHNzZW4gLSBNZWlsbGV1 cmVzIHNhbHV0YXRpb25zDQoNCk1hcmNlbCBaaXN3aWxlcg0KUGxhdGZvcm0gTWFuYWdlciBFbWJl ZGRlZCBMaW51eA0KDQpUb3JhZGV4IEFHDQpBbHRzYWdlbnN0cmFzc2UgNSB8IDYwNDggSG9ydy9M dXplcm4gfCBTd2l0emVybGFuZCB8IFQ6ICs0MSA0MSA1MDAgNDggMDANCihtYWluIGxpbmUpIHwg RGlyZWN0OiArNDEgNDEgNTAwIDQ4IDEw