From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nayan Deshmukh Subject: [PATCH v2] drm/scheduler: add documentation Date: Tue, 29 May 2018 11:23:07 +0530 Message-ID: <20180529055307.7106-1-nayan26deshmukh@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pl0-x244.google.com (mail-pl0-x244.google.com [IPv6:2607:f8b0:400e:c01::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 73D0C899E9 for ; Tue, 29 May 2018 05:54:06 +0000 (UTC) Received: by mail-pl0-x244.google.com with SMTP id v24-v6so8306875plo.3 for ; Mon, 28 May 2018 22:54:06 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Nayan Deshmukh , Alex Deucher , christian.koenig@amd.com List-Id: dri-devel@lists.freedesktop.org Y29udmVydCBleGlzdGluZyByYXcgY29tbWVudHMgaW50byBrZXJuZWwtZG9jIGZvcm1hdCBhcyB3 ZWxsCmFzIGFkZCBuZXcgZG9jdW1lbnRhdGlvbgoKdjI6IHJld29yZCB0aGUgb3ZlcnZpZXcKClNp Z25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KU2ln bmVkLW9mZi1ieTogTmF5YW4gRGVzaG11a2ggPG5heWFuMjZkZXNobXVraEBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9ncHVfc2NoZWR1bGVyLmMgfCAyMTQgKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tCiBpbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmggICAgICAg ICAgICAgICB8IDE1MyArKysrKysrKysrKysrKysrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjk2 IGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jIGIvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxl ci9ncHVfc2NoZWR1bGVyLmMKaW5kZXggNDRkNDgwNzY4ZGZlLi44YzFlODBjOWI2NzQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvZ3B1X3NjaGVkdWxlci5jCkBAIC0yMSw2ICsyMSwyOSBA QAogICoKICAqLwogCisvKioKKyAqIERPQzogT3ZlcnZpZXcKKyAqCisgKiBUaGUgR1BVIHNjaGVk dWxlciBwcm92aWRlcyBlbnRpdGllcyB3aGljaCBhbGxvdyB1c2Vyc3BhY2UgdG8gcHVzaCBqb2Jz CisgKiBpbnRvIHNvZnR3YXJlIHF1ZXVlcyB3aGljaCBhcmUgdGhlbiBzY2hlZHVsZWQgb24gYSBo YXJkd2FyZSBydW4gcXVldWUuCisgKiBUaGUgc29mdHdhcmUgcXVldWVzIGhhdmUgYSBwcmlvcml0 eSBhbW9uZyB0aGVtLiBUaGUgc2NoZWR1bGVyIHNlbGVjdHMgdGhlIGVudGl0aWVzCisgKiBmcm9t IHRoZSBydW4gcXVldWUgdXNpbmcgYSBGSUZPLiBUaGUgc2NoZWR1bGVyIHByb3ZpZGVzIGRlcGVu ZGVuY3kgaGFuZGxpbmcKKyAqIGZlYXR1cmVzIGFtb25nIGpvYnMuIFRoZSBkcml2ZXIgaXMgc3Vw cG9zZWQgdG8gcHJvdmlkZSBjYWxsYmFjayBmdW5jdGlvbnMgZm9yCisgKiBiYWNrZW5kIG9wZXJh dGlvbnMgdG8gdGhlIHNjaGVkdWxlciBsaWtlIHN1Ym1pdHRpbmcgYSBqb2IgdG8gaGFyZHdhcmUg cnVuIHF1ZXVlLAorICogcmV0dXJuaW5nIHRoZSBkZXBlbmRlbmNpZXMgb2YgYSBqb2IgZXRjLgor ICoKKyAqIFRoZSBvcmdhbmlzYXRpb24gb2YgdGhlIHNjaGVkdWxlciBpcyB0aGUgZm9sbG93aW5n OgorICoKKyAqIDEuIEVhY2ggaHcgcnVuIHF1ZXVlIGhhcyBvbmUgc2NoZWR1bGVyCisgKiAyLiBF YWNoIHNjaGVkdWxlciBoYXMgbXVsdGlwbGUgcnVuIHF1ZXVlcyB3aXRoIGRpZmZlcmVudCBwcmlv cml0aWVzCisgKiAgICAoZS5nLiwgSElHSF9IVyxISUdIX1NXLCBLRVJORUwsIE5PUk1BTCkKKyAq IDMuIEVhY2ggc2NoZWR1bGVyIHJ1biBxdWV1ZSBoYXMgYSBxdWV1ZSBvZiBlbnRpdGllcyB0byBz Y2hlZHVsZQorICogNC4gRW50aXRpZXMgdGhlbXNlbHZlcyBtYWludGFpbiBhIHF1ZXVlIG9mIGpv YnMgdGhhdCB3aWxsIGJlIHNjaGVkdWxlZCBvbgorICogICAgdGhlIGhhcmR3YXJlLgorICoKKyAq IFRoZSBqb2JzIGluIGEgZW50aXR5IGFyZSBhbHdheXMgc2NoZWR1bGVkIGluIHRoZSBvcmRlciB0 aGF0IHRoZXkgd2VyZSBwdXNoZWQuCisgKi8KKwogI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4K ICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KQEAgLTM5 LDcgKzYyLDEzIEBAIHN0YXRpYyBib29sIGRybV9zY2hlZF9lbnRpdHlfaXNfcmVhZHkoc3RydWN0 IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSk7CiBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfd2FrZXVw KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpOwogc3RhdGljIHZvaWQgZHJtX3NjaGVk X3Byb2Nlc3Nfam9iKHN0cnVjdCBkbWFfZmVuY2UgKmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNi KTsKIAotLyogSW5pdGlhbGl6ZSBhIGdpdmVuIHJ1biBxdWV1ZSBzdHJ1Y3QgKi8KKy8qKgorICog ZHJtX3NjaGVkX3JxX2luaXQgLSBpbml0aWFsaXplIGEgZ2l2ZW4gcnVuIHF1ZXVlIHN0cnVjdAor ICoKKyAqIEBycTogc2NoZWR1bGVyIHJ1biBxdWV1ZQorICoKKyAqIEluaXRpYWxpemVzIGEgc2No ZWR1bGVyIHJ1bnF1ZXVlLgorICovCiBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfcnFfaW5pdChzdHJ1 Y3QgZHJtX3NjaGVkX3JxICpycSkKIHsKIAlzcGluX2xvY2tfaW5pdCgmcnEtPmxvY2spOwpAQCAt NDcsNiArNzYsMTQgQEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX3JxX2luaXQoc3RydWN0IGRybV9z Y2hlZF9ycSAqcnEpCiAJcnEtPmN1cnJlbnRfZW50aXR5ID0gTlVMTDsKIH0KIAorLyoqCisgKiBk cm1fc2NoZWRfcnFfYWRkX2VudGl0eSAtIGFkZCBhbiBlbnRpdHkKKyAqCisgKiBAcnE6IHNjaGVk dWxlciBydW4gcXVldWUKKyAqIEBlbnRpdHk6IHNjaGVkdWxlciBlbnRpdHkKKyAqCisgKiBBZGRz IGEgc2NoZWR1bGVyIGVudGl0eSB0byB0aGUgcnVuIHF1ZXVlLgorICovCiBzdGF0aWMgdm9pZCBk cm1fc2NoZWRfcnFfYWRkX2VudGl0eShzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycSwKIAkJCQkgICAg c3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSkKIHsKQEAgLTU3LDYgKzk0LDE0IEBAIHN0 YXRpYyB2b2lkIGRybV9zY2hlZF9ycV9hZGRfZW50aXR5KHN0cnVjdCBkcm1fc2NoZWRfcnEgKnJx LAogCXNwaW5fdW5sb2NrKCZycS0+bG9jayk7CiB9CiAKKy8qKgorICogZHJtX3NjaGVkX3JxX3Jl bW92ZV9lbnRpdHkgLSByZW1vdmUgYW4gZW50aXR5CisgKgorICogQHJxOiBzY2hlZHVsZXIgcnVu IHF1ZXVlCisgKiBAZW50aXR5OiBzY2hlZHVsZXIgZW50aXR5CisgKgorICogUmVtb3ZlcyBhIHNj aGVkdWxlciBlbnRpdHkgZnJvbSB0aGUgcnVuIHF1ZXVlLgorICovCiBzdGF0aWMgdm9pZCBkcm1f c2NoZWRfcnFfcmVtb3ZlX2VudGl0eShzdHJ1Y3QgZHJtX3NjaGVkX3JxICpycSwKIAkJCQkgICAg ICAgc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSkKIHsKQEAgLTcwLDkgKzExNSw5IEBA IHN0YXRpYyB2b2lkIGRybV9zY2hlZF9ycV9yZW1vdmVfZW50aXR5KHN0cnVjdCBkcm1fc2NoZWRf cnEgKnJxLAogfQogCiAvKioKLSAqIFNlbGVjdCBhbiBlbnRpdHkgd2hpY2ggY291bGQgcHJvdmlk ZSBhIGpvYiB0byBydW4KKyAqIGRybV9zY2hlZF9ycV9zZWxlY3RfZW50aXR5IC0gU2VsZWN0IGFu IGVudGl0eSB3aGljaCBjb3VsZCBwcm92aWRlIGEgam9iIHRvIHJ1bgogICoKLSAqIEBycQkJVGhl IHJ1biBxdWV1ZSB0byBjaGVjay4KKyAqIEBycTogc2NoZWR1bGVyIHJ1biBxdWV1ZSB0byBjaGVj ay4KICAqCiAgKiBUcnkgdG8gZmluZCBhIHJlYWR5IGVudGl0eSwgcmV0dXJucyBOVUxMIGlmIG5v bmUgZm91bmQuCiAgKi8KQEAgLTExMiwxNSArMTU3LDE2IEBAIGRybV9zY2hlZF9ycV9zZWxlY3Rf ZW50aXR5KHN0cnVjdCBkcm1fc2NoZWRfcnEgKnJxKQogfQogCiAvKioKLSAqIEluaXQgYSBjb250 ZXh0IGVudGl0eSB1c2VkIGJ5IHNjaGVkdWxlciB3aGVuIHN1Ym1pdCB0byBIVyByaW5nLgorICog ZHJtX3NjaGVkX2VudGl0eV9pbml0IC0gSW5pdCBhIGNvbnRleHQgZW50aXR5IHVzZWQgYnkgc2No ZWR1bGVyIHdoZW4KKyAqIHN1Ym1pdCB0byBIVyByaW5nLgogICoKLSAqIEBzY2hlZAlUaGUgcG9p bnRlciB0byB0aGUgc2NoZWR1bGVyCi0gKiBAZW50aXR5CVRoZSBwb2ludGVyIHRvIGEgdmFsaWQg ZHJtX3NjaGVkX2VudGl0eQotICogQHJxCQlUaGUgcnVuIHF1ZXVlIHRoaXMgZW50aXR5IGJlbG9u Z3MKLSAqIEBndWlsdHkgICAgICBhdG9taWNfdCBzZXQgdG8gMSB3aGVuIGEgam9iIG9uIHRoaXMg cXVldWUKLSAqICAgICAgICAgICAgICBpcyBmb3VuZCB0byBiZSBndWlsdHkgY2F1c2luZyBhIHRp bWVvdXQKKyAqIEBzY2hlZDogc2NoZWR1bGVyIGluc3RhbmNlCisgKiBAZW50aXR5OiBzY2hlZHVs ZXIgZW50aXR5IHRvIGluaXQKKyAqIEBycTogdGhlIHJ1biBxdWV1ZSB0aGlzIGVudGl0eSBiZWxv bmdzCisgKiBAZ3VpbHR5OiBhdG9taWNfdCBzZXQgdG8gMSB3aGVuIGEgam9iIG9uIHRoaXMgcXVl dWUKKyAqICAgICAgICAgIGlzIGZvdW5kIHRvIGJlIGd1aWx0eSBjYXVzaW5nIGEgdGltZW91dAog ICoKLSAqIHJldHVybiAwIGlmIHN1Y2NlZWQuIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVy ZQorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZh aWx1cmUuCiAqLwogaW50IGRybV9zY2hlZF9lbnRpdHlfaW5pdChzdHJ1Y3QgZHJtX2dwdV9zY2hl ZHVsZXIgKnNjaGVkLAogCQkJICBzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5LApAQCAt MTQ5LDEwICsxOTUsMTAgQEAgaW50IGRybV9zY2hlZF9lbnRpdHlfaW5pdChzdHJ1Y3QgZHJtX2dw dV9zY2hlZHVsZXIgKnNjaGVkLAogRVhQT1JUX1NZTUJPTChkcm1fc2NoZWRfZW50aXR5X2luaXQp OwogCiAvKioKLSAqIFF1ZXJ5IGlmIGVudGl0eSBpcyBpbml0aWFsaXplZAorICogZHJtX3NjaGVk X2VudGl0eV9pc19pbml0aWFsaXplZCAtIFF1ZXJ5IGlmIGVudGl0eSBpcyBpbml0aWFsaXplZAog ICoKLSAqIEBzY2hlZCAgICAgICBQb2ludGVyIHRvIHNjaGVkdWxlciBpbnN0YW5jZQotICogQGVu dGl0eQlUaGUgcG9pbnRlciB0byBhIHZhbGlkIHNjaGVkdWxlciBlbnRpdHkKKyAqIEBzY2hlZDog UG9pbnRlciB0byBzY2hlZHVsZXIgaW5zdGFuY2UKKyAqIEBlbnRpdHk6IFRoZSBwb2ludGVyIHRv IGEgdmFsaWQgc2NoZWR1bGVyIGVudGl0eQogICoKICAqIHJldHVybiB0cnVlIGlmIGVudGl0eSBp cyBpbml0aWFsaXplZCwgZmFsc2Ugb3RoZXJ3aXNlCiAqLwpAQCAtMTY0LDExICsyMTAsMTEgQEAg c3RhdGljIGJvb2wgZHJtX3NjaGVkX2VudGl0eV9pc19pbml0aWFsaXplZChzdHJ1Y3QgZHJtX2dw dV9zY2hlZHVsZXIgKnNjaGVkLAogfQogCiAvKioKLSAqIENoZWNrIGlmIGVudGl0eSBpcyBpZGxl CisgKiBkcm1fc2NoZWRfZW50aXR5X2lzX2lkbGUgLSBDaGVjayBpZiBlbnRpdHkgaXMgaWRsZQog ICoKLSAqIEBlbnRpdHkJVGhlIHBvaW50ZXIgdG8gYSB2YWxpZCBzY2hlZHVsZXIgZW50aXR5Cisg KiBAZW50aXR5OiBzY2hlZHVsZXIgZW50aXR5CiAgKgotICogUmV0dXJuIHRydWUgaWYgZW50aXR5 IGRvbid0IGhhcyBhbnkgdW5zY2hlZHVsZWQgam9icy4KKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg ZW50aXR5IGRvZXMgbm90IGhhdmUgYW55IHVuc2NoZWR1bGVkIGpvYnMuCiAgKi8KIHN0YXRpYyBi b29sIGRybV9zY2hlZF9lbnRpdHlfaXNfaWRsZShzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50 aXR5KQogewpAQCAtMTgwLDkgKzIyNiw5IEBAIHN0YXRpYyBib29sIGRybV9zY2hlZF9lbnRpdHlf aXNfaWRsZShzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5KQogfQogCiAvKioKLSAqIENo ZWNrIGlmIGVudGl0eSBpcyByZWFkeQorICogZHJtX3NjaGVkX2VudGl0eV9pc19yZWFkeSAtIENo ZWNrIGlmIGVudGl0eSBpcyByZWFkeQogICoKLSAqIEBlbnRpdHkJVGhlIHBvaW50ZXIgdG8gYSB2 YWxpZCBzY2hlZHVsZXIgZW50aXR5CisgKiBAZW50aXR5OiBzY2hlZHVsZXIgZW50aXR5CiAgKgog ICogUmV0dXJuIHRydWUgaWYgZW50aXR5IGNvdWxkIHByb3ZpZGUgYSBqb2IuCiAgKi8KQEAgLTIx MCwxMiArMjU2LDEyIEBAIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9lbnRpdHlfa2lsbF9qb2JzX2Ni KHN0cnVjdCBkbWFfZmVuY2UgKmYsCiAKIAogLyoqCi0gKiBEZXN0cm95IGEgY29udGV4dCBlbnRp dHkKKyAqIGRybV9zY2hlZF9lbnRpdHlfZG9fcmVsZWFzZSAtIERlc3Ryb3kgYSBjb250ZXh0IGVu dGl0eQogICoKLSAqIEBzY2hlZCAgICAgICBQb2ludGVyIHRvIHNjaGVkdWxlciBpbnN0YW5jZQot ICogQGVudGl0eQlUaGUgcG9pbnRlciB0byBhIHZhbGlkIHNjaGVkdWxlciBlbnRpdHkKKyAqIEBz Y2hlZDogc2NoZWR1bGVyIGluc3RhbmNlCisgKiBAZW50aXR5OiBzY2hlZHVsZXIgZW50aXR5CiAg KgotICogU3BsaXR0aW5nIGRybV9zY2hlZF9lbnRpdHlfZmluaSgpIGludG8gdHdvIGZ1bmN0aW9u cywgVGhlIGZpcnN0IG9uZSBpcyBkb2VzIHRoZSB3YWl0aW5nLAorICogU3BsaXR0aW5nIGRybV9z Y2hlZF9lbnRpdHlfZmluaSgpIGludG8gdHdvIGZ1bmN0aW9ucywgVGhlIGZpcnN0IG9uZSBkb2Vz IHRoZSB3YWl0aW5nLAogICogcmVtb3ZlcyB0aGUgZW50aXR5IGZyb20gdGhlIHJ1bnF1ZXVlIGFu ZCByZXR1cm5zIGFuIGVycm9yIHdoZW4gdGhlIHByb2Nlc3Mgd2FzIGtpbGxlZC4KICAqLwogdm9p ZCBkcm1fc2NoZWRfZW50aXR5X2RvX3JlbGVhc2Uoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpz Y2hlZCwKQEAgLTIzNywxMiArMjgzLDEzIEBAIHZvaWQgZHJtX3NjaGVkX2VudGl0eV9kb19yZWxl YXNlKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsCiBFWFBPUlRfU1lNQk9MKGRybV9z Y2hlZF9lbnRpdHlfZG9fcmVsZWFzZSk7CiAKIC8qKgotICogRGVzdHJveSBhIGNvbnRleHQgZW50 aXR5CisgKiBkcm1fc2NoZWRfZW50aXR5X2NsZWFudXAgLSBEZXN0cm95IGEgY29udGV4dCBlbnRp dHkKICAqCi0gKiBAc2NoZWQgICAgICAgUG9pbnRlciB0byBzY2hlZHVsZXIgaW5zdGFuY2UKLSAq IEBlbnRpdHkJVGhlIHBvaW50ZXIgdG8gYSB2YWxpZCBzY2hlZHVsZXIgZW50aXR5CisgKiBAc2No ZWQ6IHNjaGVkdWxlciBpbnN0YW5jZQorICogQGVudGl0eTogc2NoZWR1bGVyIGVudGl0eQogICoK LSAqIFRoZSBzZWNvbmQgb25lIHRoZW4gZ29lcyBvdmVyIHRoZSBlbnRpdHkgYW5kIHNpZ25hbHMg YWxsIGpvYnMgd2l0aCBhbiBlcnJvciBjb2RlLgorICogVGhpcyBzaG91bGQgYmUgY2FsbGVkIGFm dGVyIEBkcm1fc2NoZWRfZW50aXR5X2RvX3JlbGVhc2UuIEl0IGdvZXMgb3ZlciB0aGUKKyAqIGVu dGl0eSBhbmQgc2lnbmFscyBhbGwgam9icyB3aXRoIGFuIGVycm9yIGNvZGUgaWYgdGhlIHByb2Nl c3Mgd2FzIGtpbGxlZC4KICAqLwogdm9pZCBkcm1fc2NoZWRfZW50aXR5X2NsZWFudXAoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwKIAkJCSAgIHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5 ICplbnRpdHkpCkBAIC0yODEsNiArMzI4LDE0IEBAIHZvaWQgZHJtX3NjaGVkX2VudGl0eV9jbGVh bnVwKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsCiB9CiBFWFBPUlRfU1lNQk9MKGRy bV9zY2hlZF9lbnRpdHlfY2xlYW51cCk7CiAKKy8qKgorICogZHJtX3NjaGVkX2VudGl0eV9maW5p IC0gRGVzdHJveSBhIGNvbnRleHQgZW50aXR5CisgKgorICogQHNjaGVkOiBzY2hlZHVsZXIgaW5z dGFuY2UKKyAqIEBlbnRpdHk6IHNjaGVkdWxlciBlbnRpdHkKKyAqCisgKiBDYWxscyBkcm1fc2No ZWRfZW50aXR5X2RvX3JlbGVhc2UoKSBhbmQgZHJtX3NjaGVkX2VudGl0eV9jbGVhbnVwKCkKKyAq Lwogdm9pZCBkcm1fc2NoZWRfZW50aXR5X2Zpbmkoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpz Y2hlZCwKIAkJCQlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqZW50aXR5KQogewpAQCAtMzA2LDYg KzM2MSwxNSBAQCBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfZW50aXR5X2NsZWFyX2RlcChzdHJ1Y3Qg ZG1hX2ZlbmNlICpmLCBzdHJ1Y3QgZG1hX2ZlbmNlX2NiCiAJZG1hX2ZlbmNlX3B1dChmKTsKIH0K IAorLyoqCisgKiBkcm1fc2NoZWRfZW50aXR5X3NldF9ycSAtIFNldHMgdGhlIHJ1biBxdWV1ZSBm b3IgYW4gZW50aXR5CisgKgorICogQGVudGl0eTogc2NoZWR1bGVyIGVudGl0eQorICogQHJxOiBz Y2hlZHVsZXIgcnVuIHF1ZXVlCisgKgorICogU2V0cyB0aGUgcnVuIHF1ZXVlIGZvciBhbiBlbnRp dHkgYW5kIHJlbW92ZXMgdGhlIGVudGl0eSBmcm9tIHRoZSBwcmV2aW91cworICogcnVuIHF1ZXVl IGluIHdoaWNoIHdhcyBwcmVzZW50LgorICovCiB2b2lkIGRybV9zY2hlZF9lbnRpdHlfc2V0X3Jx KHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHksCiAJCQkgICAgIHN0cnVjdCBkcm1fc2No ZWRfcnEgKnJxKQogewpAQCAtMzI1LDYgKzM4OSwxNCBAQCB2b2lkIGRybV9zY2hlZF9lbnRpdHlf c2V0X3JxKHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHksCiB9CiBFWFBPUlRfU1lNQk9M KGRybV9zY2hlZF9lbnRpdHlfc2V0X3JxKTsKIAorLyoqCisgKiBkcm1fc2NoZWRfZGVwZW5kZW5j eV9vcHRpbWl6ZWQKKyAqCisgKiBAZmVuY2U6IHRoZSBkZXBlbmRlbmN5IGZlbmNlCisgKiBAZW50 aXR5OiB0aGUgZW50aXR5IHdoaWNoIGRlcGVuZHMgb24gdGhlIGFib3ZlIGZlbmNlCisgKgorICog UmV0dXJucyB0cnVlIGlmIHRoZSBkZXBlbmRlbmN5IGNhbiBiZSBvcHRpbWl6ZWQgYW5kIGZhbHNl IG90aGVyd2lzZQorICovCiBib29sIGRybV9zY2hlZF9kZXBlbmRlbmN5X29wdGltaXplZChzdHJ1 Y3QgZG1hX2ZlbmNlKiBmZW5jZSwKIAkJCQkgICAgc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgKmVu dGl0eSkKIHsKQEAgLTQxMyw5ICs0ODUsMTAgQEAgZHJtX3NjaGVkX2VudGl0eV9wb3Bfam9iKHN0 cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHkpCiB9CiAKIC8qKgotICogU3VibWl0IGEgam9i IHRvIHRoZSBqb2IgcXVldWUKKyAqIGRybV9zY2hlZF9lbnRpdHlfcHVzaF9qb2IgLSBTdWJtaXQg YSBqb2IgdG8gdGhlIGVudGl0eSdzIGpvYiBxdWV1ZQogICoKLSAqIEBzY2hlZF9qb2IJCVRoZSBw b2ludGVyIHRvIGpvYiByZXF1aXJlZCB0byBzdWJtaXQKKyAqIEBzY2hlZF9qb2I6IGpvYiB0byBz dWJtaXQKKyAqIEBlbnRpdHk6IHNjaGVkdWxlciBlbnRpdHkKICAqCiAgKiBOb3RlOiBUbyBndWFy YW50ZWUgdGhhdCB0aGUgb3JkZXIgb2YgaW5zZXJ0aW9uIHRvIHF1ZXVlIG1hdGNoZXMKICAqIHRo ZSBqb2IncyBmZW5jZSBzZXF1ZW5jZSBudW1iZXIgdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUKQEAg LTUwNiw2ICs1NzksMTMgQEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX2pvYl90aW1lZG91dChzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJam9iLT5zY2hlZC0+b3BzLT50aW1lZG91dF9qb2Ioam9i KTsKIH0KIAorLyoqCisgKiBkcm1fc2NoZWRfaHdfam9iX3Jlc2V0IC0gc3RvcCB0aGUgc2NoZWR1 bGVyIGlmIGl0IGNvbnRhaW5zIHRoZSBiYWQgam9iCisgKgorICogQHNjaGVkOiBzY2hlZHVsZXIg aW5zdGFuY2UKKyAqIEBiYWQ6IGJhZCBzY2hlZHVsZXIgam9iCisgKgorICovCiB2b2lkIGRybV9z Y2hlZF9od19qb2JfcmVzZXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgc3RydWN0 IGRybV9zY2hlZF9qb2IgKmJhZCkKIHsKIAlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2I7CkBA IC01NTAsNiArNjMwLDEyIEBAIHZvaWQgZHJtX3NjaGVkX2h3X2pvYl9yZXNldChzdHJ1Y3QgZHJt X2dwdV9zY2hlZHVsZXIgKnNjaGVkLCBzdHJ1Y3QgZHJtX3NjaGVkX2pvCiB9CiBFWFBPUlRfU1lN Qk9MKGRybV9zY2hlZF9od19qb2JfcmVzZXQpOwogCisvKioKKyAqIGRybV9zY2hlZF9qb2JfcmVj b3ZlcnkgLSByZWNvdmVyIGpvYnMgYWZ0ZXIgYSByZXNldAorICoKKyAqIEBzY2hlZDogc2NoZWR1 bGVyIGluc3RhbmNlCisgKgorICovCiB2b2lkIGRybV9zY2hlZF9qb2JfcmVjb3Zlcnkoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKIHsKIAlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19q b2IsICp0bXA7CkBAIC01OTksMTAgKzY4NSwxNyBAQCB2b2lkIGRybV9zY2hlZF9qb2JfcmVjb3Zl cnkoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKIEVYUE9SVF9TWU1CT0woZHJtX3Nj aGVkX2pvYl9yZWNvdmVyeSk7CiAKIC8qKgotICogSW5pdCBhIHNjaGVkX2pvYiB3aXRoIGJhc2lj IGZpZWxkCisgKiBkcm1fc2NoZWRfam9iX2luaXQgLSBpbml0IGEgc2NoZWR1bGVyIGpvYgogICoK LSAqIE5vdGU6IFJlZmVyIHRvIGRybV9zY2hlZF9lbnRpdHlfcHVzaF9qb2IgZG9jdW1lbnRhdGlv bgorICogQGpvYjogc2NoZWR1bGVyIGpvYiB0byBpbml0CisgKiBAc2NoZWQ6IHNjaGVkdWxlciBp bnN0YW5jZQorICogQGVudGl0eTogc2NoZWR1bGVyIGVudGl0eSB0byB1c2UKKyAqIEBvd25lcjog am9iIG93bmVyIGZvciBkZWJ1Z2dpbmcKKyAqCisgKiBSZWZlciB0byBkcm1fc2NoZWRfZW50aXR5 X3B1c2hfam9iKCkgZG9jdW1lbnRhdGlvbgogICogZm9yIGxvY2tpbmcgY29uc2lkZXJhdGlvbnMu CisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVy d2lzZS4KICAqLwogaW50IGRybV9zY2hlZF9qb2JfaW5pdChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAq am9iLAogCQkgICAgICAgc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwKQEAgLTYyNiw3 ICs3MTksMTEgQEAgaW50IGRybV9zY2hlZF9qb2JfaW5pdChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAq am9iLAogRVhQT1JUX1NZTUJPTChkcm1fc2NoZWRfam9iX2luaXQpOwogCiAvKioKLSAqIFJldHVy biB0dXJlIGlmIHdlIGNhbiBwdXNoIG1vcmUgam9icyB0byB0aGUgaHcuCisgKiBkcm1fc2NoZWRf cmVhZHkgLSBpcyB0aGUgc2NoZWR1bGVyIHJlYWR5CisgKgorICogQHNjaGVkOiBzY2hlZHVsZXIg aW5zdGFuY2UKKyAqCisgKiBSZXR1cm4gdHJ1ZSBpZiB3ZSBjYW4gcHVzaCBtb3JlIGpvYnMgdG8g dGhlIGh3LCBvdGhlcndpc2UgZmFsc2UuCiAgKi8KIHN0YXRpYyBib29sIGRybV9zY2hlZF9yZWFk eShzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQogewpAQCAtNjM1LDcgKzczMiwxMCBA QCBzdGF0aWMgYm9vbCBkcm1fc2NoZWRfcmVhZHkoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpz Y2hlZCkKIH0KIAogLyoqCi0gKiBXYWtlIHVwIHRoZSBzY2hlZHVsZXIgd2hlbiBpdCBpcyByZWFk eQorICogZHJtX3NjaGVkX3dha2V1cCAtIFdha2UgdXAgdGhlIHNjaGVkdWxlciB3aGVuIGl0IGlz IHJlYWR5CisgKgorICogQHNjaGVkOiBzY2hlZHVsZXIgaW5zdGFuY2UKKyAqCiAgKi8KIHN0YXRp YyB2b2lkIGRybV9zY2hlZF93YWtldXAoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkK IHsKQEAgLTY0NCw4ICs3NDQsMTIgQEAgc3RhdGljIHZvaWQgZHJtX3NjaGVkX3dha2V1cChzdHJ1 Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQogfQogCiAvKioKLSAqIFNlbGVjdCBuZXh0IGVu dGl0eSB0byBwcm9jZXNzCi0qLworICogZHJtX3NjaGVkX3NlbGVjdF9lbnRpdHkgLSBTZWxlY3Qg bmV4dCBlbnRpdHkgdG8gcHJvY2VzcworICoKKyAqIEBzY2hlZDogc2NoZWR1bGVyIGluc3RhbmNl CisgKgorICogUmV0dXJucyB0aGUgZW50aXR5IHRvIHByb2Nlc3Mgb3IgTlVMTCBpZiBub25lIGFy ZSBmb3VuZC4KKyAqLwogc3RhdGljIHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICoKIGRybV9zY2hl ZF9zZWxlY3RfZW50aXR5KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpCiB7CkBAIC02 NjUsNiArNzY5LDE0IEBAIGRybV9zY2hlZF9zZWxlY3RfZW50aXR5KHN0cnVjdCBkcm1fZ3B1X3Nj aGVkdWxlciAqc2NoZWQpCiAJcmV0dXJuIGVudGl0eTsKIH0KIAorLyoqCisgKiBkcm1fc2NoZWRf cHJvY2Vzc19qb2IgLSBwcm9jZXNzIGEgam9iCisgKgorICogQGY6IGZlbmNlCisgKiBAY2I6IGZl bmNlIGNhbGxiYWNrcworICoKKyAqIENhbGxlZCBhZnRlciBqb2IgaGFzIGZpbmlzaGVkIGV4ZWN1 dGlvbi4KKyAqLwogc3RhdGljIHZvaWQgZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKHN0cnVjdCBkbWFf ZmVuY2UgKmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKQogewogCXN0cnVjdCBkcm1fc2NoZWRf ZmVuY2UgKnNfZmVuY2UgPQpAQCAtNjgwLDYgKzc5MiwxMyBAQCBzdGF0aWMgdm9pZCBkcm1fc2No ZWRfcHJvY2Vzc19qb2Ioc3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0IGRtYV9mZW5jZV9jYiAq Y2IpCiAJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZzY2hlZC0+d2FrZV91cF93b3JrZXIpOwogfQog CisvKioKKyAqIGRybV9zY2hlZF9ibG9ja2VkIC0gY2hlY2sgaWYgdGhlIHNjaGVkdWxlciBpcyBi bG9ja2VkCisgKgorICogQHNjaGVkOiBzY2hlZHVsZXIgaW5zdGFuY2UKKyAqCisgKiBSZXR1cm5z IHRydWUgaWYgYmxvY2tlZCwgb3RoZXJ3aXNlIGZhbHNlLgorICovCiBzdGF0aWMgYm9vbCBkcm1f c2NoZWRfYmxvY2tlZChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQogewogCWlmIChr dGhyZWFkX3Nob3VsZF9wYXJrKCkpIHsKQEAgLTY5MCw2ICs4MDksMTMgQEAgc3RhdGljIGJvb2wg ZHJtX3NjaGVkX2Jsb2NrZWQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKIAlyZXR1 cm4gZmFsc2U7CiB9CiAKKy8qKgorICogZHJtX3NjaGVkX21haW4gLSBtYWluIHNjaGVkdWxlciB0 aHJlYWQKKyAqCisgKiBAcGFyYW06IHNjaGVkdWxlciBpbnN0YW5jZQorICoKKyAqIFJldHVybnMg MC4KKyAqLwogc3RhdGljIGludCBkcm1fc2NoZWRfbWFpbih2b2lkICpwYXJhbSkKIHsKIAlzdHJ1 Y3Qgc2NoZWRfcGFyYW0gc3BhcmFtID0gey5zY2hlZF9wcmlvcml0eSA9IDF9OwpAQCAtNzQ0LDE1 ICs4NzAsMTcgQEAgc3RhdGljIGludCBkcm1fc2NoZWRfbWFpbih2b2lkICpwYXJhbSkKIH0KIAog LyoqCi0gKiBJbml0IGEgZ3B1IHNjaGVkdWxlciBpbnN0YW5jZQorICogZHJtX3NjaGVkX2luaXQg LSBJbml0IGEgZ3B1IHNjaGVkdWxlciBpbnN0YW5jZQogICoKLSAqIEBzY2hlZAkJVGhlIHBvaW50 ZXIgdG8gdGhlIHNjaGVkdWxlcgotICogQG9wcwkJCVRoZSBiYWNrZW5kIG9wZXJhdGlvbnMgZm9y IHRoaXMgc2NoZWR1bGVyLgotICogQGh3X3N1Ym1pc3Npb25zCU51bWJlciBvZiBodyBzdWJtaXNz aW9ucyB0byBkby4KLSAqIEBuYW1lCQlOYW1lIHVzZWQgZm9yIGRlYnVnZ2luZworICogQHNjaGVk OiBzY2hlZHVsZXIgaW5zdGFuY2UKKyAqIEBvcHM6IGJhY2tlbmQgb3BlcmF0aW9ucyBmb3IgdGhp cyBzY2hlZHVsZXIKKyAqIEBod19zdWJtaXNzaW9uOiBudW1iZXIgb2YgaHcgc3VibWlzc2lvbnMg dGhhdCBjYW4gYmUgaW4gZmxpZ2h0CisgKiBAaGFuZ19saW1pdDogbnVtYmVyIG9mIHRpbWVzIHRv IGFsbG93IGEgam9iIHRvIGhhbmcgYmVmb3JlIGRyb3BwaW5nIGl0CisgKiBAdGltZW91dDogdGlt ZW91dCB2YWx1ZSBpbiBqaWZmaWVzIGZvciB0aGUgc2NoZWR1bGVyCisgKiBAbmFtZTogbmFtZSB1 c2VkIGZvciBkZWJ1Z2dpbmcKICAqCiAgKiBSZXR1cm4gMCBvbiBzdWNjZXNzLCBvdGhlcndpc2Ug ZXJyb3IgY29kZS4KLSovCisgKi8KIGludCBkcm1fc2NoZWRfaW5pdChzdHJ1Y3QgZHJtX2dwdV9z Y2hlZHVsZXIgKnNjaGVkLAogCQkgICBjb25zdCBzdHJ1Y3QgZHJtX3NjaGVkX2JhY2tlbmRfb3Bz ICpvcHMsCiAJCSAgIHVuc2lnbmVkIGh3X3N1Ym1pc3Npb24sCkBAIC03ODgsOSArOTE2LDExIEBA IGludCBkcm1fc2NoZWRfaW5pdChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLAogRVhQ T1JUX1NZTUJPTChkcm1fc2NoZWRfaW5pdCk7CiAKIC8qKgotICogRGVzdHJveSBhIGdwdSBzY2hl ZHVsZXIKKyAqIGRybV9zY2hlZF9maW5pIC0gRGVzdHJveSBhIGdwdSBzY2hlZHVsZXIKKyAqCisg KiBAc2NoZWQ6IHNjaGVkdWxlciBpbnN0YW5jZQogICoKLSAqIEBzY2hlZAlUaGUgcG9pbnRlciB0 byB0aGUgc2NoZWR1bGVyCisgKiBUZWFycyBkb3duIGFuZCBjbGVhbnMgdXAgdGhlIHNjaGVkdWxl ci4KICAqLwogdm9pZCBkcm1fc2NoZWRfZmluaShzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNj aGVkKQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oIGIvaW5jbHVk ZS9kcm0vZ3B1X3NjaGVkdWxlci5oCmluZGV4IGRlYzY1NTg5NGQwOC4uNDk2NDQyZjEyYmZmIDEw MDY0NAotLS0gYS9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgKKysrIGIvaW5jbHVkZS9kcm0v Z3B1X3NjaGVkdWxlci5oCkBAIC00MywxMyArNDMsMzMgQEAgZW51bSBkcm1fc2NoZWRfcHJpb3Jp dHkgewogfTsKIAogLyoqCi0gKiBkcm1fc2NoZWRfZW50aXR5IC0gQSB3cmFwcGVyIGFyb3VuZCBh IGpvYiBxdWV1ZSAodHlwaWNhbGx5IGF0dGFjaGVkCi0gKiB0byB0aGUgRFJNIGZpbGVfcHJpdiku CisgKiBzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAtIEEgd3JhcHBlciBhcm91bmQgYSBqb2IgcXVl dWUgKHR5cGljYWxseQorICogYXR0YWNoZWQgdG8gdGhlIERSTSBmaWxlX3ByaXYpLgorICoKKyAq IEBsaXN0OiB1c2VkIHRvIGFwcGVuZCB0aGlzIHN0cnVjdCB0byB0aGUgbGlzdCBvZiBlbnRpdGll cyBpbiB0aGUKKyAqICAgICAgICBydW5xdWV1ZS4KKyAqIEBycTogcnVucXVldWUgdG8gd2hpY2gg dGhpcyBlbnRpdHkgYmVsb25ncy4KKyAqIEBycV9sb2NrOiBsb2NrIHRvIG1vZGlmeSB0aGUgcnVu cXVldWUgdG8gd2hpY2ggdGhpcyBlbnRpdHkgYmVsb25ncy4KKyAqIEBzY2hlZDogdGhlIHNjaGVk dWxlciBpbnN0YW5jZSB0byB3aGljaCB0aGlzIGVudGl0eSBpcyBlbnF1ZXVlZC4KKyAqIEBqb2Jf cXVldWU6IHRoZSBsaXN0IG9mIGpvYnMgb2YgdGhpcyBlbnRpdHkuCisgKiBAZmVuY2Vfc2VxOiBh IGxpbmVhcmx5IGluY3JlYXNpbmcgc2Vxbm8gaW5jcmVtZW50ZWQgd2l0aCBlYWNoCisgKiAgICAg ICAgICAgICBuZXcgJmRybV9zY2hlZF9mZW5jZSB3aGljaCBpcyBwYXJ0IG9mIHRoZSBlbnRpdHku CisgKiBAZmVuY2VfY29udGV4dDogYSB1bmlxdWUgY29udGV4dCBmb3IgYWxsIHRoZSBmZW5jZXMg d2hpY2ggYmVsb25nCisgKiAgICAgICAgICAgICAgICAgdG8gdGhpcyBlbnRpdHkuCisgKiAgICAg ICAgICAgICAgICAgVGhlICZkcm1fc2NoZWRfZmVuY2Uuc2NoZWR1bGVkIHVzZXMgdGhlCisgKiAg ICAgICAgICAgICAgICAgZmVuY2VfY29udGV4dCBidXQgJmRybV9zY2hlZF9mZW5jZS5maW5pc2hl ZCB1c2VzCisgKiAgICAgICAgICAgICAgICAgZmVuY2VfY29udGV4dCArIDEuCisgKiBAZGVwZW5k ZW5jeTogdGhlIGRlcGVuZGVuY3kgZmVuY2Ugb2YgdGhlIGpvYiB3aGljaCBpcyBvbiB0aGUgdG9w CisgKiAgICAgICAgICAgICAgb2YgdGhlIGpvYiBxdWV1ZS4KKyAqIEBjYjogY2FsbGJhY2sgZm9y IHRoZSBkZXBlbmRlbmN5IGZlbmNlIGFib3ZlLgorICogQGd1aWx0eTogcG9pbnRzIHRvIGN0eCdz IGd1aWx0eS4KKyAqIEBmaW5pX3N0YXR1czogY29udGFpbnMgdGhlIGV4aXQgc3RhdHVzIGluIGNh c2UgdGhlIHByb2Nlc3Mgd2FzIHNpZ25hbGxlZC4KKyAqIEBsYXN0X3NjaGVkdWxlZDogcG9pbnRz IHRvIHRoZSBmaW5pc2hlZCBmZW5jZSBvZiB0aGUgbGFzdCBzY2hlZHVsZWQgam9iLgogICoKICAq IEVudGl0aWVzIHdpbGwgZW1pdCBqb2JzIGluIG9yZGVyIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcg aGFyZHdhcmUKICAqIHJpbmcsIGFuZCB0aGUgc2NoZWR1bGVyIHdpbGwgYWx0ZXJuYXRlIGJldHdl ZW4gZW50aXRpZXMgYmFzZWQgb24KICAqIHNjaGVkdWxpbmcgcG9saWN5LgotKi8KKyAqLwogc3Ry dWN0IGRybV9zY2hlZF9lbnRpdHkgewogCXN0cnVjdCBsaXN0X2hlYWQJCWxpc3Q7CiAJc3RydWN0 IGRybV9zY2hlZF9ycQkJKnJxOwpAQCAtNjMsNDcgKzgzLDk2IEBAIHN0cnVjdCBkcm1fc2NoZWRf ZW50aXR5IHsKIAogCXN0cnVjdCBkbWFfZmVuY2UJCSpkZXBlbmRlbmN5OwogCXN0cnVjdCBkbWFf ZmVuY2VfY2IJCWNiOwotCWF0b21pY190CQkJKmd1aWx0eTsgLyogcG9pbnRzIHRvIGN0eCdzIGd1 aWx0eSAqLwotCWludCAgICAgICAgICAgIGZpbmlfc3RhdHVzOwotCXN0cnVjdCBkbWFfZmVuY2Ug ICAgKmxhc3Rfc2NoZWR1bGVkOworCWF0b21pY190CQkJKmd1aWx0eTsKKwlpbnQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZpbmlfc3RhdHVzOworCXN0cnVjdCBkbWFfZmVuY2UgICAgICAg ICAgICAgICAgKmxhc3Rfc2NoZWR1bGVkOwogfTsKIAogLyoqCisgKiBzdHJ1Y3QgZHJtX3NjaGVk X3JxIC0gcXVldWUgb2YgZW50aXRpZXMgdG8gYmUgc2NoZWR1bGVkLgorICoKKyAqIEBsb2NrOiB0 byBtb2RpZnkgdGhlIGVudGl0aWVzIGxpc3QuCisgKiBAZW50aXRpZXM6IGxpc3Qgb2YgdGhlIGVu dGl0aWVzIHRvIGJlIHNjaGVkdWxlZC4KKyAqIEBjdXJyZW50X2VudGl0eTogdGhlIGVudGl0eSB3 aGljaCBpcyB0byBiZSBzY2hlZHVsZWQuCisgKgogICogUnVuIHF1ZXVlIGlzIGEgc2V0IG9mIGVu dGl0aWVzIHNjaGVkdWxpbmcgY29tbWFuZCBzdWJtaXNzaW9ucyBmb3IKICAqIG9uZSBzcGVjaWZp YyByaW5nLiBJdCBpbXBsZW1lbnRzIHRoZSBzY2hlZHVsaW5nIHBvbGljeSB0aGF0IHNlbGVjdHMK ICAqIHRoZSBuZXh0IGVudGl0eSB0byBlbWl0IGNvbW1hbmRzIGZyb20uCi0qLworICovCiBzdHJ1 Y3QgZHJtX3NjaGVkX3JxIHsKIAlzcGlubG9ja190CQkJbG9jazsKIAlzdHJ1Y3QgbGlzdF9oZWFk CQllbnRpdGllczsKIAlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eQkJKmN1cnJlbnRfZW50aXR5Owog fTsKIAorLyoqCisgKiBzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlIC0gZmVuY2VzIGNvcnJlc3BvbmRp bmcgdG8gdGhlIHNjaGVkdWxpbmcgb2YgYSBqb2IuCisgKi8KIHN0cnVjdCBkcm1fc2NoZWRfZmVu Y2UgeworICAgICAgICAvKioKKyAgICAgICAgICogQHNjaGVkdWxlZDogdGhpcyBmZW5jZSBpcyB3 aGF0IHdpbGwgYmUgc2lnbmFsZWQgYnkgdGhlIHNjaGVkdWxlcgorICAgICAgICAgKiB3aGVuIHRo ZSBqb2IgaXMgc2NoZWR1bGVkLgorICAgICAgICAgKi8KIAlzdHJ1Y3QgZG1hX2ZlbmNlCQlzY2hl ZHVsZWQ7CiAKLQkvKiBUaGlzIGZlbmNlIGlzIHdoYXQgd2lsbCBiZSBzaWduYWxlZCBieSB0aGUg c2NoZWR1bGVyIHdoZW4KLQkgKiB0aGUgam9iIGlzIGNvbXBsZXRlZC4KLQkgKgotCSAqIFdoZW4g c2V0dGluZyB1cCBhbiBvdXQgZmVuY2UgZm9yIHRoZSBqb2IsIHlvdSBzaG91bGQgdXNlCi0JICog dGhpcywgc2luY2UgaXQncyBhdmFpbGFibGUgaW1tZWRpYXRlbHkgdXBvbgotCSAqIGRybV9zY2hl ZF9qb2JfaW5pdCgpLCBhbmQgdGhlIGZlbmNlIHJldHVybmVkIGJ5IHRoZSBkcml2ZXIKLQkgKiBm cm9tIHJ1bl9qb2IoKSB3b24ndCBiZSBjcmVhdGVkIHVudGlsIHRoZSBkZXBlbmRlbmNpZXMgaGF2 ZQotCSAqIHJlc29sdmVkLgotCSAqLworICAgICAgICAvKioKKyAgICAgICAgICogQGZpbmlzaGVk OiB0aGlzIGZlbmNlIGlzIHdoYXQgd2lsbCBiZSBzaWduYWxlZCBieSB0aGUgc2NoZWR1bGVyCisg ICAgICAgICAqIHdoZW4gdGhlIGpvYiBpcyBjb21wbGV0ZWQuCisgICAgICAgICAqCisgICAgICAg ICAqIFdoZW4gc2V0dGluZyB1cCBhbiBvdXQgZmVuY2UgZm9yIHRoZSBqb2IsIHlvdSBzaG91bGQg dXNlCisgICAgICAgICAqIHRoaXMsIHNpbmNlIGl0J3MgYXZhaWxhYmxlIGltbWVkaWF0ZWx5IHVw b24KKyAgICAgICAgICogZHJtX3NjaGVkX2pvYl9pbml0KCksIGFuZCB0aGUgZmVuY2UgcmV0dXJu ZWQgYnkgdGhlIGRyaXZlcgorICAgICAgICAgKiBmcm9tIHJ1bl9qb2IoKSB3b24ndCBiZSBjcmVh dGVkIHVudGlsIHRoZSBkZXBlbmRlbmNpZXMgaGF2ZQorICAgICAgICAgKiByZXNvbHZlZC4KKyAg ICAgICAgICovCiAJc3RydWN0IGRtYV9mZW5jZQkJZmluaXNoZWQ7CiAKKyAgICAgICAgLyoqCisg ICAgICAgICAqIEBjYjogdGhlIGNhbGxiYWNrIGZvciB0aGUgcGFyZW50IGZlbmNlIGJlbG93Lgor ICAgICAgICAgKi8KIAlzdHJ1Y3QgZG1hX2ZlbmNlX2NiCQljYjsKKyAgICAgICAgLyoqCisgICAg ICAgICAqIEBwYXJlbnQ6IHRoZSBmZW5jZSByZXR1cm5lZCBieSAmZHJtX3NjaGVkX2JhY2tlbmRf b3BzLnJ1bl9qb2IKKyAgICAgICAgICogd2hlbiBzY2hlZHVsaW5nIHRoZSBqb2Igb24gaGFyZHdh cmUuIFdlIHNpZ25hbCB0aGUKKyAgICAgICAgICogJmRybV9zY2hlZF9mZW5jZS5maW5pc2hlZCBm ZW5jZSBvbmNlIHBhcmVudCBpcyBzaWduYWxsZWQuCisgICAgICAgICAqLwogCXN0cnVjdCBkbWFf ZmVuY2UJCSpwYXJlbnQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAc2NoZWQ6IHRoZSBzY2hl ZHVsZXIgaW5zdGFuY2UgdG8gd2hpY2ggdGhlIGpvYiBoYXZpbmcgdGhpcyBzdHJ1Y3QKKyAgICAg ICAgICogYmVsb25ncyB0by4KKyAgICAgICAgICovCiAJc3RydWN0IGRybV9ncHVfc2NoZWR1bGVy CSpzY2hlZDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBsb2NrOiB0aGUgbG9jayB1c2VkIGJ5 IHRoZSBzY2hlZHVsZWQgYW5kIHRoZSBmaW5pc2hlZCBmZW5jZXMuCisgICAgICAgICAqLwogCXNw aW5sb2NrX3QJCQlsb2NrOworICAgICAgICAvKioKKyAgICAgICAgICogQG93bmVyOiBqb2Igb3du ZXIgZm9yIGRlYnVnZ2luZworICAgICAgICAgKi8KIAl2b2lkCQkJCSpvd25lcjsKIH07CiAKIHN0 cnVjdCBkcm1fc2NoZWRfZmVuY2UgKnRvX2RybV9zY2hlZF9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNl ICpmKTsKIAogLyoqCi0gKiBkcm1fc2NoZWRfam9iIC0gQSBqb2IgdG8gYmUgcnVuIGJ5IGFuIGVu dGl0eS4KKyAqIHN0cnVjdCBkcm1fc2NoZWRfam9iIC0gQSBqb2IgdG8gYmUgcnVuIGJ5IGFuIGVu dGl0eS4KKyAqCisgKiBAcXVldWVfbm9kZTogdXNlZCB0byBhcHBlbmQgdGhpcyBzdHJ1Y3QgdG8g dGhlIHF1ZXVlIG9mIGpvYnMgaW4gYW4gZW50aXR5LgorICogQHNjaGVkOiB0aGUgc2NoZWR1bGVy IGluc3RhbmNlIG9uIHdoaWNoIHRoaXMgam9iIGlzIHNjaGVkdWxlZC4KKyAqIEBzX2ZlbmNlOiBj b250YWlucyB0aGUgZmVuY2VzIGZvciB0aGUgc2NoZWR1bGluZyBvZiBqb2IuCisgKiBAZmluaXNo X2NiOiB0aGUgY2FsbGJhY2sgZm9yIHRoZSBmaW5pc2hlZCBmZW5jZS4KKyAqIEBmaW5pc2hfd29y azogc2NoZWR1bGVzIHRoZSBmdW5jdGlvbiBAZHJtX3NjaGVkX2pvYl9maW5pc2ggb25jZSB0aGUg am9iIGhhcworICogICAgICAgICAgICAgICBmaW5pc2hlZCB0byByZW1vdmUgdGhlIGpvYiBmcm9t IHRoZQorICogICAgICAgICAgICAgICBAZHJtX2dwdV9zY2hlZHVsZXIucmluZ19taXJyb3JfbGlz dC4KKyAqIEBub2RlOiB1c2VkIHRvIGFwcGVuZCB0aGlzIHN0cnVjdCB0byB0aGUgQGRybV9ncHVf c2NoZWR1bGVyLnJpbmdfbWlycm9yX2xpc3QuCisgKiBAd29ya190ZHI6IHNjaGVkdWxlcyBhIGRl bGF5ZWQgY2FsbCB0byBAZHJtX3NjaGVkX2pvYl90aW1lZG91dCBhZnRlciB0aGUgdGltZW91dAor ICogICAgICAgICAgICBpbnRlcnZhbCBpcyBvdmVyLgorICogQGlkOiBhIHVuaXF1ZSBpZCBhc3Np Z25lZCB0byBlYWNoIGpvYiBzY2hlZHVsZWQgb24gdGhlIHNjaGVkdWxlci4KKyAqIEBrYXJtYTog aW5jcmVtZW50IG9uIGV2ZXJ5IGhhbmcgY2F1c2VkIGJ5IHRoaXMgam9iLiBJZiB0aGlzIGV4Y2Vl ZHMgdGhlIGhhbmcKKyAqICAgICAgICAgbGltaXQgb2YgdGhlIHNjaGVkdWxlciB0aGVuIHRoZSBq b2IgaXMgbWFya2VkIGd1aWx0eSBhbmQgd2lsbCBub3QKKyAqICAgICAgICAgYmUgc2NoZWR1bGVk IGZ1cnRoZXIuCisgKiBAc19wcmlvcml0eTogdGhlIHByaW9yaXR5IG9mIHRoZSBqb2IuCisgKiBA ZW50aXR5OiB0aGUgZW50aXR5IHRvIHdoaWNoIHRoaXMgam9iIGJlbG9uZ3MuCiAgKgogICogQSBq b2IgaXMgY3JlYXRlZCBieSB0aGUgZHJpdmVyIHVzaW5nIGRybV9zY2hlZF9qb2JfaW5pdCgpLCBh bmQKICAqIHNob3VsZCBjYWxsIGRybV9zY2hlZF9lbnRpdHlfcHVzaF9qb2IoKSBvbmNlIGl0IHdh bnRzIHRoZSBzY2hlZHVsZXIKQEAgLTEzMCwzOCArMTk5LDY0IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBkcm1fc2NoZWRfaW52YWxpZGF0ZV9qb2Ioc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iLAog fQogCiAvKioKKyAqIHN0cnVjdCBkcm1fc2NoZWRfYmFja2VuZF9vcHMKKyAqCiAgKiBEZWZpbmUg dGhlIGJhY2tlbmQgb3BlcmF0aW9ucyBjYWxsZWQgYnkgdGhlIHNjaGVkdWxlciwKLSAqIHRoZXNl IGZ1bmN0aW9ucyBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gZHJpdmVyIHNpZGUKLSovCisgKiB0 aGVzZSBmdW5jdGlvbnMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIGRyaXZlciBzaWRlLgorICov CiBzdHJ1Y3QgZHJtX3NjaGVkX2JhY2tlbmRfb3BzIHsKLQkvKiBDYWxsZWQgd2hlbiB0aGUgc2No ZWR1bGVyIGlzIGNvbnNpZGVyaW5nIHNjaGVkdWxpbmcgdGhpcwotCSAqIGpvYiBuZXh0LCB0byBn ZXQgYW5vdGhlciBzdHJ1Y3QgZG1hX2ZlbmNlIGZvciB0aGlzIGpvYiB0bworCS8qKgorICAgICAg ICAgKiBAZGVwZW5kZW5jeTogQ2FsbGVkIHdoZW4gdGhlIHNjaGVkdWxlciBpcyBjb25zaWRlcmlu ZyBzY2hlZHVsaW5nCisgICAgICAgICAqIHRoaXMgam9iIG5leHQsIHRvIGdldCBhbm90aGVyIHN0 cnVjdCBkbWFfZmVuY2UgZm9yIHRoaXMgam9iIHRvCiAJICogYmxvY2sgb24uICBPbmNlIGl0IHJl dHVybnMgTlVMTCwgcnVuX2pvYigpIG1heSBiZSBjYWxsZWQuCiAJICovCiAJc3RydWN0IGRtYV9m ZW5jZSAqKCpkZXBlbmRlbmN5KShzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc2NoZWRfam9iLAogCQkJ CQlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAqc19lbnRpdHkpOwogCi0JLyogQ2FsbGVkIHRvIGV4 ZWN1dGUgdGhlIGpvYiBvbmNlIGFsbCBvZiB0aGUgZGVwZW5kZW5jaWVzIGhhdmUKLQkgKiBiZWVu IHJlc29sdmVkLiAgVGhpcyBtYXkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLCBpZgorCS8qKgor ICAgICAgICAgKiBAcnVuX2pvYjogQ2FsbGVkIHRvIGV4ZWN1dGUgdGhlIGpvYiBvbmNlIGFsbCBv ZiB0aGUgZGVwZW5kZW5jaWVzCisgICAgICAgICAqIGhhdmUgYmVlbiByZXNvbHZlZC4gIFRoaXMg bWF5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcywgaWYKIAkgKiB0aW1lZG91dF9qb2IoKSBoYXMg aGFwcGVuZWQgYW5kIGRybV9zY2hlZF9qb2JfcmVjb3ZlcnkoKQogCSAqIGRlY2lkZXMgdG8gdHJ5 IGl0IGFnYWluLgogCSAqLwogCXN0cnVjdCBkbWFfZmVuY2UgKigqcnVuX2pvYikoc3RydWN0IGRy bV9zY2hlZF9qb2IgKnNjaGVkX2pvYik7CiAKLQkvKiBDYWxsZWQgd2hlbiBhIGpvYiBoYXMgdGFr ZW4gdG9vIGxvbmcgdG8gZXhlY3V0ZSwgdG8gdHJpZ2dlcgotCSAqIEdQVSByZWNvdmVyeS4KKwkv KioKKyAgICAgICAgICogQHRpbWVkb3V0X2pvYjogQ2FsbGVkIHdoZW4gYSBqb2IgaGFzIHRha2Vu IHRvbyBsb25nIHRvIGV4ZWN1dGUsCisgICAgICAgICAqIHRvIHRyaWdnZXIgR1BVIHJlY292ZXJ5 LgogCSAqLwogCXZvaWQgKCp0aW1lZG91dF9qb2IpKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hl ZF9qb2IpOwogCi0JLyogQ2FsbGVkIG9uY2UgdGhlIGpvYidzIGZpbmlzaGVkIGZlbmNlIGhhcyBi ZWVuIHNpZ25hbGVkIGFuZAotCSAqIGl0J3MgdGltZSB0byBjbGVhbiBpdCB1cC4KKwkvKioKKyAg ICAgICAgICogQGZyZWVfam9iOiBDYWxsZWQgb25jZSB0aGUgam9iJ3MgZmluaXNoZWQgZmVuY2Ug aGFzIGJlZW4gc2lnbmFsZWQKKyAgICAgICAgICogYW5kIGl0J3MgdGltZSB0byBjbGVhbiBpdCB1 cC4KIAkgKi8KIAl2b2lkICgqZnJlZV9qb2IpKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9q b2IpOwogfTsKIAogLyoqCi0gKiBPbmUgc2NoZWR1bGVyIGlzIGltcGxlbWVudGVkIGZvciBlYWNo IGhhcmR3YXJlIHJpbmcKLSovCisgKiBzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIKKyAqCisgKiBA b3BzOiBiYWNrZW5kIG9wZXJhdGlvbnMgcHJvdmlkZWQgYnkgdGhlIGRyaXZlci4KKyAqIEBod19z dWJtaXNzaW9uX2xpbWl0OiB0aGUgbWF4IHNpemUgb2YgdGhlIGhhcmR3YXJlIHF1ZXVlLgorICog QHRpbWVvdXQ6IHRoZSB0aW1lIGFmdGVyIHdoaWNoIGEgam9iIGlzIHJlbW92ZWQgZnJvbSB0aGUg c2NoZWR1bGVyLgorICogQG5hbWU6IG5hbWUgb2YgdGhlIHJpbmcgZm9yIHdoaWNoIHRoaXMgc2No ZWR1bGVyIGlzIGJlaW5nIHVzZWQuCisgKiBAc2NoZWRfcnE6IHByaW9yaXR5IHdpc2UgYXJyYXkg b2YgcnVuIHF1ZXVlcy4KKyAqIEB3YWtlX3VwX3dvcmtlcjogdGhlIHdhaXQgcXVldWUgb24gd2hp Y2ggdGhlIHNjaGVkdWxlciBzbGVlcHMgdW50aWwgYSBqb2IKKyAqICAgICAgICAgICAgICAgICAg aXMgcmVhZHkgdG8gYmUgc2NoZWR1bGVkLgorICogQGpvYl9zY2hlZHVsZWQ6IG9uY2UgQGRybV9z Y2hlZF9lbnRpdHlfZG9fcmVsZWFzZSBpcyBjYWxsZWQgdGhlIHNjaGVkdWxlcgorICogICAgICAg ICAgICAgICAgIHdhaXRzIG9uIHRoaXMgd2FpdCBxdWV1ZSB1bnRpbCBhbGwgdGhlIHNjaGVkdWxl ZCBqb2JzIGFyZQorICogICAgICAgICAgICAgICAgIGZpbmlzaGVkLgorICogQGh3X3JxX2NvdW50 OiB0aGUgbnVtYmVyIG9mIGpvYnMgY3VycmVudGx5IGluIHRoZSBoYXJkd2FyZSBxdWV1ZS4KKyAq IEBqb2JfaWRfY291bnQ6IHVzZWQgdG8gYXNzaWduIHVuaXF1ZSBpZCB0byB0aGUgZWFjaCBqb2Iu CisgKiBAdGhyZWFkOiB0aGUga3RocmVhZCBvbiB3aGljaCB0aGUgc2NoZWR1bGVyIHdoaWNoIHJ1 bi4KKyAqIEByaW5nX21pcnJvcl9saXN0OiB0aGUgbGlzdCBvZiBqb2JzIHdoaWNoIGFyZSBjdXJy ZW50bHkgaW4gdGhlIGpvYiBxdWV1ZS4KKyAqIEBqb2JfbGlzdF9sb2NrOiBsb2NrIHRvIHByb3Rl Y3QgdGhlIHJpbmdfbWlycm9yX2xpc3QuCisgKiBAaGFuZ19saW1pdDogb25jZSB0aGUgaGFuZ3Mg YnkgYSBqb2IgY3Jvc3NlcyB0aGlzIGxpbWl0IHRoZW4gaXQgaXMgbWFya2VkCisgKiAgICAgICAg ICAgICAgZ3VpbHR5IGFuZCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgZm9yIHNjaGVkdWxpbmcgZnVy dGhlci4KKyAqCisgKiBPbmUgc2NoZWR1bGVyIGlzIGltcGxlbWVudGVkIGZvciBlYWNoIGhhcmR3 YXJlIHJpbmcuCisgKi8KIHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciB7CiAJY29uc3Qgc3RydWN0 IGRybV9zY2hlZF9iYWNrZW5kX29wcwkqb3BzOwogCXVpbnQzMl90CQkJaHdfc3VibWlzc2lvbl9s aW1pdDsKLS0gCjIuMTQuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==