From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 2/2] drm/mm: Pack allocated/scanned boolean into a bitfield Date: Thu, 3 Oct 2019 14:42:38 +0100 Message-ID: References: <20190915184539.16724-1-chris@chris-wilson.co.uk> <20190915184539.16724-2-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: <20190915184539.16724-2-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 , dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE1LzA5LzIwMTkgMTk6NDUsIENocmlzIFdpbHNvbiB3cm90ZToKPiBUaGUgdWx0ZXJpb3Ig bW90aXZlIHRvIHN3aXRjaGluZyB0aGUgYm9vbGVhbnMgb3ZlciB0byBiaXRvcHMgaXMgdG8KPiBh bGxvdyB1c2Ugb2YgdGhlIGFsbG9jYXRlZCBmbGFnIGFzIGEgYml0bG9jay4KCkxvY2tlZCBiaXQg dXNhZ2UgYXBwbGllcyBvbmx5IHRvIERSTV9NTV9OT0RFX0FMTE9DQVRFRF9CSVQ/CgpBbnkgdmFs dWUgaW4gZXh0cmFjdGluZyB0aGUgY29udmVyc2lvbiB0byBjYWxsaW5nIGRybV9tbV9ub2RlX2Fs bG9jYXRlZCAKYWhlYWQgb2YgdGhlIG1haW4gcGF0Y2g/IE1heWJlIGludHJvZHVjaW5nIGRybV9t bV9ub2RlX3NjYW5uZWRfYmxvY2sgCmhlbHBlciBpbiBhIHNlcGFyYXRlIHBhdGNoIGFzIHdlbGwu IFRoZW4gaXQncyByZWFsbHkgZWFzeSB0byBmb2N1cyBvbiAKdGhlIHJlYWwgY2hhbmdlIGluIGEg bGFzdCBwYXRjaCB3aGljaCBqdXN0IHN3aXRjaGVzIHRoZSBpbXBsZW1lbnRhdGlvbiAKb3Zlci4g QnV0IGl0J3Mgbm90IHRvbyBjcml0aWNhbCB0byBkbyB0aGlzLiBJIGRvbid0IHRoaW5rIHBhdGNo IGlzIHRoYXQgCmJpZyBvciB0aGF0IGl0IGhhcyBhbnkgcG90ZW50aWFsIGZvciByZWdyZXNzaW9u IG9uIGl0J3Mgb3duIHRvIGJlIAppbXBvcnRhbnQgaXQgaXMgc3BsaXQgaW50byBzbWFsbGVyIGNo dW5rcy4gU28gSSB0aGluayB0aGlzIGlzICJ3b3VsZCBiZSAKbmljZSIgY2F0ZWdvcnkgb2Ygc3Vn Z2VzdGlvbnMuCgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jICAgICAgICAg ICAgICAgICAgICAgIHwgMzYgKysrKysrKysrKystLS0tLS0tLQo+ICAgLi4uL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jICAgIHwgIDYgKystLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuYyAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICB8IDE2ICsrKystLS0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyAgICAgICAgIHwgIDIgKy0KPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgICAgICAgICAgICAgICB8ICAyICstCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oICAgICAgICAgICAgICAgfCAgNCArLS0KPiAg IGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYyAgICAgICB8IDE0ICsrKyst LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMgICAgICAgICAgICAgICAgfCAg MiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaHZzLmMgICAgICAgICAgICAgICAgIHwg IDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMgICAgICAgICAgICAgICB8 ICA0ICstLQo+ICAgaW5jbHVkZS9kcm0vZHJtX21tLmggICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDcgKystLQo+ICAgMTIgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNDUgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fbW0uYwo+IGluZGV4IDQ1ODFjNTM4NzM3Mi4uMjExOTY3MDA2Y2Vj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fbW0uYwo+IEBAIC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIHZvaWQgZHJtX21t X2ludGVydmFsX3RyZWVfYWRkX25vZGUoc3RydWN0IGRybV9tbV9ub2RlICpob2xlX25vZGUsCj4g ICAKPiAgIAlub2RlLT5fX3N1YnRyZWVfbGFzdCA9IExBU1Qobm9kZSk7Cj4gICAKPiAtCWlmICho b2xlX25vZGUtPmFsbG9jYXRlZCkgewo+ICsJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZChob2xl X25vZGUpKSB7Cj4gICAJCXJiID0gJmhvbGVfbm9kZS0+cmI7Cj4gICAJCXdoaWxlIChyYikgewo+ ICAgCQkJcGFyZW50ID0gcmJfZW50cnkocmIsIHN0cnVjdCBkcm1fbW1fbm9kZSwgcmIpOwo+IEBA IC00MjQsOSArNDI0LDkgQEAgaW50IGRybV9tbV9yZXNlcnZlX25vZGUoc3RydWN0IGRybV9tbSAq bW0sIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKPiAgIAo+ICAgCW5vZGUtPm1tID0gbW07Cj4g ICAKPiArCV9fc2V0X2JpdChEUk1fTU1fTk9ERV9BTExPQ0FURURfQklULCAmbm9kZS0+ZmxhZ3Mp Owo+ICAgCWxpc3RfYWRkKCZub2RlLT5ub2RlX2xpc3QsICZob2xlLT5ub2RlX2xpc3QpOwo+ICAg CWRybV9tbV9pbnRlcnZhbF90cmVlX2FkZF9ub2RlKGhvbGUsIG5vZGUpOwo+IC0Jbm9kZS0+YWxs b2NhdGVkID0gdHJ1ZTsKPiAgIAlub2RlLT5ob2xlX3NpemUgPSAwOwo+ICAgCj4gICAJcm1faG9s ZShob2xlKTsKPiBAQCAtNTQzLDkgKzU0Myw5IEBAIGludCBkcm1fbW1faW5zZXJ0X25vZGVfaW5f cmFuZ2Uoc3RydWN0IGRybV9tbSAqIGNvbnN0IG1tLAo+ICAgCQlub2RlLT5jb2xvciA9IGNvbG9y Owo+ICAgCQlub2RlLT5ob2xlX3NpemUgPSAwOwo+ICAgCj4gKwkJX19zZXRfYml0KERSTV9NTV9O T0RFX0FMTE9DQVRFRF9CSVQsICZub2RlLT5mbGFncyk7Cj4gICAJCWxpc3RfYWRkKCZub2RlLT5u b2RlX2xpc3QsICZob2xlLT5ub2RlX2xpc3QpOwo+ICAgCQlkcm1fbW1faW50ZXJ2YWxfdHJlZV9h ZGRfbm9kZShob2xlLCBub2RlKTsKPiAtCQlub2RlLT5hbGxvY2F0ZWQgPSB0cnVlOwo+ICAgCj4g ICAJCXJtX2hvbGUoaG9sZSk7Cj4gICAJCWlmIChhZGpfc3RhcnQgPiBob2xlX3N0YXJ0KQo+IEBA IC01NjEsNiArNTYxLDExIEBAIGludCBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2Uoc3RydWN0 IGRybV9tbSAqIGNvbnN0IG1tLAo+ICAgfQo+ICAgRVhQT1JUX1NZTUJPTChkcm1fbW1faW5zZXJ0 X25vZGVfaW5fcmFuZ2UpOwo+ICAgCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBkcm1fbW1fbm9kZV9z Y2FubmVkX2Jsb2NrKGNvbnN0IHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKPiArewo+ICsJcmV0 dXJuIHRlc3RfYml0KERSTV9NTV9OT0RFX1NDQU5ORURfQklULCAmbm9kZS0+ZmxhZ3MpOwo+ICt9 Cj4gKwo+ICAgLyoqCj4gICAgKiBkcm1fbW1fcmVtb3ZlX25vZGUgLSBSZW1vdmUgYSBtZW1vcnkg bm9kZSBmcm9tIHRoZSBhbGxvY2F0b3IuCj4gICAgKiBAbm9kZTogZHJtX21tX25vZGUgdG8gcmVt b3ZlCj4gQEAgLTU3NCw4ICs1NzksOCBAQCB2b2lkIGRybV9tbV9yZW1vdmVfbm9kZShzdHJ1Y3Qg ZHJtX21tX25vZGUgKm5vZGUpCj4gICAJc3RydWN0IGRybV9tbSAqbW0gPSBub2RlLT5tbTsKPiAg IAlzdHJ1Y3QgZHJtX21tX25vZGUgKnByZXZfbm9kZTsKPiAgIAo+IC0JRFJNX01NX0JVR19PTigh bm9kZS0+YWxsb2NhdGVkKTsKPiAtCURSTV9NTV9CVUdfT04obm9kZS0+c2Nhbm5lZF9ibG9jayk7 Cj4gKwlEUk1fTU1fQlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQobm9kZSkpOwo+ICsJRFJN X01NX0JVR19PTihkcm1fbW1fbm9kZV9zY2FubmVkX2Jsb2NrKG5vZGUpKTsKPiAgIAo+ICAgCXBy ZXZfbm9kZSA9IGxpc3RfcHJldl9lbnRyeShub2RlLCBub2RlX2xpc3QpOwo+ICAgCj4gQEAgLTU4 NCwxMSArNTg5LDEyIEBAIHZvaWQgZHJtX21tX3JlbW92ZV9ub2RlKHN0cnVjdCBkcm1fbW1fbm9k ZSAqbm9kZSkKPiAgIAo+ICAgCWRybV9tbV9pbnRlcnZhbF90cmVlX3JlbW92ZShub2RlLCAmbW0t PmludGVydmFsX3RyZWUpOwo+ICAgCWxpc3RfZGVsKCZub2RlLT5ub2RlX2xpc3QpOwo+IC0Jbm9k ZS0+YWxsb2NhdGVkID0gZmFsc2U7Cj4gICAKPiAgIAlpZiAoZHJtX21tX2hvbGVfZm9sbG93cyhw cmV2X25vZGUpKQo+ICAgCQlybV9ob2xlKHByZXZfbm9kZSk7Cj4gICAJYWRkX2hvbGUocHJldl9u b2RlKTsKPiArCj4gKwljbGVhcl9iaXRfdW5sb2NrKERSTV9NTV9OT0RFX0FMTE9DQVRFRF9CSVQs ICZub2RlLT5mbGFncyk7Cj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MKGRybV9tbV9yZW1vdmVfbm9k ZSk7Cj4gICAKPiBAQCAtNjA1LDcgKzYxMSw3IEBAIHZvaWQgZHJtX21tX3JlcGxhY2Vfbm9kZShz dHJ1Y3QgZHJtX21tX25vZGUgKm9sZCwgc3RydWN0IGRybV9tbV9ub2RlICpuZXcpCj4gICB7Cj4g ICAJc3RydWN0IGRybV9tbSAqbW0gPSBvbGQtPm1tOwo+ICAgCj4gLQlEUk1fTU1fQlVHX09OKCFv bGQtPmFsbG9jYXRlZCk7Cj4gKwlEUk1fTU1fQlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQo b2xkKSk7Cj4gICAKPiAgIAkqbmV3ID0gKm9sZDsKPiAgIAo+IEBAIC02MjIsOCArNjI4LDcgQEAg dm9pZCBkcm1fbW1fcmVwbGFjZV9ub2RlKHN0cnVjdCBkcm1fbW1fbm9kZSAqb2xkLCBzdHJ1Y3Qg ZHJtX21tX25vZGUgKm5ldykKPiAgIAkJCQkmbW0tPmhvbGVzX2FkZHIpOwo+ICAgCX0KPiAgIAo+ IC0Jb2xkLT5hbGxvY2F0ZWQgPSBmYWxzZTsKPiAtCW5ldy0+YWxsb2NhdGVkID0gdHJ1ZTsKPiAr CWNsZWFyX2JpdF91bmxvY2soRFJNX01NX05PREVfQUxMT0NBVEVEX0JJVCwgJm9sZC0+ZmxhZ3Mp Owo+ICAgfQo+ICAgRVhQT1JUX1NZTUJPTChkcm1fbW1fcmVwbGFjZV9ub2RlKTsKPiAgIAo+IEBA IC03MzEsOSArNzM2LDkgQEAgYm9vbCBkcm1fbW1fc2Nhbl9hZGRfYmxvY2soc3RydWN0IGRybV9t bV9zY2FuICpzY2FuLAo+ICAgCXU2NCBhZGpfc3RhcnQsIGFkal9lbmQ7Cj4gICAKPiAgIAlEUk1f TU1fQlVHX09OKG5vZGUtPm1tICE9IG1tKTsKPiAtCURSTV9NTV9CVUdfT04oIW5vZGUtPmFsbG9j YXRlZCk7Cj4gLQlEUk1fTU1fQlVHX09OKG5vZGUtPnNjYW5uZWRfYmxvY2spOwo+IC0Jbm9kZS0+ c2Nhbm5lZF9ibG9jayA9IHRydWU7Cj4gKwlEUk1fTU1fQlVHX09OKCFkcm1fbW1fbm9kZV9hbGxv Y2F0ZWQobm9kZSkpOwo+ICsJRFJNX01NX0JVR19PTihkcm1fbW1fbm9kZV9zY2FubmVkX2Jsb2Nr KG5vZGUpKTsKPiArCV9fc2V0X2JpdChEUk1fTU1fTk9ERV9TQ0FOTkVEX0JJVCwgJm5vZGUtPmZs YWdzKTsKPiAgIAltbS0+c2Nhbl9hY3RpdmUrKzsKPiAgIAo+ICAgCS8qIFJlbW92ZSB0aGlzIGJs b2NrIGZyb20gdGhlIG5vZGVfbGlzdCBzbyB0aGF0IHdlIGVubGFyZ2UgdGhlIGhvbGUKPiBAQCAt ODE4LDggKzgyMyw3IEBAIGJvb2wgZHJtX21tX3NjYW5fcmVtb3ZlX2Jsb2NrKHN0cnVjdCBkcm1f bW1fc2NhbiAqc2NhbiwKPiAgIAlzdHJ1Y3QgZHJtX21tX25vZGUgKnByZXZfbm9kZTsKPiAgIAo+ ICAgCURSTV9NTV9CVUdfT04obm9kZS0+bW0gIT0gc2Nhbi0+bW0pOwo+IC0JRFJNX01NX0JVR19P Tighbm9kZS0+c2Nhbm5lZF9ibG9jayk7Cj4gLQlub2RlLT5zY2FubmVkX2Jsb2NrID0gZmFsc2U7 Cj4gKwlEUk1fTU1fQlVHX09OKCFkcm1fbW1fbm9kZV9zY2FubmVkX2Jsb2NrKG5vZGUpKTsKPiAg IAo+ICAgCURSTV9NTV9CVUdfT04oIW5vZGUtPm1tLT5zY2FuX2FjdGl2ZSk7Cj4gICAJbm9kZS0+ bW0tPnNjYW5fYWN0aXZlLS07Cj4gQEAgLTgzNyw2ICs4NDEsOCBAQCBib29sIGRybV9tbV9zY2Fu X3JlbW92ZV9ibG9jayhzdHJ1Y3QgZHJtX21tX3NjYW4gKnNjYW4sCj4gICAJCSAgICAgIGxpc3Rf bmV4dF9lbnRyeShub2RlLCBub2RlX2xpc3QpKTsKPiAgIAlsaXN0X2FkZCgmbm9kZS0+bm9kZV9s aXN0LCAmcHJldl9ub2RlLT5ub2RlX2xpc3QpOwo+ICAgCj4gKwlfX2NsZWFyX2JpdChEUk1fTU1f Tk9ERV9TQ0FOTkVEX0JJVCwgJm5vZGUtPmZsYWdzKTsKPiArCj4gICAJcmV0dXJuIChub2RlLT5z dGFydCArIG5vZGUtPnNpemUgPiBzY2FuLT5oaXRfc3RhcnQgJiYKPiAgIAkJbm9kZS0+c3RhcnQg PCBzY2FuLT5oaXRfZW5kKTsKPiAgIH0KPiBAQCAtOTE3LDcgKzkyMyw3IEBAIHZvaWQgZHJtX21t X2luaXQoc3RydWN0IGRybV9tbSAqbW0sIHU2NCBzdGFydCwgdTY0IHNpemUpCj4gICAKPiAgIAkv KiBDbGV2ZXIgdHJpY2sgdG8gYXZvaWQgYSBzcGVjaWFsIGNhc2UgaW4gdGhlIGZyZWUgaG9sZSB0 cmFja2luZy4gKi8KPiAgIAlJTklUX0xJU1RfSEVBRCgmbW0tPmhlYWRfbm9kZS5ub2RlX2xpc3Qp Owo+IC0JbW0tPmhlYWRfbm9kZS5hbGxvY2F0ZWQgPSBmYWxzZTsKPiArCW1tLT5oZWFkX25vZGUu ZmxhZ3MgPSAwOwo+ICAgCW1tLT5oZWFkX25vZGUubW0gPSBtbTsKPiAgIAltbS0+aGVhZF9ub2Rl LnN0YXJ0ID0gc3RhcnQgKyBzaXplOwo+ICAgCW1tLT5oZWFkX25vZGUuc2l6ZSA9IC1zaXplOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IGlu ZGV4IDI3ZGJjYjUwODA1NS4uYzA0OTE5OWExZGY1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTkwNiw3ICs5MDYsNyBAQCBz dGF0aWMgdm9pZCByZWxvY19jYWNoZV9pbml0KHN0cnVjdCByZWxvY19jYWNoZSAqY2FjaGUsCj4g ICAJY2FjaGUtPnVzZV82NGJpdF9yZWxvYyA9IEhBU182NEJJVF9SRUxPQyhpOTE1KTsKPiAgIAlj YWNoZS0+aGFzX2ZlbmNlID0gY2FjaGUtPmdlbiA8IDQ7Cj4gICAJY2FjaGUtPm5lZWRzX3VuZmVu Y2VkID0gSU5URUxfSU5GTyhpOTE1KS0+dW5mZW5jZWRfbmVlZHNfYWxpZ25tZW50Owo+IC0JY2Fj aGUtPm5vZGUuYWxsb2NhdGVkID0gZmFsc2U7Cj4gKwljYWNoZS0+bm9kZS5mbGFncyA9IDA7Cj4g ICAJY2FjaGUtPmNlID0gTlVMTDsKPiAgIAljYWNoZS0+cnEgPSBOVUxMOwo+ICAgCWNhY2hlLT5y cV9zaXplID0gMDsKPiBAQCAtOTY4LDcgKzk2OCw3IEBAIHN0YXRpYyB2b2lkIHJlbG9jX2NhY2hl X3Jlc2V0KHN0cnVjdCByZWxvY19jYWNoZSAqY2FjaGUpCj4gICAJCWludGVsX2d0X2ZsdXNoX2dn dHRfd3JpdGVzKGdndHQtPnZtLmd0KTsKPiAgIAkJaW9fbWFwcGluZ191bm1hcF9hdG9taWMoKHZv aWQgX19pb21lbSAqKXZhZGRyKTsKPiAgIAo+IC0JCWlmIChjYWNoZS0+bm9kZS5hbGxvY2F0ZWQp IHsKPiArCQlpZiAoZHJtX21tX25vZGVfYWxsb2NhdGVkKCZjYWNoZS0+bm9kZSkpIHsKPiAgIAkJ CWdndHQtPnZtLmNsZWFyX3JhbmdlKCZnZ3R0LT52bSwKPiAgIAkJCQkJICAgICBjYWNoZS0+bm9k ZS5zdGFydCwKPiAgIAkJCQkJICAgICBjYWNoZS0+bm9kZS5zaXplKTsKPiBAQCAtMTA2MSw3ICsx MDYxLDcgQEAgc3RhdGljIHZvaWQgKnJlbG9jX2lvbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCj4gICAJfQo+ICAgCj4gICAJb2Zmc2V0ID0gY2FjaGUtPm5vZGUuc3RhcnQ7Cj4g LQlpZiAoY2FjaGUtPm5vZGUuYWxsb2NhdGVkKSB7Cj4gKwlpZiAoZHJtX21tX25vZGVfYWxsb2Nh dGVkKCZjYWNoZS0+bm9kZSkpIHsKPiAgIAkJZ2d0dC0+dm0uaW5zZXJ0X3BhZ2UoJmdndHQtPnZt LAo+ICAgCQkJCSAgICAgaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFfYWRkcmVzcyhvYmosIHBhZ2Up LAo+ICAgCQkJCSAgICAgb2Zmc2V0LCBJOTE1X0NBQ0hFX05PTkUsIDApOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvdWMvaW50ZWxfdWNfZncuYwo+IGluZGV4IDI5NmE4MjYwM2JlMC4uMDdmYzZm MjhhYmNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3VjL2ludGVsX3Vj X2Z3LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF91Y19mdy5jCj4g QEAgLTQwMSw3ICs0MDEsNyBAQCBzdGF0aWMgdTMyIHVjX2Z3X2dndHRfb2Zmc2V0KHN0cnVjdCBp bnRlbF91Y19mdyAqdWNfZncsIHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCj4gICB7Cj4gICAJc3Ry dWN0IGRybV9tbV9ub2RlICpub2RlID0gJmdndHQtPnVjX2Z3Owo+ICAgCj4gLQlHRU1fQlVHX09O KCFub2RlLT5hbGxvY2F0ZWQpOwo+ICsJR0VNX0JVR19PTighZHJtX21tX25vZGVfYWxsb2NhdGVk KG5vZGUpKTsKPiAgIAlHRU1fQlVHX09OKHVwcGVyXzMyX2JpdHMobm9kZS0+c3RhcnQpKTsKPiAg IAlHRU1fQlVHX09OKHVwcGVyXzMyX2JpdHMobm9kZS0+c3RhcnQgKyBub2RlLT5zaXplIC0gMSkp Owo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggMmRhOTU0NGZhOWE0Li5iOGY3 ZmUzMTFiMGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMzUxLDEyICszNTEs MTIgQEAgaTkxNV9nZW1fZ3R0X3ByZWFkKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos Cj4gICAJCQkJCSAgICAgICBQSU5fTk9FVklDVCk7Cj4gICAJaWYgKCFJU19FUlIodm1hKSkgewo+ ICAgCQlub2RlLnN0YXJ0ID0gaTkxNV9nZ3R0X29mZnNldCh2bWEpOwo+IC0JCW5vZGUuYWxsb2Nh dGVkID0gZmFsc2U7Cj4gKwkJbm9kZS5mbGFncyA9IDA7Cj4gICAJfSBlbHNlIHsKPiAgIAkJcmV0 ID0gaW5zZXJ0X21hcHBhYmxlX25vZGUoZ2d0dCwgJm5vZGUsIFBBR0VfU0laRSk7Cj4gICAJCWlm IChyZXQpCj4gICAJCQlnb3RvIG91dF91bmxvY2s7Cj4gLQkJR0VNX0JVR19PTighbm9kZS5hbGxv Y2F0ZWQpOwo+ICsJCUdFTV9CVUdfT04oIWRybV9tbV9ub2RlX2FsbG9jYXRlZCgmbm9kZSkpOwo+ ICAgCX0KPiAgIAo+ICAgCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4g QEAgLTM5Myw3ICszOTMsNyBAQCBpOTE1X2dlbV9ndHRfcHJlYWQoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKPiAgIAkJdW5zaWduZWQgcGFnZV9vZmZzZXQgPSBvZmZzZXRfaW5fcGFn ZShvZmZzZXQpOwo+ICAgCQl1bnNpZ25lZCBwYWdlX2xlbmd0aCA9IFBBR0VfU0laRSAtIHBhZ2Vf b2Zmc2V0Owo+ICAgCQlwYWdlX2xlbmd0aCA9IHJlbWFpbiA8IHBhZ2VfbGVuZ3RoID8gcmVtYWlu IDogcGFnZV9sZW5ndGg7Cj4gLQkJaWYgKG5vZGUuYWxsb2NhdGVkKSB7Cj4gKwkJaWYgKGRybV9t bV9ub2RlX2FsbG9jYXRlZCgmbm9kZSkpIHsKPiAgIAkJCWdndHQtPnZtLmluc2VydF9wYWdlKCZn Z3R0LT52bSwKPiAgIAkJCQkJICAgICBpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRyZXNzKG9i aiwgb2Zmc2V0ID4+IFBBR0VfU0hJRlQpLAo+ICAgCQkJCQkgICAgIG5vZGUuc3RhcnQsIEk5MTVf Q0FDSEVfTk9ORSwgMCk7Cj4gQEAgLTQxNSw3ICs0MTUsNyBAQCBpOTE1X2dlbV9ndHRfcHJlYWQo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAgIAlpOTE1X2dlbV9vYmplY3RfdW5s b2NrX2ZlbmNlKG9iaiwgZmVuY2UpOwo+ICAgb3V0X3VucGluOgo+ICAgCW11dGV4X2xvY2soJmk5 MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IC0JaWYgKG5vZGUuYWxsb2NhdGVkKSB7Cj4gKwlpZiAo ZHJtX21tX25vZGVfYWxsb2NhdGVkKCZub2RlKSkgewo+ICAgCQlnZ3R0LT52bS5jbGVhcl9yYW5n ZSgmZ2d0dC0+dm0sIG5vZGUuc3RhcnQsIG5vZGUuc2l6ZSk7Cj4gICAJCXJlbW92ZV9tYXBwYWJs ZV9ub2RlKCZub2RlKTsKPiAgIAl9IGVsc2Ugewo+IEBAIC01NjEsMTIgKzU2MSwxMiBAQCBpOTE1 X2dlbV9ndHRfcHdyaXRlX2Zhc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAg IAkJCQkJICAgICAgIFBJTl9OT0VWSUNUKTsKPiAgIAlpZiAoIUlTX0VSUih2bWEpKSB7Cj4gICAJ CW5vZGUuc3RhcnQgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7Cj4gLQkJbm9kZS5hbGxvY2F0ZWQg PSBmYWxzZTsKPiArCQlub2RlLmZsYWdzID0gMDsKPiAgIAl9IGVsc2Ugewo+ICAgCQlyZXQgPSBp bnNlcnRfbWFwcGFibGVfbm9kZShnZ3R0LCAmbm9kZSwgUEFHRV9TSVpFKTsKPiAgIAkJaWYgKHJl dCkKPiAgIAkJCWdvdG8gb3V0X3JwbTsKPiAtCQlHRU1fQlVHX09OKCFub2RlLmFsbG9jYXRlZCk7 Cj4gKwkJR0VNX0JVR19PTighZHJtX21tX25vZGVfYWxsb2NhdGVkKCZub2RlKSk7Cj4gICAJfQo+ ICAgCj4gICAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiBAQCAtNjA0 LDcgKzYwNCw3IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAo+ICAgCQl1bnNpZ25lZCBpbnQgcGFnZV9vZmZzZXQgPSBvZmZzZXRfaW5f cGFnZShvZmZzZXQpOwo+ICAgCQl1bnNpZ25lZCBpbnQgcGFnZV9sZW5ndGggPSBQQUdFX1NJWkUg LSBwYWdlX29mZnNldDsKPiAgIAkJcGFnZV9sZW5ndGggPSByZW1haW4gPCBwYWdlX2xlbmd0aCA/ IHJlbWFpbiA6IHBhZ2VfbGVuZ3RoOwo+IC0JCWlmIChub2RlLmFsbG9jYXRlZCkgewo+ICsJCWlm IChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJm5vZGUpKSB7Cj4gICAJCQkvKiBmbHVzaCB0aGUgd3Jp dGUgYmVmb3JlIHdlIG1vZGlmeSB0aGUgR0dUVCAqLwo+ICAgCQkJaW50ZWxfZ3RfZmx1c2hfZ2d0 dF93cml0ZXMoZ2d0dC0+dm0uZ3QpOwo+ICAgCQkJZ2d0dC0+dm0uaW5zZXJ0X3BhZ2UoJmdndHQt PnZtLAo+IEBAIC02MzYsNyArNjM2LDcgQEAgaTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0KHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICBvdXRfdW5waW46Cj4gICAJbXV0ZXhfbG9j aygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gICAJaW50ZWxfZ3RfZmx1c2hfZ2d0dF93cml0 ZXMoZ2d0dC0+dm0uZ3QpOwo+IC0JaWYgKG5vZGUuYWxsb2NhdGVkKSB7Cj4gKwlpZiAoZHJtX21t X25vZGVfYWxsb2NhdGVkKCZub2RlKSkgewo+ICAgCQlnZ3R0LT52bS5jbGVhcl9yYW5nZSgmZ2d0 dC0+dm0sIG5vZGUuc3RhcnQsIG5vZGUuc2l6ZSk7Cj4gICAJCXJlbW92ZV9tYXBwYWJsZV9ub2Rl KCZub2RlKTsKPiAgIAl9IGVsc2Ugewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ldmljdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3Qu Ywo+IGluZGV4IGU3NmM5ZGE5OTkyZC4uOGMxZTA0ZjQwMmJjIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ldmljdC5jCj4gQEAgLTI5OSw3ICsyOTksNyBAQCBpbnQgaTkxNV9nZW1f ZXZpY3RfZm9yX25vZGUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJCQlicmVh azsKPiAgIAkJfQo+ICAgCj4gLQkJR0VNX0JVR19PTighbm9kZS0+YWxsb2NhdGVkKTsKPiArCQlH RU1fQlVHX09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQobm9kZSkpOwo+ICAgCQl2bWEgPSBjb250 YWluZXJfb2Yobm9kZSwgdHlwZW9mKCp2bWEpLCBub2RlKTsKPiAgIAo+ICAgCQkvKiBJZiB3ZSBh cmUgdXNpbmcgY29sb3JpbmcgdG8gaW5zZXJ0IGd1YXJkIHBhZ2VzIGJldHdlZW4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdm1hLmMKPiBpbmRleCA0MTEwNDdkNmE5MDkuLmQxMDYxNDA5MWJiOSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV92bWEuYwo+IEBAIC03OTUsNyArNzk1LDcgQEAgdm9pZCBpOTE1X3Zt YV9yZW9wZW4oc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gICAKPiAgIHN0YXRpYyB2b2lkIF9faTkx NV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIHsKPiAtCUdFTV9CVUdfT04o dm1hLT5ub2RlLmFsbG9jYXRlZCk7Cj4gKwlHRU1fQlVHX09OKGRybV9tbV9ub2RlX2FsbG9jYXRl ZCgmdm1hLT5ub2RlKSk7Cj4gICAJR0VNX0JVR19PTih2bWEtPmZlbmNlKTsKPiAgIAo+ICAgCW11 dGV4X2xvY2soJnZtYS0+dm0tPm11dGV4KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV92bWEuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmgKPiBpbmRl eCA4YmNiNTgxMmM0NDYuLmU0OWIxOTlmN2RlNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3ZtYS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEu aAo+IEBAIC0yMjgsNyArMjI4LDcgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfdm1hX2lzX2Ns b3NlZChjb25zdCBzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPiAgIHN0YXRpYyBpbmxpbmUgdTMyIGk5 MTVfZ2d0dF9vZmZzZXQoY29uc3Qgc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gICB7Cj4gICAJR0VN X0JVR19PTighaTkxNV92bWFfaXNfZ2d0dCh2bWEpKTsKPiAtCUdFTV9CVUdfT04oIXZtYS0+bm9k ZS5hbGxvY2F0ZWQpOwo+ICsJR0VNX0JVR19PTighZHJtX21tX25vZGVfYWxsb2NhdGVkKCZ2bWEt Pm5vZGUpKTsKPiAgIAlHRU1fQlVHX09OKHVwcGVyXzMyX2JpdHModm1hLT5ub2RlLnN0YXJ0KSk7 Cj4gICAJR0VNX0JVR19PTih1cHBlcl8zMl9iaXRzKHZtYS0+bm9kZS5zdGFydCArIHZtYS0+bm9k ZS5zaXplIC0gMSkpOwo+ICAgCXJldHVybiBsb3dlcl8zMl9iaXRzKHZtYS0+bm9kZS5zdGFydCk7 Cj4gQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV92bWFfaXNfYm91 bmQoY29uc3Qgc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gICBzdGF0aWMgaW5saW5lIGJvb2wgaTkx NV9ub2RlX2NvbG9yX2RpZmZlcnMoY29uc3Qgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAo+ICAg CQkJCQkgICB1bnNpZ25lZCBsb25nIGNvbG9yKQo+ICAgewo+IC0JcmV0dXJuIG5vZGUtPmFsbG9j YXRlZCAmJiBub2RlLT5jb2xvciAhPSBjb2xvcjsKPiArCXJldHVybiBkcm1fbW1fbm9kZV9hbGxv Y2F0ZWQobm9kZSkgJiYgbm9kZS0+Y29sb3IgIT0gY29sb3I7Cj4gICB9Cj4gICAKPiAgIC8qKgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMgYi9k cml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKPiBpbmRleCAzODhmOTg0NGY0 YmEuLjlhYWJlODJkY2QzYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3Rz L3Rlc3QtZHJtX21tLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJt X21tLmMKPiBAQCAtODU0LDcgKzg1NCw3IEBAIHN0YXRpYyBib29sIGFzc2VydF9jb250aWd1b3Vz X2luX3JhbmdlKHN0cnVjdCBkcm1fbW0gKm1tLAo+ICAgCj4gICAJaWYgKHN0YXJ0ID4gMCkgewo+ ICAgCQlub2RlID0gX19kcm1fbW1faW50ZXJ2YWxfZmlyc3QobW0sIDAsIHN0YXJ0IC0gMSk7Cj4g LQkJaWYgKG5vZGUtPmFsbG9jYXRlZCkgewo+ICsJCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQo bm9kZSkpIHsKPiAgIAkJCXByX2Vycigibm9kZSBiZWZvcmUgc3RhcnQ6IG5vZGU9JWxseCslbGx1 LCBzdGFydD0lbGx4XG4iLAo+ICAgCQkJICAgICAgIG5vZGUtPnN0YXJ0LCBub2RlLT5zaXplLCBz dGFydCk7Cj4gICAJCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTg2Myw3ICs4NjMsNyBAQCBzdGF0aWMg Ym9vbCBhc3NlcnRfY29udGlndW91c19pbl9yYW5nZShzdHJ1Y3QgZHJtX21tICptbSwKPiAgIAo+ ICAgCWlmIChlbmQgPCBVNjRfTUFYKSB7Cj4gICAJCW5vZGUgPSBfX2RybV9tbV9pbnRlcnZhbF9m aXJzdChtbSwgZW5kLCBVNjRfTUFYKTsKPiAtCQlpZiAobm9kZS0+YWxsb2NhdGVkKSB7Cj4gKwkJ aWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZChub2RlKSkgewo+ICAgCQkJcHJfZXJyKCJub2RlIGFm dGVyIGVuZDogbm9kZT0lbGx4KyVsbHUsIGVuZD0lbGx4XG4iLAo+ICAgCQkJICAgICAgIG5vZGUt PnN0YXJ0LCBub2RlLT5zaXplLCBlbmQpOwo+ICAgCQkJcmV0dXJuIGZhbHNlOwo+IEBAIC0xMTU2 LDEyICsxMTU2LDEyIEBAIHN0YXRpYyB2b2lkIHNob3dfaG9sZXMoY29uc3Qgc3RydWN0IGRybV9t bSAqbW0sIGludCBjb3VudCkKPiAgIAkJc3RydWN0IGRybV9tbV9ub2RlICpuZXh0ID0gbGlzdF9u ZXh0X2VudHJ5KGhvbGUsIG5vZGVfbGlzdCk7Cj4gICAJCWNvbnN0IGNoYXIgKm5vZGUxID0gTlVM TCwgKm5vZGUyID0gTlVMTDsKPiAgIAo+IC0JCWlmIChob2xlLT5hbGxvY2F0ZWQpCj4gKwkJaWYg KGRybV9tbV9ub2RlX2FsbG9jYXRlZChob2xlKSkKPiAgIAkJCW5vZGUxID0ga2FzcHJpbnRmKEdG UF9LRVJORUwsCj4gICAJCQkJCSAgIlslbGx4ICsgJWxsZCwgY29sb3I9JWxkXSwgIiwKPiAgIAkJ CQkJICBob2xlLT5zdGFydCwgaG9sZS0+c2l6ZSwgaG9sZS0+Y29sb3IpOwo+ICAgCj4gLQkJaWYg KG5leHQtPmFsbG9jYXRlZCkKPiArCQlpZiAoZHJtX21tX25vZGVfYWxsb2NhdGVkKG5leHQpKQo+ ICAgCQkJbm9kZTIgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwKPiAgIAkJCQkJICAiLCBbJWxseCAr ICVsbGQsIGNvbG9yPSVsZF0iLAo+ICAgCQkJCQkgIG5leHQtPnN0YXJ0LCBuZXh0LT5zaXplLCBu ZXh0LT5jb2xvcik7Cj4gQEAgLTE5MDAsMTggKzE5MDAsMTggQEAgc3RhdGljIHZvaWQgc2VwYXJh dGVfYWRqYWNlbnRfY29sb3JzKGNvbnN0IHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKPiAgIAkJ CQkgICAgIHU2NCAqc3RhcnQsCj4gICAJCQkJICAgICB1NjQgKmVuZCkKPiAgIHsKPiAtCWlmIChu b2RlLT5hbGxvY2F0ZWQgJiYgbm9kZS0+Y29sb3IgIT0gY29sb3IpCj4gKwlpZiAoZHJtX21tX25v ZGVfYWxsb2NhdGVkKG5vZGUpICYmIG5vZGUtPmNvbG9yICE9IGNvbG9yKQo+ICAgCQkrKypzdGFy dDsKPiAgIAo+ICAgCW5vZGUgPSBsaXN0X25leHRfZW50cnkobm9kZSwgbm9kZV9saXN0KTsKPiAt CWlmIChub2RlLT5hbGxvY2F0ZWQgJiYgbm9kZS0+Y29sb3IgIT0gY29sb3IpCj4gKwlpZiAoZHJt X21tX25vZGVfYWxsb2NhdGVkKG5vZGUpICYmIG5vZGUtPmNvbG9yICE9IGNvbG9yKQo+ICAgCQkt LSplbmQ7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBib29sIGNvbG9yc19hYnV0dChjb25zdCBzdHJ1 Y3QgZHJtX21tX25vZGUgKm5vZGUpCj4gICB7Cj4gICAJaWYgKCFkcm1fbW1faG9sZV9mb2xsb3dz KG5vZGUpICYmCj4gLQkgICAgbGlzdF9uZXh0X2VudHJ5KG5vZGUsIG5vZGVfbGlzdCktPmFsbG9j YXRlZCkgewo+ICsJICAgIGRybV9tbV9ub2RlX2FsbG9jYXRlZChsaXN0X25leHRfZW50cnkobm9k ZSwgbm9kZV9saXN0KSkpIHsKPiAgIAkJcHJfZXJyKCJjb2xvcnMgYWJ1dHQ7ICVsZCBbJWxseCAr ICVsbHhdIGlzIG5leHQgdG8gJWxkIFslbGx4ICsgJWxseF0hXG4iLAo+ICAgCQkgICAgICAgbm9k ZS0+Y29sb3IsIG5vZGUtPnN0YXJ0LCBub2RlLT5zaXplLAo+ICAgCQkgICAgICAgbGlzdF9uZXh0 X2VudHJ5KG5vZGUsIG5vZGVfbGlzdCktPmNvbG9yLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdmM0L3ZjNF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMKPiBp bmRleCBmMWYwYTdjODc3NzEuLmIwMGUyMGY1Y2UwNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vdmM0L3ZjNF9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRj LmMKPiBAQCAtOTk0LDcgKzk5NCw3IEBAIHN0YXRpYyB2b2lkIHZjNF9jcnRjX2Rlc3Ryb3lfc3Rh dGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCXN0cnVjdCB2YzRfZGV2ICp2YzQgPSB0b192 YzRfZGV2KGNydGMtPmRldik7Cj4gICAJc3RydWN0IHZjNF9jcnRjX3N0YXRlICp2YzRfc3RhdGUg PSB0b192YzRfY3J0Y19zdGF0ZShzdGF0ZSk7Cj4gICAKPiAtCWlmICh2YzRfc3RhdGUtPm1tLmFs bG9jYXRlZCkgewo+ICsJaWYgKGRybV9tbV9ub2RlX2FsbG9jYXRlZCgmdmM0X3N0YXRlLT5tbSkp IHsKPiAgIAkJdW5zaWduZWQgbG9uZyBmbGFnczsKPiAgIAo+ICAgCQlzcGluX2xvY2tfaXJxc2F2 ZSgmdmM0LT5odnMtPm1tX2xvY2ssIGZsYWdzKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZjNC92YzRfaHZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9odnMuYwo+IGluZGV4 IDk5MzZiMTVkMGJmMS4uNWE0MzY1OWRhMzE5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92YzQvdmM0X2h2cy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaHZzLmMKPiBA QCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyB2b2lkIHZjNF9odnNfdW5iaW5kKHN0cnVjdCBkZXZp Y2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpk cm0gPSBkZXZfZ2V0X2RydmRhdGEobWFzdGVyKTsKPiAgIAlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0g ZHJtLT5kZXZfcHJpdmF0ZTsKPiAgIAo+IC0JaWYgKHZjNC0+aHZzLT5taXRjaGVsbF9uZXRyYXZh bGlfZmlsdGVyLmFsbG9jYXRlZCkKPiArCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZjNC0+ aHZzLT5taXRjaGVsbF9uZXRyYXZhbGlfZmlsdGVyKSkKPiAgIAkJZHJtX21tX3JlbW92ZV9ub2Rl KCZ2YzQtPmh2cy0+bWl0Y2hlbGxfbmV0cmF2YWxpX2ZpbHRlcik7Cj4gICAKPiAgIAlkcm1fbW1f dGFrZWRvd24oJnZjNC0+aHZzLT5kbGlzdF9tbSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jCj4g aW5kZXggNWU1ZjkwODEwYWNhLi40OTM0MTI3ZjBkNzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3Bs YW5lLmMKPiBAQCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyB2b2lkIHZjNF9wbGFuZV9kZXN0cm95 X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAgCXN0cnVjdCB2YzRfZGV2ICp2YzQg PSB0b192YzRfZGV2KHBsYW5lLT5kZXYpOwo+ICAgCXN0cnVjdCB2YzRfcGxhbmVfc3RhdGUgKnZj NF9zdGF0ZSA9IHRvX3ZjNF9wbGFuZV9zdGF0ZShzdGF0ZSk7Cj4gICAKPiAtCWlmICh2YzRfc3Rh dGUtPmxibS5hbGxvY2F0ZWQpIHsKPiArCWlmIChkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZjNF9z dGF0ZS0+bGJtKSkgewo+ICAgCQl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwo+ICAgCj4gICAJCXNw aW5fbG9ja19pcnFzYXZlKCZ2YzQtPmh2cy0+bW1fbG9jaywgaXJxZmxhZ3MpOwo+IEBAIC01NTcs NyArNTU3LDcgQEAgc3RhdGljIGludCB2YzRfcGxhbmVfYWxsb2NhdGVfbGJtKHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnN0YXRlKQo+ICAgCS8qIEFsbG9jYXRlIHRoZSBMQk0gbWVtb3J5IHRoYXQg dGhlIEhWUyB3aWxsIHVzZSBmb3IgdGVtcG9yYXJ5Cj4gICAJICogc3RvcmFnZSBkdWUgdG8gb3Vy IHNjYWxpbmcvZm9ybWF0IGNvbnZlcnNpb24uCj4gICAJICovCj4gLQlpZiAoIXZjNF9zdGF0ZS0+ bGJtLmFsbG9jYXRlZCkgewo+ICsJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJnZjNF9zdGF0 ZS0+bGJtKSkgewo+ICAgCQlpbnQgcmV0Owo+ICAgCj4gICAJCXNwaW5fbG9ja19pcnFzYXZlKCZ2 YzQtPmh2cy0+bW1fbG9jaywgaXJxZmxhZ3MpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fbW0uaCBiL2luY2x1ZGUvZHJtL2RybV9tbS5oCj4gaW5kZXggMmMzYmJiNDNjN2QxLi5kNzkz OWMwNTQyNTkgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21tLmgKPiArKysgYi9pbmNs dWRlL2RybS9kcm1fbW0uaAo+IEBAIC0xNjgsOCArMTY4LDkgQEAgc3RydWN0IGRybV9tbV9ub2Rl IHsKPiAgIAlzdHJ1Y3QgcmJfbm9kZSByYl9ob2xlX2FkZHI7Cj4gICAJdTY0IF9fc3VidHJlZV9s YXN0Owo+ICAgCXU2NCBob2xlX3NpemU7Cj4gLQlib29sIGFsbG9jYXRlZCA6IDE7Cj4gLQlib29s IHNjYW5uZWRfYmxvY2sgOiAxOwo+ICsJdW5zaWduZWQgbG9uZyBmbGFnczsKPiArI2RlZmluZSBE Uk1fTU1fTk9ERV9BTExPQ0FURURfQklUCTAKCkRvY3VtZW50IGhlcmUgdGhlIHJ1bGVzIGZvciBt YW5pcHVsYXRpbmcgdGhpcyBiaXQgd291bGQgYmUgZ29vZC4KCj4gKyNkZWZpbmUgRFJNX01NX05P REVfU0NBTk5FRF9CSVQJCTEKPiAgICNpZmRlZiBDT05GSUdfRFJNX0RFQlVHX01NCj4gICAJZGVw b3Rfc3RhY2tfaGFuZGxlX3Qgc3RhY2s7Cj4gICAjZW5kaWYKPiBAQCAtMjUzLDcgKzI1NCw3IEBA IHN0cnVjdCBkcm1fbW1fc2NhbiB7Cj4gICAgKi8KPiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBkcm1f bW1fbm9kZV9hbGxvY2F0ZWQoY29uc3Qgc3RydWN0IGRybV9tbV9ub2RlICpub2RlKQo+ICAgewo+ IC0JcmV0dXJuIG5vZGUtPmFsbG9jYXRlZDsKPiArCXJldHVybiB0ZXN0X2JpdChEUk1fTU1fTk9E RV9BTExPQ0FURURfQklULCAmbm9kZS0+ZmxhZ3MpOwo+ICAgfQo+ICAgCj4gICAvKioKPiAKClJl Z2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4