From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 07/16] drm/rcar-du: Use new iterator macros, v2. Date: Wed, 12 Jul 2017 12:43:40 +0200 Message-ID: <485c9b80-43da-a8d0-6379-3620fddd8334@linux.intel.com> References: <20170712081344.25495-1-maarten.lankhorst@linux.intel.com> <20170712081344.25495-8-maarten.lankhorst@linux.intel.com> <20170712091540.rnjldq4bbdiqrcur@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170712091540.rnjldq4bbdiqrcur@phenom.ffwll.local> 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: Daniel Vetter Cc: linux-renesas-soc@vger.kernel.org, intel-gfx@lists.freedesktop.org, Laurent Pinchart , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T3AgMTItMDctMTcgb20gMTE6MTUgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIFdlZCwgSnVs IDEyLCAyMDE3IGF0IDEwOjEzOjM1QU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBmb3JfZWFjaF9vYmpfaW5fc3RhdGUgaXMgYWJvdXQgdG8gYmUgcmVtb3ZlZCwgc28gdXNlIHRo ZSBjb3JyZWN0IG5ldwo+PiBpdGVyYXRvciBtYWNyb3MuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE1h YXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+IENj OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+Cj4+ IENjOiBsaW51eC1yZW5lc2FzLXNvY0B2Z2VyLmtlcm5lbC5vcmcKPiBMb29rcyBjb3JyZWN0LCBi dXQgSSB0aGluayBMYXVyZW50IGhhcyBhIHBhdGNoIHRvIHJld29yay9yZW1vdmUgdGhpcy4KPiBG b3VuZCBzb21ldGhpbmcgYmVsb3cgYW55d2F5Lgo+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJt L3JjYXItZHUvcmNhcl9kdV9wbGFuZS5jIHwgNDEgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tCj4+ICAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25z KC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3Bs YW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X3BsYW5lLmMKPj4gaW5kZXgg ZGNkZTYyODhkYTZjLi5kZmQ4NGUzYzhjMjUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9yY2FyX2R1X3BsYW5lLmMKPj4gQEAgLTUxLDEyICs1MSw5IEBACj4+ICAgKi8KPj4gIAo+PiAg c3RhdGljIGJvb2wgcmNhcl9kdV9wbGFuZV9uZWVkc19yZWFsbG9jKHN0cnVjdCByY2FyX2R1X3Bs YW5lICpwbGFuZSwKPj4gKwkJCQkJY29uc3Qgc3RydWN0IHJjYXJfZHVfcGxhbmVfc3RhdGUgKmN1 cl9zdGF0ZSwKPj4gIAkJCQkJc3RydWN0IHJjYXJfZHVfcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSkK Pj4gIHsKPj4gLQlzdHJ1Y3QgcmNhcl9kdV9wbGFuZV9zdGF0ZSAqY3VyX3N0YXRlOwo+PiAtCj4+ IC0JY3VyX3N0YXRlID0gdG9fcmNhcl9wbGFuZV9zdGF0ZShwbGFuZS0+cGxhbmUuc3RhdGUpOwo+ PiAtCj4+ICAJLyogTG93ZXJpbmcgdGhlIG51bWJlciBvZiBwbGFuZXMgZG9lc24ndCBzdHJpY3Rs eSByZXF1aXJlIHJlYWxsb2NhdGlvbgo+PiAgCSAqIGFzIHRoZSBleHRyYSBoYXJkd2FyZSBwbGFu ZSB3aWxsIGJlIGZyZWVkIHdoZW4gY29tbWl0dGluZywgYnV0IGRvaW5nCj4+ICAJICogc28gY291 bGQgbGVhZCB0byBtb3JlIGZyYWdtZW50YXRpb24uCj4+IEBAIC0xNDEsMTYgKzEzOCwxNyBAQCBp bnQgcmNhcl9kdV9hdG9taWNfY2hlY2tfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ ICAJdW5zaWduZWQgaW50IGdyb3VwcyA9IDA7Cj4+ICAJdW5zaWduZWQgaW50IGk7Cj4+ICAJc3Ry dWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lOwo+PiAtCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmRy bV9wbGFuZV9zdGF0ZTsKPj4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfZHJtX3BsYW5l X3N0YXRlLCAqbmV3X2RybV9wbGFuZV9zdGF0ZTsKPj4gIAo+PiAgCS8qIENoZWNrIGlmIGhhcmR3 YXJlIHBsYW5lcyBuZWVkIHRvIGJlIHJlYWxsb2NhdGVkLiAqLwo+PiAtCWZvcl9lYWNoX3BsYW5l X2luX3N0YXRlKHN0YXRlLCBkcm1fcGxhbmUsIGRybV9wbGFuZV9zdGF0ZSwgaSkgewo+PiAtCQlz dHJ1Y3QgcmNhcl9kdV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4+ICsJZm9yX2VhY2hfb2xk bmV3X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBkcm1fcGxhbmUsIG9sZF9kcm1fcGxhbmVfc3RhdGUs IG5ld19kcm1fcGxhbmVfc3RhdGUsIGkpIHsKPj4gKwkJc3RydWN0IHJjYXJfZHVfcGxhbmVfc3Rh dGUgKm9sZF9wbGFuZV9zdGF0ZSwgKm5ld19wbGFuZV9zdGF0ZTsKPj4gIAkJc3RydWN0IHJjYXJf ZHVfcGxhbmUgKnBsYW5lOwo+PiAgCQl1bnNpZ25lZCBpbnQgaW5kZXg7Cj4+ICAKPj4gIAkJcGxh bmUgPSB0b19yY2FyX3BsYW5lKGRybV9wbGFuZSk7Cj4+IC0JCXBsYW5lX3N0YXRlID0gdG9fcmNh cl9wbGFuZV9zdGF0ZShkcm1fcGxhbmVfc3RhdGUpOwo+PiArCQlvbGRfcGxhbmVfc3RhdGUgPSB0 b19yY2FyX3BsYW5lX3N0YXRlKG9sZF9kcm1fcGxhbmVfc3RhdGUpOwo+PiArCQluZXdfcGxhbmVf c3RhdGUgPSB0b19yY2FyX3BsYW5lX3N0YXRlKG5ld19kcm1fcGxhbmVfc3RhdGUpOwo+PiAgCj4+ ICAJCWRldl9kYmcocmNkdS0+ZGV2LCAiJXM6IGNoZWNraW5nIHBsYW5lICgldSwldHUpXG4iLCBf X2Z1bmNfXywKPj4gIAkJCXBsYW5lLT5ncm91cC0+aW5kZXgsIHBsYW5lIC0gcGxhbmUtPmdyb3Vw LT5wbGFuZXMpOwo+PiBAQCAtMTU5LDE5ICsxNTcsMTkgQEAgaW50IHJjYXJfZHVfYXRvbWljX2No ZWNrX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgCQkgKiB0aGUgZnVsbCByZWFs bG9jYXRpb24gcHJvY2VkdXJlLiBKdXN0IG1hcmsgdGhlIGhhcmR3YXJlCj4+ICAJCSAqIHBsYW5l KHMpIGFzIGZyZWVkLgo+PiAgCQkgKi8KPj4gLQkJaWYgKCFwbGFuZV9zdGF0ZS0+Zm9ybWF0KSB7 Cj4+ICsJCWlmICghbmV3X3BsYW5lX3N0YXRlLT5mb3JtYXQpIHsKPj4gIAkJCWRldl9kYmcocmNk dS0+ZGV2LCAiJXM6IHBsYW5lIGlzIGJlaW5nIGRpc2FibGVkXG4iLAo+PiAgCQkJCV9fZnVuY19f KTsKPj4gIAkJCWluZGV4ID0gcGxhbmUgLSBwbGFuZS0+Z3JvdXAtPnBsYW5lczsKPj4gIAkJCWdy b3VwX2ZyZWVkX3BsYW5lc1twbGFuZS0+Z3JvdXAtPmluZGV4XSB8PSAxIDw8IGluZGV4Owo+PiAt CQkJcGxhbmVfc3RhdGUtPmh3aW5kZXggPSAtMTsKPj4gKwkJCW5ld19wbGFuZV9zdGF0ZS0+aHdp bmRleCA9IC0xOwo+PiAgCQkJY29udGludWU7Cj4+ICAJCX0KPj4gIAo+PiAgCQkvKiBJZiB0aGUg cGxhbmUgbmVlZHMgdG8gYmUgcmVhbGxvY2F0ZWQgbWFyayBpdCBhcyBzdWNoLCBhbmQKPj4gIAkJ ICogbWFyayB0aGUgaGFyZHdhcmUgcGxhbmUocykgYXMgZnJlZS4KPj4gIAkJICovCj4+IC0JCWlm IChyY2FyX2R1X3BsYW5lX25lZWRzX3JlYWxsb2MocGxhbmUsIHBsYW5lX3N0YXRlKSkgewo+PiAr CQlpZiAocmNhcl9kdV9wbGFuZV9uZWVkc19yZWFsbG9jKHBsYW5lLCBvbGRfcGxhbmVfc3RhdGUs IG5ld19wbGFuZV9zdGF0ZSkpIHsKPj4gIAkJCWRldl9kYmcocmNkdS0+ZGV2LCAiJXM6IHBsYW5l IG5lZWRzIHJlYWxsb2NhdGlvblxuIiwKPj4gIAkJCQlfX2Z1bmNfXyk7Cj4+ICAJCQlncm91cHMg fD0gMSA8PCBwbGFuZS0+Z3JvdXAtPmluZGV4Owo+PiBAQCAtMTc5LDcgKzE3Nyw3IEBAIGludCBy Y2FyX2R1X2F0b21pY19jaGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAo+ PiAgCQkJaW5kZXggPSBwbGFuZSAtIHBsYW5lLT5ncm91cC0+cGxhbmVzOwo+PiAgCQkJZ3JvdXBf ZnJlZWRfcGxhbmVzW3BsYW5lLT5ncm91cC0+aW5kZXhdIHw9IDEgPDwgaW5kZXg7Cj4+IC0JCQlw bGFuZV9zdGF0ZS0+aHdpbmRleCA9IC0xOwo+PiArCQkJbmV3X3BsYW5lX3N0YXRlLT5od2luZGV4 ID0gLTE7Cj4+ICAJCX0KPj4gIAl9Cj4+ICAKPj4gQEAgLTIyNiwxNiArMjI0LDE2IEBAIGludCBy Y2FyX2R1X2F0b21pY19jaGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAkJ CQljb250aW51ZTsKPj4gIAkJCX0KPj4gIAo+PiAtCQkJcGxhbmVfc3RhdGUgPSB0b19yY2FyX3Bs YW5lX3N0YXRlKHBsYW5lLT5wbGFuZS5zdGF0ZSk7Cj4+ICsJCQluZXdfcGxhbmVfc3RhdGUgPSB0 b19yY2FyX3BsYW5lX3N0YXRlKHBsYW5lLT5wbGFuZS5zdGF0ZSk7Cj4+ICAJCQl1c2VkX3BsYW5l cyB8PSByY2FyX2R1X3BsYW5lX2h3bWFzayhwbGFuZV9zdGF0ZSk7Cj4+ICAKPj4gIAkJCWRldl9k YmcocmNkdS0+ZGV2LAo+PiAgCQkJCSIlczogcGxhbmUgKCV1LCV0dSkgdXNlcyAldSBod3BsYW5l cyAoaW5kZXggJWQpXG4iLAo+PiAgCQkJCV9fZnVuY19fLCBwbGFuZS0+Z3JvdXAtPmluZGV4LAo+ PiAgCQkJCXBsYW5lIC0gcGxhbmUtPmdyb3VwLT5wbGFuZXMsCj4+IC0JCQkJcGxhbmVfc3RhdGUt PmZvcm1hdCA/Cj4+IC0JCQkJcGxhbmVfc3RhdGUtPmZvcm1hdC0+cGxhbmVzIDogMCwKPj4gLQkJ CQlwbGFuZV9zdGF0ZS0+aHdpbmRleCk7Cj4+ICsJCQkJbmV3X3BsYW5lX3N0YXRlLT5mb3JtYXQg Pwo+PiArCQkJCW5ld19wbGFuZV9zdGF0ZS0+Zm9ybWF0LT5wbGFuZXMgOiAwLAo+PiArCQkJCW5l d19wbGFuZV9zdGF0ZS0+aHdpbmRleCk7Cj4+ICAJCX0KPj4gIAo+PiAgCQlncm91cF9mcmVlX3Bs YW5lc1tpbmRleF0gPSAweGZmICYgfnVzZWRfcGxhbmVzOwo+PiBAQCAtMjQ2LDE1ICsyNDQsMTYg QEAgaW50IHJjYXJfZHVfYXRvbWljX2NoZWNrX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+PiAgCX0KPj4gIAo+PiAgCS8qIFJlYWxsb2NhdGUgaGFyZHdhcmUgcGxhbmVzIGZvciBlYWNo IHBsYW5lIHRoYXQgbmVlZHMgaXQuICovCj4+IC0JZm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUoc3Rh dGUsIGRybV9wbGFuZSwgZHJtX3BsYW5lX3N0YXRlLCBpKSB7Cj4+IC0JCXN0cnVjdCByY2FyX2R1 X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPj4gKwlmb3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5f c3RhdGUoc3RhdGUsIGRybV9wbGFuZSwgb2xkX2RybV9wbGFuZV9zdGF0ZSwgbmV3X2RybV9wbGFu ZV9zdGF0ZSwgaSkgewo+PiArCQlzdHJ1Y3QgcmNhcl9kdV9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5l X3N0YXRlLCAqbmV3X3BsYW5lX3N0YXRlOwo+PiAgCQlzdHJ1Y3QgcmNhcl9kdV9wbGFuZSAqcGxh bmU7Cj4+ICAJCXVuc2lnbmVkIGludCBjcnRjX3BsYW5lczsKPj4gIAkJdW5zaWduZWQgaW50IGZy ZWU7Cj4+ICAJCWludCBpZHg7Cj4+ICAKPj4gIAkJcGxhbmUgPSB0b19yY2FyX3BsYW5lKGRybV9w bGFuZSk7Cj4+IC0JCXBsYW5lX3N0YXRlID0gdG9fcmNhcl9wbGFuZV9zdGF0ZShkcm1fcGxhbmVf c3RhdGUpOwo+PiArCQlvbGRfcGxhbmVfc3RhdGUgPSB0b19yY2FyX3BsYW5lX3N0YXRlKG9sZF9k cm1fcGxhbmVfc3RhdGUpOwo+PiArCQluZXdfcGxhbmVfc3RhdGUgPSB0b19yY2FyX3BsYW5lX3N0 YXRlKG5ld19kcm1fcGxhbmVfc3RhdGUpOwo+PiAgCj4+ICAJCWRldl9kYmcocmNkdS0+ZGV2LCAi JXM6IGFsbG9jYXRpbmcgcGxhbmUgKCV1LCV0dSlcbiIsIF9fZnVuY19fLAo+PiAgCQkJcGxhbmUt Pmdyb3VwLT5pbmRleCwgcGxhbmUgLSBwbGFuZS0+Z3JvdXAtPnBsYW5lcyk7Cj4+IEBAIC0yNjMs NyArMjYyLDcgQEAgaW50IHJjYXJfZHVfYXRvbWljX2NoZWNrX3BsYW5lcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+PiAgCQkgKiByZWFsbG9jYXRlZC4KPj4gIAkJICovCj4+ICAJCWlmICghcGxh bmVfc3RhdGUtPmZvcm1hdCB8fAo+IEkgdGhpbmsgeW91IG1pc3NlZCBhIGZldyBjYXNlcyBvZiBy ZXBsYWNpbmcgcGxhbmVfc3RhdGUgaGVyZS4gRG9lcyB0aGlzCj4gY29tcGlsZT8KSSBmZWFyIG5v dC4uCgpIYXZlIGEgd29ya2luZyBwYXRjaCBiZWxvdy4gOikKCi0tLS04PC0tLS0tLQpmb3JfZWFj aF9vYmpfaW5fc3RhdGUgaXMgYWJvdXQgdG8gYmUgcmVtb3ZlZCwgc28gdXNlIHRoZSBjb3JyZWN0 IG5ldwppdGVyYXRvciBtYWNyb3MuCgpBbHNvIGxvb2sgYXQgbmV3X3BsYW5lX3N0YXRlIGluc3Rl YWQgb2YgcGxhbmUtPnN0YXRlIHdoZW4gbG9va2luZyB1cAp0aGUgaHcgcGxhbmVzIGluIHVzZS4g VGhleSBzaG91bGQgYmUgdGhlIHNhbWUgZXhjZXB0IHdoZW4gcmVhbGxvY2F0aW5nLAooaW4gd2hp Y2ggY2FzZSB0aGlzIGNvZGUgaXMgc2tpcHBlZCkgYW5kIHdlIHNob3VsZCByZWFsbHkgc3RvcCBs b29raW5nCmF0IG9iai0+c3RhdGUgd2hlbmV2ZXIgcG9zc2libGUuCgpDaGFuZ2VzIHNpbmNlIHYx OgotIEFjdHVhbGx5IGNvbXBpbGUgY29ycmVjdGx5LgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBM YW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IExhdXJlbnQg UGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KQ2M6IGxpbnV4LXJl bmVzYXMtc29jQHZnZXIua2VybmVsLm9yZwotLS0KIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfZHVfcGxhbmUuYyB8IDU3ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYwppbmRleCBkY2RlNjI4OGRhNmMuLjUwZmQ3OTNj MzhkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9wbGFuZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfcGxhbmUuYwpAQCAtNTEsMTIg KzUxLDkgQEAKICAqLwogCiBzdGF0aWMgYm9vbCByY2FyX2R1X3BsYW5lX25lZWRzX3JlYWxsb2Mo c3RydWN0IHJjYXJfZHVfcGxhbmUgKnBsYW5lLAorCQkJCQljb25zdCBzdHJ1Y3QgcmNhcl9kdV9w bGFuZV9zdGF0ZSAqY3VyX3N0YXRlLAogCQkJCQlzdHJ1Y3QgcmNhcl9kdV9wbGFuZV9zdGF0ZSAq bmV3X3N0YXRlKQogewotCXN0cnVjdCByY2FyX2R1X3BsYW5lX3N0YXRlICpjdXJfc3RhdGU7Ci0K LQljdXJfc3RhdGUgPSB0b19yY2FyX3BsYW5lX3N0YXRlKHBsYW5lLT5wbGFuZS5zdGF0ZSk7Ci0K IAkvKiBMb3dlcmluZyB0aGUgbnVtYmVyIG9mIHBsYW5lcyBkb2Vzbid0IHN0cmljdGx5IHJlcXVp cmUgcmVhbGxvY2F0aW9uCiAJICogYXMgdGhlIGV4dHJhIGhhcmR3YXJlIHBsYW5lIHdpbGwgYmUg ZnJlZWQgd2hlbiBjb21taXR0aW5nLCBidXQgZG9pbmcKIAkgKiBzbyBjb3VsZCBsZWFkIHRvIG1v cmUgZnJhZ21lbnRhdGlvbi4KQEAgLTE0MSwxNiArMTM4LDE3IEBAIGludCByY2FyX2R1X2F0b21p Y19jaGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAl1bnNpZ25lZCBpbnQgZ3Jv dXBzID0gMDsKIAl1bnNpZ25lZCBpbnQgaTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmU7 Ci0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3BsYW5lX3N0YXRlOworCXN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKm9sZF9kcm1fcGxhbmVfc3RhdGUsICpuZXdfZHJtX3BsYW5lX3N0YXRlOwog CiAJLyogQ2hlY2sgaWYgaGFyZHdhcmUgcGxhbmVzIG5lZWQgdG8gYmUgcmVhbGxvY2F0ZWQuICov Ci0JZm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIGRybV9wbGFuZSwgZHJtX3BsYW5lX3N0 YXRlLCBpKSB7Ci0JCXN0cnVjdCByY2FyX2R1X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKKwlm b3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIGRybV9wbGFuZSwgb2xkX2RybV9w bGFuZV9zdGF0ZSwgbmV3X2RybV9wbGFuZV9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgcmNhcl9kdV9w bGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLCAqbmV3X3BsYW5lX3N0YXRlOwogCQlzdHJ1Y3Qg cmNhcl9kdV9wbGFuZSAqcGxhbmU7CiAJCXVuc2lnbmVkIGludCBpbmRleDsKIAogCQlwbGFuZSA9 IHRvX3JjYXJfcGxhbmUoZHJtX3BsYW5lKTsKLQkJcGxhbmVfc3RhdGUgPSB0b19yY2FyX3BsYW5l X3N0YXRlKGRybV9wbGFuZV9zdGF0ZSk7CisJCW9sZF9wbGFuZV9zdGF0ZSA9IHRvX3JjYXJfcGxh bmVfc3RhdGUob2xkX2RybV9wbGFuZV9zdGF0ZSk7CisJCW5ld19wbGFuZV9zdGF0ZSA9IHRvX3Jj YXJfcGxhbmVfc3RhdGUobmV3X2RybV9wbGFuZV9zdGF0ZSk7CiAKIAkJZGV2X2RiZyhyY2R1LT5k ZXYsICIlczogY2hlY2tpbmcgcGxhbmUgKCV1LCV0dSlcbiIsIF9fZnVuY19fLAogCQkJcGxhbmUt Pmdyb3VwLT5pbmRleCwgcGxhbmUgLSBwbGFuZS0+Z3JvdXAtPnBsYW5lcyk7CkBAIC0xNTksMTkg KzE1NywxOSBAQCBpbnQgcmNhcl9kdV9hdG9taWNfY2hlY2tfcGxhbmVzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCSAqIHRoZSBmdWxsIHJlYWxsb2NhdGlvbiBwcm9jZWR1cmUuIEp1c3QgbWFy ayB0aGUgaGFyZHdhcmUKIAkJICogcGxhbmUocykgYXMgZnJlZWQuCiAJCSAqLwotCQlpZiAoIXBs YW5lX3N0YXRlLT5mb3JtYXQpIHsKKwkJaWYgKCFuZXdfcGxhbmVfc3RhdGUtPmZvcm1hdCkgewog CQkJZGV2X2RiZyhyY2R1LT5kZXYsICIlczogcGxhbmUgaXMgYmVpbmcgZGlzYWJsZWRcbiIsCiAJ CQkJX19mdW5jX18pOwogCQkJaW5kZXggPSBwbGFuZSAtIHBsYW5lLT5ncm91cC0+cGxhbmVzOwog CQkJZ3JvdXBfZnJlZWRfcGxhbmVzW3BsYW5lLT5ncm91cC0+aW5kZXhdIHw9IDEgPDwgaW5kZXg7 Ci0JCQlwbGFuZV9zdGF0ZS0+aHdpbmRleCA9IC0xOworCQkJbmV3X3BsYW5lX3N0YXRlLT5od2lu ZGV4ID0gLTE7CiAJCQljb250aW51ZTsKIAkJfQogCiAJCS8qIElmIHRoZSBwbGFuZSBuZWVkcyB0 byBiZSByZWFsbG9jYXRlZCBtYXJrIGl0IGFzIHN1Y2gsIGFuZAogCQkgKiBtYXJrIHRoZSBoYXJk d2FyZSBwbGFuZShzKSBhcyBmcmVlLgogCQkgKi8KLQkJaWYgKHJjYXJfZHVfcGxhbmVfbmVlZHNf cmVhbGxvYyhwbGFuZSwgcGxhbmVfc3RhdGUpKSB7CisJCWlmIChyY2FyX2R1X3BsYW5lX25lZWRz X3JlYWxsb2MocGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwgbmV3X3BsYW5lX3N0YXRlKSkgewogCQkJ ZGV2X2RiZyhyY2R1LT5kZXYsICIlczogcGxhbmUgbmVlZHMgcmVhbGxvY2F0aW9uXG4iLAogCQkJ CV9fZnVuY19fKTsKIAkJCWdyb3VwcyB8PSAxIDw8IHBsYW5lLT5ncm91cC0+aW5kZXg7CkBAIC0x NzksNyArMTc3LDcgQEAgaW50IHJjYXJfZHVfYXRvbWljX2NoZWNrX3BsYW5lcyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCiAJCQlpbmRleCA9IHBsYW5lIC0gcGxhbmUtPmdyb3VwLT5wbGFuZXM7 CiAJCQlncm91cF9mcmVlZF9wbGFuZXNbcGxhbmUtPmdyb3VwLT5pbmRleF0gfD0gMSA8PCBpbmRl eDsKLQkJCXBsYW5lX3N0YXRlLT5od2luZGV4ID0gLTE7CisJCQluZXdfcGxhbmVfc3RhdGUtPmh3 aW5kZXggPSAtMTsKIAkJfQogCX0KIApAQCAtMjA0LDcgKzIwMiw3IEBAIGludCByY2FyX2R1X2F0 b21pY19jaGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCQlmb3IgKGkgPSAw OyBpIDwgZ3JvdXAtPm51bV9wbGFuZXM7ICsraSkgewogCQkJc3RydWN0IHJjYXJfZHVfcGxhbmUg KnBsYW5lID0gJmdyb3VwLT5wbGFuZXNbaV07Ci0JCQlzdHJ1Y3QgcmNhcl9kdV9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGU7CisJCQlzdHJ1Y3QgcmNhcl9kdV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5l X3N0YXRlOwogCQkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqczsKIAogCQkJcyA9IGRybV9hdG9t aWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCAmcGxhbmUtPnBsYW5lKTsKQEAgLTIyNiwxNiArMjI0 LDE2IEBAIGludCByY2FyX2R1X2F0b21pY19jaGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJCQljb250aW51ZTsKIAkJCX0KIAotCQkJcGxhbmVfc3RhdGUgPSB0b19yY2FyX3Bs YW5lX3N0YXRlKHBsYW5lLT5wbGFuZS5zdGF0ZSk7Ci0JCQl1c2VkX3BsYW5lcyB8PSByY2FyX2R1 X3BsYW5lX2h3bWFzayhwbGFuZV9zdGF0ZSk7CisJCQluZXdfcGxhbmVfc3RhdGUgPSB0b19yY2Fy X3BsYW5lX3N0YXRlKHMpOworCQkJdXNlZF9wbGFuZXMgfD0gcmNhcl9kdV9wbGFuZV9od21hc2so bmV3X3BsYW5lX3N0YXRlKTsKIAogCQkJZGV2X2RiZyhyY2R1LT5kZXYsCiAJCQkJIiVzOiBwbGFu ZSAoJXUsJXR1KSB1c2VzICV1IGh3cGxhbmVzIChpbmRleCAlZClcbiIsCiAJCQkJX19mdW5jX18s IHBsYW5lLT5ncm91cC0+aW5kZXgsCiAJCQkJcGxhbmUgLSBwbGFuZS0+Z3JvdXAtPnBsYW5lcywK LQkJCQlwbGFuZV9zdGF0ZS0+Zm9ybWF0ID8KLQkJCQlwbGFuZV9zdGF0ZS0+Zm9ybWF0LT5wbGFu ZXMgOiAwLAotCQkJCXBsYW5lX3N0YXRlLT5od2luZGV4KTsKKwkJCQluZXdfcGxhbmVfc3RhdGUt PmZvcm1hdCA/CisJCQkJbmV3X3BsYW5lX3N0YXRlLT5mb3JtYXQtPnBsYW5lcyA6IDAsCisJCQkJ bmV3X3BsYW5lX3N0YXRlLT5od2luZGV4KTsKIAkJfQogCiAJCWdyb3VwX2ZyZWVfcGxhbmVzW2lu ZGV4XSA9IDB4ZmYgJiB+dXNlZF9wbGFuZXM7CkBAIC0yNDYsMTUgKzI0NCwxNiBAQCBpbnQgcmNh cl9kdV9hdG9taWNfY2hlY2tfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCiAJ LyogUmVhbGxvY2F0ZSBoYXJkd2FyZSBwbGFuZXMgZm9yIGVhY2ggcGxhbmUgdGhhdCBuZWVkcyBp dC4gKi8KLQlmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgZHJtX3BsYW5lLCBkcm1fcGxh bmVfc3RhdGUsIGkpIHsKLQkJc3RydWN0IHJjYXJfZHVfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl OworCWZvcl9lYWNoX29sZG5ld19wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgZHJtX3BsYW5lLCBvbGRf ZHJtX3BsYW5lX3N0YXRlLCBuZXdfZHJtX3BsYW5lX3N0YXRlLCBpKSB7CisJCXN0cnVjdCByY2Fy X2R1X3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7CiAJCXN0 cnVjdCByY2FyX2R1X3BsYW5lICpwbGFuZTsKIAkJdW5zaWduZWQgaW50IGNydGNfcGxhbmVzOwog CQl1bnNpZ25lZCBpbnQgZnJlZTsKIAkJaW50IGlkeDsKIAogCQlwbGFuZSA9IHRvX3JjYXJfcGxh bmUoZHJtX3BsYW5lKTsKLQkJcGxhbmVfc3RhdGUgPSB0b19yY2FyX3BsYW5lX3N0YXRlKGRybV9w bGFuZV9zdGF0ZSk7CisJCW9sZF9wbGFuZV9zdGF0ZSA9IHRvX3JjYXJfcGxhbmVfc3RhdGUob2xk X2RybV9wbGFuZV9zdGF0ZSk7CisJCW5ld19wbGFuZV9zdGF0ZSA9IHRvX3JjYXJfcGxhbmVfc3Rh dGUobmV3X2RybV9wbGFuZV9zdGF0ZSk7CiAKIAkJZGV2X2RiZyhyY2R1LT5kZXYsICIlczogYWxs b2NhdGluZyBwbGFuZSAoJXUsJXR1KVxuIiwgX19mdW5jX18sCiAJCQlwbGFuZS0+Z3JvdXAtPmlu ZGV4LCBwbGFuZSAtIHBsYW5lLT5ncm91cC0+cGxhbmVzKTsKQEAgLTI2Miw4ICsyNjEsOCBAQCBp bnQgcmNhcl9kdV9hdG9taWNfY2hlY2tfcGxhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CS8qIFNraXAgcGxhbmVzIHRoYXQgYXJlIGJlaW5nIGRpc2FibGVkIG9yIGRvbid0IG5lZWQgdG8g YmUKIAkJICogcmVhbGxvY2F0ZWQuCiAJCSAqLwotCQlpZiAoIXBsYW5lX3N0YXRlLT5mb3JtYXQg fHwKLQkJICAgICFyY2FyX2R1X3BsYW5lX25lZWRzX3JlYWxsb2MocGxhbmUsIHBsYW5lX3N0YXRl KSkKKwkJaWYgKCFuZXdfcGxhbmVfc3RhdGUtPmZvcm1hdCB8fAorCQkgICAgIXJjYXJfZHVfcGxh bmVfbmVlZHNfcmVhbGxvYyhwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUp KQogCQkJY29udGludWU7CiAKIAkJLyogVHJ5IHRvIGFsbG9jYXRlIHRoZSBwbGFuZSBmcm9tIHRo ZSBmcmVlIHBsYW5lcyBjdXJyZW50bHkKQEAgLTI3MSwxNSArMjcwLDE1IEBAIGludCByY2FyX2R1 X2F0b21pY19jaGVja19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJICogZ3JvdXAg YW5kIHRodXMgbWluaW1pemUgZmxpY2tlci4gSWYgaXQgZmFpbHMgZmFsbCBiYWNrIHRvCiAJCSAq IGFsbG9jYXRpbmcgZnJvbSBhbGwgZnJlZSBwbGFuZXMuCiAJCSAqLwotCQljcnRjX3BsYW5lcyA9 IHRvX3JjYXJfY3J0YyhwbGFuZV9zdGF0ZS0+c3RhdGUuY3J0YyktPmluZGV4ICUgMgorCQljcnRj X3BsYW5lcyA9IHRvX3JjYXJfY3J0YyhuZXdfcGxhbmVfc3RhdGUtPnN0YXRlLmNydGMpLT5pbmRl eCAlIDIKIAkJCSAgICA/IHBsYW5lLT5ncm91cC0+ZHB0c3JfcGxhbmVzCiAJCQkgICAgOiB+cGxh bmUtPmdyb3VwLT5kcHRzcl9wbGFuZXM7CiAJCWZyZWUgPSBncm91cF9mcmVlX3BsYW5lc1twbGFu ZS0+Z3JvdXAtPmluZGV4XTsKIAotCQlpZHggPSByY2FyX2R1X3BsYW5lX2h3YWxsb2MocGxhbmUs IHBsYW5lX3N0YXRlLAorCQlpZHggPSByY2FyX2R1X3BsYW5lX2h3YWxsb2MocGxhbmUsIG5ld19w bGFuZV9zdGF0ZSwKIAkJCQkJICAgIGZyZWUgJiBjcnRjX3BsYW5lcyk7CiAJCWlmIChpZHggPCAw KQotCQkJaWR4ID0gcmNhcl9kdV9wbGFuZV9od2FsbG9jKHBsYW5lLCBwbGFuZV9zdGF0ZSwKKwkJ CWlkeCA9IHJjYXJfZHVfcGxhbmVfaHdhbGxvYyhwbGFuZSwgbmV3X3BsYW5lX3N0YXRlLAogCQkJ CQkJICAgIGZyZWUpOwogCQlpZiAoaWR4IDwgMCkgewogCQkJZGV2X2RiZyhyY2R1LT5kZXYsICIl czogbm8gYXZhaWxhYmxlIGhhcmR3YXJlIHBsYW5lXG4iLApAQCAtMjg4LDEyICsyODcsMTIgQEAg aW50IHJjYXJfZHVfYXRvbWljX2NoZWNrX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQl9CiAKIAkJZGV2X2RiZyhyY2R1LT5kZXYsICIlczogYWxsb2NhdGVkICV1IGh3cGxhbmVzIChp bmRleCAldSlcbiIsCi0JCQlfX2Z1bmNfXywgcGxhbmVfc3RhdGUtPmZvcm1hdC0+cGxhbmVzLCBp ZHgpOworCQkJX19mdW5jX18sIG5ld19wbGFuZV9zdGF0ZS0+Zm9ybWF0LT5wbGFuZXMsIGlkeCk7 CiAKLQkJcGxhbmVfc3RhdGUtPmh3aW5kZXggPSBpZHg7CisJCW5ld19wbGFuZV9zdGF0ZS0+aHdp bmRleCA9IGlkeDsKIAogCQlncm91cF9mcmVlX3BsYW5lc1twbGFuZS0+Z3JvdXAtPmluZGV4XSAm PQotCQkJfnJjYXJfZHVfcGxhbmVfaHdtYXNrKHBsYW5lX3N0YXRlKTsKKwkJCX5yY2FyX2R1X3Bs YW5lX2h3bWFzayhuZXdfcGxhbmVfc3RhdGUpOwogCiAJCWRldl9kYmcocmNkdS0+ZGV2LCAiJXM6 IGdyb3VwICV1IGZyZWUgcGxhbmVzIG1hc2sgMHglMDJ4XG4iLAogCQkJX19mdW5jX18sIHBsYW5l LT5ncm91cC0+aW5kZXgsCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK