From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH] drm/vboxvideo: Move vboxvideo driver out of staging Date: Thu, 18 Oct 2018 20:12:12 +0200 Message-ID: <20181018181212.GA32608@ravnborg.org> References: <20181018153549.7383-1-hdegoede@redhat.com> <20181018153549.7383-2-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from asavdk4.altibox.net (asavdk4.altibox.net [109.247.116.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id D9DFD6E090 for ; Thu, 18 Oct 2018 18:12:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181018153549.7383-2-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans de Goede Cc: devel@driverdev.osuosl.org, Michael Thayer , David Airlie , Greg Kroah-Hartman , Sean Paul , dri-devel@lists.freedesktop.org, Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SGkgSGFucy4KCkp1c3QgYSBidW5jaCBvZiByYW5kb20gb2JzZXJ2YXRpb25zIHRoYXQgSSBob3Bl IHlvdSBmaW5kIHVzZSBvZi4KCglTYW0KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9L Y29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKPiBpbmRleCBjYjg4NTI4ZTdiMTAuLjZi NGQ2Yzk1N2RhOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCj4gQEAgLTMxNSw2ICszMTUsOCBAQCBzb3VyY2UgImRy aXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZyIKPiAgCj4gIHNvdXJjZSAiZHJpdmVycy9ncHUv ZHJtL3hlbi9LY29uZmlnIgo+ICAKPiArc291cmNlICJkcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVv L0tjb25maWciCj4gKwo+ICAjIEtlZXAgbGVnYWN5IGRyaXZlcnMgbGFzdAo+ICAKPiAgbWVudWNv bmZpZyBEUk1fTEVHQUNZCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBi L2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+IGluZGV4IGE2NzcxY2VmODVlMi4uMTMzNjA2ODAy MzAwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9NYWtlZmlsZQo+IEBAIC0xMDcsMyArMTA3LDQgQEAgb2JqLSQoQ09ORklHX0RS TV9USU5ZRFJNKSArPSB0aW55ZHJtLwo+ICBvYmotJChDT05GSUdfRFJNX1BMMTExKSArPSBwbDEx MS8KPiAgb2JqLSQoQ09ORklHX0RSTV9UVkUyMDApICs9IHR2ZTIwMC8KPiAgb2JqLSQoQ09ORklH X0RSTV9YRU4pICs9IHhlbi8KPiArb2JqLSQoQ09ORklHX0RSTV9WQk9YVklERU8pICs9IHZib3h2 aWRlby8KCklzIGl0IHRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gYWRkIHRoaXMgaW4gdGhlIGVu ZD8KWW91IGFyZSBhc2tpbmcgZm9yIG1lcmdlIHByb2JsZW1zIGlmIHlvdSBkbyBzbywgYnV0IHRo ZW4KdGhlIGRybSBkcml2ZXJzIGRvZXMgbm90IHNlZW0gdG8gZm9sbG93IGFueSBnb29kIG9yZGVy CnNvIHRoaXMgbWF5IGJlIGZpbmUuCgo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8v TWFrZWZpbGUKPiBAQCAtMCwwICsxLDggQEAKPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMAo+ICtjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQpUaGlzIHNob3VsZCBub3QgYmUg cmVxdWlyZWQuCklmIHJlcXVpcmVkIHRoZW4gZml4IHRoZSBvZmZlbmRpbmcgI2luY2x1ZGUKCj4g Kwo+ICt2Ym94dmlkZW8teSA6PSAgaGdzbWlfYmFzZS5vIG1vZGVzZXR0aW5nLm8gdmJ2YV9iYXNl Lm8gXAo+ICsJCXZib3hfZHJ2Lm8gdmJveF9mYi5vIHZib3hfaGdzbWkubyB2Ym94X2lycS5vIHZi b3hfbWFpbi5vIFwKPiArCQl2Ym94X21vZGUubyB2Ym94X3ByaW1lLm8gdmJveF90dG0ubwo+ICsK PiArb2JqLSQoQ09ORklHX0RSTV9WQk9YVklERU8pICs9IHZib3h2aWRlby5vCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vaGdzbWlfYmFzZS5jIGIvZHJpdmVycy9ncHUv ZHJtL3Zib3h2aWRlby9oZ3NtaV9iYXNlLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IDAwMDAwMDAwMDAwMC4uMzYxZDMxOTMyNThlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS92Ym94dmlkZW8vaGdzbWlfYmFzZS5jCj4gQEAgLTAsMCArMSwyMDcgQEAKPiAr Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ICsvKiBDb3B5cmlnaHQgKEMpIDIwMDYt MjAxNyBPcmFjbGUgQ29ycG9yYXRpb24gKi8KMjAxOD8KR2VuZXJhbCBjb21tZW50IGZvciBhbGwg ZmlsZXMuCgo+ICsJdW5pb24gewo+ICsJCS8qIE9wYXF1ZSBwbGFjZWhvbGRlciB0byBtYWtlIHRo ZSB1bmlvbiA4IGJ5dGVzLiAqLwo+ICsJCXU4IGhlYWRlcl9kYXRhWzhdOwpGdXJ0aGVyIGRvd24g eW91IGhhdmUgMiB4IHUzMiwgc28gdGhlIHVuaW9uIGlzIGd1YXJhbnRlZWQgdG8gYmUgNjQgYml0 cy4KU28gaGVhZGVyX2RhdGEgaXMgcmVkdW5kYW50Lgo+ICsKPiArCQkvKiBIR1NNSV9CVUZGRVJf SEVBREVSX0ZfU0VRX1NJTkdMRSAqLwo+ICsJCXN0cnVjdCB7Cj4gKwkJCXUzMiByZXNlcnZlZDE7 CS8qIEEgcmVzZXJ2ZWQgZmllbGQsIGluaXRpYWxpemUgdG8gMC4gKi8KPiArCQkJdTMyIHJlc2Vy dmVkMjsJLyogQSByZXNlcnZlZCBmaWVsZCwgaW5pdGlhbGl6ZSB0byAwLiAqLwo+ICsJCX0gYnVm ZmVyOwoKCgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVv L3Zib3hfZHJ2LmMKPiBAQCAtMCwwICsxLDI4MCBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogTUlUCj4gKy8qCj4gKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IE9yYWNsZSBDb3Jw b3JhdGlvbgo+ICsgKiBUaGlzIGZpbGUgaXMgYmFzZWQgb24gYXN0X2Rydi5jCj4gKyAqIENvcHly aWdodCAyMDEyIFJlZCBIYXQgSW5jLgo+ICsgKiBBdXRob3JzOiBEYXZlIEFpcmxpZSA8YWlybGll ZEByZWRoYXQuY29tPgo+ICsgKiAgICAgICAgICBNaWNoYWVsIFRoYXllciA8bWljaGFlbC50aGF5 ZXJAb3JhY2xlLmNvbSwKPiArICogICAgICAgICAgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVk aGF0LmNvbT4KPiArICovCj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUg PGxpbnV4L2NvbnNvbGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3Z0X2tlcm4uaD4KPiArCj4gKyNp bmNsdWRlIDxkcm0vZHJtUC5oPgpXZSBhcmUgdHJ5aW5nIHRvIGdldCByaWQgb2YgZHJtUCAtIHJl cGxhY2Ugd2l0aCBtb3JlIHNwZWNpZmljIGluY2x1ZGVzLgpHb2VzIGZvciBhbGwgdXNlcyBvZiBk cm1QLmgKCgo+ICsKPiArc3RhdGljIGludCB2Ym94X21vZGVzZXQgPSAtMTsKPiArCj4gK01PRFVM RV9QQVJNX0RFU0MobW9kZXNldCwgIkRpc2FibGUvRW5hYmxlIG1vZGVzZXR0aW5nIik7Cj4gK21v ZHVsZV9wYXJhbV9uYW1lZChtb2Rlc2V0LCB2Ym94X21vZGVzZXQsIGludCwgMDQwMCk7Cj4gKwo+ ICtzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyOwo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBwY2lfZGV2aWNlX2lkIHBjaWlkbGlzdFtdID0gewo+ICsJeyAweDgwZWUsIDB4YmVlZiwg UENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMCB9LAo+ICsJeyAwLCAwLCAwfSwKPiArfTsK VXNlIFBDSV9ERVZJQ0UoKT8KCgo+ICtzdGF0aWMgaW50IHZib3hfcGNpX3Byb2JlKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQo+ICt7Cj4gKwlz dHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94Owo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJaWYgKCF2 Ym94X2NoZWNrX3N1cHBvcnRlZChWQkVfRElTUElfSURfSEdTTUkpKQo+ICsJCXJldHVybiAtRU5P REVWOwo+ICsKPiArCXZib3ggPSBremFsbG9jKHNpemVvZigqdmJveCksIEdGUF9LRVJORUwpOwo+ ICsJaWYgKCF2Ym94KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXJldCA9IGRybV9kZXZf aW5pdCgmdmJveC0+ZGRldiwgJmRyaXZlciwgJnBkZXYtPmRldik7Cj4gKwlpZiAocmV0KSB7Cj4g KwkJa2ZyZWUodmJveCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwl2Ym94LT5kZGV2 LnBkZXYgPSBwZGV2Owo+ICsJdmJveC0+ZGRldi5kZXZfcHJpdmF0ZSA9IHZib3g7Cj4gKwlwY2lf c2V0X2RydmRhdGEocGRldiwgdmJveCk7Cj4gKwltdXRleF9pbml0KCZ2Ym94LT5od19tdXRleCk7 Cj4gKwo+ICsJcmV0ID0gcGNpX2VuYWJsZV9kZXZpY2UocGRldik7Cj4gKwlpZiAocmV0KQo+ICsJ CWdvdG8gZXJyX2Rldl9wdXQ7Cj4gKwo+ICsJcmV0ID0gdmJveF9od19pbml0KHZib3gpOwo+ICsJ aWYgKHJldCkKPiArCQlnb3RvIGVycl9wY2lfZGlzYWJsZTsKPiArCj4gKwlyZXQgPSB2Ym94X21t X2luaXQodmJveCk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyX2h3X2Zpbmk7Cj4gKwo+ICsJ cmV0ID0gdmJveF9tb2RlX2luaXQodmJveCk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyX21t X2Zpbmk7Cj4gKwo+ICsJcmV0ID0gdmJveF9pcnFfaW5pdCh2Ym94KTsKPiArCWlmIChyZXQpCj4g KwkJZ290byBlcnJfbW9kZV9maW5pOwo+ICsKPiArCXJldCA9IGRybV9mYl9oZWxwZXJfZmJkZXZf c2V0dXAoJnZib3gtPmRkZXYsICZ2Ym94LT5mYl9oZWxwZXIsCj4gKwkJCQkJJnZib3hfZmJfaGVs cGVyX2Z1bmNzLCAzMiwKPiArCQkJCQl2Ym94LT5udW1fY3J0Y3MpOwo+ICsJaWYgKHJldCkKPiAr CQlnb3RvIGVycl9pcnFfZmluaTsKPiArCj4gKwlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKCZ2Ym94 LT5kZGV2LCAwKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBlcnJfZmJkZXZfZmluaTsKPiArCj4g KwlyZXR1cm4gMDsKPiArCj4gK2Vycl9mYmRldl9maW5pOgo+ICsJdmJveF9mYmRldl9maW5pKHZi b3gpOwo+ICtlcnJfaXJxX2Zpbmk6Cj4gKwl2Ym94X2lycV9maW5pKHZib3gpOwo+ICtlcnJfbW9k ZV9maW5pOgo+ICsJdmJveF9tb2RlX2ZpbmkodmJveCk7Cj4gK2Vycl9tbV9maW5pOgo+ICsJdmJv eF9tbV9maW5pKHZib3gpOwo+ICtlcnJfaHdfZmluaToKPiArCXZib3hfaHdfZmluaSh2Ym94KTsK PiArZXJyX3BjaV9kaXNhYmxlOgo+ICsJcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOwo+ICtlcnJf ZGV2X3B1dDoKPiArCWRybV9kZXZfcHV0KCZ2Ym94LT5kZGV2KTsKCmtmcmVlKHZib3gpIG1pc3Np bmc/Cgo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArCj4gK3N0YXRpYyBpbnQgdmJveF9wbV9z dXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IHZib3hfcHJpdmF0ZSAq dmJveCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsJaW50IGVycm9yOwo+ICsKPiArCWVycm9y ID0gZHJtX21vZGVfY29uZmlnX2hlbHBlcl9zdXNwZW5kKCZ2Ym94LT5kZGV2KTsKPiArCWlmIChl cnJvcikKPiArCQlyZXR1cm4gZXJyb3I7Cj4gKwo+ICsJcGNpX3NhdmVfc3RhdGUodmJveC0+ZGRl di5wZGV2KTsKPiArCXBjaV9kaXNhYmxlX2RldmljZSh2Ym94LT5kZGV2LnBkZXYpOwo+ICsJcGNp X3NldF9wb3dlcl9zdGF0ZSh2Ym94LT5kZGV2LnBkZXYsIFBDSV9EM2hvdCk7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdmJveF9wbV9yZXN1bWUoc3RydWN0IGRldmlj ZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94ID0gZGV2X2dldF9kcnZk YXRhKGRldik7Cj4gKwo+ICsJaWYgKHBjaV9lbmFibGVfZGV2aWNlKHZib3gtPmRkZXYucGRldikp Cj4gKwkJcmV0dXJuIC1FSU87Cj4gKwo+ICsJcmV0dXJuIGRybV9tb2RlX2NvbmZpZ19oZWxwZXJf cmVzdW1lKCZ2Ym94LT5kZGV2KTsKPiArfQo+ICsKPiArc3RhdGljIGludCB2Ym94X3BtX2ZyZWV6 ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiArCj4gKwlyZXR1cm4gZHJtX21vZGVfY29uZmlnX2hl bHBlcl9zdXNwZW5kKCZ2Ym94LT5kZGV2KTsKPiArfQo+ICsKPiArc3RhdGljIGludCB2Ym94X3Bt X3RoYXcoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgdmJveF9wcml2YXRlICp2 Ym94ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gKwo+ICsJcmV0dXJuIGRybV9tb2RlX2NvbmZp Z19oZWxwZXJfcmVzdW1lKCZ2Ym94LT5kZGV2KTsKPiArfQo+ICsKPiArc3RhdGljIGludCB2Ym94 X3BtX3Bvd2Vyb2ZmKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IHZib3hfcHJp dmF0ZSAqdmJveCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiArCXJldHVybiBkcm1fbW9k ZV9jb25maWdfaGVscGVyX3N1c3BlbmQoJnZib3gtPmRkZXYpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IGRldl9wbV9vcHMgdmJveF9wbV9vcHMgPSB7Cj4gKwkuc3VzcGVuZCA9IHZi b3hfcG1fc3VzcGVuZCwKPiArCS5yZXN1bWUgPSB2Ym94X3BtX3Jlc3VtZSwKPiArCS5mcmVlemUg PSB2Ym94X3BtX2ZyZWV6ZSwKPiArCS50aGF3ID0gdmJveF9wbV90aGF3LAo+ICsJLnBvd2Vyb2Zm ID0gdmJveF9wbV9wb3dlcm9mZiwKPiArCS5yZXN0b3JlID0gdmJveF9wbV9yZXN1bWUsCj4gK307 ClNob3VsZCBhbGwgdGhpcyBiZSBpbnNpZGUgI2lmZGVmIENPTkZJR19QTV9TTEVFUD8KCj4gKwo+ ICtzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgdmJveF9wY2lfZHJpdmVyID0gewo+ICsJLm5hbWUg PSBEUklWRVJfTkFNRSwKPiArCS5pZF90YWJsZSA9IHBjaWlkbGlzdCwKPiArCS5wcm9iZSA9IHZi b3hfcGNpX3Byb2JlLAo+ICsJLnJlbW92ZSA9IHZib3hfcGNpX3JlbW92ZSwKPiArCS5kcml2ZXIu cG0gPSAmdmJveF9wbV9vcHMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVf b3BlcmF0aW9ucyB2Ym94X2ZvcHMgPSB7Cj4gKwkub3duZXIgPSBUSElTX01PRFVMRSwKPiArCS5v cGVuID0gZHJtX29wZW4sCj4gKwkucmVsZWFzZSA9IGRybV9yZWxlYXNlLAo+ICsJLnVubG9ja2Vk X2lvY3RsID0gZHJtX2lvY3RsLAo+ICsJLm1tYXAgPSB2Ym94X21tYXAsCj4gKwkucG9sbCA9IGRy bV9wb2xsLAo+ICsjaWZkZWYgQ09ORklHX0NPTVBBVAo+ICsJLmNvbXBhdF9pb2N0bCA9IGRybV9j b21wYXRfaW9jdGwsCj4gKyNlbmRpZgoKVGhlIGlmZGVmIGlzIG5vdCBuZWVkZWQuIFNlZSBkcm1f aW9jdGwuaAoKCj4gKwo+ICtNT0RVTEVfQVVUSE9SKCJPcmFjbGUgQ29ycG9yYXRpb24iKTsKQWRk IHlvdXJzZWxmPwoKPiArTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKPiArTU9EVUxF X0xJQ0VOU0UoIkdQTCBhbmQgYWRkaXRpb25hbCByaWdodHMiKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2 aWRlby92Ym94X2Rydi5oCgoKPiArCS8qIE11c3QgYmUgZmlyc3Q7IG9yIHdlIG11c3QgZGVmaW5l IG91ciBvd24gcmVsZWFzZSBjYWxsYmFjayAqLwo+ICsJc3RydWN0IGRybV9kZXZpY2UgZGRldjsK PiArCXN0cnVjdCBkcm1fZmJfaGVscGVyIGZiX2hlbHBlcjsKPiArCXN0cnVjdCB2Ym94X2ZyYW1l YnVmZmVyIGFmYjsKPiArCj4gKwl1OCBfX2lvbWVtICpndWVzdF9oZWFwOwo+ICsJdTggX19pb21l bSAqdmJ2YV9idWZmZXJzOwo+ICsJc3RydWN0IGdlbl9wb29sICpndWVzdF9wb29sOwo+ICsJc3Ry dWN0IHZidmFfYnVmX2N0eCAqdmJ2YV9pbmZvOwo+ICsJYm9vbCBhbnlfcGl0Y2g7Cj4gKwl1MzIg bnVtX2NydGNzOwo+ICsJLyogQW1vdW50IG9mIGF2YWlsYWJsZSBWUkFNLCBpbmNsdWRpbmcgc3Bh Y2UgdXNlZCBmb3IgYnVmZmVycy4gKi8KPiArCXUzMiBmdWxsX3ZyYW1fc2l6ZTsKPiArCS8qIEFt b3VudCBvZiBhdmFpbGFibGUgVlJBTSwgbm90IGluY2x1ZGluZyBzcGFjZSB1c2VkIGZvciBidWZm ZXJzLiAqLwo+ICsJdTMyIGF2YWlsYWJsZV92cmFtX3NpemU7Cj4gKwkvKiBBcnJheSBvZiBzdHJ1 Y3R1cmVzIGZvciByZWNlaXZpbmcgbW9kZSBoaW50cy4gKi8KPiArCXN0cnVjdCB2YnZhX21vZGVo aW50ICpsYXN0X21vZGVfaGludHM7Cj4gKwo+ICsJaW50IGZiX210cnI7CgpUaGlzIG1lbWJlciBp cyBvbmx5IHVzZWQgdG86CnZib3gtPmZiX210cnIgPSBhcmNoX3BoeXNfd2NfYWRkKHBjaV9yZXNv dXJjZV9zdGFydChkZXYtPnBkZXYsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBjaV9yZXNvdXJjZV9sZW4oZGV2LT5wZGV2LCAwKSk7CgphbmQgbGF0ZXIKYXJj aF9waHlzX3djX2RlbCh2Ym94LT5mYl9tdHJyKTsKCkFuZCBpcyBub3QgdXNlZCBmb3IgYW55dGhp bmcgZWxzZS4KTG9va3MgbGlrZSBzb21lIGxlZnQtb3ZlciB0aGF0IGNhbiBiZSBkcm9wcGVkLgoK Cgo+ICsKPiArCXN0cnVjdCB7Cj4gKwkJc3RydWN0IGRybV9nbG9iYWxfcmVmZXJlbmNlIG1lbV9n bG9iYWxfcmVmOwo+ICsJCXN0cnVjdCB0dG1fYm9fZ2xvYmFsX3JlZiBib19nbG9iYWxfcmVmOwo+ ICsJCXN0cnVjdCB0dG1fYm9fZGV2aWNlIGJkZXY7Cj4gKwl9IHR0bTsKPiArCj4gKwlzdHJ1Y3Qg bXV0ZXggaHdfbXV0ZXg7IC8qIHByb3RlY3RzIG1vZGVzZXQgYW5kIGFjY2VsL3ZidmEgYWNjZXNz ZXMgKi8KPiArCS8qCj4gKwkgKiBXZSBkZWNpZGUgd2hldGhlciBvciBub3QgdXNlci1zcGFjZSBz dXBwb3J0cyBkaXNwbGF5IGhvdC1wbHVnCj4gKwkgKiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGV5 IHJlYWN0IHRvIGEgaG90LXBsdWcgZXZlbnQgYWZ0ZXIgdGhlIGluaXRpYWwKPiArCSAqIG1vZGUg cXVlcnkuCj4gKwkgKi8KPiArCWJvb2wgaW5pdGlhbF9tb2RlX3F1ZXJpZWQ7Cj4gKwlzdHJ1Y3Qg d29ya19zdHJ1Y3QgaG90cGx1Z193b3JrOwo+ICsJdTMyIGlucHV0X21hcHBpbmdfd2lkdGg7Cj4g Kwl1MzIgaW5wdXRfbWFwcGluZ19oZWlnaHQ7Cj4gKwkvKgo+ICsJICogSXMgdXNlci1zcGFjZSB1 c2luZyBhbiBYLk9yZy1zdHlsZSBsYXlvdXQgb2Ygb25lIGxhcmdlIGZyYW1lLWJ1ZmZlcgo+ICsJ ICogZW5jb21wYXNzaW5nIGFsbCBzY3JlZW4gb25lcyBvciBpcyB0aGUgZmJkZXYgY29uc29sZSBh Y3RpdmU/Cj4gKwkgKi8KPiArCWJvb2wgc2luZ2xlX2ZyYW1lYnVmZmVyOwo+ICsJdTggY3Vyc29y X2RhdGFbQ1VSU09SX0RBVEFfU0laRV07Cj4gK307Cj4gKwo+ICsjdW5kZWYgQ1VSU09SX1BJWEVM X0NPVU5UCj4gKyN1bmRlZiBDVVJTT1JfREFUQV9TSVpFCldoeSB0aGVzZSBhbmQgbm90IHRoZSBv dGhlcnM/Cgo+ICsJICovCj4gKwl1MzIgd2lkdGg7Cj4gKwl1MzIgaGVpZ2h0Owo+ICsJdTMyIHg7 Cj4gKwl1MzIgeTsKPiArfTsKPiArCj4gK3N0cnVjdCB2Ym94X2VuY29kZXIgewo+ICsJc3RydWN0 IGRybV9lbmNvZGVyIGJhc2U7Cj4gK307Cj4gKwo+ICsjZGVmaW5lIHRvX3Zib3hfY3J0Yyh4KSBj b250YWluZXJfb2YoeCwgc3RydWN0IHZib3hfY3J0YywgYmFzZSkKPiArI2RlZmluZSB0b192Ym94 X2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IHZib3hfY29ubmVjdG9yLCBiYXNl KQo+ICsjZGVmaW5lIHRvX3Zib3hfZW5jb2Rlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IHZi b3hfZW5jb2RlciwgYmFzZSkKPiArI2RlZmluZSB0b192Ym94X2ZyYW1lYnVmZmVyKHgpIGNvbnRh aW5lcl9vZih4LCBzdHJ1Y3QgdmJveF9mcmFtZWJ1ZmZlciwgYmFzZSkKPiArCj4gK2Jvb2wgdmJv eF9jaGVja19zdXBwb3J0ZWQodTE2IGlkKTsKPiAraW50IHZib3hfaHdfaW5pdChzdHJ1Y3QgdmJv eF9wcml2YXRlICp2Ym94KTsKPiArdm9pZCB2Ym94X2h3X2Zpbmkoc3RydWN0IHZib3hfcHJpdmF0 ZSAqdmJveCk7Cj4gKwo+ICtpbnQgdmJveF9tb2RlX2luaXQoc3RydWN0IHZib3hfcHJpdmF0ZSAq dmJveCk7Cj4gK3ZvaWQgdmJveF9tb2RlX2Zpbmkoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCk7 Cj4gKwo+ICsjZGVmaW5lIERSTV9NT0RFX0ZCX0NNRCBkcm1fbW9kZV9mYl9jbWQyCgpUaGlzIGRl ZmluZSBsb29rcyBsaWtlIGxldGZvdmVyIGZyb20gc29tZXRoaW5nIG9sZC4KRHJvcCBpdCBhbmQg c3BlbGwgb3V0IHRoZSB0eXBlLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2 aWRlby92Ym94X2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfZmIuYwo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi44MDQxZDBjNDZhNmIKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X2ZiLmMK PiBAQCAtMCwwICsxLDE2NiBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4g Ky8qCj4gKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IE9yYWNsZSBDb3Jwb3JhdGlvbgo+ICsg KiBUaGlzIGZpbGUgaXMgYmFzZWQgb24gYXN0X2ZiLmMKPiArICogQ29weXJpZ2h0IDIwMTIgUmVk IEhhdCBJbmMuCj4gKyAqIEF1dGhvcnM6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5jb20+ Cj4gKyAqICAgICAgICAgIE1pY2hhZWwgVGhheWVyIDxtaWNoYWVsLnRoYXllckBvcmFjbGUuY29t LAo+ICsgKi8KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICsjaW5jbHVkZSA8bGludXgv a2VybmVsLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgo+ICsjaW5jbHVkZSA8bGludXgv c3RyaW5nLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tbS5oPgo+ICsjaW5jbHVkZSA8bGludXgvdHR5 Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgo+ICsjaW5jbHVkZSA8bGludXgvZGVsYXku aD4KPiArI2luY2x1ZGUgPGxpbnV4L2ZiLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4g Kwo+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgo+ ICsjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fY3J0 Y19oZWxwZXIuaD4KPiArCj4gKyNpbmNsdWRlICJ2Ym94X2Rydi5oIgo+ICsjaW5jbHVkZSAidmJv eHZpZGVvLmgiCj4gKwo+ICsjaWZkZWYgQ09ORklHX0RSTV9LTVNfRkJfSEVMUEVSCj4gK3N0YXRp YyBzdHJ1Y3QgZmJfZGVmZXJyZWRfaW8gdmJveF9kZWZpbyA9IHsKPiArCS5kZWxheSA9IEhaIC8g MzAsCj4gKwkuZGVmZXJyZWRfaW8gPSBkcm1fZmJfaGVscGVyX2RlZmVycmVkX2lvLAo+ICt9Owo+ ICsjZW5kaWYKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgZmJfb3BzIHZib3hmYl9vcHMgPSB7Cj4gKwku b3duZXIgPSBUSElTX01PRFVMRSwKPiArCS5mYl9jaGVja192YXIgPSBkcm1fZmJfaGVscGVyX2No ZWNrX3ZhciwKPiArCS5mYl9zZXRfcGFyID0gZHJtX2ZiX2hlbHBlcl9zZXRfcGFyLAo+ICsJLmZi X2ZpbGxyZWN0ID0gZHJtX2ZiX2hlbHBlcl9zeXNfZmlsbHJlY3QsCj4gKwkuZmJfY29weWFyZWEg PSBkcm1fZmJfaGVscGVyX3N5c19jb3B5YXJlYSwKPiArCS5mYl9pbWFnZWJsaXQgPSBkcm1fZmJf aGVscGVyX3N5c19pbWFnZWJsaXQsCj4gKwkuZmJfcGFuX2Rpc3BsYXkgPSBkcm1fZmJfaGVscGVy X3Bhbl9kaXNwbGF5LAo+ICsJLmZiX2JsYW5rID0gZHJtX2ZiX2hlbHBlcl9ibGFuaywKPiArCS5m Yl9zZXRjbWFwID0gZHJtX2ZiX2hlbHBlcl9zZXRjbWFwLAo+ICsJLmZiX2RlYnVnX2VudGVyID0g ZHJtX2ZiX2hlbHBlcl9kZWJ1Z19lbnRlciwKPiArCS5mYl9kZWJ1Z19sZWF2ZSA9IGRybV9mYl9o ZWxwZXJfZGVidWdfbGVhdmUsCj4gK307ClVzZSBEUk1fRkJfSEVMUEVSX0RFRkFVTFRfT1BTPwoK PiArCj4gK3N0YXRpYyBzdHJ1Y3QgdmJveF9jcnRjICp2Ym94X2NydGNfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgaSkKPiArewo+ICsJc3RydWN0IHZib3hfcHJpdmF0 ZSAqdmJveCA9Cj4gKwkJY29udGFpbmVyX29mKGRldiwgc3RydWN0IHZib3hfcHJpdmF0ZSwgZGRl dik7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpjdXJzb3IgPSBOVUxMOwo+ICsJc3RydWN0IHZib3hf Y3J0YyAqdmJveF9jcnRjOwo+ICsJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeTsKPiArCXUzMiBj YXBzID0gMDsKPiArCWludCByZXQ7Cj4gKwouLi4KCj4gKwlwcmltYXJ5ID0gdmJveF9jcmVhdGVf cGxhbmUodmJveCwgMSA8PCBpLCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiArCWlmIChJU19F UlIocHJpbWFyeSkpIHsKPiArCQlyZXQgPSBQVFJfRVJSKHByaW1hcnkpOwo+ICsJCWdvdG8gZnJl ZV9tZW07Cj4gKwl9CnByaW1hcnkgaXMgYSBwb2ludGVyLCBzbyBpdCBpcyB3cm9uZyB0byB1c2Ug UFRSX0VSUigpIG9uIGEgcG9pbnRlci4KVGhpcyB3aWxsIGp1c3QgY2FzdCB0aGlzIHRvIGEgbG9u ZyB0aGF0IGFnYWluIGlzIGNhc3RlZCB0byBhIHBvaW50ZXIuCgpJdCB3b3VsZCBiZSBzaW1wbGVy IHRvIGRlY2xhcmUgcmV0IGEgdm9pZCAqIHRvIFBUUl9FUlIoKTsKCgo+ICsKPiArCWlmICgoY2Fw cyAmIFZCT1hfVkJWQV9DVVJTT1JfQ0FQQUJJTElUWV9IQVJEV0FSRSkpIHsKPiArCQljdXJzb3Ig PSB2Ym94X2NyZWF0ZV9wbGFuZSh2Ym94LCAxIDw8IGksIERSTV9QTEFORV9UWVBFX0NVUlNPUik7 Cj4gKwkJaWYgKElTX0VSUihjdXJzb3IpKSB7Cj4gKwkJCXJldCA9IFBUUl9FUlIoY3Vyc29yKTsK PiArCQkJZ290byBjbGVhbl9wcmltYXJ5Owo+ICsJCX0KPiArCX0gZWxzZSB7Cj4gKwkJRFJNX1dB Uk4oIlZpcnR1YWxCb3ggaG9zdCBpcyB0b28gb2xkLCBubyBjdXJzb3Igc3VwcG9ydFxuIik7Cj4g Kwl9Cj4gKwo+ICsJdmJveF9jcnRjLT5jcnRjX2lkID0gaTsKPiArCj4gKwlyZXQgPSBkcm1fY3J0 Y19pbml0X3dpdGhfcGxhbmVzKGRldiwgJnZib3hfY3J0Yy0+YmFzZSwgcHJpbWFyeSwgY3Vyc29y LAo+ICsJCQkJCSZ2Ym94X2NydGNfZnVuY3MsIE5VTEwpOwo+ICsJaWYgKHJldCkKPiArCQlnb3Rv IGNsZWFuX2N1cnNvcjsKPiArCj4gKwlkcm1fbW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKCZ2Ym94 X2NydGMtPmJhc2UsIDI1Nik7Cj4gKwlkcm1fY3J0Y19oZWxwZXJfYWRkKCZ2Ym94X2NydGMtPmJh c2UsICZ2Ym94X2NydGNfaGVscGVyX2Z1bmNzKTsKPiArCj4gKwlyZXR1cm4gdmJveF9jcnRjOwo+ ICsKPiArY2xlYW5fY3Vyc29yOgo+ICsJaWYgKGN1cnNvcikgewo+ICsJCWRybV9wbGFuZV9jbGVh bnVwKGN1cnNvcik7Cj4gKwkJa2ZyZWUoY3Vyc29yKTsKPiArCX0KPiArY2xlYW5fcHJpbWFyeToK PiArCWRybV9wbGFuZV9jbGVhbnVwKHByaW1hcnkpOwo+ICsJa2ZyZWUocHJpbWFyeSk7Cj4gK2Zy ZWVfbWVtOgo+ICsJa2ZyZWUodmJveF9jcnRjKTsKPiArCXJldHVybiBFUlJfUFRSKHJldCk7Cj4g K30KPiArCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=