From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [PATCH] drm/vboxvideo: Move vboxvideo driver out of staging Date: Mon, 22 Oct 2018 16:24:39 +0200 Message-ID: References: <20181018153549.7383-1-hdegoede@redhat.com> <20181018153549.7383-2-hdegoede@redhat.com> <20181018181212.GA32608@ravnborg.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-f65.google.com (mail-ed1-f65.google.com [209.85.208.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6A5B9898D9 for ; Mon, 22 Oct 2018 14:24:42 +0000 (UTC) Received: by mail-ed1-f65.google.com with SMTP id w19-v6so38116264eds.1 for ; Mon, 22 Oct 2018 07:24:42 -0700 (PDT) In-Reply-To: <20181018181212.GA32608@ravnborg.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sam Ravnborg 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 SGksCgpUaGFuayB5b3UgZm9yIHRoZSByZXZpZXcuCgpPbiAxOC0xMC0xOCAyMDoxMiwgU2FtIFJh dm5ib3JnIHdyb3RlOgo+IEhpIEhhbnMuCj4gCj4gSnVzdCBhIGJ1bmNoIG9mIHJhbmRvbSBvYnNl cnZhdGlvbnMgdGhhdCBJIGhvcGUgeW91IGZpbmQgdXNlIG9mLgo+IAo+IAlTYW0KPiAKPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25m aWcKPj4gaW5kZXggY2I4ODUyOGU3YjEwLi42YjRkNmM5NTdkYTggMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9LY29uZmlnCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCj4+ IEBAIC0zMTUsNiArMzE1LDggQEAgc291cmNlICJkcml2ZXJzL2dwdS9kcm0vdHZlMjAwL0tjb25m aWciCj4+ICAgCj4+ICAgc291cmNlICJkcml2ZXJzL2dwdS9kcm0veGVuL0tjb25maWciCj4+ICAg Cj4+ICtzb3VyY2UgImRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vS2NvbmZpZyIKPj4gKwo+PiAg ICMgS2VlcCBsZWdhY3kgZHJpdmVycyBsYXN0Cj4+ICAgCj4+ICAgbWVudWNvbmZpZyBEUk1fTEVH QUNZCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dw dS9kcm0vTWFrZWZpbGUKPj4gaW5kZXggYTY3NzFjZWY4NWUyLi4xMzM2MDY4MDIzMDAgMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vTWFrZWZpbGUKPj4gQEAgLTEwNywzICsxMDcsNCBAQCBvYmotJChDT05GSUdfRFJNX1RJTllE Uk0pICs9IHRpbnlkcm0vCj4+ICAgb2JqLSQoQ09ORklHX0RSTV9QTDExMSkgKz0gcGwxMTEvCj4+ ICAgb2JqLSQoQ09ORklHX0RSTV9UVkUyMDApICs9IHR2ZTIwMC8KPj4gICBvYmotJChDT05GSUdf RFJNX1hFTikgKz0geGVuLwo+PiArb2JqLSQoQ09ORklHX0RSTV9WQk9YVklERU8pICs9IHZib3h2 aWRlby8KPiAKPiBJcyBpdCB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGFkZCB0aGlzIGluIHRo ZSBlbmQ/Cj4gWW91IGFyZSBhc2tpbmcgZm9yIG1lcmdlIHByb2JsZW1zIGlmIHlvdSBkbyBzbywg YnV0IHRoZW4KPiB0aGUgZHJtIGRyaXZlcnMgZG9lcyBub3Qgc2VlbSB0byBmb2xsb3cgYW55IGdv b2Qgb3JkZXIKPiBzbyB0aGlzIG1heSBiZSBmaW5lLgoKUmlnaHQsIGp1c3QgdGFnZ2luZyB0aGUg ZW50cnkgdG8gdGhlIGVuZCBzZWVtcyB0byBiZSB3aGF0CmFsbCBuZXcgZHJpdmVyIGFkZGl0aW9u cyBkbywgc28gSSdtIGp1c3QgZm9sbG93aW5nIHRoYXQKZXhhbXBsZSBoZXJlLgoKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9NYWtlZmlsZQo+PiBAQCAtMCwwICsxLDggQEAKPj4g KyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPj4gK2NjZmxhZ3MteSA6PSAtSWlu Y2x1ZGUvZHJtCj4gVGhpcyBzaG91bGQgbm90IGJlIHJlcXVpcmVkLgo+IElmIHJlcXVpcmVkIHRo ZW4gZml4IHRoZSBvZmZlbmRpbmcgI2luY2x1ZGUKCkZpeGVkIGluIHRoZSBzZXQgb2YgY2xlYW51 cCBwYXRjaGVzIHdoaWNoIEknbSBzZW5kaW5nIG91dAphZnRlciB0aGlzIGVtYWlsLgoKTm90ZSB0 aGVzZSBjbGVhbnVwIHBhdGNoZXMgYXBwbHkgdG8gdGhlIHN0YWdpbmcgdmVyc2lvbiBvZgp0aGUg ZHJpdmVyLCBJIHdpbGwgZG8gYSBuZXcgdmVyc2lvbiBvZiB0aGlzIHBhdGNoIGFmdGVyCnNvbWVv bmUgaGFzIGZvdW5kIHRoZSB0aW1lIHRvIGRvIGEgbW9yZSB0aG9yb3VnaCByZXZpZXcuCgo+PiAr Cj4+ICt2Ym94dmlkZW8teSA6PSAgaGdzbWlfYmFzZS5vIG1vZGVzZXR0aW5nLm8gdmJ2YV9iYXNl Lm8gXAo+PiArCQl2Ym94X2Rydi5vIHZib3hfZmIubyB2Ym94X2hnc21pLm8gdmJveF9pcnEubyB2 Ym94X21haW4ubyBcCj4+ICsJCXZib3hfbW9kZS5vIHZib3hfcHJpbWUubyB2Ym94X3R0bS5vCj4+ ICsKPj4gK29iai0kKENPTkZJR19EUk1fVkJPWFZJREVPKSArPSB2Ym94dmlkZW8ubwo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9oZ3NtaV9iYXNlLmMgYi9kcml2ZXJz L2dwdS9kcm0vdmJveHZpZGVvL2hnc21pX2Jhc2UuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ PiBpbmRleCAwMDAwMDAwMDAwMDAuLjM2MWQzMTkzMjU4ZQo+PiAtLS0gL2Rldi9udWxsCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vaGdzbWlfYmFzZS5jCj4+IEBAIC0wLDAgKzEs MjA3IEBACj4+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4+ICsvKiBDb3B5cmln aHQgKEMpIDIwMDYtMjAxNyBPcmFjbGUgQ29ycG9yYXRpb24gKi8KPiAyMDE4Pwo+IEdlbmVyYWwg Y29tbWVudCBmb3IgYWxsIGZpbGVzLgoKSSBkbyBub3Qgd29yayBmb3IgT3JhY2xlLCBzbyBpdHMg bm90IHVwIHRvIG1lIHRvIGV4dGVuZCB0aGUgY29weXJpZ2h0CmNsYWltLgoKPiAKPj4gKwl1bmlv biB7Cj4+ICsJCS8qIE9wYXF1ZSBwbGFjZWhvbGRlciB0byBtYWtlIHRoZSB1bmlvbiA4IGJ5dGVz LiAqLwo+PiArCQl1OCBoZWFkZXJfZGF0YVs4XTsKPiBGdXJ0aGVyIGRvd24geW91IGhhdmUgMiB4 IHUzMiwgc28gdGhlIHVuaW9uIGlzIGd1YXJhbnRlZWQgdG8gYmUgNjQgYml0cy4KPiBTbyBoZWFk ZXJfZGF0YSBpcyByZWR1bmRhbnQuCgpUaGUgaGVhZGVyX2RhdGEgbWVtYmVyIGlzIHVzZWQgaW4g dGhlIGNvZGUuCgo+PiArCj4+ICsJCS8qIEhHU01JX0JVRkZFUl9IRUFERVJfRl9TRVFfU0lOR0xF ICovCj4+ICsJCXN0cnVjdCB7Cj4+ICsJCQl1MzIgcmVzZXJ2ZWQxOwkvKiBBIHJlc2VydmVkIGZp ZWxkLCBpbml0aWFsaXplIHRvIDAuICovCj4+ICsJCQl1MzIgcmVzZXJ2ZWQyOwkvKiBBIHJlc2Vy dmVkIGZpZWxkLCBpbml0aWFsaXplIHRvIDAuICovCj4+ICsJCX0gYnVmZmVyOwo+IAo+IAo+IAo+ PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9k cnYuYwo+PiBAQCAtMCwwICsxLDI4MCBAQAo+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IE9yYWNsZSBDb3Jwb3Jh dGlvbgo+PiArICogVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGFzdF9kcnYuYwo+PiArICogQ29weXJp Z2h0IDIwMTIgUmVkIEhhdCBJbmMuCj4+ICsgKiBBdXRob3JzOiBEYXZlIEFpcmxpZSA8YWlybGll ZEByZWRoYXQuY29tPgo+PiArICogICAgICAgICAgTWljaGFlbCBUaGF5ZXIgPG1pY2hhZWwudGhh eWVyQG9yYWNsZS5jb20sCj4+ICsgKiAgICAgICAgICBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUBy ZWRoYXQuY29tPgo+PiArICovCj4+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+ICsjaW5j bHVkZSA8bGludXgvY29uc29sZS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3Z0X2tlcm4uaD4KPj4g Kwo+PiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gV2UgYXJlIHRyeWluZyB0byBnZXQgcmlkIG9m IGRybVAgLSByZXBsYWNlIHdpdGggbW9yZSBzcGVjaWZpYyBpbmNsdWRlcy4KPiBHb2VzIGZvciBh bGwgdXNlcyBvZiBkcm1QLmgKCkZpeGVkIGluIHRoZSBjbGVhbnVwIHNlcmllcy4KCj4+ICsKPj4g K3N0YXRpYyBpbnQgdmJveF9tb2Rlc2V0ID0gLTE7Cj4+ICsKPj4gK01PRFVMRV9QQVJNX0RFU0Mo bW9kZXNldCwgIkRpc2FibGUvRW5hYmxlIG1vZGVzZXR0aW5nIik7Cj4+ICttb2R1bGVfcGFyYW1f bmFtZWQobW9kZXNldCwgdmJveF9tb2Rlc2V0LCBpbnQsIDA0MDApOwo+PiArCj4+ICtzdGF0aWMg c3RydWN0IGRybV9kcml2ZXIgZHJpdmVyOwo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHBj aV9kZXZpY2VfaWQgcGNpaWRsaXN0W10gPSB7Cj4+ICsJeyAweDgwZWUsIDB4YmVlZiwgUENJX0FO WV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMCB9LAo+PiArCXsgMCwgMCwgMH0sCj4+ICt9Owo+IFVz ZSBQQ0lfREVWSUNFKCk/CgpBY2ssIGZpeGVkIGluIHRoZSBjbGVhbnVwIHNlcmllcy4KCj4+ICtz dGF0aWMgaW50IHZib3hfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1 Y3QgcGNpX2RldmljZV9pZCAqZW50KQo+PiArewo+PiArCXN0cnVjdCB2Ym94X3ByaXZhdGUgKnZi b3g7Cj4+ICsJaW50IHJldCA9IDA7Cj4+ICsKPj4gKwlpZiAoIXZib3hfY2hlY2tfc3VwcG9ydGVk KFZCRV9ESVNQSV9JRF9IR1NNSSkpCj4+ICsJCXJldHVybiAtRU5PREVWOwo+PiArCj4+ICsJdmJv eCA9IGt6YWxsb2Moc2l6ZW9mKCp2Ym94KSwgR0ZQX0tFUk5FTCk7Cj4+ICsJaWYgKCF2Ym94KQo+ PiArCQlyZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArCXJldCA9IGRybV9kZXZfaW5pdCgmdmJveC0+ ZGRldiwgJmRyaXZlciwgJnBkZXYtPmRldik7Cj4+ICsJaWYgKHJldCkgewo+PiArCQlrZnJlZSh2 Ym94KTsKPj4gKwkJcmV0dXJuIHJldDsKPj4gKwl9Cj4+ICsKPj4gKwl2Ym94LT5kZGV2LnBkZXYg PSBwZGV2Owo+PiArCXZib3gtPmRkZXYuZGV2X3ByaXZhdGUgPSB2Ym94Owo+PiArCXBjaV9zZXRf ZHJ2ZGF0YShwZGV2LCB2Ym94KTsKPj4gKwltdXRleF9pbml0KCZ2Ym94LT5od19tdXRleCk7Cj4+ ICsKPj4gKwlyZXQgPSBwY2lfZW5hYmxlX2RldmljZShwZGV2KTsKPj4gKwlpZiAocmV0KQo+PiAr CQlnb3RvIGVycl9kZXZfcHV0Owo+PiArCj4+ICsJcmV0ID0gdmJveF9od19pbml0KHZib3gpOwo+ PiArCWlmIChyZXQpCj4+ICsJCWdvdG8gZXJyX3BjaV9kaXNhYmxlOwo+PiArCj4+ICsJcmV0ID0g dmJveF9tbV9pbml0KHZib3gpOwo+PiArCWlmIChyZXQpCj4+ICsJCWdvdG8gZXJyX2h3X2Zpbmk7 Cj4+ICsKPj4gKwlyZXQgPSB2Ym94X21vZGVfaW5pdCh2Ym94KTsKPj4gKwlpZiAocmV0KQo+PiAr CQlnb3RvIGVycl9tbV9maW5pOwo+PiArCj4+ICsJcmV0ID0gdmJveF9pcnFfaW5pdCh2Ym94KTsK Pj4gKwlpZiAocmV0KQo+PiArCQlnb3RvIGVycl9tb2RlX2Zpbmk7Cj4+ICsKPj4gKwlyZXQgPSBk cm1fZmJfaGVscGVyX2ZiZGV2X3NldHVwKCZ2Ym94LT5kZGV2LCAmdmJveC0+ZmJfaGVscGVyLAo+ PiArCQkJCQkmdmJveF9mYl9oZWxwZXJfZnVuY3MsIDMyLAo+PiArCQkJCQl2Ym94LT5udW1fY3J0 Y3MpOwo+PiArCWlmIChyZXQpCj4+ICsJCWdvdG8gZXJyX2lycV9maW5pOwo+PiArCj4+ICsJcmV0 ID0gZHJtX2Rldl9yZWdpc3RlcigmdmJveC0+ZGRldiwgMCk7Cj4+ICsJaWYgKHJldCkKPj4gKwkJ Z290byBlcnJfZmJkZXZfZmluaTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArCj4+ICtlcnJfZmJk ZXZfZmluaToKPj4gKwl2Ym94X2ZiZGV2X2ZpbmkodmJveCk7Cj4+ICtlcnJfaXJxX2Zpbmk6Cj4+ ICsJdmJveF9pcnFfZmluaSh2Ym94KTsKPj4gK2Vycl9tb2RlX2Zpbmk6Cj4+ICsJdmJveF9tb2Rl X2ZpbmkodmJveCk7Cj4+ICtlcnJfbW1fZmluaToKPj4gKwl2Ym94X21tX2ZpbmkodmJveCk7Cj4+ ICtlcnJfaHdfZmluaToKPj4gKwl2Ym94X2h3X2ZpbmkodmJveCk7Cj4+ICtlcnJfcGNpX2Rpc2Fi bGU6Cj4+ICsJcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOwo+PiArZXJyX2Rldl9wdXQ6Cj4+ICsJ ZHJtX2Rldl9wdXQoJnZib3gtPmRkZXYpOwo+IAo+IGtmcmVlKHZib3gpIG1pc3Npbmc/CgpObywg d2UgZG8gbm90IGRlZmluZSBhIHJlbGVhc2UgY2FsbGJhY2sgaW4gb3VyIGRybV9kcml2ZXIgKG9w cykKc3RydWN0LCBzbyBkcm1fZGV2X3JlbGVhc2UoKSBmcm9tIGRyaXZlcnMvZ3B1L2RybS9kcm1f ZHJ2LmMsCndoaWNoIGdldHMgY2FsbGVkIG9uIHRoZSBsYXN0IGRybV9kZXZfcHV0LCB3aWxsIGNh bGwKa2ZyZWUoKSBvbiBvdXIgZW1iZWRkZWQgc3RydWN0IGRybV9kZXZpY2UsIGFsc28gc2VlCnRo ZSBkZWZpbml0aW9uIG9mIHRoZSB2Ym94X3ByaXZhdGUgc3RydWN0LCB3aGljaCBoYXM6CgpzdHJ1 Y3QgdmJveF9wcml2YXRlIHsKICAgICAgICAgLyogTXVzdCBiZSBmaXJzdDsgb3Igd2UgbXVzdCBk ZWZpbmUgb3VyIG93biByZWxlYXNlIGNhbGxiYWNrICovCiAgICAgICAgIHN0cnVjdCBkcm1fZGV2 aWNlIGRkZXY7CgpUaGlzIGlzIGEgc3RhbmRhcmQgd2F5IG9mIGRvaW5nIHRoaXMgZm9yIGRybSBk cml2ZXJzLgoKPj4gKwlyZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICsKPj4gK3N0YXRpYyBpbnQg dmJveF9wbV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPj4gK3sKPj4gKwlzdHJ1Y3QgdmJv eF9wcml2YXRlICp2Ym94ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ICsJaW50IGVycm9yOwo+ PiArCj4+ICsJZXJyb3IgPSBkcm1fbW9kZV9jb25maWdfaGVscGVyX3N1c3BlbmQoJnZib3gtPmRk ZXYpOwo+PiArCWlmIChlcnJvcikKPj4gKwkJcmV0dXJuIGVycm9yOwo+PiArCj4+ICsJcGNpX3Nh dmVfc3RhdGUodmJveC0+ZGRldi5wZGV2KTsKPj4gKwlwY2lfZGlzYWJsZV9kZXZpY2UodmJveC0+ ZGRldi5wZGV2KTsKPj4gKwlwY2lfc2V0X3Bvd2VyX3N0YXRlKHZib3gtPmRkZXYucGRldiwgUENJ X0QzaG90KTsKPj4gKwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IHZi b3hfcG1fcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKPj4gK3sKPj4gKwlzdHJ1Y3QgdmJveF9w cml2YXRlICp2Ym94ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ICsKPj4gKwlpZiAocGNpX2Vu YWJsZV9kZXZpY2UodmJveC0+ZGRldi5wZGV2KSkKPj4gKwkJcmV0dXJuIC1FSU87Cj4+ICsKPj4g KwlyZXR1cm4gZHJtX21vZGVfY29uZmlnX2hlbHBlcl9yZXN1bWUoJnZib3gtPmRkZXYpOwo+PiAr fQo+PiArCj4+ICtzdGF0aWMgaW50IHZib3hfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldikK Pj4gK3sKPj4gKwlzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94ID0gZGV2X2dldF9kcnZkYXRhKGRl dik7Cj4+ICsKPj4gKwlyZXR1cm4gZHJtX21vZGVfY29uZmlnX2hlbHBlcl9zdXNwZW5kKCZ2Ym94 LT5kZGV2KTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCB2Ym94X3BtX3RoYXcoc3RydWN0IGRl dmljZSAqZGV2KQo+PiArewo+PiArCXN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3ggPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsKPj4gKwo+PiArCXJldHVybiBkcm1fbW9kZV9jb25maWdfaGVscGVyX3Jl c3VtZSgmdmJveC0+ZGRldik7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgdmJveF9wbV9wb3dl cm9mZihzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICt7Cj4+ICsJc3RydWN0IHZib3hfcHJpdmF0ZSAq dmJveCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+PiArCj4+ICsJcmV0dXJuIGRybV9tb2RlX2Nv bmZpZ19oZWxwZXJfc3VzcGVuZCgmdmJveC0+ZGRldik7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZGV2X3BtX29wcyB2Ym94X3BtX29wcyA9IHsKPj4gKwkuc3VzcGVuZCA9IHZi b3hfcG1fc3VzcGVuZCwKPj4gKwkucmVzdW1lID0gdmJveF9wbV9yZXN1bWUsCj4+ICsJLmZyZWV6 ZSA9IHZib3hfcG1fZnJlZXplLAo+PiArCS50aGF3ID0gdmJveF9wbV90aGF3LAo+PiArCS5wb3dl cm9mZiA9IHZib3hfcG1fcG93ZXJvZmYsCj4+ICsJLnJlc3RvcmUgPSB2Ym94X3BtX3Jlc3VtZSwK Pj4gK307Cj4gU2hvdWxkIGFsbCB0aGlzIGJlIGluc2lkZSAjaWZkZWYgQ09ORklHX1BNX1NMRUVQ PwoKWWVzIHlvdXIgcmlnaHQsIHdpbGwgZml4IGluIHRoZSBjbGVhbnVwIHNlcmllcy4KCj4+ICsK Pj4gK3N0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciB2Ym94X3BjaV9kcml2ZXIgPSB7Cj4+ICsJLm5h bWUgPSBEUklWRVJfTkFNRSwKPj4gKwkuaWRfdGFibGUgPSBwY2lpZGxpc3QsCj4+ICsJLnByb2Jl ID0gdmJveF9wY2lfcHJvYmUsCj4+ICsJLnJlbW92ZSA9IHZib3hfcGNpX3JlbW92ZSwKPj4gKwku ZHJpdmVyLnBtID0gJnZib3hfcG1fb3BzLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGNvbnN0IHN0 cnVjdCBmaWxlX29wZXJhdGlvbnMgdmJveF9mb3BzID0gewo+PiArCS5vd25lciA9IFRISVNfTU9E VUxFLAo+PiArCS5vcGVuID0gZHJtX29wZW4sCj4+ICsJLnJlbGVhc2UgPSBkcm1fcmVsZWFzZSwK Pj4gKwkudW5sb2NrZWRfaW9jdGwgPSBkcm1faW9jdGwsCj4+ICsJLm1tYXAgPSB2Ym94X21tYXAs Cj4+ICsJLnBvbGwgPSBkcm1fcG9sbCwKPj4gKyNpZmRlZiBDT05GSUdfQ09NUEFUCj4+ICsJLmNv bXBhdF9pb2N0bCA9IGRybV9jb21wYXRfaW9jdGwsCj4+ICsjZW5kaWYKPiAKPiBUaGUgaWZkZWYg aXMgbm90IG5lZWRlZC4gU2VlIGRybV9pb2N0bC5oCgpBY2ssIGZpeGVkLgoKPj4gKwo+PiArTU9E VUxFX0FVVEhPUigiT3JhY2xlIENvcnBvcmF0aW9uIik7Cj4gQWRkIHlvdXJzZWxmPwoKWWVzIGdv b2QgaWRlYSwgZG9uZS4KCgo+PiArTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKPj4g K01PRFVMRV9MSUNFTlNFKCJHUEwgYW5kIGFkZGl0aW9uYWwgcmlnaHRzIik7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vdmJveHZpZGVvL3Zib3hfZHJ2LmgKPiAKPiAKPj4gKwkvKiBNdXN0IGJlIGZpcnN0OyBvciB3 ZSBtdXN0IGRlZmluZSBvdXIgb3duIHJlbGVhc2UgY2FsbGJhY2sgKi8KPj4gKwlzdHJ1Y3QgZHJt X2RldmljZSBkZGV2Owo+PiArCXN0cnVjdCBkcm1fZmJfaGVscGVyIGZiX2hlbHBlcjsKPj4gKwlz dHJ1Y3QgdmJveF9mcmFtZWJ1ZmZlciBhZmI7Cj4+ICsKPj4gKwl1OCBfX2lvbWVtICpndWVzdF9o ZWFwOwo+PiArCXU4IF9faW9tZW0gKnZidmFfYnVmZmVyczsKPj4gKwlzdHJ1Y3QgZ2VuX3Bvb2wg Kmd1ZXN0X3Bvb2w7Cj4+ICsJc3RydWN0IHZidmFfYnVmX2N0eCAqdmJ2YV9pbmZvOwo+PiArCWJv b2wgYW55X3BpdGNoOwo+PiArCXUzMiBudW1fY3J0Y3M7Cj4+ICsJLyogQW1vdW50IG9mIGF2YWls YWJsZSBWUkFNLCBpbmNsdWRpbmcgc3BhY2UgdXNlZCBmb3IgYnVmZmVycy4gKi8KPj4gKwl1MzIg ZnVsbF92cmFtX3NpemU7Cj4+ICsJLyogQW1vdW50IG9mIGF2YWlsYWJsZSBWUkFNLCBub3QgaW5j bHVkaW5nIHNwYWNlIHVzZWQgZm9yIGJ1ZmZlcnMuICovCj4+ICsJdTMyIGF2YWlsYWJsZV92cmFt X3NpemU7Cj4+ICsJLyogQXJyYXkgb2Ygc3RydWN0dXJlcyBmb3IgcmVjZWl2aW5nIG1vZGUgaGlu dHMuICovCj4+ICsJc3RydWN0IHZidmFfbW9kZWhpbnQgKmxhc3RfbW9kZV9oaW50czsKPj4gKwo+ PiArCWludCBmYl9tdHJyOwo+IAo+IFRoaXMgbWVtYmVyIGlzIG9ubHkgdXNlZCB0bzoKPiB2Ym94 LT5mYl9tdHJyID0gYXJjaF9waHlzX3djX2FkZChwY2lfcmVzb3VyY2Vfc3RhcnQoZGV2LT5wZGV2 LCAwKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjaV9yZXNv dXJjZV9sZW4oZGV2LT5wZGV2LCAwKSk7Cj4gCj4gYW5kIGxhdGVyCj4gYXJjaF9waHlzX3djX2Rl bCh2Ym94LT5mYl9tdHJyKTsKPiAKPiBBbmQgaXMgbm90IHVzZWQgZm9yIGFueXRoaW5nIGVsc2Uu Cj4gTG9va3MgbGlrZSBzb21lIGxlZnQtb3ZlciB0aGF0IGNhbiBiZSBkcm9wcGVkLgoKVGhpcyBz ZXRzIHVwIHRoZSBNVFJSIHJlZ2lzdGVycyB0byBzZXQgdGhlIGNhY2hlLXBvbGljeSBmb3IgdGhl IHZpZGVvLW1lbSB0bwp3cml0ZS1jb21iaW5lZCwgc2VlOgoKaHR0cHM6Ly93d3cua2VybmVsLm9y Zy9kb2MvaHRtbGRvY3Mva2VybmVsLWFwaS9BUEktYXJjaC1waHlzLXdjLWFkZC5odG1sCgpJZiB5 b3UgbG9vayB1bmRlciBkcml2ZXJzL2dwdS9kcm0geW91IHdpbGwgc28gbW9yZSBkcml2ZXJzIGRv aW5nIHRoaXMuCgpUaGUgcmV0dXJuIHZhbHVlIG5vdCBiZWluZyB1c2VkIGZvciBhbnl0aGluZyBi dXQgY2xlYW51cCBpcyBub3JtYWwuCgo+PiArCj4+ICsJc3RydWN0IHsKPj4gKwkJc3RydWN0IGRy bV9nbG9iYWxfcmVmZXJlbmNlIG1lbV9nbG9iYWxfcmVmOwo+PiArCQlzdHJ1Y3QgdHRtX2JvX2ds b2JhbF9yZWYgYm9fZ2xvYmFsX3JlZjsKPj4gKwkJc3RydWN0IHR0bV9ib19kZXZpY2UgYmRldjsK Pj4gKwl9IHR0bTsKPj4gKwo+PiArCXN0cnVjdCBtdXRleCBod19tdXRleDsgLyogcHJvdGVjdHMg bW9kZXNldCBhbmQgYWNjZWwvdmJ2YSBhY2Nlc3NlcyAqLwo+PiArCS8qCj4+ICsJICogV2UgZGVj aWRlIHdoZXRoZXIgb3Igbm90IHVzZXItc3BhY2Ugc3VwcG9ydHMgZGlzcGxheSBob3QtcGx1Zwo+ PiArCSAqIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZXkgcmVhY3QgdG8gYSBob3QtcGx1ZyBldmVu dCBhZnRlciB0aGUgaW5pdGlhbAo+PiArCSAqIG1vZGUgcXVlcnkuCj4+ICsJICovCj4+ICsJYm9v bCBpbml0aWFsX21vZGVfcXVlcmllZDsKPj4gKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaG90cGx1Z193 b3JrOwo+PiArCXUzMiBpbnB1dF9tYXBwaW5nX3dpZHRoOwo+PiArCXUzMiBpbnB1dF9tYXBwaW5n X2hlaWdodDsKPj4gKwkvKgo+PiArCSAqIElzIHVzZXItc3BhY2UgdXNpbmcgYW4gWC5Pcmctc3R5 bGUgbGF5b3V0IG9mIG9uZSBsYXJnZSBmcmFtZS1idWZmZXIKPj4gKwkgKiBlbmNvbXBhc3Npbmcg YWxsIHNjcmVlbiBvbmVzIG9yIGlzIHRoZSBmYmRldiBjb25zb2xlIGFjdGl2ZT8KPj4gKwkgKi8K Pj4gKwlib29sIHNpbmdsZV9mcmFtZWJ1ZmZlcjsKPj4gKwl1OCBjdXJzb3JfZGF0YVtDVVJTT1Jf REFUQV9TSVpFXTsKPj4gK307Cj4+ICsKPj4gKyN1bmRlZiBDVVJTT1JfUElYRUxfQ09VTlQKPj4g KyN1bmRlZiBDVVJTT1JfREFUQV9TSVpFCj4gV2h5IHRoZXNlIGFuZCBub3QgdGhlIG90aGVycz8K CkJlY2F1c2UgdGhlc2UgYXJlIG9ubHkgaW50ZW5kZWQgdG8gZGV0ZXJtaW5lIHRoZSBzaXplIG9m IHRoZSBjdXJzb3JfZGF0YQptZW1iZXIgYW5kIG5vdCBpbnRlbmRlZCBmb3IgdXNlIGluIHRoZSBk cml2ZXIgY29kZS4KCj4gCj4+ICsJICovCj4+ICsJdTMyIHdpZHRoOwo+PiArCXUzMiBoZWlnaHQ7 Cj4+ICsJdTMyIHg7Cj4+ICsJdTMyIHk7Cj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgdmJveF9lbmNv ZGVyIHsKPj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgYmFzZTsKPj4gK307Cj4+ICsKPj4gKyNkZWZp bmUgdG9fdmJveF9jcnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgdmJveF9jcnRjLCBiYXNl KQo+PiArI2RlZmluZSB0b192Ym94X2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0 IHZib3hfY29ubmVjdG9yLCBiYXNlKQo+PiArI2RlZmluZSB0b192Ym94X2VuY29kZXIoeCkgY29u dGFpbmVyX29mKHgsIHN0cnVjdCB2Ym94X2VuY29kZXIsIGJhc2UpCj4+ICsjZGVmaW5lIHRvX3Zi b3hfZnJhbWVidWZmZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCB2Ym94X2ZyYW1lYnVmZmVy LCBiYXNlKQo+PiArCj4+ICtib29sIHZib3hfY2hlY2tfc3VwcG9ydGVkKHUxNiBpZCk7Cj4+ICtp bnQgdmJveF9od19pbml0KHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gpOwo+PiArdm9pZCB2Ym94 X2h3X2Zpbmkoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCk7Cj4+ICsKPj4gK2ludCB2Ym94X21v ZGVfaW5pdChzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94KTsKPj4gK3ZvaWQgdmJveF9tb2RlX2Zp bmkoc3RydWN0IHZib3hfcHJpdmF0ZSAqdmJveCk7Cj4+ICsKPj4gKyNkZWZpbmUgRFJNX01PREVf RkJfQ01EIGRybV9tb2RlX2ZiX2NtZDIKPiAKPiBUaGlzIGRlZmluZSBsb29rcyBsaWtlIGxldGZv dmVyIGZyb20gc29tZXRoaW5nIG9sZC4KPiBEcm9wIGl0IGFuZCBzcGVsbCBvdXQgdGhlIHR5cGUu CgpBY2ssIGZpeGVkLgoKCgo+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zib3h2 aWRlby92Ym94X2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfZmIuYwo+PiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjgwNDFkMGM0NmE2Ygo+ PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vdmJveF9m Yi5jCj4+IEBAIC0wLDAgKzEsMTY2IEBACj4+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog TUlUCj4+ICsvKgo+PiArICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTcgT3JhY2xlIENvcnBvcmF0 aW9uCj4+ICsgKiBUaGlzIGZpbGUgaXMgYmFzZWQgb24gYXN0X2ZiLmMKPj4gKyAqIENvcHlyaWdo dCAyMDEyIFJlZCBIYXQgSW5jLgo+PiArICogQXV0aG9yczogRGF2ZSBBaXJsaWUgPGFpcmxpZWRA cmVkaGF0LmNvbT4KPj4gKyAqICAgICAgICAgIE1pY2hhZWwgVGhheWVyIDxtaWNoYWVsLnRoYXll ckBvcmFjbGUuY29tLAo+PiArICovCj4+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+ICsj aW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KPj4g KyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9tbS5oPgo+PiAr I2luY2x1ZGUgPGxpbnV4L3R0eS5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3N5c3JxLmg+Cj4+ICsj aW5jbHVkZSA8bGludXgvZGVsYXkuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9mYi5oPgo+PiArI2lu Y2x1ZGUgPGxpbnV4L2luaXQuaD4KPj4gKwo+PiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4+ICsj aW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Cj4+ICsjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIu aD4KPj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4+ICsKPj4gKyNpbmNsdWRl ICJ2Ym94X2Rydi5oIgo+PiArI2luY2x1ZGUgInZib3h2aWRlby5oIgo+PiArCj4+ICsjaWZkZWYg Q09ORklHX0RSTV9LTVNfRkJfSEVMUEVSCj4+ICtzdGF0aWMgc3RydWN0IGZiX2RlZmVycmVkX2lv IHZib3hfZGVmaW8gPSB7Cj4+ICsJLmRlbGF5ID0gSFogLyAzMCwKPj4gKwkuZGVmZXJyZWRfaW8g PSBkcm1fZmJfaGVscGVyX2RlZmVycmVkX2lvLAo+PiArfTsKPj4gKyNlbmRpZgo+PiArCj4+ICtz dGF0aWMgc3RydWN0IGZiX29wcyB2Ym94ZmJfb3BzID0gewo+PiArCS5vd25lciA9IFRISVNfTU9E VUxFLAo+PiArCS5mYl9jaGVja192YXIgPSBkcm1fZmJfaGVscGVyX2NoZWNrX3ZhciwKPj4gKwku ZmJfc2V0X3BhciA9IGRybV9mYl9oZWxwZXJfc2V0X3BhciwKPj4gKwkuZmJfZmlsbHJlY3QgPSBk cm1fZmJfaGVscGVyX3N5c19maWxscmVjdCwKPj4gKwkuZmJfY29weWFyZWEgPSBkcm1fZmJfaGVs cGVyX3N5c19jb3B5YXJlYSwKPj4gKwkuZmJfaW1hZ2VibGl0ID0gZHJtX2ZiX2hlbHBlcl9zeXNf aW1hZ2VibGl0LAo+PiArCS5mYl9wYW5fZGlzcGxheSA9IGRybV9mYl9oZWxwZXJfcGFuX2Rpc3Bs YXksCj4+ICsJLmZiX2JsYW5rID0gZHJtX2ZiX2hlbHBlcl9ibGFuaywKPj4gKwkuZmJfc2V0Y21h cCA9IGRybV9mYl9oZWxwZXJfc2V0Y21hcCwKPj4gKwkuZmJfZGVidWdfZW50ZXIgPSBkcm1fZmJf aGVscGVyX2RlYnVnX2VudGVyLAo+PiArCS5mYl9kZWJ1Z19sZWF2ZSA9IGRybV9mYl9oZWxwZXJf ZGVidWdfbGVhdmUsCj4+ICt9Owo+IFVzZSBEUk1fRkJfSEVMUEVSX0RFRkFVTFRfT1BTPwoKWWVz IGdvb2QsIGlkZWEsIGRvbmUuCgoKPiAKPj4gKwo+PiArc3RhdGljIHN0cnVjdCB2Ym94X2NydGMg KnZib3hfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBpKQo+ PiArewo+PiArCXN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3ggPQo+PiArCQljb250YWluZXJfb2Yo ZGV2LCBzdHJ1Y3QgdmJveF9wcml2YXRlLCBkZGV2KTsKPj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpj dXJzb3IgPSBOVUxMOwo+PiArCXN0cnVjdCB2Ym94X2NydGMgKnZib3hfY3J0YzsKPj4gKwlzdHJ1 Y3QgZHJtX3BsYW5lICpwcmltYXJ5Owo+PiArCXUzMiBjYXBzID0gMDsKPj4gKwlpbnQgcmV0Owo+ PiArCj4gLi4uCj4gCj4+ICsJcHJpbWFyeSA9IHZib3hfY3JlYXRlX3BsYW5lKHZib3gsIDEgPDwg aSwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4+ICsJaWYgKElTX0VSUihwcmltYXJ5KSkgewo+ PiArCQlyZXQgPSBQVFJfRVJSKHByaW1hcnkpOwo+PiArCQlnb3RvIGZyZWVfbWVtOwo+PiArCX0K PiBwcmltYXJ5IGlzIGEgcG9pbnRlciwgc28gaXQgaXMgd3JvbmcgdG8gdXNlIFBUUl9FUlIoKSBv biBhIHBvaW50ZXIuCgpQVFJfRVJSIHN0YW5kcyBmb3IgcG9pbnRlciB0byBlcnJvciBhbmQgcmV0 IGlzIGFuIGludCwgc28gdGhpcyBpcyBmaW5lLgoKPiBUaGlzIHdpbGwganVzdCBjYXN0IHRoaXMg dG8gYSBsb25nIHRoYXQgYWdhaW4gaXMgY2FzdGVkIHRvIGEgcG9pbnRlci4KPiAKPiBJdCB3b3Vs ZCBiZSBzaW1wbGVyIHRvIGRlY2xhcmUgcmV0IGEgdm9pZCAqIHRvIFBUUl9FUlIoKTsKPiAKPiAK Pj4gKwo+PiArCWlmICgoY2FwcyAmIFZCT1hfVkJWQV9DVVJTT1JfQ0FQQUJJTElUWV9IQVJEV0FS RSkpIHsKPj4gKwkJY3Vyc29yID0gdmJveF9jcmVhdGVfcGxhbmUodmJveCwgMSA8PCBpLCBEUk1f UExBTkVfVFlQRV9DVVJTT1IpOwo+PiArCQlpZiAoSVNfRVJSKGN1cnNvcikpIHsKPj4gKwkJCXJl dCA9IFBUUl9FUlIoY3Vyc29yKTsKPj4gKwkJCWdvdG8gY2xlYW5fcHJpbWFyeTsKPj4gKwkJfQo+ PiArCX0gZWxzZSB7Cj4+ICsJCURSTV9XQVJOKCJWaXJ0dWFsQm94IGhvc3QgaXMgdG9vIG9sZCwg bm8gY3Vyc29yIHN1cHBvcnRcbiIpOwo+PiArCX0KPj4gKwo+PiArCXZib3hfY3J0Yy0+Y3J0Y19p ZCA9IGk7Cj4+ICsKPj4gKwlyZXQgPSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRldiwgJnZi b3hfY3J0Yy0+YmFzZSwgcHJpbWFyeSwgY3Vyc29yLAo+PiArCQkJCQkmdmJveF9jcnRjX2Z1bmNz LCBOVUxMKTsKPj4gKwlpZiAocmV0KQo+PiArCQlnb3RvIGNsZWFuX2N1cnNvcjsKPj4gKwo+PiAr CWRybV9tb2RlX2NydGNfc2V0X2dhbW1hX3NpemUoJnZib3hfY3J0Yy0+YmFzZSwgMjU2KTsKPj4g Kwlkcm1fY3J0Y19oZWxwZXJfYWRkKCZ2Ym94X2NydGMtPmJhc2UsICZ2Ym94X2NydGNfaGVscGVy X2Z1bmNzKTsKPj4gKwo+PiArCXJldHVybiB2Ym94X2NydGM7Cj4+ICsKPj4gK2NsZWFuX2N1cnNv cjoKPj4gKwlpZiAoY3Vyc29yKSB7Cj4+ICsJCWRybV9wbGFuZV9jbGVhbnVwKGN1cnNvcik7Cj4+ ICsJCWtmcmVlKGN1cnNvcik7Cj4+ICsJfQo+PiArY2xlYW5fcHJpbWFyeToKPj4gKwlkcm1fcGxh bmVfY2xlYW51cChwcmltYXJ5KTsKPj4gKwlrZnJlZShwcmltYXJ5KTsKPj4gK2ZyZWVfbWVtOgo+ PiArCWtmcmVlKHZib3hfY3J0Yyk7Cj4+ICsJcmV0dXJuIEVSUl9QVFIocmV0KTsKPj4gK30KPj4g KwoKUmVnYXJkcywKCkhhbnMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==