From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/5] drm/mm: Use helpers for drm_mm_node booleans Date: Fri, 4 Oct 2019 09:33:08 +0100 Message-ID: <2cd87ed8-4f28-0943-feba-b42462dd25d9@linux.intel.com> References: <20191003210100.22250-1-chris@chris-wilson.co.uk> <20191003210100.22250-3-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191003210100.22250-3-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Ck9uIDAzLzEwLzIwMTkgMjI6MDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbiBwcmVwYXJhdGlv biBmb3IgcmVhcnJhbmdpbmcgdGhlIGJvb2xlYW5zIGludG8gYSBmbGFncyBmaWVsZCwgZW5zdXJl Cj4gYWxsIHRoZSBjdXJyZW50IHVzZXJzIGFyZSB1c2luZyB0aGUgaW5saW5lIGhlbHBlcnMgYW5k IG5vdCBkaXJlY3RseQo+IGFjY2Vzc2luZyB0aGUgbWVtYmVycy4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9kcm1fbW0uYyAgICAgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysr Ky0tLS0tLS0KPiAgIC4uLi9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyAg ICB8ICA0ICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3LmMg ICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAg ICAgICAgfCAxMiArKysrKystLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V2aWN0LmMgICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Zt YS5jICAgICAgICAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 bWEuaCAgICAgICAgICAgICAgIHwgIDQgKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0 cy90ZXN0LWRybV9tbS5jICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X2NydGMuYyAgICAgICAgICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dw dS9kcm0vdmM0L3ZjNF9odnMuYyAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfcGxhbmUuYyAgICAgICAgICAgICAgIHwgIDQgKystLQo+ICAgMTEgZmls ZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0u Ywo+IGluZGV4IDQ1ODFjNTM4NzM3Mi4uOTkzMTJiZGM2MjczIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fbW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYwo+IEBA IC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIHZvaWQgZHJtX21tX2ludGVydmFsX3RyZWVfYWRkX25v ZGUoc3RydWN0IGRybV9tbV9ub2RlICpob2xlX25vZGUsCj4gICAKPiAgIAlub2RlLT5fX3N1YnRy ZWVfbGFzdCA9IExBU1Qobm9kZSk7Cj4gICAKPiAtCWlmIChob2xlX25vZGUtPmFsbG9jYXRlZCkg ewo+ICsJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZChob2xlX25vZGUpKSB7Cj4gICAJCXJiID0g JmhvbGVfbm9kZS0+cmI7Cj4gICAJCXdoaWxlIChyYikgewo+ICAgCQkJcGFyZW50ID0gcmJfZW50 cnkocmIsIHN0cnVjdCBkcm1fbW1fbm9kZSwgcmIpOwo+IEBAIC01NjEsNiArNTYxLDExIEBAIGlu dCBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2Uoc3RydWN0IGRybV9tbSAqIGNvbnN0IG1tLAo+ ICAgfQo+ICAgRVhQT1JUX1NZTUJPTChkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2UpOwo+ICAg Cj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBkcm1fbW1fbm9kZV9zY2FubmVkX2Jsb2NrKGNvbnN0IHN0 cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKPiArewo+ICsJcmV0dXJuIG5vZGUtPnNjYW5uZWRfYmxv Y2s7Cj4gK30KPiArCj4gICAvKioKPiAgICAqIGRybV9tbV9yZW1vdmVfbm9kZSAtIFJlbW92ZSBh IG1lbW9yeSBub2RlIGZyb20gdGhlIGFsbG9jYXRvci4KPiAgICAqIEBub2RlOiBkcm1fbW1fbm9k ZSB0byByZW1vdmUKPiBAQCAtNTc0LDggKzU3OSw4IEBAIHZvaWQgZHJtX21tX3JlbW92ZV9ub2Rl KHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKPiAgIAlzdHJ1Y3QgZHJtX21tICptbSA9IG5vZGUt Pm1tOwo+ICAgCXN0cnVjdCBkcm1fbW1fbm9kZSAqcHJldl9ub2RlOwo+ICAgCj4gLQlEUk1fTU1f QlVHX09OKCFub2RlLT5hbGxvY2F0ZWQpOwo+IC0JRFJNX01NX0JVR19PTihub2RlLT5zY2FubmVk X2Jsb2NrKTsKPiArCURSTV9NTV9CVUdfT04oIWRybV9tbV9ub2RlX2FsbG9jYXRlZChub2RlKSk7 Cj4gKwlEUk1fTU1fQlVHX09OKGRybV9tbV9ub2RlX3NjYW5uZWRfYmxvY2sobm9kZSkpOwo+ICAg Cj4gICAJcHJldl9ub2RlID0gbGlzdF9wcmV2X2VudHJ5KG5vZGUsIG5vZGVfbGlzdCk7Cj4gICAK PiBAQCAtNjA1LDcgKzYxMCw3IEBAIHZvaWQgZHJtX21tX3JlcGxhY2Vfbm9kZShzdHJ1Y3QgZHJt X21tX25vZGUgKm9sZCwgc3RydWN0IGRybV9tbV9ub2RlICpuZXcpCj4gICB7Cj4gICAJc3RydWN0 IGRybV9tbSAqbW0gPSBvbGQtPm1tOwo+ICAgCj4gLQlEUk1fTU1fQlVHX09OKCFvbGQtPmFsbG9j YXRlZCk7Cj4gKwlEUk1fTU1fQlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQob2xkKSk7Cj4g ICAKPiAgIAkqbmV3ID0gKm9sZDsKPiAgIAo+IEBAIC03MzEsOCArNzM2LDggQEAgYm9vbCBkcm1f bW1fc2Nhbl9hZGRfYmxvY2soc3RydWN0IGRybV9tbV9zY2FuICpzY2FuLAo+ICAgCXU2NCBhZGpf c3RhcnQsIGFkal9lbmQ7Cj4gICAKPiAgIAlEUk1fTU1fQlVHX09OKG5vZGUtPm1tICE9IG1tKTsK PiAtCURSTV9NTV9CVUdfT04oIW5vZGUtPmFsbG9jYXRlZCk7Cj4gLQlEUk1fTU1fQlVHX09OKG5v ZGUtPnNjYW5uZWRfYmxvY2spOwo+ICsJRFJNX01NX0JVR19PTighZHJtX21tX25vZGVfYWxsb2Nh dGVkKG5vZGUpKTsKPiArCURSTV9NTV9CVUdfT04oZHJtX21tX25vZGVfc2Nhbm5lZF9ibG9jayhu b2RlKSk7Cj4gICAJbm9kZS0+c2Nhbm5lZF9ibG9jayA9IHRydWU7Cj4gICAJbW0tPnNjYW5fYWN0 aXZlKys7Cj4gICAKPiBAQCAtODE4LDcgKzgyMyw3IEBAIGJvb2wgZHJtX21tX3NjYW5fcmVtb3Zl X2Jsb2NrKHN0cnVjdCBkcm1fbW1fc2NhbiAqc2NhbiwKPiAgIAlzdHJ1Y3QgZHJtX21tX25vZGUg KnByZXZfbm9kZTsKPiAgIAo+ICAgCURSTV9NTV9CVUdfT04obm9kZS0+bW0gIT0gc2Nhbi0+bW0p Owo+IC0JRFJNX01NX0JVR19PTighbm9kZS0+c2Nhbm5lZF9ibG9jayk7Cj4gKwlEUk1fTU1fQlVH X09OKCFkcm1fbW1fbm9kZV9zY2FubmVkX2Jsb2NrKG5vZGUpKTsKPiAgIAlub2RlLT5zY2FubmVk X2Jsb2NrID0gZmFsc2U7Cj4gICAKPiAgIAlEUk1fTU1fQlVHX09OKCFub2RlLT5tbS0+c2Nhbl9h Y3RpdmUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f ZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwo+IGluZGV4IDI3ZGJjYjUwODA1NS4uMjBkOGE2Mjk3OTg1IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTk2OCw3ICs5 NjgsNyBAQCBzdGF0aWMgdm9pZCByZWxvY19jYWNoZV9yZXNldChzdHJ1Y3QgcmVsb2NfY2FjaGUg KmNhY2hlKQo+ICAgCQlpbnRlbF9ndF9mbHVzaF9nZ3R0X3dyaXRlcyhnZ3R0LT52bS5ndCk7Cj4g ICAJCWlvX21hcHBpbmdfdW5tYXBfYXRvbWljKCh2b2lkIF9faW9tZW0gKil2YWRkcik7Cj4gICAK PiAtCQlpZiAoY2FjaGUtPm5vZGUuYWxsb2NhdGVkKSB7Cj4gKwkJaWYgKGRybV9tbV9ub2RlX2Fs bG9jYXRlZCgmY2FjaGUtPm5vZGUpKSB7Cj4gICAJCQlnZ3R0LT52bS5jbGVhcl9yYW5nZSgmZ2d0 dC0+dm0sCj4gICAJCQkJCSAgICAgY2FjaGUtPm5vZGUuc3RhcnQsCj4gICAJCQkJCSAgICAgY2Fj aGUtPm5vZGUuc2l6ZSk7Cj4gQEAgLTEwNjEsNyArMTA2MSw3IEBAIHN0YXRpYyB2b2lkICpyZWxv Y19pb21hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAgCX0KPiAgIAo+ICAg CW9mZnNldCA9IGNhY2hlLT5ub2RlLnN0YXJ0Owo+IC0JaWYgKGNhY2hlLT5ub2RlLmFsbG9jYXRl ZCkgewo+ICsJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmY2FjaGUtPm5vZGUpKSB7Cj4gICAJ CWdndHQtPnZtLmluc2VydF9wYWdlKCZnZ3R0LT52bSwKPiAgIAkJCQkgICAgIGk5MTVfZ2VtX29i amVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCBwYWdlKSwKPiAgIAkJCQkgICAgIG9mZnNldCwgSTkx NV9DQUNIRV9OT05FLCAwKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv dWMvaW50ZWxfdWNfZncuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3VjX2Z3 LmMKPiBpbmRleCBiYjg3ODExOWYwNmMuLmJiNDg4OWQyMzQ2ZCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuYwo+IEBAIC0zODcsNyArMzg3LDcgQEAgc3RhdGlj IHUzMiB1Y19md19nZ3R0X29mZnNldChzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3LCBzdHJ1Y3Qg aTkxNV9nZ3R0ICpnZ3R0KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSA9ICZn Z3R0LT51Y19mdzsKPiAgIAo+IC0JR0VNX0JVR19PTighbm9kZS0+YWxsb2NhdGVkKTsKPiArCUdF TV9CVUdfT04oIWRybV9tbV9ub2RlX2FsbG9jYXRlZChub2RlKSk7Cj4gICAJR0VNX0JVR19PTih1 cHBlcl8zMl9iaXRzKG5vZGUtPnN0YXJ0KSk7Cj4gICAJR0VNX0JVR19PTih1cHBlcl8zMl9iaXRz KG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSAtIDEpKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+IGluZGV4IDE0MjZlNTA2NzAwZC4uZmE4ZTAyOGFjMGI1IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gQEAgLTM1Niw3ICszNTYsNyBAQCBpOTE1X2dlbV9ndHRfcHJlYWQoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAkJcmV0ID0gaW5zZXJ0X21hcHBhYmxl X25vZGUoZ2d0dCwgJm5vZGUsIFBBR0VfU0laRSk7Cj4gICAJCWlmIChyZXQpCj4gICAJCQlnb3Rv IG91dF91bmxvY2s7Cj4gLQkJR0VNX0JVR19PTighbm9kZS5hbGxvY2F0ZWQpOwo+ICsJCUdFTV9C VUdfT04oIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmbm9kZSkpOwo+ICAgCX0KPiAgIAo+ICAgCW11 dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gQEAgLTM5Myw3ICszOTMsNyBA QCBpOTE1X2dlbV9ndHRfcHJlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAg IAkJdW5zaWduZWQgcGFnZV9vZmZzZXQgPSBvZmZzZXRfaW5fcGFnZShvZmZzZXQpOwo+ICAgCQl1 bnNpZ25lZCBwYWdlX2xlbmd0aCA9IFBBR0VfU0laRSAtIHBhZ2Vfb2Zmc2V0Owo+ICAgCQlwYWdl X2xlbmd0aCA9IHJlbWFpbiA8IHBhZ2VfbGVuZ3RoID8gcmVtYWluIDogcGFnZV9sZW5ndGg7Cj4g LQkJaWYgKG5vZGUuYWxsb2NhdGVkKSB7Cj4gKwkJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgm bm9kZSkpIHsKPiAgIAkJCWdndHQtPnZtLmluc2VydF9wYWdlKCZnZ3R0LT52bSwKPiAgIAkJCQkJ ICAgICBpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKG9iaiwgb2Zmc2V0ID4+IFBBR0Vf U0hJRlQpLAo+ICAgCQkJCQkgICAgIG5vZGUuc3RhcnQsIEk5MTVfQ0FDSEVfTk9ORSwgMCk7Cj4g QEAgLTQxNSw3ICs0MTUsNyBAQCBpOTE1X2dlbV9ndHRfcHJlYWQoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKPiAgIAlpOTE1X2dlbV9vYmplY3RfdW5sb2NrX2ZlbmNlKG9iaiwgZmVu Y2UpOwo+ICAgb3V0X3VucGluOgo+ICAgCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0 ZXgpOwo+IC0JaWYgKG5vZGUuYWxsb2NhdGVkKSB7Cj4gKwlpZiAoZHJtX21tX25vZGVfYWxsb2Nh dGVkKCZub2RlKSkgewo+ICAgCQlnZ3R0LT52bS5jbGVhcl9yYW5nZSgmZ2d0dC0+dm0sIG5vZGUu c3RhcnQsIG5vZGUuc2l6ZSk7Cj4gICAJCXJlbW92ZV9tYXBwYWJsZV9ub2RlKCZub2RlKTsKPiAg IAl9IGVsc2Ugewo+IEBAIC01NjYsNyArNTY2LDcgQEAgaTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0 KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJCXJldCA9IGluc2VydF9tYXBw YWJsZV9ub2RlKGdndHQsICZub2RlLCBQQUdFX1NJWkUpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJ Z290byBvdXRfcnBtOwo+IC0JCUdFTV9CVUdfT04oIW5vZGUuYWxsb2NhdGVkKTsKPiArCQlHRU1f QlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJm5vZGUpKTsKPiAgIAl9Cj4gICAKPiAgIAlt dXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IEBAIC02MDQsNyArNjA0LDcg QEAgaTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmosCj4gICAJCXVuc2lnbmVkIGludCBwYWdlX29mZnNldCA9IG9mZnNldF9pbl9wYWdlKG9mZnNl dCk7Cj4gICAJCXVuc2lnbmVkIGludCBwYWdlX2xlbmd0aCA9IFBBR0VfU0laRSAtIHBhZ2Vfb2Zm c2V0Owo+ICAgCQlwYWdlX2xlbmd0aCA9IHJlbWFpbiA8IHBhZ2VfbGVuZ3RoID8gcmVtYWluIDog cGFnZV9sZW5ndGg7Cj4gLQkJaWYgKG5vZGUuYWxsb2NhdGVkKSB7Cj4gKwkJaWYgKGRybV9tbV9u b2RlX2FsbG9jYXRlZCgmbm9kZSkpIHsKPiAgIAkJCS8qIGZsdXNoIHRoZSB3cml0ZSBiZWZvcmUg d2UgbW9kaWZ5IHRoZSBHR1RUICovCj4gICAJCQlpbnRlbF9ndF9mbHVzaF9nZ3R0X3dyaXRlcyhn Z3R0LT52bS5ndCk7Cj4gICAJCQlnZ3R0LT52bS5pbnNlcnRfcGFnZSgmZ2d0dC0+dm0sCj4gQEAg LTYzNiw3ICs2MzYsNyBAQCBpOTE1X2dlbV9ndHRfcHdyaXRlX2Zhc3Qoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKPiAgIG91dF91bnBpbjoKPiAgIAltdXRleF9sb2NrKCZpOTE1LT5k cm0uc3RydWN0X211dGV4KTsKPiAgIAlpbnRlbF9ndF9mbHVzaF9nZ3R0X3dyaXRlcyhnZ3R0LT52 bS5ndCk7Cj4gLQlpZiAobm9kZS5hbGxvY2F0ZWQpIHsKPiArCWlmIChkcm1fbW1fbm9kZV9hbGxv Y2F0ZWQoJm5vZGUpKSB7Cj4gICAJCWdndHQtPnZtLmNsZWFyX3JhbmdlKCZnZ3R0LT52bSwgbm9k ZS5zdGFydCwgbm9kZS5zaXplKTsKPiAgIAkJcmVtb3ZlX21hcHBhYmxlX25vZGUoJm5vZGUpOwo+ ICAgCX0gZWxzZSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCj4gaW5kZXgg ZTc2YzlkYTk5OTJkLi44YzFlMDRmNDAyYmMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXZpY3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V2aWN0LmMKPiBAQCAtMjk5LDcgKzI5OSw3IEBAIGludCBpOTE1X2dlbV9ldmljdF9mb3Jf bm9kZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAkJCWJyZWFrOwo+ICAgCQl9 Cj4gICAKPiAtCQlHRU1fQlVHX09OKCFub2RlLT5hbGxvY2F0ZWQpOwo+ICsJCUdFTV9CVUdfT04o IWRybV9tbV9ub2RlX2FsbG9jYXRlZChub2RlKSk7Cj4gICAJCXZtYSA9IGNvbnRhaW5lcl9vZihu b2RlLCB0eXBlb2YoKnZtYSksIG5vZGUpOwo+ICAgCj4gICAJCS8qIElmIHdlIGFyZSB1c2luZyBj b2xvcmluZyB0byBpbnNlcnQgZ3VhcmQgcGFnZXMgYmV0d2Vlbgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 bWEuYwo+IGluZGV4IDlkNWIwZjg3YzIxMC4uNjhjMzRiMWEyMGU0IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3ZtYS5jCj4gQEAgLTc5NSw3ICs3OTUsNyBAQCB2b2lkIGk5MTVfdm1hX3Jlb3Blbihz dHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIAo+ICAgc3RhdGljIHZvaWQgX19pOTE1X3ZtYV9kZXN0 cm95KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgewo+IC0JR0VNX0JVR19PTih2bWEtPm5vZGUu YWxsb2NhdGVkKTsKPiArCUdFTV9CVUdfT04oZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEtPm5v ZGUpKTsKPiAgIAlHRU1fQlVHX09OKHZtYS0+ZmVuY2UpOwo+ICAgCj4gICAJbXV0ZXhfbG9jaygm dm1hLT52bS0+bXV0ZXgpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAo+IGluZGV4IDhiY2I1ODEy YzQ0Ni4uZTQ5YjE5OWY3ZGU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdm1hLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCj4gQEAgLTIy OCw3ICsyMjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV92bWFfaXNfY2xvc2VkKGNvbnN0 IHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ICAgc3RhdGljIGlubGluZSB1MzIgaTkxNV9nZ3R0X29m ZnNldChjb25zdCBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIHsKPiAgIAlHRU1fQlVHX09OKCFp OTE1X3ZtYV9pc19nZ3R0KHZtYSkpOwo+IC0JR0VNX0JVR19PTighdm1hLT5ub2RlLmFsbG9jYXRl ZCk7Cj4gKwlHRU1fQlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZtYS0+bm9kZSkpOwo+ ICAgCUdFTV9CVUdfT04odXBwZXJfMzJfYml0cyh2bWEtPm5vZGUuc3RhcnQpKTsKPiAgIAlHRU1f QlVHX09OKHVwcGVyXzMyX2JpdHModm1hLT5ub2RlLnN0YXJ0ICsgdm1hLT5ub2RlLnNpemUgLSAx KSk7Cj4gICAJcmV0dXJuIGxvd2VyXzMyX2JpdHModm1hLT5ub2RlLnN0YXJ0KTsKPiBAQCAtMzkw LDcgKzM5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X3ZtYV9pc19ib3VuZChjb25zdCBz dHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1X25vZGVfY29s b3JfZGlmZmVycyhjb25zdCBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUsCj4gICAJCQkJCSAgIHVu c2lnbmVkIGxvbmcgY29sb3IpCj4gICB7Cj4gLQlyZXR1cm4gbm9kZS0+YWxsb2NhdGVkICYmIG5v ZGUtPmNvbG9yICE9IGNvbG9yOwo+ICsJcmV0dXJuIGRybV9tbV9ub2RlX2FsbG9jYXRlZChub2Rl KSAmJiBub2RlLT5jb2xvciAhPSBjb2xvcjsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYwo+IGluZGV4IDM4OGY5ODQ0ZjRiYS4uOWFhYmU4 MmRjZDNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1f bW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYwo+IEBA IC04NTQsNyArODU0LDcgQEAgc3RhdGljIGJvb2wgYXNzZXJ0X2NvbnRpZ3VvdXNfaW5fcmFuZ2Uo c3RydWN0IGRybV9tbSAqbW0sCj4gICAKPiAgIAlpZiAoc3RhcnQgPiAwKSB7Cj4gICAJCW5vZGUg PSBfX2RybV9tbV9pbnRlcnZhbF9maXJzdChtbSwgMCwgc3RhcnQgLSAxKTsKPiAtCQlpZiAobm9k ZS0+YWxsb2NhdGVkKSB7Cj4gKwkJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZChub2RlKSkgewo+ ICAgCQkJcHJfZXJyKCJub2RlIGJlZm9yZSBzdGFydDogbm9kZT0lbGx4KyVsbHUsIHN0YXJ0PSVs bHhcbiIsCj4gICAJCQkgICAgICAgbm9kZS0+c3RhcnQsIG5vZGUtPnNpemUsIHN0YXJ0KTsKPiAg IAkJCXJldHVybiBmYWxzZTsKPiBAQCAtODYzLDcgKzg2Myw3IEBAIHN0YXRpYyBib29sIGFzc2Vy dF9jb250aWd1b3VzX2luX3JhbmdlKHN0cnVjdCBkcm1fbW0gKm1tLAo+ICAgCj4gICAJaWYgKGVu ZCA8IFU2NF9NQVgpIHsKPiAgIAkJbm9kZSA9IF9fZHJtX21tX2ludGVydmFsX2ZpcnN0KG1tLCBl bmQsIFU2NF9NQVgpOwo+IC0JCWlmIChub2RlLT5hbGxvY2F0ZWQpIHsKPiArCQlpZiAoZHJtX21t X25vZGVfYWxsb2NhdGVkKG5vZGUpKSB7Cj4gICAJCQlwcl9lcnIoIm5vZGUgYWZ0ZXIgZW5kOiBu b2RlPSVsbHgrJWxsdSwgZW5kPSVsbHhcbiIsCj4gICAJCQkgICAgICAgbm9kZS0+c3RhcnQsIG5v ZGUtPnNpemUsIGVuZCk7Cj4gICAJCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTExNTYsMTIgKzExNTYs MTIgQEAgc3RhdGljIHZvaWQgc2hvd19ob2xlcyhjb25zdCBzdHJ1Y3QgZHJtX21tICptbSwgaW50 IGNvdW50KQo+ICAgCQlzdHJ1Y3QgZHJtX21tX25vZGUgKm5leHQgPSBsaXN0X25leHRfZW50cnko aG9sZSwgbm9kZV9saXN0KTsKPiAgIAkJY29uc3QgY2hhciAqbm9kZTEgPSBOVUxMLCAqbm9kZTIg PSBOVUxMOwo+ICAgCj4gLQkJaWYgKGhvbGUtPmFsbG9jYXRlZCkKPiArCQlpZiAoZHJtX21tX25v ZGVfYWxsb2NhdGVkKGhvbGUpKQo+ICAgCQkJbm9kZTEgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwK PiAgIAkJCQkJICAiWyVsbHggKyAlbGxkLCBjb2xvcj0lbGRdLCAiLAo+ICAgCQkJCQkgIGhvbGUt PnN0YXJ0LCBob2xlLT5zaXplLCBob2xlLT5jb2xvcik7Cj4gICAKPiAtCQlpZiAobmV4dC0+YWxs b2NhdGVkKQo+ICsJCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQobmV4dCkpCj4gICAJCQlub2Rl MiA9IGthc3ByaW50ZihHRlBfS0VSTkVMLAo+ICAgCQkJCQkgICIsIFslbGx4ICsgJWxsZCwgY29s b3I9JWxkXSIsCj4gICAJCQkJCSAgbmV4dC0+c3RhcnQsIG5leHQtPnNpemUsIG5leHQtPmNvbG9y KTsKPiBAQCAtMTkwMCwxOCArMTkwMCwxOCBAQCBzdGF0aWMgdm9pZCBzZXBhcmF0ZV9hZGphY2Vu dF9jb2xvcnMoY29uc3Qgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAo+ICAgCQkJCSAgICAgdTY0 ICpzdGFydCwKPiAgIAkJCQkgICAgIHU2NCAqZW5kKQo+ICAgewo+IC0JaWYgKG5vZGUtPmFsbG9j YXRlZCAmJiBub2RlLT5jb2xvciAhPSBjb2xvcikKPiArCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0 ZWQobm9kZSkgJiYgbm9kZS0+Y29sb3IgIT0gY29sb3IpCj4gICAJCSsrKnN0YXJ0Owo+ICAgCj4g ICAJbm9kZSA9IGxpc3RfbmV4dF9lbnRyeShub2RlLCBub2RlX2xpc3QpOwo+IC0JaWYgKG5vZGUt PmFsbG9jYXRlZCAmJiBub2RlLT5jb2xvciAhPSBjb2xvcikKPiArCWlmIChkcm1fbW1fbm9kZV9h bGxvY2F0ZWQobm9kZSkgJiYgbm9kZS0+Y29sb3IgIT0gY29sb3IpCj4gICAJCS0tKmVuZDsKPiAg IH0KPiAgIAo+ICAgc3RhdGljIGJvb2wgY29sb3JzX2FidXR0KGNvbnN0IHN0cnVjdCBkcm1fbW1f bm9kZSAqbm9kZSkKPiAgIHsKPiAgIAlpZiAoIWRybV9tbV9ob2xlX2ZvbGxvd3Mobm9kZSkgJiYK PiAtCSAgICBsaXN0X25leHRfZW50cnkobm9kZSwgbm9kZV9saXN0KS0+YWxsb2NhdGVkKSB7Cj4g KwkgICAgZHJtX21tX25vZGVfYWxsb2NhdGVkKGxpc3RfbmV4dF9lbnRyeShub2RlLCBub2RlX2xp c3QpKSkgewo+ICAgCQlwcl9lcnIoImNvbG9ycyBhYnV0dDsgJWxkIFslbGx4ICsgJWxseF0gaXMg bmV4dCB0byAlbGQgWyVsbHggKyAlbGx4XSFcbiIsCj4gICAJCSAgICAgICBub2RlLT5jb2xvciwg bm9kZS0+c3RhcnQsIG5vZGUtPnNpemUsCj4gICAJCSAgICAgICBsaXN0X25leHRfZW50cnkobm9k ZSwgbm9kZV9saXN0KS0+Y29sb3IsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYwo+IGluZGV4IGYxZjBh N2M4Nzc3MS4uYjAwZTIwZjVjZTA1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2NydGMuYwo+IEBAIC05 OTQsNyArOTk0LDcgQEAgc3RhdGljIHZvaWQgdmM0X2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gICAJc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRvX3ZjNF9kZXYoY3J0 Yy0+ZGV2KTsKPiAgIAlzdHJ1Y3QgdmM0X2NydGNfc3RhdGUgKnZjNF9zdGF0ZSA9IHRvX3ZjNF9j cnRjX3N0YXRlKHN0YXRlKTsKPiAgIAo+IC0JaWYgKHZjNF9zdGF0ZS0+bW0uYWxsb2NhdGVkKSB7 Cj4gKwlpZiAoZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2YzRfc3RhdGUtPm1tKSkgewo+ICAgCQl1 bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAgCj4gICAJCXNwaW5fbG9ja19pcnFzYXZlKCZ2YzQtPmh2 cy0+bW1fbG9jaywgZmxhZ3MpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3Zj NF9odnMuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2h2cy5jCj4gaW5kZXggOTkzNmIxNWQw YmYxLi41YTQzNjU5ZGEzMTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRf aHZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9odnMuYwo+IEBAIC0zMTUsNyAr MzE1LDcgQEAgc3RhdGljIHZvaWQgdmM0X2h2c191bmJpbmQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGRldl9n ZXRfZHJ2ZGF0YShtYXN0ZXIpOwo+ICAgCXN0cnVjdCB2YzRfZGV2ICp2YzQgPSBkcm0tPmRldl9w cml2YXRlOwo+ICAgCj4gLQlpZiAodmM0LT5odnMtPm1pdGNoZWxsX25ldHJhdmFsaV9maWx0ZXIu YWxsb2NhdGVkKQo+ICsJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdmM0LT5odnMtPm1pdGNo ZWxsX25ldHJhdmFsaV9maWx0ZXIpKQo+ICAgCQlkcm1fbW1fcmVtb3ZlX25vZGUoJnZjNC0+aHZz LT5taXRjaGVsbF9uZXRyYXZhbGlfZmlsdGVyKTsKPiAgIAo+ICAgCWRybV9tbV90YWtlZG93bigm dmM0LT5odnMtPmRsaXN0X21tKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92 YzRfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMKPiBpbmRleCA1ZTVm OTA4MTBhY2EuLjQ5MzQxMjdmMGQ3NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9wbGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYwo+IEBA IC0xNzgsNyArMTc4LDcgQEAgc3RhdGljIHZvaWQgdmM0X3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gICAJc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRvX3ZjNF9k ZXYocGxhbmUtPmRldik7Cj4gICAJc3RydWN0IHZjNF9wbGFuZV9zdGF0ZSAqdmM0X3N0YXRlID0g dG9fdmM0X3BsYW5lX3N0YXRlKHN0YXRlKTsKPiAgIAo+IC0JaWYgKHZjNF9zdGF0ZS0+bGJtLmFs bG9jYXRlZCkgewo+ICsJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdmM0X3N0YXRlLT5sYm0p KSB7Cj4gICAJCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gICAKPiAgIAkJc3Bpbl9sb2NrX2ly cXNhdmUoJnZjNC0+aHZzLT5tbV9sb2NrLCBpcnFmbGFncyk7Cj4gQEAgLTU1Nyw3ICs1NTcsNyBA QCBzdGF0aWMgaW50IHZjNF9wbGFuZV9hbGxvY2F0ZV9sYm0oc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqc3RhdGUpCj4gICAJLyogQWxsb2NhdGUgdGhlIExCTSBtZW1vcnkgdGhhdCB0aGUgSFZTIHdp bGwgdXNlIGZvciB0ZW1wb3JhcnkKPiAgIAkgKiBzdG9yYWdlIGR1ZSB0byBvdXIgc2NhbGluZy9m b3JtYXQgY29udmVyc2lvbi4KPiAgIAkgKi8KPiAtCWlmICghdmM0X3N0YXRlLT5sYm0uYWxsb2Nh dGVkKSB7Cj4gKwlpZiAoIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdmM0X3N0YXRlLT5sYm0pKSB7 Cj4gICAJCWludCByZXQ7Cj4gICAKPiAgIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnZjNC0+aHZzLT5t bV9sb2NrLCBpcnFmbGFncyk7Cj4gCgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRr by51cnN1bGluQGludGVsLmNvbT4KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4