From mboxrd@z Thu Jan 1 00:00:00 1970 From: Venu Busireddy Subject: Re: [PATCH 1/6] xen: Add support for hiding and unhiding pcie passthrough devices Date: Wed, 5 Jul 2017 14:38:10 -0500 Message-ID: <20170705193810.GA28550@vbusired-dt> References: <20170627171458.2529-1-venu.busireddy@oracle.com> <20170627171458.2529-2-venu.busireddy@oracle.com> <595BD4920200007800168732@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <595BD4920200007800168732@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Elena Ufimtseva , Tim Deegan , Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , xen-devel@lists.xen.org, Daniel De Graaf List-Id: xen-devel@lists.xenproject.org T24gMjAxNy0wNy0wNCAwOTo0Njo1OCAtMDYwMCwgSmFuIEJldWxpY2ggd3JvdGU6Cj4gPj4+IE9u IDI3LjA2LjE3IGF0IDE5OjE0LCA8dmVudS5idXNpcmVkZHlAb3JhY2xlLmNvbT4gd3JvdGU6Cj4g Cj4gRmlyc3Qgb2YgYWxsLCBwbGVhc2UgQ2MgYWxsIG1haW50YWluZXJzIG9mIGNvZGUgeW91IG1v ZGlmeS4KCkkgd2FzIHVzaW5nIHRoZSBuYW1lcyBzcGl0IG91dCBieSB0aGUgc2NyaXB0cy9nZXRf bWFpbnRhaW5lci5wbCBzY3JpcHQKZm9yIHRoZSBwYXRjaCBmaWxlLiBJIGRpZG4ndCBrbm93IHRo YXQgdGhlIHNjcmlwdCBoYWQgYSAiLWYiIG9wdGlvbiwgYW5kCndpdGhvdXQgaXQsIHRoZSBzY3Jp cHQgc3BpdHMgb3V0IG9ubHkgdHdvIG5hbWVzLCB3aGljaCBJIGluY2x1ZGVkLiBJIG5vdwpoYXZl IENjJ2VkIGFsbCB0aGUgbmFtZXMgdGhhdCB0aGUgIi1mIiBvcHRpb24gcHJvZHVjZWQuIEludGVy ZXN0aW5nbHksCkRhbmllbCdzIG5hbWUgaXMgbm90IGluIHRoZSAiLWYiIG91dHB1dCwgYW5kIGhl bmNlLCBJIGFtIHN0aWxsIGNvbmZ1c2VkCndoYXQgdGhlIGNvcnJlY3QgbGlzdCBpcyEKCj4gPiB4 ZW46IEFkZCBzdXBwb3J0IGZvciBoaWRpbmcgYW5kIHVuaGlkaW5nIHBjaWUgcGFzc3Rocm91Z2gg ZGV2aWNlcwo+IAo+IFBsZWFzZSBkb24ndCByZXBlYXQgdGhlIHN1YmplY3QgaW4gdGhlIGJvZHkg b2YgdGhlIG1haWwuCgpUaGlzIGlzIGEgbWlzdGFrZS4gV2lsbCBmaXggaXQuCgo+ID4gQWRkIHN1 cHBvcnQgZm9yIGhpZGluZyBhbmQgdW5oaWRpbmcgKGJ5IGludHJvZHVjaW5nIHR3byBuZXcgaHlw ZXJjYWxsCj4gPiBzdWJvcHMpIHBjaSBkZXZpY2VzIHRoYXQgdHJpZ2dlciBBRVIgZmF0YWwgZXJy b3JzIHdoaWxlIGFzc2lnbmVkIHRvCj4gPiBndWVzdHMgaW4gcGFzc3Rocm91Z2ggbW9kZS4gSGlk aW5nIG9mIHRoZSBkZXZpY2UgaXMgZG9uZSBieSBhc3NpZ25pbmcKPiA+IGl0IHRvIGRvbV94ZW4g ZHVtbXkgZG9tYWluLgo+IAo+IFdvdWxkIHlvdSBtaW5kIGV4cGxhaW5pbmcgd2h5IHNpbXBseSBk ZS1hc3NpZ25pbmcgdGhlIGRldmljZQo+ICh3aXRoIGFuIGV4aXN0aW5nIG9wZXJhdGlvbikgaXNu J3Qgc3VpdGFibGUgaGVyZT8gKFRoaXMgZXhwbGFuYXRpb24KPiB3b3VsZCBwcmVzdW1hYmx5IGJl bG9uZyBlaXRoZXIgaW4gdGhlIGRlc2NyaXB0aW9uIGhlcmUgb3IgaW4gdGhlCj4gY292ZXIgbGV0 dGVyLikKCk15IGluaXRpYWwgdGhpbmtpbmcgKGZvciB0aGUgZmlyc3QgcmV2aXNpb24pIHdhcyB0 aGF0IHRoZSBndWVzdCBhbmQKdGhlIGRldmljZSB0b2dldGhlciBhcmUgcGFydHkgdG8gdGhlIGV2 aWwgdGhpbmdzLCBhbmQgaGVuY2UgdGhlIGd1ZXN0CnNob3VsZCBiZSBraWxsZWQuIEJ1dCBJIGFn cmVlIHRoYXQgdW5hc3NpZ25pbmcgdGhlIGRldmljZSBzaG91bGQgYmUKc3VmZmljaWVudC4gT25j ZSB0aGUgZGV2aWNlIGlzIHJlbW92ZWQsIHRoZSBndWVzdCBjYW4ndCBkbyBtdWNoIHRoYXQKYW55 IG90aGVyIGd1ZXN0IGNhbid0LiBUaGVyZWZvcmUsIEkgd2lsbCBjaGFuZ2UgdGhpcyBwYXRjaHNl dCB0byBzaW1wbHkKdW5hc3NpZ24gdGhlIGRldmljZSBmcm9tIHRoZSBndWVzdC4KCklzIHRoYXQg YWNjZXB0YWJsZT8KCj4gPiAtLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCj4gPiArKysgYi94ZW4v Y29tbW9uL2RvbWN0bC5jCj4gPiBAQCAtMzkzLDkgKzM5MywxNSBAQCBsb25nIGRvX2RvbWN0bChY RU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9kb21jdGxfdCkgdV9kb21jdGwpCj4gPiAgICAgIHsK PiA+ICAgICAgY2FzZSBYRU5fRE9NQ1RMX2NyZWF0ZWRvbWFpbjoKPiA+ICAgICAgY2FzZSBYRU5f RE9NQ1RMX3Rlc3RfYXNzaWduX2RldmljZToKPiA+ICsgICAgY2FzZSBYRU5fRE9NQ1RMX3Rlc3Rf aGlkZGVuX2RldmljZToKPiA+ICAgICAgY2FzZSBYRU5fRE9NQ1RMX2dkYnN4X2d1ZXN0bWVtaW86 Cj4gPiAgICAgICAgICBkID0gTlVMTDsKPiA+ICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICBjYXNl IFhFTl9ET01DVExfaGlkZV9kZXZpY2U6Cj4gPiArICAgIGNhc2UgWEVOX0RPTUNUTF91bmhpZGVf ZGV2aWNlOgo+ID4gKyAgICAgICAgcmN1X2xvY2tfZG9tYWluKGRvbV94ZW4pOwo+ID4gKyAgICAg ICAgZCA9IGRvbV94ZW47Cj4gPiArICAgICAgICBicmVhazsKPiAKPiBJJ20gb3Bwb3NlZCB0byB0 aGUgaW50cm9kdWN0aW9uIG9mIG5ldyBvcGVyYXRpb25zIHdoaWNoIGlnbm9yZSB0aGUKPiBpbnB1 dCBkb21haW4gSUQuIFNlZSBteSByZWNlbnQgcGF0Y2ggZWxpbWluYXRpbmcgdGhpcyBmb3IKPiBY RU5fRE9NQ1RMX3Rlc3RfYXNzaWduX2RldmljZSBbMV0uIElmIHRoZXNlIHJlYWxseSBhcmUgZG9t YWluCj4gaW5kZXBlbmRlbnQgb3BlcmF0aW9ucywgdGhleSBvdWdodCB0byBiZSBzeXNjdGxzLgoK RG8geW91IHRoaW5rIHRoZXJlIGlzIGEgbmVlZCB0byBoaWRlIHRoZSBkZXZpY2UgYWZ0ZXIgdW5h c3NpZ25pbmcgaXQKZnJvbSB0aGUgZ3Vlc3Q/IElmIHRoZSBhbnN3ZXIgaXMgIm5vIiwgdGhlbiB0 aGlzIGNvZGUgd2lsbCBnbyBhd2F5LiBJZgp0aGUgYW5zd2VyIGlzICJ5ZXMiLCB0aGVuIEkgd2ls bCBjaGFuZ2UgaXQgYXMgeW91IGRpZCBpbiB5b3VyIHJlZmVyZW5jZQpbMV0uIFBsZWFzZSBsZXQg bWUga25vdy4KCj4gPiBAQCAtMTMzMywxOSArMTMzNCwzMSBAQCBpbnQgaW9tbXVfcmVtb3ZlX2Rl dmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKPiA+ICAgICAgcmV0dXJuIGhkLT5wbGF0Zm9ybV9v cHMtPnJlbW92ZV9kZXZpY2UocGRldi0+ZGV2Zm4sIHBjaV90b19kZXYocGRldikpOwo+ID4gIH0K PiA+ICAKPiA+ICtzdGF0aWMgYm9vbCBkZXZpY2VfYXNzaWduZWRfdG9fZG9tYWluKHN0cnVjdCBk b21haW4gKmQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCj4gPiArewo+ID4gKyAgICBib29s IHJjID0gZmFsc2U7Cj4gPiArCj4gPiArICAgIHBjaWRldnNfbG9jaygpOwo+ID4gKwo+ID4gKyAg ICBpZiAoIHBjaV9nZXRfcGRldl9ieV9kb21haW4oZCwgc2VnLCBidXMsIGRldmZuKSApCj4gPiAr ICAgICAgICByYyA9IHRydWU7Cj4gPiArCj4gPiArICAgIHBjaWRldnNfdW5sb2NrKCk7Cj4gPiAr ICAgIHJldHVybiByYzsKPiA+ICt9Cj4gPiArCj4gPiAgLyoKPiA+ICAgKiBJZiB0aGUgZGV2aWNl IGlzbid0IG93bmVkIGJ5IHRoZSBoYXJkd2FyZSBkb21haW4sIGl0IG1lYW5zIGl0IGFscmVhZHkK PiA+ICAgKiBoYXMgYmVlbiBhc3NpZ25lZCB0byBvdGhlciBkb21haW4sIG9yIGl0IGRvZXNuJ3Qg ZXhpc3QuCj4gPiAgICovCj4gPiAgc3RhdGljIGludCBkZXZpY2VfYXNzaWduZWQodTE2IHNlZywg dTggYnVzLCB1OCBkZXZmbikKPiA+ICB7Cj4gPiAtICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2Owo+ ID4gLQo+ID4gLSAgICBwY2lkZXZzX2xvY2soKTsKPiA+IC0gICAgcGRldiA9IHBjaV9nZXRfcGRl dl9ieV9kb21haW4oaGFyZHdhcmVfZG9tYWluLCBzZWcsIGJ1cywgZGV2Zm4pOwo+ID4gLSAgICBw Y2lkZXZzX3VubG9jaygpOwo+ID4gKyAgICByZXR1cm4gZGV2aWNlX2Fzc2lnbmVkX3RvX2RvbWFp bihoYXJkd2FyZV9kb21haW4sIHNlZywgYnVzLCBkZXZmbikgPyAwIDogLUVCVVNZOwo+ID4gK30K PiA+ICAKPiA+IC0gICAgcmV0dXJuIHBkZXYgPyAwIDogLUVCVVNZOwo+ID4gK3N0YXRpYyBpbnQg ZGV2aWNlX2hpZGRlbih1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKQo+ID4gK3sKPiA+ICsgICAg cmV0dXJuIGRldmljZV9hc3NpZ25lZF90b19kb21haW4oZG9tX3hlbiwgc2VnLCBidXMsIGRldmZu KSA/IC1FQlVTWSA6IDA7Cj4gPiAgfQo+IAo+IEF0IGxlYXN0IHRoaXMgbmV3IGZ1bmN0aW9uIHlv dSBhZGQgd2FudHMgdG8gcmV0dXJuIGJvb2wuIEkgY2Fubm90Cj4gc2VlIGhvdyAtRUJVU1kgY291 bGQgYmUgYW4gYXBwcm9wcmlhdGUgcmV0dXJuIHZhbHVlIGZvciBtZWFuaW5nCj4gInllcyIuCgpX aWxsIGNoYW5nZSwgaWYgdGhpcyBjb2RlIHN0YXlzIChkZXBlbmRzIG9uIHRoZSBhbnN3ZXIgdG8g cXVlc3Rpb24gYWJvdmUpLgoKPiAKPiA+IEBAIC0xMzU0LDYgKzEzNjcsMjIgQEAgc3RhdGljIGlu dCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2 Zm4sIHUzMiBmbGFnKQo+ID4gICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsKPiA+ICAgICAgaW50 IHJjID0gMDsKPiA+ICAKPiA+ICsgICAgaWYgKCBkZXZpY2VfaGlkZGVuKHNlZywgYnVzLCBkZXZm bikgKQo+ID4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiArICAgIGlmICggZCA9 PSBkb21feGVuICkKPiA+ICsgICAgewo+ID4gKyAgICAgICAgcGRldiA9IHBjaV9nZXRfcGRldihz ZWcsIGJ1cywgZGV2Zm4pOwo+ID4gKyAgICAgICAgaWYgKCBwZGV2ICkKPiA+ICsgICAgICAgIHsK PiA+ICsgICAgICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmZG9tX3hlbi0+ YXJjaC5wZGV2X2xpc3QpOwo+ID4gKyAgICAgICAgICAgIHBkZXYtPmRvbWFpbiA9IGRvbV94ZW47 Cj4gPiArICAgICAgICAgICAgcmV0dXJuIHJjOwo+ID4gKyAgICAgICAgfQo+ID4gKyAgICAgICAg ZWxzZQo+ID4gKyAgICAgICAgICAgIHJldHVybiAtRU5PREVWOwo+ID4gKyAgICB9Cj4gPiArCj4g PiAgICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9ybV9vcHMgKQo+ID4gICAg ICAgICAgcmV0dXJuIDA7Cj4gCj4gWW91ciBhZGRpdGlvbiBhcHBlYXJzIHRvIGJlIG1pc3BsYWNl ZCAod291bGQgYmVsb25nIGJlbG93IHRoZQoKV2lsbCBjaGFuZ2UsIGlmIHRoaXMgY29kZSBzdGF5 cy4uLgoKPiBjaGVja3Mgc2VlbiBhYm92ZSkuIEFkZGl0aW9uYWxseSB5b3UgZmFpbCB0byBhY3F1 aXJlIHRoZSBwY2lkZXZzCgpJIGFtIGFjcXVpcmluZyB0aGUgbG9jayBpbiBpb21tdV9kb19wY2lf ZG9tY3RsKCkgaW4gdGhlIGNhc2UKIlhFTl9ET01DVExfaGlkZV9kZXZpY2UuIiBJcyB0aGF0IG5v dCBzdWZmaWNpZW50PwoKPiBsb2NrLiBBbmQgdGhlIGNvZGUgd291bGQgbGlrZWx5IHJlYWQgYmV0 dGVyIGlmIHlvdSBpbnZlcnRlZCB0aGUKPiBpbm5lciBpZigpJ3MgY29uZGl0aW9uIGFuZCBvbWl0 dGVkIHRoZSAiZWxzZSIgYW5kIHRoZSBicmFjZXMuCj4gRmluYWxseSBJJ2QgcHJlZmVyIGlmIHlv dSB1c2VkIGQgaW5zdGVhZCBvZiBkb21feGVuIGV2ZXJ5d2hlcmUKPiBpbnNpZGUgdGhlIG91dGVy IGlmKCkuCgpXaWxsIGNoYW5nZSwgaWYgdGhpcyBjb2RlIHN0YXlzLi4uCgo+ID4gQEAgLTE2Nzks NyArMTc0Myw4NiBAQCBpbnQgaW9tbXVfZG9fcGNpX2RvbWN0bCgKPiA+ICAgICAgICAgICAgICAg ICAgICAgImRlYXNzaWduICUwNHg6JTAyeDolMDJ4LiV1IGZyb20gZG9tJWQgZmFpbGVkICglZClc biIsCj4gPiAgICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBD SV9GVU5DKGRldmZuKSwKPiA+ICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCByZXQp Owo+ID4gKyAgICAgICAgYnJlYWs7Cj4gPiArCj4gPiArICAgIGNhc2UgWEVOX0RPTUNUTF9oaWRl X2RldmljZToKPiA+ICsgICAgICAgIG1hY2hpbmVfc2JkZiA9IGRvbWN0bC0+dS5hc3NpZ25fZGV2 aWNlLnUucGNpLm1hY2hpbmVfc2JkZjsKPiA+ICsgICAgICAgIHJldCA9IHhzbV9oaWRlX2Rldmlj ZShYU01fSE9PSywgZCwgbWFjaGluZV9zYmRmKTsKPiA+ICsgICAgICAgIGlmICggcmV0ICkKPiA+ ICsgICAgICAgICAgICBicmVhazsKPiA+ICsKPiA+ICsgICAgICAgIGlmICggdW5saWtlbHkoZC0+ aXNfZHlpbmcpICkKPiA+ICsgICAgICAgIHsKPiA+ICsgICAgICAgICAgICByZXQgPSAtRUFHQUlO Owo+ID4gKyAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICAgfQo+ID4gKwo+ID4gKyAgICAg ICAgc2VnID0gbWFjaGluZV9zYmRmID4+IDE2Owo+ID4gKyAgICAgICAgYnVzID0gUENJX0JVUyht YWNoaW5lX3NiZGYpOwo+ID4gKyAgICAgICAgZGV2Zm4gPSBQQ0lfREVWRk4yKG1hY2hpbmVfc2Jk Zik7Cj4gPiArICAgICAgICBmbGFnID0gZG9tY3RsLT51LmFzc2lnbl9kZXZpY2UuZmxhZzsKPiA+ ICsKPiA+ICsgICAgICAgIGlmICggZGV2aWNlX2hpZGRlbihzZWcsIGJ1cywgZGV2Zm4pICkKPiA+ ICsgICAgICAgIHsKPiA+ICsgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+ID4gKyAgICAgICAg ICAgIGJyZWFrOwo+ID4gKyAgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAgcGNpZGV2c19sb2Nr KCk7Cj4gPiArICAgICAgICByZXQgPSBhc3NpZ25fZGV2aWNlKGRvbV94ZW4sIHNlZywgYnVzLCBk ZXZmbiwgZmxhZyk7Cj4gPiArICAgICAgICBwY2lkZXZzX3VubG9jaygpOwo+ID4gKyAgICAgICAg aWYgKCByZXQgPT0gLUVSRVNUQVJUICkKPiA+ICsgICAgICAgICAgICByZXQgPSBoeXBlcmNhbGxf Y3JlYXRlX2NvbnRpbnVhdGlvbihfX0hZUEVSVklTT1JfZG9tY3RsLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoIiwgdV9kb21jdGwpOwo+ID4g KyAgICAgICAgZWxzZSBpZiAoIHJldCApCj4gPiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19H X0VSUiAiWEVOX0RPTUNUTF9oaWRlX2RldmljZTogIgo+ID4gKyAgICAgICAgICAgICAgICAgICAi aGlkZSAlMDR4OiUwMng6JTAyeC4ldSBmYWlsZWQgKCVkKVxuIiwKPiA+ICsgICAgICAgICAgICAg ICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLCByZXQpOwo+ ID4gKyAgICAgICAgYnJlYWs7Cj4gPiArCj4gPiArICAgIGNhc2UgWEVOX0RPTUNUTF91bmhpZGVf ZGV2aWNlOgo+ID4gKyAgICAgICAgbWFjaGluZV9zYmRmID0gZG9tY3RsLT51LmFzc2lnbl9kZXZp Y2UudS5wY2kubWFjaGluZV9zYmRmOwo+ID4gKyAgICAgICAgcmV0ID0geHNtX3VuaGlkZV9kZXZp Y2UoWFNNX0hPT0ssIGQsIG1hY2hpbmVfc2JkZik7Cj4gPiArICAgICAgICBpZiAoIHJldCApCj4g PiArICAgICAgICAgICAgYnJlYWs7Cj4gPiArCj4gPiArICAgICAgICBpZiAoIHVubGlrZWx5KGQt PmlzX2R5aW5nKSApCj4gPiArICAgICAgICB7Cj4gPiArICAgICAgICAgICAgcmV0ID0gLUVJTlZB TDsKPiA+ICsgICAgICAgICAgICBicmVhazsKPiA+ICsgICAgICAgIH0KPiA+ICsKPiA+ICsgICAg ICAgIHNlZyA9IG1hY2hpbmVfc2JkZiA+PiAxNjsKPiA+ICsgICAgICAgIGJ1cyA9IFBDSV9CVVMo bWFjaGluZV9zYmRmKTsKPiA+ICsgICAgICAgIGRldmZuID0gUENJX0RFVkZOMihtYWNoaW5lX3Ni ZGYpOwo+ID4gKwo+ID4gKyAgICAgICAgaWYgKCAhZGV2aWNlX2hpZGRlbihzZWcsIGJ1cywgZGV2 Zm4pICkKPiA+ICsgICAgICAgIHsKPiA+ICsgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+ID4g KyAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAgcGNp ZGV2c19sb2NrKCk7Cj4gPiArICAgICAgICByZXQgPSBkZWFzc2lnbl9kZXZpY2UoZG9tX3hlbiwg c2VnLCBidXMsIGRldmZuKTsKPiA+ICsgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7Cj4gPiArCj4g PiArICAgICAgICBpZiAoIHJldCA9PSAtRVJFU1RBUlQgKQo+ID4gKyAgICAgICAgICAgIHJldCA9 IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKF9fSFlQRVJWSVNPUl9kb21jdGwsCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImgiLCB1X2Rv bWN0bCk7Cj4gPiArICAgICAgICBlbHNlIGlmICggcmV0ICkKPiA+ICsgICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0dfRVJSICJYRU5fRE9NQ1RMX3VuaGlkZV9kZXZpY2U6ICIKPiA+ICsgICAgICAg ICAgICAgICAgICAgImFzc2lnbiAlMDR4OiUwMng6JTAyeC4ldSB0byBkb20lZCBmYWlsZWQgKCVk KVxuIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwg UENJX0ZVTkMoZGV2Zm4pLAo+ID4gKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJl dCk7Cj4gPiArICAgICAgICBicmVhazsKPiAKPiBBcyBpdCBsb29rcyB5b3UncmUgZHVwbGljYXRp bmcgYSB3aG9sZSBsb3Qgb2YgY29kZSBoZXJlLCB3aXRoIGp1c3QKPiBtaW5vciB2YXJpYXRpb25z IHRvIHRoZSBvcmlnaW5hbC4gVGhpcyBpcyBub3QgYSBnb29kIGlkZWEKPiBtYWludGVuYW5jZSB3 aXNlLCBzbyB5b3UnZCBoYXZlIHRvIGhhdmUgYSBnb29kIHJlYXNvbiBmb3IKPiBkb2luZyBzby4K ClRoZSBvbmx5IGdvb2QgcmVhc29uIEkgaGF2ZSBpcyB0aGF0IHRoaXMgaXMgbXVjaCBlYXNpZXIg dG8gcmVhZC4gSWYgeW91CnByZWZlciB0byBjb2RlIHRoZSB3YXkgeW91IGNvZGVkIGluIHlvdXIg cmVmZXJlbmNlIFsxXSwgSSBjYW4gY2hhbmdlCml0LiBEbyB5b3Ugd2FudCBtZSB0bz8KCj4gPiAt LS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKPiA+ICsrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9kb21jdGwuaAo+ID4gQEAgLTEyMjIsNiArMTIyMiw5IEBAIHN0cnVjdCB4ZW5fZG9tY3Rs IHsKPiA+ICAjZGVmaW5lIFhFTl9ET01DVExfZ2Ric3hfcGF1c2V2Y3B1ICAgICAgICAgICAgIDEw MDEKPiA+ICAjZGVmaW5lIFhFTl9ET01DVExfZ2Ric3hfdW5wYXVzZXZjcHUgICAgICAgICAgIDEw MDIKPiA+ICAjZGVmaW5lIFhFTl9ET01DVExfZ2Ric3hfZG9tc3RhdHVzICAgICAgICAgICAgIDEw MDMKPiA+ICsjZGVmaW5lIFhFTl9ET01DVExfaGlkZV9kZXZpY2UgICAgICAgICAgICAgICAgIDIw MDEKPiA+ICsjZGVmaW5lIFhFTl9ET01DVExfdW5oaWRlX2RldmljZSAgICAgICAgICAgICAgIDIw MDIKPiA+ICsjZGVmaW5lIFhFTl9ET01DVExfdGVzdF9oaWRkZW5fZGV2aWNlICAgICAgICAgIDIw MDMKPiAKPiBXaHkgdGhlc2Ugc3RyYW5nZSBudW1iZXJzPwoKSSBzYXcgdGhlIG51bWJlcnMganVt cCBmcm9tIDc5IHRvIDEwMDAgdGhydSAxMDAzLCBhbmQgbGlrZXdpc2UgdXNlZApkaWZmZXJlbnQg c3RhcnRpbmcgbnVtYmVycy4gV291bGQgeW91IHByZWZlciA4MCB0aHJ1IDgyLCBvciAxMDA0IHRo cnUKMTAwNj8gT2YgY291cnNlLCBkZXBlbmRzIG9uIHdoZXRoZXIgd2Ugc3VwcG9ydCB0aGUgaGlk ZS91bmhpZGUgb3BlcmF0aW9ucy4KCj4gPiBAQCAtMTc4Myw2ICsxNzk5LDkgQEAgc3RhdGljIHN0 cnVjdCB4c21fb3BlcmF0aW9ucyBmbGFza19vcHMgPSB7Cj4gPiAgICAgIC50ZXN0X2Fzc2lnbl9k ZXZpY2UgPSBmbGFza190ZXN0X2Fzc2lnbl9kZXZpY2UsCj4gPiAgICAgIC5hc3NpZ25fZGV2aWNl ID0gZmxhc2tfYXNzaWduX2RldmljZSwKPiA+ICAgICAgLmRlYXNzaWduX2RldmljZSA9IGZsYXNr X2RlYXNzaWduX2RldmljZSwKPiA+ICsgICAgLmhpZGVfZGV2aWNlID0gZmxhc2tfaGlkZV9kZXZp Y2UsCj4gPiArICAgIC51bmhpZGVfZGV2aWNlID0gZmxhc2tfdW5oaWRlX2RldmljZSwKPiA+ICsg ICAgLnRlc3RfaGlkZGVuX2RldmljZSA9IGZsYXNrX3Rlc3RfaGlkZGVuX2RldmljZSwKPiA+ICAj ZW5kaWYKPiAKPiBUaGlzIGlzIGNvbnRyYXJ5IHRvIHdoYXQgeW91IHNheSBpbiB0aGUgZGVzY3Jp cHRpb24sIGFuZCB3aXRob3V0Cj4gcmVzcGVjdGl2ZSBmaWVsZHMgYmVpbmcgYWRkZWQgdG8gc3Ry dWN0IHhzbV9vcGVyYXRpb25zIEkgY2FuJ3QKPiBzZWUgaG93IHRoaXMgd291bGQgYnVpbGQuCgpN eSBtaXN0YWtlISBJIGRpZCBub3QgaGF2ZSBYU00gZW5hYmxlZCBpbiBteSBidWlsZCwgYW5kIGhl bmNlIHRoZQpidWlsZCB3ZW50IHRocm91Z2gsIGFuZCBJIGRpZG4ndCByZWFsaXplIHRoYXQgSSBm b3Jnb3QgdG8gY2hhbmdlIHRoZQp4c21fb3BlcmF0aW9ucyBzdHJ1Y3R1cmUhIFdpbGwgZml4IGl0 IQoKVmVudQoKPiBbMV0gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1s L3hlbi1kZXZlbC8yMDE3LTA2L21zZzAyODcxLmh0bWwKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=