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=-9.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 6C287C10F11 for ; Wed, 24 Apr 2019 12:00:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2B121218B0 for ; Wed, 24 Apr 2019 12:00:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=vmware.com header.i=@vmware.com header.b="WDiA0gxj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729379AbfDXMAi (ORCPT ); Wed, 24 Apr 2019 08:00:38 -0400 Received: from mail-eopbgr710074.outbound.protection.outlook.com ([40.107.71.74]:43387 "EHLO NAM05-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729292AbfDXMAg (ORCPT ); Wed, 24 Apr 2019 08:00:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Uqnvmlb8OZm8Ka0ZMNvwFaQqnWIwbNEOncyPjd3+t58=; b=WDiA0gxjeNKdb7ipf+nmKisiveLHxe8TndhQSRAdvls11im/Rn0sBKmtxG6D2IJjo7S0ovVeIGxFvQpN2q7K6/tBXbupLA9ehWQrnYpitXThSaynxpCFgzQbzJudM6EeKZlHZ87FFEwJNx3gE5sla88ODUtw/Q5AImaX6UOZ2ac= Received: from MN2PR05MB6141.namprd05.prod.outlook.com (20.178.241.217) by MN2PR05MB6687.namprd05.prod.outlook.com (20.178.249.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.7; Wed, 24 Apr 2019 12:00:23 +0000 Received: from MN2PR05MB6141.namprd05.prod.outlook.com ([fe80::441b:ef64:e316:b294]) by MN2PR05MB6141.namprd05.prod.outlook.com ([fe80::441b:ef64:e316:b294%5]) with mapi id 15.20.1835.010; Wed, 24 Apr 2019 12:00:23 +0000 From: Thomas Hellstrom To: Linux-graphics-maintainer , "dri-devel@lists.freedesktop.org" CC: Pv-drivers , "linux-kernel@vger.kernel.org" , Thomas Hellstrom , =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: [PATCH 5/9] drm/ttm: TTM fault handler helpers v2 Thread-Topic: [PATCH 5/9] drm/ttm: TTM fault handler helpers v2 Thread-Index: AQHU+pVLwrvDBNGqikODRzQxlvpj7w== Date: Wed, 24 Apr 2019 12:00:23 +0000 Message-ID: <20190424115918.3380-6-thellstrom@vmware.com> References: <20190424115918.3380-1-thellstrom@vmware.com> In-Reply-To: <20190424115918.3380-1-thellstrom@vmware.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR07CA0208.eurprd07.prod.outlook.com (2603:10a6:802:3f::32) To MN2PR05MB6141.namprd05.prod.outlook.com (2603:10b6:208:c7::25) authentication-results: spf=none (sender IP is ) smtp.mailfrom=thellstrom@vmware.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [155.4.205.35] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 215433c1-d3a5-4af1-e25b-08d6c8ac6e22 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020);SRVR:MN2PR05MB6687; x-ms-traffictypediagnostic: MN2PR05MB6687: x-ld-processed: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0,ExtAddr x-microsoft-antispam-prvs: x-forefront-prvs: 00179089FD x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(376002)(136003)(346002)(396003)(366004)(189003)(199004)(8676002)(81156014)(64756008)(66946007)(66556008)(52116002)(6506007)(53936002)(66476007)(68736007)(102836004)(8936002)(6116002)(66446008)(6512007)(36756003)(186003)(81166006)(26005)(73956011)(7736002)(305945005)(316002)(66066001)(2501003)(66574012)(50226002)(97736004)(3846002)(86362001)(1076003)(110136005)(5660300002)(2616005)(14454004)(11346002)(25786009)(486006)(2906002)(76176011)(71200400001)(71190400001)(99286004)(476003)(386003)(256004)(4326008)(446003)(14444005)(6486002)(6436002)(54906003)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR05MB6687;H:MN2PR05MB6141.namprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: vmware.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: VrTwwFS70aTOjs+rNc7J+0bgxXHRYEfEQCaxPT1Xipbb9Wd/CHeBoa80hP2ZL/U3jst3Ece0dGx+5BgKzDRmkl7lt6c4BQuNcV+QUMXtGYFVPUszFsEkwOFn15b3PXDAELIwMRx/nxqWc/mVc3vC7Ij1pLJd7ULtlhsT/cQnPVK7Q4ZNRm6I9n3BxK4qKrpZa6aTkbnxFgNTWknytmScFjrszwYefANFlTqQ9iOtFpYioqgwTkRipPheokrlkB6CO+Q/QHmY1WRwc5j4dUd7zUfA2AVcpueOPM/fmvYzitcFUlxJMt0MKlyxmWKhZZeYEskemspEONwJlIM/o9diOr5N9xDtM6VvWB9hnPLhwHeRrj3LMouMODlrA+ODX5b2RFi24nNpVPvms0ORbjrvEZ9V/x+UN1flvgglpGtJJOk= Content-Type: text/plain; charset="utf-8" Content-ID: <07384E7BD581EA429038096C02597F85@namprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 215433c1-d3a5-4af1-e25b-08d6c8ac6e22 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2019 12:00:23.2777 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR05MB6687 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org V2l0aCB0aGUgdm13Z2Z4IGRpcnR5IHRyYWNraW5nLCB0aGUgZGVmYXVsdCBUVE0gZmF1bHQgaGFu ZGxlciBpcyBub3QNCmNvbXBsZXRlbHkgc3VmZmljaWVudCAodm13Z2Z4IG5lZWQgdG8gbW9kaWZ5 IHRoZSB2bWEtPnZtX2ZsYWdzIG1lbWJlciwNCmFuZCBhbHNvIG5lZWRzIHRvIHJlc3RyaWN0IHRo ZSBudW1iZXIgb2YgcHJlZmF1bHRzKS4NCg0KV2UgYWxzbyB3YW50IHRvIHJlcGxpY2F0ZSB0aGUg bmV3IHR0bV9ib192bV9yZXNlcnZlKCkgZnVuY3Rpb25hbGl0eQ0KDQpTbyBzdGFydCB0dXJuaW5n IHRoZSBUVE0gdm0gY29kZSBpbnRvIGhlbHBlcnM6IHR0bV9ib192bV9mYXVsdF9yZXNlcnZlZCgp DQphbmQgdHRtX2JvX3ZtX3Jlc2VydmUoKSwgYW5kIHByb3ZpZGUgYSBkZWZhdWx0IFRUTSBmYXVs dCBoYW5kbGVyIGZvciBvdGhlcg0KZHJpdmVycyB0byB1c2UuDQoNCkNjOiAiQ2hyaXN0aWFuIEvD tm5pZyIgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4NCg0KU2lnbmVkLW9mZi1ieTogVGhvbWFz IEhlbGxzdHJvbSA8dGhlbGxzdHJvbUB2bXdhcmUuY29tPg0KUmV2aWV3ZWQtYnk6ICJDaHJpc3Rp YW4gS8O2bmlnIiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPiAjdjENCi0tLQ0KdjI6IFJlbW92 ZSBzb21lIHVubmVjZXNzYXJ5IGNvZGUgcG9pbnRlZCBvdXQgaW4gcmV2aWV3IGNvbW1lbnRzDQog ICAgTWFrZSB0dG1fYm9fdm1fZmF1bHRfcmVzZXJ2ZWQoKSB0YWtlIGEgcGdwcm90X3QgYXMgYW4g YXJndW1lbnQNCiAgICBpbnN0ZWFkIG9mIGEgc3RydWN0IHZtX2FyZWFfc3RydWN0IHBvaW50ZXIu DQotLS0NCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jIHwgMTc1ICsrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tDQogaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAgICB8 ICAxMCArKw0KIDIgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMoKyksIDcyIGRlbGV0aW9u cygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMNCmluZGV4IGJmYjI1YjgxZmVkNy4uZDE1ZjIy MmRjMDgxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYw0KKysr IGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYw0KQEAgLTQyLDggKzQyLDYgQEANCiAj aW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPg0KICNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5o Pg0KIA0KLSNkZWZpbmUgVFRNX0JPX1ZNX05VTV9QUkVGQVVMVCAxNg0KLQ0KIHN0YXRpYyB2bV9m YXVsdF90IHR0bV9ib192bV9mYXVsdF9pZGxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s DQogCQkJCXN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0KIHsNCkBAIC0xMDYsMzEgKzEwNCwzMCBAQCBz dGF0aWMgdW5zaWduZWQgbG9uZyB0dG1fYm9faW9fbWVtX3BmbihzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLA0KIAkJKyBwYWdlX29mZnNldDsNCiB9DQogDQotc3RhdGljIHZtX2ZhdWx0X3Qg dHRtX2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0KKy8qKg0KKyAqIHR0bV9ib192 bV9yZXNlcnZlIC0gUmVzZXJ2ZSBhIGJ1ZmZlciBvYmplY3QgaW4gYSByZXRyeWFibGUgdm0gY2Fs bGJhY2sNCisgKiBAYm86IFRoZSBidWZmZXIgb2JqZWN0DQorICogQHZtZjogVGhlIGZhdWx0IHN0 cnVjdHVyZSBoYW5kZWQgdG8gdGhlIGNhbGxiYWNrDQorICoNCisgKiB2bSBjYWxsYmFja3MgbGlr ZSBmYXVsdCgpIGFuZCAqX21rd3JpdGUoKSBhbGxvdyBmb3IgdGhlIG1tX3NlbSB0byBiZSBkcm9w cGVkDQorICogZHVyaW5nIGxvbmcgd2FpdHMsIGFuZCBhZnRlciB0aGUgd2FpdCB0aGUgY2FsbGJh Y2sgd2lsbCBiZSByZXN0YXJ0ZWQuIFRoaXMNCisgKiBpcyB0byBhbGxvdyBvdGhlciB0aHJlYWRz IHVzaW5nIHRoZSBzYW1lIHZpcnR1YWwgbWVtb3J5IHNwYWNlIGNvbmN1cnJlbnQNCisgKiBhY2Nl c3MgdG8gbWFwKCksIHVubWFwKCkgY29tcGxldGVseSB1bnJlbGF0ZWQgYnVmZmVyIG9iamVjdHMu IFRUTSBidWZmZXINCisgKiBvYmplY3QgcmVzZXJ2YXRpb25zIHNvbWV0aW1lcyB3YWl0IGZvciBH UFUgYW5kIHNob3VsZCB0aGVyZWZvcmUgYmUNCisgKiBjb25zaWRlcmVkIGxvbmcgd2FpdHMuIFRo aXMgZnVuY3Rpb24gcmVzZXJ2ZXMgdGhlIGJ1ZmZlciBvYmplY3QgaW50ZXJydXB0aWJseQ0KKyAq IHRha2luZyB0aGlzIGludG8gYWNjb3VudC4gU3RhcnZhdGlvbiBpcyBhdm9pZGVkIGJ5IHRoZSB2 bSBzeXN0ZW0gbm90DQorICogYWxsb3dpbmcgdG9vIG1hbnkgcmVwZWF0ZWQgcmVzdGFydHMuDQor ICogVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGluIGN1c3RvbWl6ZWQgZmF1 bHQoKSBhbmQgX21rd3JpdGUoKQ0KKyAqIGhhbmRsZXJzLg0KKyAqDQorICogUmV0dXJuOg0KKyAq ICAgIDAgb24gc3VjY2VzcyBhbmQgdGhlIGJvIHdhcyByZXNlcnZlZC4NCisgKiAgICBWTV9GQVVM VF9SRVRSWSBpZiBibG9ja2luZyB3YWl0Lg0KKyAqICAgIFZNX0ZBVUxUX05PUEFHRSBpZiBibG9j a2luZyB3YWl0IGFuZCByZXRyeWluZyB3YXMgbm90IGFsbG93ZWQuDQorICovDQordm1fZmF1bHRf dCB0dG1fYm9fdm1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KKwkJCSAg ICAgc3RydWN0IHZtX2ZhdWx0ICp2bWYpDQogew0KLQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSA9IHZtZi0+dm1hOw0KLQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqKQ0KLQkgICAgdm1hLT52bV9wcml2YXRlX2RhdGE7DQotCXN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7DQotCXVuc2lnbmVkIGxvbmcgcGFnZV9v ZmZzZXQ7DQotCXVuc2lnbmVkIGxvbmcgcGFnZV9sYXN0Ow0KLQl1bnNpZ25lZCBsb25nIHBmbjsN Ci0Jc3RydWN0IHR0bV90dCAqdHRtID0gTlVMTDsNCi0Jc3RydWN0IHBhZ2UgKnBhZ2U7DQotCWlu dCBlcnI7DQotCWludCBpOw0KLQl2bV9mYXVsdF90IHJldCA9IFZNX0ZBVUxUX05PUEFHRTsNCi0J dW5zaWduZWQgbG9uZyBhZGRyZXNzID0gdm1mLT5hZGRyZXNzOw0KLQlzdHJ1Y3QgdHRtX21lbV90 eXBlX21hbmFnZXIgKm1hbiA9DQotCQkmYmRldi0+bWFuW2JvLT5tZW0ubWVtX3R5cGVdOw0KLQlz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgY3ZtYTsNCi0NCi0JLyoNCi0JICogV29yayBhcm91bmQgbG9j a2luZyBvcmRlciByZXZlcnNhbCBpbiBmYXVsdCAvIG5vcGZuDQotCSAqIGJldHdlZW4gbW1hcF9z ZW0gYW5kIGJvX3Jlc2VydmU6IFBlcmZvcm0gYSB0cnlsb2NrIG9wZXJhdGlvbg0KLQkgKiBmb3Ig cmVzZXJ2ZSwgYW5kIGlmIGl0IGZhaWxzLCByZXRyeSB0aGUgZmF1bHQgYWZ0ZXIgd2FpdGluZw0K LQkgKiBmb3IgdGhlIGJ1ZmZlciB0byBiZWNvbWUgdW5yZXNlcnZlZC4NCi0JICovDQogCWlmICh1 bmxpa2VseSghcmVzZXJ2YXRpb25fb2JqZWN0X3RyeWxvY2soYm8tPnJlc3YpKSkgew0KIAkJaWYg KHZtZi0+ZmxhZ3MgJiBGQVVMVF9GTEFHX0FMTE9XX1JFVFJZKSB7DQogCQkJaWYgKCEodm1mLT5m bGFncyAmIEZBVUxUX0ZMQUdfUkVUUllfTk9XQUlUKSkgew0KQEAgLTE1MSwxNCArMTQ4LDU1IEBA IHN0YXRpYyB2bV9mYXVsdF90IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikN CiAJCXJldHVybiBWTV9GQVVMVF9OT1BBR0U7DQogCX0NCiANCisJcmV0dXJuIDA7DQorfQ0KK0VY UE9SVF9TWU1CT0wodHRtX2JvX3ZtX3Jlc2VydmUpOw0KKw0KKy8qKg0KKyAqIHR0bV9ib192bV9m YXVsdF9yZXNlcnZlZCAtIFRUTSBmYXVsdCBoZWxwZXINCisgKiBAdm1mOiBUaGUgc3RydWN0IHZt X2ZhdWx0IGdpdmVuIGFzIGFyZ3VtZW50IHRvIHRoZSBmYXVsdCBjYWxsYmFjaw0KKyAqIEBwcm90 OiBUaGUgcGFnZSBwcm90ZWN0aW9uIHRvIGJlIHVzZWQgZm9yIHRoaXMgbWVtb3J5IGFyZWEuDQor ICogQG51bV9wcmVmYXVsdDogTWF4aW11bSBudW1iZXIgb2YgcHJlZmF1bHQgcGFnZXMuIFRoZSBj YWxsZXIgbWF5IHdhbnQgdG8NCisgKiBzcGVjaWZ5IHRoaXMgYmFzZWQgb24gbWFkdmljZSBzZXR0 aW5ncyBhbmQgdGhlIHNpemUgb2YgdGhlIEdQVSBvYmplY3QNCisgKiBiYWNrZWQgYnkgdGhlIG1l bW9yeS4NCisgKg0KKyAqIFRoaXMgZnVuY3Rpb24gaW5zZXJ0cyBvbmUgb3IgbW9yZSBwYWdlIHRh YmxlIGVudHJpZXMgcG9pbnRpbmcgdG8gdGhlDQorICogbWVtb3J5IGJhY2tpbmcgdGhlIGJ1ZmZl ciBvYmplY3QsIGFuZCB0aGVuIHJldHVybnMgYSByZXR1cm4gY29kZQ0KKyAqIGluc3RydWN0aW5n IHRoZSBjYWxsZXIgdG8gcmV0cnkgdGhlIHBhZ2UgYWNjZXNzLg0KKyAqDQorICogUmV0dXJuOg0K KyAqICAgVk1fRkFVTFRfTk9QQUdFIG9uIHN1Y2Nlc3Mgb3IgcGVuZGluZyBzaWduYWwNCisgKiAg IFZNX0ZBVUxUX1NJR0JVUyBvbiB1bnNwZWNpZmllZCBlcnJvcg0KKyAqICAgVk1fRkFVTFRfT09N IG9uIG91dC1vZi1tZW1vcnkNCisgKiAgIFZNX0ZBVUxUX1JFVFJZIGlmIHJldHJ5YWJsZSB3YWl0 DQorICovDQordm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHRfcmVzZXJ2ZWQoc3RydWN0IHZtX2Zh dWx0ICp2bWYsDQorCQkJCSAgICBwZ3Byb3RfdCBwcm90LA0KKwkJCQkgICAgcGdvZmZfdCBudW1f cHJlZmF1bHQpDQorew0KKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHZtZi0+dm1hOw0K KwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgY3ZtYSA9ICp2bWE7DQorCXN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8gPSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopDQorCSAgICB2bWEtPnZt X3ByaXZhdGVfZGF0YTsNCisJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsN CisJdW5zaWduZWQgbG9uZyBwYWdlX29mZnNldDsNCisJdW5zaWduZWQgbG9uZyBwYWdlX2xhc3Q7 DQorCXVuc2lnbmVkIGxvbmcgcGZuOw0KKwlzdHJ1Y3QgdHRtX3R0ICp0dG0gPSBOVUxMOw0KKwlz dHJ1Y3QgcGFnZSAqcGFnZTsNCisJaW50IGVycjsNCisJcGdvZmZfdCBpOw0KKwl2bV9mYXVsdF90 IHJldCA9IFZNX0ZBVUxUX05PUEFHRTsNCisJdW5zaWduZWQgbG9uZyBhZGRyZXNzID0gdm1mLT5h ZGRyZXNzOw0KKwlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9DQorCQkmYmRldi0+ bWFuW2JvLT5tZW0ubWVtX3R5cGVdOw0KKw0KIAkvKg0KIAkgKiBSZWZ1c2UgdG8gZmF1bHQgaW1w b3J0ZWQgcGFnZXMuIFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQNCiAJICogKGlmIGF0IGFsbCkgYnkg cmVkaXJlY3RpbmcgbW1hcCB0byB0aGUgZXhwb3J0ZXIuDQogCSAqLw0KLQlpZiAoYm8tPnR0bSAm JiAoYm8tPnR0bS0+cGFnZV9mbGFncyAmIFRUTV9QQUdFX0ZMQUdfU0cpKSB7DQotCQlyZXQgPSBW TV9GQVVMVF9TSUdCVVM7DQotCQlnb3RvIG91dF91bmxvY2s7DQotCX0NCisJaWYgKGJvLT50dG0g JiYgKGJvLT50dG0tPnBhZ2VfZmxhZ3MgJiBUVE1fUEFHRV9GTEFHX1NHKSkNCisJCXJldHVybiBW TV9GQVVMVF9TSUdCVVM7DQogDQogCWlmIChiZGV2LT5kcml2ZXItPmZhdWx0X3Jlc2VydmVfbm90 aWZ5KSB7DQogCQlzdHJ1Y3QgZG1hX2ZlbmNlICptb3ZpbmcgPSBkbWFfZmVuY2VfZ2V0KGJvLT5t b3ZpbmcpOw0KQEAgLTE2OSwxMSArMjA3LDkgQEAgc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3Zt X2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0KIAkJCWJyZWFrOw0KIAkJY2FzZSAtRUJVU1k6 DQogCQljYXNlIC1FUkVTVEFSVFNZUzoNCi0JCQlyZXQgPSBWTV9GQVVMVF9OT1BBR0U7DQotCQkJ Z290byBvdXRfdW5sb2NrOw0KKwkJCXJldHVybiBWTV9GQVVMVF9OT1BBR0U7DQogCQlkZWZhdWx0 Og0KLQkJCXJldCA9IFZNX0ZBVUxUX1NJR0JVUzsNCi0JCQlnb3RvIG91dF91bmxvY2s7DQorCQkJ cmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsNCiAJCX0NCiANCiAJCWlmIChiby0+bW92aW5nICE9IG1v dmluZykgew0KQEAgLTE4OSwyNiArMjI1LDE1IEBAIHN0YXRpYyB2bV9mYXVsdF90IHR0bV9ib192 bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikNCiAJICogbW92ZS4NCiAJICovDQogCXJldCA9 IHR0bV9ib192bV9mYXVsdF9pZGxlKGJvLCB2bWYpOw0KLQlpZiAodW5saWtlbHkocmV0ICE9IDAp KSB7DQotCQlpZiAocmV0ID09IFZNX0ZBVUxUX1JFVFJZICYmDQotCQkgICAgISh2bWYtPmZsYWdz ICYgRkFVTFRfRkxBR19SRVRSWV9OT1dBSVQpKSB7DQotCQkJLyogVGhlIEJPIGhhcyBhbHJlYWR5 IGJlZW4gdW5yZXNlcnZlZC4gKi8NCi0JCQlyZXR1cm4gcmV0Ow0KLQkJfQ0KLQ0KLQkJZ290byBv dXRfdW5sb2NrOw0KLQl9DQorCWlmICh1bmxpa2VseShyZXQgIT0gMCkpDQorCQlyZXR1cm4gcmV0 Ow0KIA0KIAllcnIgPSB0dG1fbWVtX2lvX2xvY2sobWFuLCB0cnVlKTsNCi0JaWYgKHVubGlrZWx5 KGVyciAhPSAwKSkgew0KLQkJcmV0ID0gVk1fRkFVTFRfTk9QQUdFOw0KLQkJZ290byBvdXRfdW5s b2NrOw0KLQl9DQorCWlmICh1bmxpa2VseShlcnIgIT0gMCkpDQorCQlyZXR1cm4gVk1fRkFVTFRf Tk9QQUdFOw0KIAllcnIgPSB0dG1fbWVtX2lvX3Jlc2VydmVfdm0oYm8pOw0KLQlpZiAodW5saWtl bHkoZXJyICE9IDApKSB7DQotCQlyZXQgPSBWTV9GQVVMVF9TSUdCVVM7DQotCQlnb3RvIG91dF9p b191bmxvY2s7DQotCX0NCisJaWYgKHVubGlrZWx5KGVyciAhPSAwKSkNCisJCXJldHVybiBWTV9G QVVMVF9TSUdCVVM7DQogDQogCXBhZ2Vfb2Zmc2V0ID0gKChhZGRyZXNzIC0gdm1hLT52bV9zdGFy dCkgPj4gUEFHRV9TSElGVCkgKw0KIAkJdm1hLT52bV9wZ29mZiAtIGRybV92bWFfbm9kZV9zdGFy dCgmYm8tPnZtYV9ub2RlKTsNCkBAIC0yMjAsMTggKzI0NSw4IEBAIHN0YXRpYyB2bV9mYXVsdF90 IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikNCiAJCWdvdG8gb3V0X2lvX3Vu bG9jazsNCiAJfQ0KIA0KLQkvKg0KLQkgKiBNYWtlIGEgbG9jYWwgdm1hIGNvcHkgdG8gbW9kaWZ5 IHRoZSBwYWdlX3Byb3QgbWVtYmVyDQotCSAqIGFuZCB2bV9mbGFncyBpZiBuZWNlc3NhcnkuIFRo ZSB2bWEgcGFyYW1ldGVyIGlzIHByb3RlY3RlZA0KLQkgKiBieSBtbWFwX3NlbSBpbiB3cml0ZSBt b2RlLg0KLQkgKi8NCi0JY3ZtYSA9ICp2bWE7DQotCWN2bWEudm1fcGFnZV9wcm90ID0gdm1fZ2V0 X3BhZ2VfcHJvdChjdm1hLnZtX2ZsYWdzKTsNCi0NCi0JaWYgKGJvLT5tZW0uYnVzLmlzX2lvbWVt KSB7DQotCQljdm1hLnZtX3BhZ2VfcHJvdCA9IHR0bV9pb19wcm90KGJvLT5tZW0ucGxhY2VtZW50 LA0KLQkJCQkJCWN2bWEudm1fcGFnZV9wcm90KTsNCi0JfSBlbHNlIHsNCisJY3ZtYS52bV9wYWdl X3Byb3QgPSB0dG1faW9fcHJvdChiby0+bWVtLnBsYWNlbWVudCwgcHJvdCk7DQorCWlmICghYm8t Pm1lbS5idXMuaXNfaW9tZW0pIHsNCiAJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7 DQogCQkJLmludGVycnVwdGlibGUgPSBmYWxzZSwNCiAJCQkubm9fd2FpdF9ncHUgPSBmYWxzZSwN CkBAIC0yNDAsMjQgKzI1NSwyMSBAQCBzdGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHQo c3RydWN0IHZtX2ZhdWx0ICp2bWYpDQogCQl9Ow0KIA0KIAkJdHRtID0gYm8tPnR0bTsNCi0JCWN2 bWEudm1fcGFnZV9wcm90ID0gdHRtX2lvX3Byb3QoYm8tPm1lbS5wbGFjZW1lbnQsDQotCQkJCQkJ Y3ZtYS52bV9wYWdlX3Byb3QpOw0KLQ0KLQkJLyogQWxsb2NhdGUgYWxsIHBhZ2UgYXQgb25jZSwg bW9zdCBjb21tb24gdXNhZ2UgKi8NCi0JCWlmICh0dG1fdHRfcG9wdWxhdGUodHRtLCAmY3R4KSkg ew0KKwkJaWYgKHR0bV90dF9wb3B1bGF0ZShiby0+dHRtLCAmY3R4KSkgew0KIAkJCXJldCA9IFZN X0ZBVUxUX09PTTsNCiAJCQlnb3RvIG91dF9pb191bmxvY2s7DQogCQl9DQorCX0gZWxzZSB7DQor CQkvKiBJb21lbSBzaG91bGQgbm90IGJlIG1hcmtlZCBlbmNyeXB0ZWQgKi8NCisJCWN2bWEudm1f cGFnZV9wcm90ID0gcGdwcm90X2RlY3J5cHRlZChjdm1hLnZtX3BhZ2VfcHJvdCk7DQogCX0NCiAN CiAJLyoNCiAJICogU3BlY3VsYXRpdmVseSBwcmVmYXVsdCBhIG51bWJlciBvZiBwYWdlcy4gT25s eSBlcnJvciBvbg0KIAkgKiBmaXJzdCBwYWdlLg0KIAkgKi8NCi0JZm9yIChpID0gMDsgaSA8IFRU TV9CT19WTV9OVU1fUFJFRkFVTFQ7ICsraSkgew0KKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3ByZWZh dWx0OyArK2kpIHsNCiAJCWlmIChiby0+bWVtLmJ1cy5pc19pb21lbSkgew0KLQkJCS8qIElvbWVt IHNob3VsZCBub3QgYmUgbWFya2VkIGVuY3J5cHRlZCAqLw0KLQkJCWN2bWEudm1fcGFnZV9wcm90 ID0gcGdwcm90X2RlY3J5cHRlZChjdm1hLnZtX3BhZ2VfcHJvdCk7DQogCQkJcGZuID0gdHRtX2Jv X2lvX21lbV9wZm4oYm8sIHBhZ2Vfb2Zmc2V0KTsNCiAJCX0gZWxzZSB7DQogCQkJcGFnZSA9IHR0 bS0+cGFnZXNbcGFnZV9vZmZzZXRdOw0KQEAgLTI5NSw3ICszMDcsMjYgQEAgc3RhdGljIHZtX2Zh dWx0X3QgdHRtX2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0KIAlyZXQgPSBWTV9G QVVMVF9OT1BBR0U7DQogb3V0X2lvX3VubG9jazoNCiAJdHRtX21lbV9pb191bmxvY2sobWFuKTsN Ci1vdXRfdW5sb2NrOg0KKwlyZXR1cm4gcmV0Ow0KK30NCitFWFBPUlRfU1lNQk9MKHR0bV9ib192 bV9mYXVsdF9yZXNlcnZlZCk7DQorDQorc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2ZhdWx0 KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0KK3sNCisJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEg PSB2bWYtPnZtYTsNCisJcGdwcm90X3QgcHJvdDsNCisJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibyA9IHZtYS0+dm1fcHJpdmF0ZV9kYXRhOw0KKwl2bV9mYXVsdF90IHJldDsNCisNCisJcmV0 ID0gdHRtX2JvX3ZtX3Jlc2VydmUoYm8sIHZtZik7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0 Ow0KKw0KKwlwcm90ID0gdm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKTsNCisJcmV0ID0g dHRtX2JvX3ZtX2ZhdWx0X3Jlc2VydmVkKHZtZiwgcHJvdCwgVFRNX0JPX1ZNX05VTV9QUkVGQVVM VCk7DQorCWlmIChyZXQgPT0gVk1fRkFVTFRfUkVUUlkgJiYgISh2bWYtPmZsYWdzICYgRkFVTFRf RkxBR19SRVRSWV9OT1dBSVQpKQ0KKwkJcmV0dXJuIHJldDsNCisNCiAJcmVzZXJ2YXRpb25fb2Jq ZWN0X3VubG9jayhiby0+cmVzdik7DQogCXJldHVybiByZXQ7DQogfQ0KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5o DQppbmRleCA0OWQ5Y2RmYzU4ZjIuLjQzNWQwMmY3MTlhOCAxMDA2NDQNCi0tLSBhL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fYXBpLmgNCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgN CkBAIC03NjgsNCArNzY4LDE0IEBAIGludCB0dG1fYm9fc3dhcG91dChzdHJ1Y3QgdHRtX2JvX2ds b2JhbCAqZ2xvYiwNCiAJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7DQogdm9pZCB0 dG1fYm9fc3dhcG91dF9hbGwoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYpOw0KIGludCB0dG1f Ym9fd2FpdF91bnJlc2VydmVkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOw0KKw0KKy8q IERlZmF1bHQgbnVtYmVyIG9mIHByZS1mYXVsdGVkIHBhZ2VzIGluIHRoZSBUVE0gZmF1bHQgaGFu ZGxlciAqLw0KKyNkZWZpbmUgVFRNX0JPX1ZNX05VTV9QUkVGQVVMVCAxNg0KKw0KK3ZtX2ZhdWx0 X3QgdHRtX2JvX3ZtX3Jlc2VydmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywNCisJCQkg ICAgIHN0cnVjdCB2bV9mYXVsdCAqdm1mKTsNCisNCit2bV9mYXVsdF90IHR0bV9ib192bV9mYXVs dF9yZXNlcnZlZChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwNCisJCQkJICAgIHBncHJvdF90IHByb3Qs DQorCQkJCSAgICBwZ29mZl90IG51bV9wcmVmYXVsdCk7DQogI2VuZGlmDQotLSANCjIuMjAuMQ0K DQo=