From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH RFC 18/20] libxc/acpi: Build ACPI tables for HVMlite guests Date: Mon, 06 Jun 2016 07:29:54 -0600 Message-ID: <575596F202000078000F2098@prv-mh.provo.novell.com> References: <1459905949-10358-1-git-send-email-boris.ostrovsky@oracle.com> <1459905949-10358-19-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1459905949-10358-19-git-send-email-boris.ostrovsky@oracle.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Boris Ostrovsky Cc: xen-devel@lists.xen.org, Stefano Stabellini , Wei Liu , roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDA2LjA0LjE2IGF0IDAzOjI1LCA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+IHdy b3RlOgo+IC0tLSAvZGV2L251bGwKPiArKysgYi90b29scy9saWJ4Yy94Y19hY3BpLmMKPiBAQCAt MCwwICsxLDI2OCBAQAo+ICsjaW5jbHVkZSA8c3RkaW8uaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5o Pgo+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgo+ICsjaW5j bHVkZSA8YXNzZXJ0Lmg+Cj4gKwo+ICsjaW5jbHVkZSA8eGVuL3hlbi5oPgo+ICsjaW5jbHVkZSA8 eGVuL2ZvcmVpZ24veDg2XzMyLmg+Cj4gKyNpbmNsdWRlIDx4ZW4vZm9yZWlnbi94ODZfNjQuaD4K CldoeSBhcmUgdGhlc2UgdHdvIG5lZWRlZCBoZXJlPyBUaGUgY29kZSBoZXJlIHNob3VsZG4ndCBj YXJlCmFib3V0IHRoZSBtb2RlIHRoZSBndWVzdCBtYXkgbGF0ZXIgd2FudCB0byBydW4gaW4uCgo+ ICsjaW5jbHVkZSA8eGVuL2h2bS9odm1faW5mb190YWJsZS5oPgo+ICsjaW5jbHVkZSA8eGVuL2lv L3Byb3RvY29scy5oPgo+ICsKPiArI2luY2x1ZGUgInhnX3ByaXZhdGUuaCIKPiArI2luY2x1ZGUg InhjX2RvbS5oIgo+ICsjaW5jbHVkZSAieGVuY3RybC5oIgo+ICsKPiArI2luY2x1ZGUgImFjcGky XzAuaCIKPiArCj4gKyNkZWZpbmUgUkVTRVJWRURfTUVNT1JZX0RZTkFNSUNfU1RBUlQgMHhGQzAw MTAwMAo+ICsjZGVmaW5lIEFDUElfUEhZU0lDQUxfQUREUkVTUyAgICAgICAgIDB4MDAwRUEwMjAK PiArCj4gKy8qIEluaXRpYWwgYWxsb2NhdGlvbiBmb3IgQUNQSSB0YWJsZXMgKi8KPiArI2RlZmlu ZSBOVU1fQUNQSV9QQUdFUyAgMTYKCldpdGggd2hpY2ggb3RoZXIgZGVmaW5pdGlvbnMgZG8gdGhl c2UgdGhyZWUgbmVlZCB0byByZW1haW4gaW4gc3luYz8KCj4gKyNkZWZpbmUgUEZOKHBhZGRyKSAg KChwYWRkcikgPj4gUEFHRV9TSElGVCkKPiArCj4gK2V4dGVybiB1bnNpZ25lZCBjaGFyIGRzZHRf YW55Y3B1W10sIGRzZHRfMTVjcHVbXSwgZHNkdF9lbXB0eVtdOwoKY29uc3QKCj4gK2V4dGVybiBp bnQgZHNkdF9hbnljcHVfbGVuLCBkc2R0XzE1Y3B1X2xlbiwgZHNkdF9lbXB0eV9sZW47CgpBbmQg ZXZlbiB0aGVzZSBtYXkgd2FudCB0byBiZSBjb25zdCAoYW5kIGNlcnRhaW5seSB1bnNpZ25lZCku Cgo+ICtzdGF0aWMgaW50IGluaXRfYWNwaV9jb25maWcoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9t LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFjcGlfY29uZmlnICpjb25m aWcpCj4gK3sKPiArICAgIHhjX2ludGVyZmFjZSAqeGNoID0gZG9tLT54Y2g7Cj4gKyAgICB1aW50 MzJfdCBkb21pZCA9IGRvbS0+Z3Vlc3RfZG9taWQ7Cj4gKyAgICB4Y19kb21pbmZvX3QgaW5mbzsK PiArICAgIGludCBpLCByYzsKPiArCj4gKyAgICBtZW1zZXQoY29uZmlnLCAwLCBzaXplb2YoKmNv bmZpZykpOwo+ICsKPiArICAgIGNvbmZpZy0+ZHNkdF9hbnljcHUgPSBjb25maWctPmRzZHRfMTVj cHUgPSBkc2R0X2VtcHR5Owo+ICsgICAgY29uZmlnLT5kc2R0X2FueWNwdV9sZW4gPSBjb25maWct PmRzZHRfMTVjcHVfbGVuID0gZHNkdF9lbXB0eV9sZW47CgpXaGF0IGdvb2QgZG9lcyBhbiBlbXB0 eSBEU0RUIGRvPyAoUGVyaGFwcyB0aGlzIHF1ZXN0aW9uIGlzIGEKcmVzdWx0IG9mIHRoZXJlIG5v dCBiZWluZyBhbnkgZGVzY3JpcHRpb24gb2YgdGhpcyBjaGFuZ2UuKQoKPiArICAgIHJjID0geGNf ZG9tYWluX2dldGluZm8oeGNoLCBkb21pZCwgMSwgJmluZm8pOwo+ICsgICAgaWYgKCByYyA8IDAg KQo+ICsgICAgewo+ICsgICAgICAgIERPTVBSSU5URigiJXM6IGdldGRvbWFpbmluZm8gZmFpbGVk IChyYz0lZCkiLCBfX0ZVTkNUSU9OX18sIHJjKTsKPiArICAgICAgICByZXR1cm4gcmM7Cj4gKyAg ICB9Cj4gKwo+ICsgICAgY29uZmlnLT5hcGljX21vZGUgPSAxOwo+ICsKPiArICAgIGlmICggZG9t LT5ucl92bm9kZXMgKQo+ICsgICAgewo+ICsgICAgICAgIHN0cnVjdCBhY3BpX251bWEgKm51bWEg PSAmY29uZmlnLT5udW1hOwo+ICsKPiArICAgICAgICBudW1hLT52bWVtcmFuZ2UgPSBjYWxsb2Mo ZG9tLT5ucl92bWVtcmFuZ2VzLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoKm51bWEtPnZtZW1yYW5nZSkpOwo+ICsgICAgICAgIG51bWEtPnZkaXN0YW5jZSA9IGNh bGxvYyhkb20tPm5yX3Zub2RlcywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKCpudW1hLT52ZGlzdGFuY2UpKTsKPiArICAgICAgICBudW1hLT52Y3B1X3RvX3Zub2Rl ID0gY2FsbG9jKGNvbmZpZy0+bnJfdmNwdXMsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplb2YoKm51bWEtPnZjcHVfdG9fdm5vZGUpKTsKPiArICAgICAgICBpZiAo ICFudW1hLT52bWVtcmFuZ2UgfHwgIW51bWEtPnZkaXN0YW5jZSB8fCAhbnVtYS0+dmNwdV90b192 bm9kZSApCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBET01QUklOVEYoIiVzOiBPdXQgb2Yg bWVtb3J5IiwgX19GVU5DVElPTl9fKTsKPiArICAgICAgICAgICAgZnJlZShudW1hLT52bWVtcmFu Z2UpOwo+ICsgICAgICAgICAgICBmcmVlKG51bWEtPnZkaXN0YW5jZSk7Cj4gKyAgICAgICAgICAg IGZyZWUobnVtYS0+dmNwdV90b192bm9kZSk7Cj4gKyAgICAgICAgICAgIHJldHVybiAtRU5PTUVN Owo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgcmMgPSB4Y19kb21haW5fZ2V0dm51bWEoeGNo LCBkb21pZCwgJm51bWEtPm5yX3Zub2RlcywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmbnVtYS0+bnJfdm1lbXJhbmdlcywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmY29uZmlnLT5ucl92Y3B1cywgbnVtYS0+dm1lbXJhbmdlLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG51bWEtPnZkaXN0YW5jZSwgbnVtYS0+dmNwdV90b192bm9kZSk7 Cj4gKwo+ICsJICAgIGlmICggcmMgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgRE9NUFJJ TlRGKCIlczogeGNfZG9tYWluX2dldHZudW1hIGZhaWxlZCAocmM9JWQpIiwgX19GVU5DVElPTl9f LCByYyk7Cj4gKyAgICAgICAgICAgIHJldHVybiByYzsKPiArICAgICAgICB9Cj4gKyAgICB9Cj4g KyAgICBlbHNlCj4gKyAgICAgICAgY29uZmlnLT5ucl92Y3B1cyA9IGluZm8ubWF4X3ZjcHVfaWQg KyAxOwo+ICsKPiArICAgIGNvbmZpZy0+dmNwdV9vbmxpbmUgPSBjYWxsb2MoKEhWTV9NQVhfVkNQ VVMgKyA3KSAvIDgsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZigq Y29uZmlnLT52Y3B1X29ubGluZSkpOwo+ICsgICAgaWYgKCBjb25maWctPnZjcHVfb25saW5lID09 IE5VTEwgKQo+ICsgICAgewo+ICsgICAgICAgIERPTVBSSU5URigiJXM6IENhbid0IGFsbG9jYXRl IHZjcHVfb25saW5lIiwgX19GVU5DVElPTl9fKTsKPiArICAgICAgICByZXR1cm4gLUVOT01FTTsK PiArICAgIH0KPiArCj4gKyAgICBmb3IgKGk9MDsgaTxjb25maWctPm5yX3ZjcHVzOyBpKyspCgpZ b3Ugc2VlbSB0byBiZSBtaXhpbmcgc3R5bGVzIGhlcmUuCgo+ICtpbnQgeGNfZG9tX2J1aWxkX2Fj cGkoc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgYWNwaV9jb25m aWcgY29uZmlnOwo+ICsgICAgdWludDMyX3QgZG9taWQgPSBkb20tPmd1ZXN0X2RvbWlkOwo+ICsg ICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBkb20tPnhjaDsKPiArICAgIGludCByYywgaSwgYWNwaV9w YWdlc19udW07Cj4gKyAgICB4ZW5fcGZuX3QgZXh0ZW50LCAqZXh0ZW50czsKPiArICAgIHZvaWQg KmFjcGlfcGFnZXMsICphY3BpX3BoeXNpY2FsOwo+ICsgICAgdm9pZCAqZ3Vlc3RfaW5mb19wYWdl LCAqZ3Vlc3RfYWNwaV9wYWdlczsKPiArCj4gKyAgICByYyA9IGluaXRfYWNwaV9jb25maWcoZG9t LCAmY29uZmlnKTsKPiArICAgIGlmICggcmMgKQo+ICsgICAgewo+ICsgICAgICAgIERPTVBSSU5U RigiJXM6IGluaXRfYWNwaV9jb25maWcgZmFpbGVkIChyYz0lZCkiLCBfX0ZVTkNUSU9OX18sIHJj KTsKPiArICAgICAgICByZXR1cm4gcmM7Cj4gKyAgICB9Cj4gKwo+ICsgICAgLyoKPiArICAgICAq IFBhZ2VzIHRvIGhvbGQgQUNQSSB0YWJsZXMgYW5kIG9uZSBwYWdlIGZvciBhY3BpX2luZm8sIHdo aWNoCj4gKyAgICAgKiB3aWxsIGJlIHRoZSBmaXJzdCBvbmUgaW4gdGhpcyByZWdpb24uCj4gKyAg ICAgKi8KPiArICAgIGFjcGlfcGFnZXMgPSB4Y19tZW1hbGlnbih4Y2gsIFBBR0VfU0laRSwgTlVN X0FDUElfUEFHRVMgKiBQQUdFX1NJWkUpOwo+ICsgICAgaWYgKCAhYWNwaV9wYWdlcyApCj4gKyAg ICB7Cj4gKyAgICAgICAgRE9NUFJJTlRGKCIlczogQ2FuJ3QgYWxsb2NhdGUgYWNwaSBwYWdlcyIs IF9fRlVOQ1RJT05fXyk7Cj4gKyAgICAgICAgcmMgPSAtMTsKPiArICAgICAgICBnb3RvIG91dDsK PiArICAgIH0KPiArCj4gKyAgICBjb25maWcuYWNwaV9pbmZvX3BhZ2UgPSBhY3BpX3BhZ2VzOwo+ ICsKPiArICAgIC8qIFNldCB1cCBhbGxvY2F0b3IgbWVtb3J5ICovCj4gKyAgICBiYXNlX2FkZHIg PSBhbGxvY191cCA9ICh1bnNpZ25lZCBsb25nKWFjcGlfcGFnZXMgKyBQQUdFX1NJWkU7Cj4gKyAg ICBhbGxvY19kb3duID0gKHVuc2lnbmVkIGxvbmcpYWNwaV9wYWdlcyArIChOVU1fQUNQSV9QQUdF UyAqIFBBR0VfU0laRSk7Cj4gKwo+ICsgICAgLyogTWFwIHBhZ2UgdGhhdCB3aWxsIGhvbGQgUlNE UCAqLwo+ICsgICAgZXh0ZW50ID0gUEZOKEFDUElfUEhZU0lDQUxfQUREUkVTUyk7Cj4gKyAgICBy YyA9IHhjX2RvbWFpbl9wb3B1bGF0ZV9waHlzbWFwX2V4YWN0KHhjaCwgZG9taWQsIDEsIDAsIDAs ICZleHRlbnQpOwo+ICsgICAgaWYgKCByYyApCj4gKyAgICB7Cj4gKyAgICAgICAgRE9NUFJJTlRG KCIlczogeGNfZG9tYWluX3BvcHVsYXRlX3BoeXNtYXAgZmFpbGVkIHdpdGggJWQiLAo+ICsgICAg ICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHJjKTsKPiArICAgICAgICBnb3RvIG91dDsKPiAr ICAgIH0KPiArICAgIGFjcGlfcGh5c2ljYWwgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZSh4Y2gsIGRv bWlkLCBQQUdFX1NJWkUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQRk4oQUNQSV9QSFlTSUNBTF9BRERSRVNTKSk7Cj4gKyAgICBpZiAoICFh Y3BpX3BoeXNpY2FsICkKPiArICAgIHsKPiArICAgICAgICBET01QUklOVEYoIiVzOiBDYW4ndCBt YXAgYWNwaV9waHlzaWNhbCIsIF9fRlVOQ1RJT05fXyk7Cj4gKyAgICAgICAgcmMgPSAtMTsKPiAr ICAgICAgICBnb3RvIG91dDsKPiArICAgIH0KPiArCj4gKyAgICAvKiBCdWlsZCB0aGUgdGFibGVz ICovCj4gKyAgICBhY3BpX2J1aWxkX3RhYmxlcygmY29uZmlnLCAodW5zaWduZWQgbG9uZylhY3Bp X3BoeXNpY2FsKTsKPiArCj4gKyAgICAvKiBDb3B5IGFjcGlfaW5mbyBwYWdlIGludG8gZ3Vlc3Qn cyBtZW1vcnkgKi8KPiArICAgIGV4dGVudCA9IFBGTihBQ1BJX0lORk9fUEhZU0lDQUxfQUREUkVT Uyk7Cj4gKyAgICByYyA9IHhjX2RvbWFpbl9wb3B1bGF0ZV9waHlzbWFwX2V4YWN0KHhjaCwgZG9t aWQsIDEsIDAsIDAsICZleHRlbnQpOwo+ICsgICAgaWYgKCByYyApCj4gKyAgICB7Cj4gKyAgICAg ICAgRE9NUFJJTlRGKCIlczogeGNfZG9tYWluX3BvcHVsYXRlX3BoeXNtYXAgZmFpbGVkIHdpdGgg JWRcbiIsCj4gKyAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgcmMpOwo+ICsgICAgICAg IGdvdG8gb3V0Owo+ICsgICAgfQo+ICsgICAgZ3Vlc3RfaW5mb19wYWdlID0geGNfbWFwX2ZvcmVp Z25fcmFuZ2UoeGNoLCBkb21pZCwgUEFHRV9TSVpFLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGTihBQ1BJX0lORk9fUEhZU0lDQUxf QUREUkVTUykpOwo+ICsgICAgaWYgKCAhZ3Vlc3RfaW5mb19wYWdlICkKPiArICAgIHsKPiArICAg ICAgICBET01QUklOVEYoIiVzOiBDYW4ndCBtYXAgYWNwaV9pbmZvX3BhZ2UiLCBfX0ZVTkNUSU9O X18pOwo+ICsgICAgICAgIHJjID0gLTE7Cj4gKyAgICAgICAgZ290byBvdXQ7Cj4gKyAgICB9Cj4g KyAgICBtZW1jcHkoZ3Vlc3RfaW5mb19wYWdlLCBhY3BpX3BhZ2VzLCBQQUdFX1NJWkUpOwo+ICsK PiArICAgIC8qIENvcHkgQUNQSSB0YWJsZXMgaW50byBndWVzdCdzIG1lbW9yeSAqLwo+ICsgICAg YWNwaV9wYWdlc19udW0gPSAoKGFsbG9jX3VwIC0gKHVuc2lnbmVkIGxvbmcpYWNwaV9wYWdlcyAr Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgKFBBR0VfU0laRSAtIDEpKSA+PiBQQUdFX1NISUZU KSAtIDE7CgpUaGlzIGxvb2tzIGxpa2UgdGhlcmUgYXJlIGFjcGlfcGFnZXNfbnVtIHBhZ2VzIHN0 YXJ0aW5nIGF0CmFjcGlfcGFnZXMsIHlldCAuLi4KCj4gKyAgICBleHRlbnRzID0gbWFsbG9jKGFj cGlfcGFnZXNfbnVtICogc2l6ZW9mKCpleHRlbnRzKSk7Cj4gKyAgICBpZiAoICFleHRlbnRzICkK PiArICAgIHsKPiArICAgICAgICBET01QUklOVEYoIiVzOiBDYW4ndCBhbGxvY2F0ZSBleHRlbnRz IGFycmF5IiwgX19GVU5DVElPTl9fKTsKPiArICAgICAgICByYyA9IC1FTk9NRU07Cj4gKyAgICAg ICAgZ290byBvdXQ7Cj4gKyAgICB9Cj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgYWNwaV9wYWdlc19u dW07IGkrKykKPiArICAgICAgICBleHRlbnRzW2ldID0gUEZOKFJFU0VSVkVEX01FTU9SWV9EWU5B TUlDX1NUQVJUKSArIGk7Cj4gKyAgICByYyA9IHhjX2RvbWFpbl9wb3B1bGF0ZV9waHlzbWFwX2V4 YWN0KHhjaCwgZG9taWQsIGFjcGlfcGFnZXNfbnVtLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAwLCAwLCBleHRlbnRzKTsKPiArICAgIGlmICggcmMgKQo+ICsg ICAgewo+ICsgICAgICAgIERPTVBSSU5URigiJXM6IHhjX2RvbWFpbl9wb3B1bGF0ZV9waHlzbWFw IGZhaWxlZCB3aXRoICVkIiwKPiArICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCByYyk7 Cj4gKyAgICAgICAgZ290byBvdXQ7Cj4gKyAgICB9Cj4gKyAgICBndWVzdF9hY3BpX3BhZ2VzID0g eGNfbWFwX2ZvcmVpZ25fcmFuZ2UoeGNoLCBkb21pZCwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQQUdFX1NJWkUgKiBhY3BpX3BhZ2VzX251bSwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9U X1dSSVRFLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBG TihSRVNFUlZFRF9NRU1PUllfRFlOQU1JQ19TVEFSVCkpOwo+ICsgICAgaWYgKCAhZ3Vlc3RfYWNw aV9wYWdlcyApCj4gKyAgICB7Cj4gKyAgICAgICAgRE9NUFJJTlRGKCIlcyBDYW4ndCBtYXAgZ3Vl c3RfYWNwaV9wYWdlcyIsIF9fRlVOQ1RJT05fXyk7Cj4gKyAgICAgICAgcmMgPSAtMTsKPiArICAg ICAgICBnb3RvIG91dDsKPiArICAgIH0KPiArCj4gKyAgICBtZW1jcHkoZ3Vlc3RfYWNwaV9wYWdl cywgYWNwaV9wYWdlcyArIFBBR0VfU0laRSwKPiArICAgICAgICAgICBhY3BpX3BhZ2VzX251bSAq IFBBR0VfU0laRSk7CgouLi4gdGhpcyBsb29rcyBsaWtlIHRoZXJlIGFyZSBhY3BpX3BhZ2VzX251 bSBwYWdlcyBzdGFydGluZyBhdAphY3BpX3BhZ2VzICsgUEFHRV9TSVpFLgoKPiAtLS0gYS90b29s cy9saWJ4Yy94Y19kb21feDg2LmMKPiArKysgYi90b29scy9saWJ4Yy94Y19kb21feDg2LmMKPiBA QCAtNjQzLDYgKzY0MywxMyBAQCBzdGF0aWMgaW50IGFsbG9jX21hZ2ljX3BhZ2VzX2h2bShzdHJ1 Y3QgeGNfZG9tX2ltYWdlICpkb20pCj4gICAgICAgICAgICAgIERPTVBSSU5URigiVW5hYmxlIHRv IHJlc2VydmUgbWVtb3J5IGZvciB0aGUgc3RhcnQgaW5mbyIpOwo+ICAgICAgICAgICAgICBnb3Rv IG91dDsKPiAgICAgICAgICB9Cj4gKwo+ICsgICAgICAgIHJjID0geGNfZG9tX2J1aWxkX2FjcGko ZG9tKTsKPiArICAgICAgICBpZiAoIHJjICE9IDAgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAg ICAgRE9NUFJJTlRGKCJVbmFibGUgdG8gYnVpbGQgQUNQSSB0YWJsZXMiKTsKPiArICAgICAgICAg ICAgZ290byBvdXQ7Cj4gKyAgICAgICAgfQoKSWlyYyB0aGVyZSBpcyBhbiAiYWNwaT0iIGd1ZXN0 IGNvbmZpZyBzZXR0aW5nLCB5ZXQgbmVpdGhlciBoZXJlIG5vcgpkb3duIHRoZSBjYWxsIHRyZWUg SSBoYXZlIGJlZW4gYWJsZSB0byBmaW5kIGEgcmVzcGVjdGl2ZSBjaGVjay4gSXMKdGhhdCBvcHRp b24gbm90IHJlbGV2YW50IGFueW1vcmU/IERvIHdlIHJlYWxseSB3YW50IHRvIGFsd2F5cwpoYXZl IHRob3NlIHRhYmxlcyBidWlsdD8KCj4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKPiAr KysgYi90b29scy9saWJ4bC9saWJ4bF94ODYuYwo+IEBAIC04LDE1ICs4LDE4IEBAIGludCBsaWJ4 bF9fYXJjaF9kb21haW5fcHJlcGFyZV9jb25maWcobGlieGxfX2djICpnYywKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Y19kb21haW5fY29uZmlndXJhdGlvbl90ICp4 Y19jb25maWcpCj4gIHsKPiAgCj4gLSAgICBpZiAoZF9jb25maWctPmNfaW5mby50eXBlID09IExJ QlhMX0RPTUFJTl9UWVBFX0hWTSAmJgo+IC0gICAgICAgIGRfY29uZmlnLT5iX2luZm8uZGV2aWNl X21vZGVsX3ZlcnNpb24gIT0KPiAtICAgICAgICBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9O T05FKSB7Cj4gLSAgICAgICAgLyogSFZNIGRvbWFpbnMgd2l0aCBhIGRldmljZSBtb2RlbC4gKi8K PiAtICAgICAgICB4Y19jb25maWctPmVtdWxhdGlvbl9mbGFncyA9IFhFTl9YODZfRU1VX0FMTDsK PiAtICAgIH0gZWxzZSB7Cj4gLSAgICAgICAgLyogUFYgb3IgSFZNIGRvbWFpbnMgd2l0aG91dCBh IGRldmljZSBtb2RlbC4gKi8KPiArICAgIGlmIChkX2NvbmZpZy0+Y19pbmZvLnR5cGUgPT0gTElC WExfRE9NQUlOX1RZUEVfSFZNKSB7Cj4gKyAgICAgICAgaWYgKGRfY29uZmlnLT5iX2luZm8uZGV2 aWNlX21vZGVsX3ZlcnNpb24gIT0KPiArICAgICAgICAgICAgTElCWExfREVWSUNFX01PREVMX1ZF UlNJT05fTk9ORSkKPiArICAgICAgICAgICAgeGNfY29uZmlnLT5lbXVsYXRpb25fZmxhZ3MgPSBY RU5fWDg2X0VNVV9BTEw7Cj4gKyAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICAvKgo+ICsgICAg ICAgICAgICAgKiBIVk0gZ3Vlc3RzIHdpdGhvdXQgZGV2aWNlIG1vZGVsIHdpbGwgd2FudAo+ICsg ICAgICAgICAgICAgKiB0byBoYXZlIExBUElDIGVtdWxhdGlvbi4KPiArICAgICAgICAgICAgICov Cj4gKyAgICAgICAgICAgIHhjX2NvbmZpZy0+ZW11bGF0aW9uX2ZsYWdzID0gWEVOX1g4Nl9FTVVf TEFQSUM7Cj4gKyAgICB9IGVsc2UgCj4gICAgICAgICAgeGNfY29uZmlnLT5lbXVsYXRpb25fZmxh Z3MgPSAwOwo+IC0gICAgfQoKSSdtIG5vdCBtYWludGFpbmVyIG9mIHRoaXMgY29kZSwgYnV0IEkg dGhpbmsgdGhpcyB3b3VsZCByZWFkIGJldHRlciBpZgp5b3UgdXNlZCBhbiBpZi9lbHNlIGlmL2Vs c2Ugc2VxdWVuY2UgaW5zdGVhZCBvZiBuZXN0ZWQgaWYuCgo+IC0tLSBhL3hlbi9jb21tb24vbGli YWNwaS9idWlsZC5jCj4gKysrIGIveGVuL2NvbW1vbi9saWJhY3BpL2J1aWxkLmMKPiBAQCAtNDgw LDcgKzQ4MCw3IEBAIHN0YXRpYyBpbnQgbmV3X3ZtX2dpZChzdHJ1Y3QgYWNwaV9jb25maWcgKmNv bmZpZykKPiAgICAgIHJldHVybiAxOwo+ICB9Cj4gIAo+IC12b2lkIGFjcGlfYnVpbGRfdGFibGVz KHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgcGh5c2ljYWwpCj4gK3Zv aWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcsIHVuc2lnbmVk IGxvbmcgcGh5c2ljYWwpCgpJJ20gaGF2aW5nIHNvbWUgZGlmZmljdWx0eSBzZWVpbmcgaG93IHRo aXMgY2hhbmdlIGJlbG9uZ3MgaGVyZS4KCkphbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK