From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: Re: [RFC PATCH 06/31] cpufreq: make cpufreq driver more generalizable Date: Mon, 4 Dec 2017 21:34:12 +0200 Message-ID: References: <1510247421-24094-1-git-send-email-olekstysh@gmail.com> <1510247421-24094-7-git-send-email-olekstysh@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eLwVL-0000Io-Q8 for xen-devel@lists.xenproject.org; Mon, 04 Dec 2017 19:34:15 +0000 Received: by mail-it0-x244.google.com with SMTP id m11so13396799iti.1 for ; Mon, 04 Dec 2017 11:34:13 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Stefano Stabellini Cc: Andrew Cooper , Oleksandr Dmytryshyn , Julien Grall , Oleksandr Tyshchenko , Jan Beulich , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org SGksIFN0ZWZhbm8KCk9uIFNhdCwgRGVjIDIsIDIwMTcgYXQgMzozNyBBTSwgU3RlZmFubyBTdGFi ZWxsaW5pCjxzc3RhYmVsbGluaUBrZXJuZWwub3JnPiB3cm90ZToKPiBPbiBUaHUsIDkgTm92IDIw MTcsIE9sZWtzYW5kciBUeXNoY2hlbmtvIHdyb3RlOgo+PiBGcm9tOiBPbGVrc2FuZHIgRG15dHJ5 c2h5biA8b2xla3NhbmRyLmRteXRyeXNoeW5AZ2xvYmFsbG9naWMuY29tPgo+Pgo+PiBGaXJzdCBp bXBsZW1lbnRhdGlvbiBvZiB0aGUgY3B1ZnJlcSBkcml2ZXIgaGFzIGJlZW4KPj4gd3JpdHRlbiB3 aXRoIHg4NiBpbiBtaW5kLiBUaGlzIHBhdGNoIG1ha2VzIHBvc3NpYmxlCj4+IHRoZSBjcHVmcmVx IGRyaXZlciBiZSB3b3JraW5nIG9uIGJvdGggeDg2IGFuZCBhcm0KPj4gYXJjaGl0ZWN0dXJlcy4K Pj4KPj4gVGhpcyBpcyBhIHJlYmFzZWQgdmVyc2lvbiBvZiB0aGUgb3JpZ2luYWwgcGF0Y2g6Cj4+ IGh0dHBzOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE0LTExL21z ZzAwOTMyLmh0bWwKPj4KPj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIERteXRyeXNoeW4gPG9s ZWtzYW5kci5kbXl0cnlzaHluQGdsb2JhbGxvZ2ljLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogT2xl a3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29tPgo+PiBDQzog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgo+PiBDQzogQW5kcmV3IENvb3BlciA8YW5k cmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KPj4gQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJl bGxpbmlAa2VybmVsLm9yZz4KPj4gQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGxpbmFy by5vcmc+Cj4+IC0tLQo+PiAgeGVuL2RyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxLmMgICAgfCA4MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4+ICB4ZW4vaW5jbHVkZS9w dWJsaWMvcGxhdGZvcm0uaCAgICB8ICAxICsKPj4gIHhlbi9pbmNsdWRlL3hlbi9wcm9jZXNzb3Jf cGVyZi5oIHwgIDYgKysrCj4+ICAzIGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZy ZXEuYyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jCj4+IGluZGV4IGFiOTA5ZTIuLjY0 ZTFhZTcgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jCj4+ICsr KyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jCj4+IEBAIC00Miw3ICs0Miw2IEBACj4+ ICAjaW5jbHVkZSA8YXNtL2lvLmg+Cj4+ICAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgo+PiAg I2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KPj4gLSNpbmNsdWRlIDxhY3BpL2FjcGkuaD4KPj4gICNp bmNsdWRlIDx4ZW4vY3B1ZnJlcS5oPgo+Pgo+PiAgc3RhdGljIHVuc2lnbmVkIGludCBfX3JlYWRf bW9zdGx5IHVzcl9taW5fZnJlcTsKPj4gQEAgLTIwNiw2ICsyMDUsNyBAQCBpbnQgY3B1ZnJlcV9h ZGRfY3B1KHVuc2lnbmVkIGludCBjcHUpCj4+ICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgLyog ZG9tYWluIHNhbml0eSBjaGVjayB1bmRlciB3aGF0ZXZlciBjb29yZGluYXRpb24gdHlwZSAqLwo+ PiAgICAgICAgICBmaXJzdGNwdSA9IGNwdW1hc2tfZmlyc3QoY3B1ZnJlcV9kb20tPm1hcCk7Cj4+ ICsjaWZkZWYgQ09ORklHX0FDUEkKPj4gICAgICAgICAgaWYgKChwZXJmLT5kb21haW5faW5mby5j b29yZF90eXBlICE9Cj4+ICAgICAgICAgICAgICBwcm9jZXNzb3JfcG1pbmZvW2ZpcnN0Y3B1XS0+ cGVyZi5kb21haW5faW5mby5jb29yZF90eXBlKSB8fAo+PiAgICAgICAgICAgICAgKHBlcmYtPmRv bWFpbl9pbmZvLm51bV9wcm9jZXNzb3JzICE9Cj4+IEBAIC0yMjEsNiArMjIxLDE5IEBAIGludCBj cHVmcmVxX2FkZF9jcHUodW5zaWduZWQgaW50IGNwdSkKPj4gICAgICAgICAgICAgICAgICApOwo+ PiAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICAgICAgICAgIH0KPj4gKyNlbHNlIC8q ICFDT05GSUdfQUNQSSAqLwo+PiArICAgICAgICBpZiAoKHBlcmYtPmRvbWFpbl9pbmZvLm51bV9w cm9jZXNzb3JzICE9Cj4+ICsgICAgICAgICAgICBwcm9jZXNzb3JfcG1pbmZvW2ZpcnN0Y3B1XS0+ cGVyZi5kb21haW5faW5mby5udW1fcHJvY2Vzc29ycykpIHsKPj4gKwo+PiArICAgICAgICAgICAg cHJpbnRrKEtFUk5fV0FSTklORyAiY3B1ZnJlcSBmYWlsIHRvIGFkZCBDUFUlZDoiCj4+ICsgICAg ICAgICAgICAgICAgICAgImluY29ycmVjdCBudW0gcHJvY2Vzc29ycyAoJSJQUkl1NjQiKSwgIgo+ PiArICAgICAgICAgICAgICAgICAgICJleHBlY3QoJSJQUkl1NjQiKVxuIiwKPj4gKyAgICAgICAg ICAgICAgICAgICBjcHUsIHBlcmYtPmRvbWFpbl9pbmZvLm51bV9wcm9jZXNzb3JzLAo+PiArICAg ICAgICAgICAgICAgICAgIHByb2Nlc3Nvcl9wbWluZm9bZmlyc3RjcHVdLT5wZXJmLmRvbWFpbl9p bmZvLm51bV9wcm9jZXNzb3JzCj4+ICsgICAgICAgICAgICAgICAgKTsKPj4gKyAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOwo+PiArICAgICAgICB9Cj4+ICsjZW5kaWYgLyogQ09ORklHX0FDUEkg Ki8KPgo+IFdoeSBpcyB0aGlzIG5lY2Vzc2FyeT8gSSBhbSBhc2tpbmcgdGhpcyBxdWVzdGlvbiwg YmVjYXVzZSBJIHRoaW5rIGl0Cj4gd291bGQgYmUgYmVzdCB0byBhdm9pZCBtb3JlICNpZmRlZidz IGlmIHdlIGNhbiBhdm9pZCB0aGVtLCBhbmQgc29tZSBvZgo+IHRoZSBjb2RlICNpZmRlZidlZCBk b2Vzbid0IGxvb2sgdmVyeSBhY3BpIHNwZWNpZmljIChhdCBsZWFzdCBhdCBmaXJzdAo+IHNpZ2h0 KS4gSXQgZG9lc24ndCBsb29rIGxpa2UgdGhpcyBjaGFuZ2UgaXMgdmVyeSBiZW5lZmljaWFsLiBX aGF0IGFtIEkKPiBtaXNzaW5nPwoKUHJvYmFibHksIHRoZSBvcmlnaW5hbCBhdXRob3Igb2YgdGhp cyBwYXRjaCB3YW50ZWQgdG8gYXZvaWQgcGxheWluZwp3aXRoIHNvbWUgc3R1ZmYgKGNvZGUgJiB2 YXJpYWJsZXMpIHdoaWNoIGRpZG4ndCBtYWtlIHNlbnNlL3dvdWxkbid0IGJlCnVzZWQgb24gbm9u LUFDUEkgc3lzdGVtcy4KCkFncmVlIGhlcmUsIHdlIGFyZSBhYmxlIHRvIGF2b2lkIHRoaXMgI2lm ZGVmIGFzIHdlbGwgYXMgbWFueSBvdGhlcnMuIEkKZG9uJ3Qgc2VlIGFuIGlzc3VlLCBmb3IgZXhh bXBsZSwgdG8gcHJpbnQgc29tZXRoaW5nIGRlZmF1bHRpbmcgZm9yCmNvb3JkX3R5cGUvbnVtX2Vu dHJpZXMvcmV2aXNpb24vZXRjLgoKPgo+Cj4+ICAgICAgfQo+Pgo+PiAgICAgIGlmICghZG9tZXhp c3QgfHwgaHdfYWxsKSB7Cj4+IEBAIC0zODAsNiArMzkzLDcgQEAgaW50IGNwdWZyZXFfZGVsX2Nw dSh1bnNpZ25lZCBpbnQgY3B1KQo+PiAgICAgIHJldHVybiAwOwo+PiAgfQo+Pgo+PiArI2lmZGVm IENPTkZJR19BQ1BJCj4+ICBzdGF0aWMgdm9pZCBwcmludF9QQ1Qoc3RydWN0IHhlbl9wY3RfcmVn aXN0ZXIgKnB0cikKPj4gIHsKPj4gICAgICBwcmludGsoIlx0X1BDVDogZGVzY3JpcHRvcj0lZCwg bGVuZ3RoPSVkLCBzcGFjZV9pZD0lZCwgIgo+PiBAQCAtMzg3LDEyICs0MDEsMTQgQEAgc3RhdGlj IHZvaWQgcHJpbnRfUENUKHN0cnVjdCB4ZW5fcGN0X3JlZ2lzdGVyICpwdHIpCj4+ICAgICAgICAg ICAgIHB0ci0+ZGVzY3JpcHRvciwgcHRyLT5sZW5ndGgsIHB0ci0+c3BhY2VfaWQsIHB0ci0+Yml0 X3dpZHRoLAo+PiAgICAgICAgICAgICBwdHItPmJpdF9vZmZzZXQsIHB0ci0+cmVzZXJ2ZWQsIHB0 ci0+YWRkcmVzcyk7Cj4+ICB9Cj4+ICsjZW5kaWYgLyogQ09ORklHX0FDUEkgKi8KPgo+IHNhbWUg cXVlc3Rpb24KCmRlZmluaXRlbHkgb21pdCAjaWZkZWYKCj4KPgo+PiAgc3RhdGljIHZvaWQgcHJp bnRfUFNTKHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3B4ICpwdHIsIGludCBjb3VudCkKPj4gIHsKPj4g ICAgICBpbnQgaTsKPj4gICAgICBwcmludGsoIlx0X1BTUzogc3RhdGVfY291bnQ9JWRcbiIsIGNv dW50KTsKPj4gICAgICBmb3IgKGk9MDsgaTxjb3VudDsgaSsrKXsKPj4gKyNpZmRlZiBDT05GSUdf QUNQSQo+PiAgICAgICAgICBwcmludGsoIlx0U3RhdGUlZDogJSJQUklkNjQiTUh6ICUiUFJJZDY0 Im1XICUiUFJJZDY0InVzICIKPj4gICAgICAgICAgICAgICAgICIlIlBSSWQ2NCJ1cyAlIyJQUkl4 NjQiICUjIlBSSXg2NCJcbiIsCj4+ICAgICAgICAgICAgICAgICBpLAo+PiBAQCAtNDAyLDE1ICs0 MTgsMjYgQEAgc3RhdGljIHZvaWQgcHJpbnRfUFNTKHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3B4ICpw dHIsIGludCBjb3VudCkKPj4gICAgICAgICAgICAgICAgIHB0cltpXS5idXNfbWFzdGVyX2xhdGVu Y3ksCj4+ICAgICAgICAgICAgICAgICBwdHJbaV0uY29udHJvbCwKPj4gICAgICAgICAgICAgICAg IHB0cltpXS5zdGF0dXMpOwo+PiArI2Vsc2UgLyogIUNPTkZJR19BQ1BJICovCj4+ICsgICAgICAg IHByaW50aygiXHRTdGF0ZSVkOiAlIlBSSWQ2NCJNSHogJSJQUklkNjQidXNcbiIsCj4+ICsgICAg ICAgICAgICAgICBpLAo+PiArICAgICAgICAgICAgICAgcHRyW2ldLmNvcmVfZnJlcXVlbmN5LAo+ PiArICAgICAgICAgICAgICAgcHRyW2ldLnRyYW5zaXRpb25fbGF0ZW5jeSk7Cj4+ICsjZW5kaWYg LyogQ09ORklHX0FDUEkgKi8KPj4gICAgICB9Cj4+ICB9Cj4KPiBzYW1lIHF1ZXN0aW9uCgpzYW1l IGFuc3dlcikKCj4KPgo+PiAgc3RhdGljIHZvaWQgcHJpbnRfUFNEKCBzdHJ1Y3QgeGVuX3BzZF9w YWNrYWdlICpwdHIpCj4+ICB7Cj4+ICsjaWZkZWYgQ09ORklHX0FDUEkKPj4gICAgICBwcmludGso Ilx0X1BTRDogbnVtX2VudHJpZXM9JSJQUklkNjQiIHJldj0lIlBSSWQ2NAo+PiAgICAgICAgICAg ICAiIGRvbWFpbj0lIlBSSWQ2NCIgY29vcmRfdHlwZT0lIlBSSWQ2NCIgbnVtX3Byb2Nlc3NvcnM9 JSJQUklkNjQiXG4iLAo+PiAgICAgICAgICAgICBwdHItPm51bV9lbnRyaWVzLCBwdHItPnJldmlz aW9uLCBwdHItPmRvbWFpbiwgcHRyLT5jb29yZF90eXBlLAo+PiAgICAgICAgICAgICBwdHItPm51 bV9wcm9jZXNzb3JzKTsKPj4gKyNlbHNlIC8qICFDT05GSUdfQUNQSSAqLwo+PiArICAgIHByaW50 aygiXHRfUFNEOiAgZG9tYWluPSUiUFJJZDY0IiBudW1fcHJvY2Vzc29ycz0lIlBSSWQ2NCJcbiIs Cj4+ICsgICAgICAgICAgIHB0ci0+ZG9tYWluLCBwdHItPm51bV9wcm9jZXNzb3JzKTsKPj4gKyNl bmRpZiAvKiBDT05GSUdfQUNQSSAqLwo+PiAgfQo+Cj4gc2FtZSBxdWVzdGlvbgoKc2FtZSBhbnN3 ZXIpCgo+Cj4KPj4gIHN0YXRpYyB2b2lkIHByaW50X1BQQyh1bnNpZ25lZCBpbnQgcGxhdGZvcm1f bGltaXQpCj4+IEBAIC00MTgsMTMgKzQ0NSw1MyBAQCBzdGF0aWMgdm9pZCBwcmludF9QUEModW5z aWduZWQgaW50IHBsYXRmb3JtX2xpbWl0KQo+PiAgICAgIHByaW50aygiXHRfUFBDOiAlZFxuIiwg cGxhdGZvcm1fbGltaXQpOwo+PiAgfQo+Pgo+PiArc3RhdGljIGlubGluZSBib29sIGlzX3Bzc19k YXRhKHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3BlcmZvcm1hbmNlICpweCkKPj4gK3sKPj4gKyNpZmRl ZiBDT05GSUdfQUNQSQo+PiArICAgIHJldHVybiBweC0+ZmxhZ3MgJiBYRU5fUFhfUFNTOwo+PiAr I2Vsc2UKPj4gKyAgICByZXR1cm4gcHgtPmZsYWdzID09IFhFTl9QWF9EQVRBOwo+PiArI2VuZGlm Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpc19wc2RfZGF0YShzdHJ1Y3QgeGVu X3Byb2Nlc3Nvcl9wZXJmb3JtYW5jZSAqcHgpCj4+ICt7Cj4+ICsjaWZkZWYgQ09ORklHX0FDUEkK Pj4gKyAgICByZXR1cm4gcHgtPmZsYWdzICYgWEVOX1BYX1BTRDsKPj4gKyNlbHNlCj4+ICsgICAg cmV0dXJuIHB4LT5mbGFncyA9PSBYRU5fUFhfREFUQTsKPj4gKyNlbmRpZgo+PiArfQo+PiArCj4+ ICtzdGF0aWMgaW5saW5lIGJvb2wgaXNfcHBjX2RhdGEoc3RydWN0IHhlbl9wcm9jZXNzb3JfcGVy Zm9ybWFuY2UgKnB4KQo+PiArewo+PiArI2lmZGVmIENPTkZJR19BQ1BJCj4+ICsgICAgcmV0dXJu IHB4LT5mbGFncyAmIFhFTl9QWF9QUEM7Cj4+ICsjZWxzZQo+PiArICAgIHJldHVybiBweC0+Zmxh Z3MgPT0gWEVOX1BYX0RBVEE7Cj4+ICsjZW5kaWYKPj4gK30KPj4gKwo+PiArc3RhdGljIGlubGlu ZSBib29sIGlzX2FsbF9kYXRhKHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3BlcmZvcm1hbmNlICpweCkK Pj4gK3sKPj4gKyNpZmRlZiBDT05GSUdfQUNQSQo+PiArICAgIHJldHVybiBweC0+ZmxhZ3MgPT0g KCBYRU5fUFhfUENUIHwgWEVOX1BYX1BTUyB8IFhFTl9QWF9QU0QgfCBYRU5fUFhfUFBDICk7Cj4+ ICsjZWxzZQo+PiArICAgIHJldHVybiBweC0+ZmxhZ3MgPT0gWEVOX1BYX0RBVEE7Cj4+ICsjZW5k aWYKPj4gK30KPgo+IENvdWxkIHlvdSBwbGVhc2UgZXhwbGFpbiBoZXJlIGFuZCBpbiB0aGUgY29t bWl0IG1lc3NhZ2UgdGhlIGlkZWEgYmVoaW5kCj4gdGhpcz8gSXQgbG9va3MgbGlrZSB3ZSB3YW50 IHRvIGdldCByaWQgb2YgdGhlIGRpZmZlcmVudCBmbGFncyBvbgo+IG5vbi1BQ1BJIHN5c3RlbXM/ IFdoeSBjYW4ndCB3ZSByZXVzZSB0aGUgc2FtZSBmbGFncz8KCllvdSBhcmUgcmlnaHQuIEluZGVl ZCBsb29rcyByZWR1bmRhbnQuCkkgd2lsbCBkcm9wIGFsbCB0aGVzZSBoZWxwZXJzIGFuZCByZXVz ZSBleGlzdGluZyBmbGFncy4gSWYgd2UgYXJlCnByZXRlbmRpbmcgdG8gYmUgYW4gUC1zdGF0ZSBk cml2ZXIgYW5kIHVwbG9hZGluZyB0aGUgc2FtZSBQLXN0YXRlIGRhdGEKd2hpY2ggWzFdIHVwbG9h ZHMKdGhlbiBJIHdpbGwganVzdCByZXVzZSBleGlzdGluZyBmbGFncy4gSXQgd2lsbCBjb3N0IG1l IG5vdGhpbmcuCgpNYXkgSSBhc2sgeW91IHRvIHRha2UgYSBsb29rIGF0IHRoaXMgcGF0Y2ggWzJd PyBJdCBsb29rcyBsaWtlIGEgaGFjawpyaWdodCBub3csIGJ1dCBob3cgdG8gbWFrZSBpdCBpbiBh IHByb3BlciB3YXk/CgpbMV0gaHR0cHM6Ly9naXRodWIuY29tL3RvcnZhbGRzL2xpbnV4L2Jsb2Iv bWFzdGVyL2RyaXZlcnMveGVuL3hlbi1hY3BpLXByb2Nlc3Nvci5jI0wyMTAKWzJdIGh0dHBzOi8v d3d3Lm1haWwtYXJjaGl2ZS5jb20veGVuLWRldmVsQGxpc3RzLnhlbi5vcmcvbXNnMTI4NDEwLmh0 bWwKCj4KPgo+PiAgaW50IHNldF9weF9wbWluZm8odWludDMyX3QgYWNwaV9pZCwgc3RydWN0IHhl bl9wcm9jZXNzb3JfcGVyZm9ybWFuY2UgKmRvbTBfcHhfaW5mbykKPj4gIHsKPj4gICAgICBpbnQg cmV0PTAsIGNwdWlkOwo+PiAgICAgIHN0cnVjdCBwcm9jZXNzb3JfcG1pbmZvICpwbXB0Owo+PiAg ICAgIHN0cnVjdCBwcm9jZXNzb3JfcGVyZm9ybWFuY2UgKnB4cHQ7Cj4+Cj4+ICsjaWZkZWYgQ09O RklHX0FDUEkKPj4gICAgICBjcHVpZCA9IGdldF9jcHVfaWQoYWNwaV9pZCk7Cj4+ICsjZWxzZQo+ PiArICAgIGNwdWlkID0gYWNwaV9pZDsKPj4gKyNlbmRpZgo+Cj4gUmF0aGVyIHRoYW4gYW4gI2lm ZGVmIGhlcmUsIEkgd291bGQgcHJvYmFibHkgZ2VuZXJhbGl6ZSB0aGUgZ2V0X2NwdV9pZAo+IGZ1 bmN0aW9uLgoKV291bGQgYSBmb2xsb3dpbmcgc3R1YiBiZSBlbm91Z2g/CgpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUveGVuL2FjcGkuaCBiL3hlbi9pbmNsdWRlL3hlbi9hY3BpLmgKaW5kZXggOTQw OTM1MC4uNGFhYjQxZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2FjcGkuaAorKysgYi94 ZW4vaW5jbHVkZS94ZW4vYWNwaS5oCkBAIC0xMjMsNyArMTIzLDExIEBAIHN0YXRpYyBpbmxpbmUg aW50IGFjcGlfYm9vdF90YWJsZV9pbml0KHZvaWQpCgogI2VuZGlmICAgICAgICAgLyohQ09ORklH X0FDUEkqLwoKKyNpZmRlZiBDT05GSUdfQUNQSQogaW50IGdldF9jcHVfaWQodTMyIGFjcGlfaWQp OworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50IGdldF9jcHVfaWQodTMyIGFjcGlfaWQpIHsgcmV0 dXJuIGFjcGlfaWQ7IH0KKyNlbmRpZgoKIHVuc2lnbmVkIGludCBhY3BpX3JlZ2lzdGVyX2dzaSAo dTMyIGdzaSwgaW50IGVkZ2VfbGV2ZWwsIGludCBhY3RpdmVfaGlnaF9sb3cpOwogaW50IGFjcGlf Z3NpX3RvX2lycSAodTMyIGdzaSwgdW5zaWduZWQgaW50ICppcnEpOwoKPgo+Cj4+ICAgICAgaWYg KCBjcHVpZCA8IDAgfHwgIWRvbTBfcHhfaW5mbykKPj4gICAgICB7Cj4+ICAgICAgICAgIHJldCA9 IC1FSU5WQUw7Cj4+IEBAIC00NDYsNiArNTEzLDggQEAgaW50IHNldF9weF9wbWluZm8odWludDMy X3QgYWNwaV9pZCwgc3RydWN0IHhlbl9wcm9jZXNzb3JfcGVyZm9ybWFuY2UgKmRvbTBfcHhfaW4K Pj4gICAgICAgICAgcHJvY2Vzc29yX3BtaW5mb1tjcHVpZF0gPSBwbXB0Owo+PiAgICAgIH0KPj4g ICAgICBweHB0ID0gJnBtcHQtPnBlcmY7Cj4+ICsKPj4gKyNpZmRlZiBDT05GSUdfQUNQSQo+PiAg ICAgIHBtcHQtPmFjcGlfaWQgPSBhY3BpX2lkOwo+PiAgICAgIHBtcHQtPmlkID0gY3B1aWQ7Cj4+ Cj4+IEBAIC00NzIsOCArNTQxLDkgQEAgaW50IHNldF9weF9wbWluZm8odWludDMyX3QgYWNwaV9p ZCwgc3RydWN0IHhlbl9wcm9jZXNzb3JfcGVyZm9ybWFuY2UgKmRvbTBfcHhfaW4KPj4gICAgICAg ICAgICAgIHByaW50X1BDVCgmcHhwdC0+c3RhdHVzX3JlZ2lzdGVyKTsKPj4gICAgICAgICAgfQo+ PiAgICAgIH0KPj4gKyNlbmRpZiAvKiBDT05GSUdfQUNQSSAqLwoKQlRXLCBhdCB0aGUgZmlyc3Qg c2lnaHQgd2UgY291bGQgb21pdCB0aGlzICNpZmRlZiB0b28gd2l0aCBiZWluZyB0YWtlbgpjYXJl IG9mIHNwYWNlX2lkIGNoZWNrIHRvIHBhc3Mgc3VjY2Vzc2Z1bGx5LgoKPj4KPj4gLSAgICBpZiAo IGRvbTBfcHhfaW5mby0+ZmxhZ3MgJiBYRU5fUFhfUFNTICkKPj4gKyAgICBpZiAoIGlzX3Bzc19k YXRhKGRvbTBfcHhfaW5mbykgKQo+PiAgICAgIHsKPj4gICAgICAgICAgLyogY2FwYWJpbGl0eSBj aGVjayAqLwo+PiAgICAgICAgICBpZiAoZG9tMF9weF9pbmZvLT5zdGF0ZV9jb3VudCA8PSAxKQo+ PiBAQCAtNTAwLDcgKzU3MCw3IEBAIGludCBzZXRfcHhfcG1pbmZvKHVpbnQzMl90IGFjcGlfaWQs IHN0cnVjdCB4ZW5fcHJvY2Vzc29yX3BlcmZvcm1hbmNlICpkb20wX3B4X2luCj4+ICAgICAgICAg ICAgICBwcmludF9QU1MocHhwdC0+c3RhdGVzLHB4cHQtPnN0YXRlX2NvdW50KTsKPj4gICAgICB9 Cj4+Cj4+IC0gICAgaWYgKCBkb20wX3B4X2luZm8tPmZsYWdzICYgWEVOX1BYX1BTRCApCj4+ICsg ICAgaWYgKCBpc19wc2RfZGF0YShkb20wX3B4X2luZm8pICkKPj4gICAgICB7Cj4+ICAgICAgICAg IC8qIGNoZWNrIGRvbWFpbiBjb29yZGluYXRpb24gKi8KPj4gICAgICAgICAgaWYgKGRvbTBfcHhf aW5mby0+c2hhcmVkX3R5cGUgIT0gQ1BVRlJFUV9TSEFSRURfVFlQRV9BTEwgJiYKPj4gQEAgLTUy MCw3ICs1OTAsNyBAQCBpbnQgc2V0X3B4X3BtaW5mbyh1aW50MzJfdCBhY3BpX2lkLCBzdHJ1Y3Qg eGVuX3Byb2Nlc3Nvcl9wZXJmb3JtYW5jZSAqZG9tMF9weF9pbgo+PiAgICAgICAgICAgICAgcHJp bnRfUFNEKCZweHB0LT5kb21haW5faW5mbyk7Cj4+ICAgICAgfQo+Pgo+PiAtICAgIGlmICggZG9t MF9weF9pbmZvLT5mbGFncyAmIFhFTl9QWF9QUEMgKQo+PiArICAgIGlmICggaXNfcHBjX2RhdGEo ZG9tMF9weF9pbmZvKSApCj4+ICAgICAgewo+PiAgICAgICAgICBweHB0LT5wbGF0Zm9ybV9saW1p dCA9IGRvbTBfcHhfaW5mby0+cGxhdGZvcm1fbGltaXQ7Cj4+Cj4+IEBAIC01MzQsOCArNjA0LDcg QEAgaW50IHNldF9weF9wbWluZm8odWludDMyX3QgYWNwaV9pZCwgc3RydWN0IHhlbl9wcm9jZXNz b3JfcGVyZm9ybWFuY2UgKmRvbTBfcHhfaW4KPj4gICAgICAgICAgfQo+PiAgICAgIH0KPj4KPj4g LSAgICBpZiAoIGRvbTBfcHhfaW5mby0+ZmxhZ3MgPT0gKCBYRU5fUFhfUENUIHwgWEVOX1BYX1BT UyB8Cj4+IC0gICAgICAgICAgICAgICAgWEVOX1BYX1BTRCB8IFhFTl9QWF9QUEMgKSApCj4+ICsg ICAgaWYgKCBpc19hbGxfZGF0YShkb20wX3B4X2luZm8pICkKPj4gICAgICB7Cj4+ICAgICAgICAg IHB4cHQtPmluaXQgPSBYRU5fUFhfSU5JVDsKPj4KPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3B1YmxpYy9wbGF0Zm9ybS5oIGIveGVuL2luY2x1ZGUvcHVibGljL3BsYXRmb3JtLmgKPj4gaW5k ZXggOTRkYmMzZi4uMzI4NTc5YyAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL3Bs YXRmb3JtLmgKPj4gKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3BsYXRmb3JtLmgKPj4gQEAgLTM4 NCw2ICszODQsNyBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5wZl9nZXRpZGxldGltZV90 KTsKPj4gICNkZWZpbmUgWEVOX1BYX1BTUyAgIDIKPj4gICNkZWZpbmUgWEVOX1BYX1BQQyAgIDQK Pj4gICNkZWZpbmUgWEVOX1BYX1BTRCAgIDgKPj4gKyNkZWZpbmUgWEVOX1BYX0RBVEEgIDE2Cj4+ Cj4+ICBzdHJ1Y3QgeGVuX3Bvd2VyX3JlZ2lzdGVyIHsKPj4gICAgICB1aW50MzJfdCAgICAgc3Bh Y2VfaWQ7Cj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcHJvY2Vzc29yX3BlcmYuaCBi L3hlbi9pbmNsdWRlL3hlbi9wcm9jZXNzb3JfcGVyZi5oCj4+IGluZGV4IGQ4YTFiYTYuLmFmZGNj ZjIgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wcm9jZXNzb3JfcGVyZi5oCj4+ICsr KyBiL3hlbi9pbmNsdWRlL3hlbi9wcm9jZXNzb3JfcGVyZi5oCj4+IEBAIC0zLDcgKzMsOSBAQAo+ Pgo+PiAgI2luY2x1ZGUgPHB1YmxpYy9wbGF0Zm9ybS5oPgo+PiAgI2luY2x1ZGUgPHB1YmxpYy9z eXNjdGwuaD4KPj4gKyNpZmRlZiBDT05GSUdfQUNQSQo+PiAgI2luY2x1ZGUgPHhlbi9hY3BpLmg+ Cj4+ICsjZW5kaWYKPj4KPj4gICNkZWZpbmUgWEVOX1BYX0lOSVQgMHg4MDAwMDAwMAo+Pgo+PiBA QCAtMjQsOCArMjYsMTAgQEAgaW50ICBjcHVmcmVxX2RlbF9jcHUodW5zaWduZWQgaW50KTsKPj4g IHN0cnVjdCBwcm9jZXNzb3JfcGVyZm9ybWFuY2Ugewo+PiAgICAgIHVpbnQzMl90IHN0YXRlOwo+ PiAgICAgIHVpbnQzMl90IHBsYXRmb3JtX2xpbWl0Owo+PiArI2lmZGVmIENPTkZJR19BQ1BJCj4+ ICAgICAgc3RydWN0IHhlbl9wY3RfcmVnaXN0ZXIgY29udHJvbF9yZWdpc3RlcjsKPj4gICAgICBz dHJ1Y3QgeGVuX3BjdF9yZWdpc3RlciBzdGF0dXNfcmVnaXN0ZXI7Cj4+ICsjZW5kaWYKPj4gICAg ICB1aW50MzJfdCBzdGF0ZV9jb3VudDsKPj4gICAgICBzdHJ1Y3QgeGVuX3Byb2Nlc3Nvcl9weCAq c3RhdGVzOwo+PiAgICAgIHN0cnVjdCB4ZW5fcHNkX3BhY2thZ2UgZG9tYWluX2luZm87Cj4+IEBA IC0zNSw4ICszOSwxMCBAQCBzdHJ1Y3QgcHJvY2Vzc29yX3BlcmZvcm1hbmNlIHsKPj4gIH07Cj4+ Cj4+ICBzdHJ1Y3QgcHJvY2Vzc29yX3BtaW5mbyB7Cj4+ICsjaWZkZWYgQ09ORklHX0FDUEkKPj4g ICAgICB1aW50MzJfdCBhY3BpX2lkOwo+PiAgICAgIHVpbnQzMl90IGlkOwo+PiArI2VuZGlmCj4+ ICAgICAgc3RydWN0IHByb2Nlc3Nvcl9wZXJmb3JtYW5jZSAgICBwZXJmOwo+PiAgfTsKClRoZXJl IHdpbGwgYmUgbm8gY2hhbmdlcyBoZXJlIGFzIHdlbGwuCgo+Pgo+PiAtLQo+PiAyLjcuNAo+PgoK Ci0tIApSZWdhcmRzLAoKT2xla3NhbmRyIFR5c2hjaGVua28KCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=