From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrey Grodzovsky Subject: [PATCH v2 1/2] drm/sched: Refactor ring mirror list handling. Date: Thu, 6 Dec 2018 16:26:12 -0500 Message-ID: <1544131573-4799-1-git-send-email-andrey.grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, ckoenig.leichtzumerken@gmail.com, eric@anholt.net, etnaviv@lists.freedesktop.org Cc: Monk.Liu@amd.com List-Id: dri-devel@lists.freedesktop.org RGVjYXVwbGUgc2NoZWQgdGhyZWFkcyBzdG9wIGFuZCBzdGFydCBhbmQgcmluZyBtaXJyb3IKbGlz dCBoYW5kbGluZyBmcm9tIHRoZSBwb2xpY3kgb2Ygd2hhdCB0byBkbyBhYm91dCB0aGUKZ3VpbHR5 IGpvYnMuCldoZW4gc3RvcHBwaW5nIHRoZSBzY2hlZCB0aHJlYWQgYW5kIGRldGFjaGluZyBzY2hl ZCBmZW5jZXMKZnJvbSBub24gc2lnbmFsZWQgSFcgZmVuZXMgd2FpdCBmb3IgYWxsIHNpZ25hbGVk IEhXIGZlbmNlcwp0byBjb21wbGV0ZSBiZWZvcmUgcmVydW5uaW5nIHRoZSBqb2JzLgoKdjI6IEZp eCByZXN1Ym1pc3Npb24gb2YgZ3VpbHR5IGpvYiBpbnRvIEhXIGFmdGVyIHJlZmFjdG9yaW5nLgoK U3VnZ2VzdGVkLWJ5OiBDaHJpc3RpYW4gS29lbmlnIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+ ClNpZ25lZC1vZmYtYnk6IEFuZHJleSBHcm9kem92c2t5IDxhbmRyZXkuZ3JvZHpvdnNreUBhbWQu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8ICAx NyArKystLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5jICAgIHwgICA4 ICstLQogZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMgICAgIHwgMTEwICsr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zY2hl ZC5jICAgICAgICAgICAgfCAgMTEgKy0tCiBpbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmggICAg ICAgICAgICAgICAgfCAgMTAgKystCiA1IGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyks IDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZp Y2UuYwppbmRleCBlZjM2Y2M1Li40MjExMWQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2RldmljZS5jCkBAIC0zMjkyLDE3ICszMjkyLDE2IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkv KiBibG9jayBhbGwgc2NoZWR1bGVycyBhbmQgcmVzZXQgZ2l2ZW4gam9iJ3MgcmluZyAqLwogCWZv ciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpIHsKIAkJc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nID0gYWRldi0+cmluZ3NbaV07CisJCWJvb2wgcGFya19vbmx5ID0gam9iICYmIGpv Yi0+YmFzZS5zY2hlZCAhPSAmcmluZy0+c2NoZWQ7CiAKIAkJaWYgKCFyaW5nIHx8ICFyaW5nLT5z Y2hlZC50aHJlYWQpCiAJCQljb250aW51ZTsKIAotCQlrdGhyZWFkX3BhcmsocmluZy0+c2NoZWQu dGhyZWFkKTsKKwkJZHJtX3NjaGVkX3N0b3AoJnJpbmctPnNjaGVkLCBqb2IgPyAmam9iLT5iYXNl IDogTlVMTCwgcGFya19vbmx5KTsKIAotCQlpZiAoam9iICYmIGpvYi0+YmFzZS5zY2hlZCAhPSAm cmluZy0+c2NoZWQpCisJCWlmIChwYXJrX29ubHkpCiAJCQljb250aW51ZTsKIAotCQlkcm1fc2No ZWRfaHdfam9iX3Jlc2V0KCZyaW5nLT5zY2hlZCwgam9iID8gJmpvYi0+YmFzZSA6IE5VTEwpOwot CiAJCS8qIGFmdGVyIGFsbCBodyBqb2JzIGFyZSByZXNldCwgaHcgZmVuY2UgaXMgbWVhbmluZ2xl c3MsIHNvIGZvcmNlX2NvbXBsZXRpb24gKi8KIAkJYW1kZ3B1X2ZlbmNlX2RyaXZlcl9mb3JjZV9j b21wbGV0aW9uKHJpbmcpOwogCX0KQEAgLTM0NDUsNiArMzQ0NCw3IEBAIHN0YXRpYyB2b2lkIGFt ZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAog CQkJCQkgIHN0cnVjdCBhbWRncHVfam9iICpqb2IpCiB7CiAJaW50IGk7CisJYm9vbCB1bnBhcmtf b25seTsKIAogCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpIHsKIAkJc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+cmluZ3NbaV07CkBAIC0zNDU2LDEwICszNDU2 LDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogCQkgKiBvciBhbGwgcmluZ3MgKGluIHRoZSBjYXNlIEBqb2Ig aXMgTlVMTCkKIAkJICogYWZ0ZXIgYWJvdmUgYW1kZ3B1X3Jlc2V0IGFjY29tcGxpc2hlZAogCQkg Ki8KLQkJaWYgKCgham9iIHx8IGpvYi0+YmFzZS5zY2hlZCA9PSAmcmluZy0+c2NoZWQpICYmICFh ZGV2LT5hc2ljX3Jlc2V0X3JlcykKLQkJCWRybV9zY2hlZF9qb2JfcmVjb3ZlcnkoJnJpbmctPnNj aGVkKTsKKwkJdW5wYXJrX29ubHkgPSAoam9iICYmIGpvYi0+YmFzZS5zY2hlZCAhPSAmcmluZy0+ c2NoZWQpIHx8CisJCQkgICAgICAgYWRldi0+YXNpY19yZXNldF9yZXM7CisKKwkJaWYgKCF1bnBh cmtfb25seSkKKwkJCWRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKCZyaW5nLT5zY2hlZCk7CiAKLQkJ a3RocmVhZF91bnBhcmsocmluZy0+c2NoZWQudGhyZWFkKTsKKwkJZHJtX3NjaGVkX3N0YXJ0KCZy aW5nLT5zY2hlZCwgdW5wYXJrX29ubHkpOwogCX0KIAogCWlmICghYW1kZ3B1X2RldmljZV9oYXNf ZGNfc3VwcG9ydChhZGV2KSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYv ZXRuYXZpdl9zY2hlZC5jIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5j CmluZGV4IDQ5YTY3NjMuLmZhYjNiNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ldG5h dml2L2V0bmF2aXZfc2NoZWQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2 X3NjaGVkLmMKQEAgLTEwOSwxNiArMTA5LDE2IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfc2NoZWRf dGltZWRvdXRfam9iKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpCiAJfQogCiAJLyog YmxvY2sgc2NoZWR1bGVyICovCi0Ja3RocmVhZF9wYXJrKGdwdS0+c2NoZWQudGhyZWFkKTsKLQlk cm1fc2NoZWRfaHdfam9iX3Jlc2V0KCZncHUtPnNjaGVkLCBzY2hlZF9qb2IpOworCWRybV9zY2hl ZF9zdG9wKCZncHUtPnNjaGVkLCBzY2hlZF9qb2IsIGZhbHNlKTsKIAogCS8qIGdldCB0aGUgR1BV IGJhY2sgaW50byB0aGUgaW5pdCBzdGF0ZSAqLwogCWV0bmF2aXZfY29yZV9kdW1wKGdwdSk7CiAJ ZXRuYXZpdl9ncHVfcmVjb3Zlcl9oYW5nKGdwdSk7CiAKKwlkcm1fc2NoZWRfcmVzdWJtaXRfam9i cygmZ3B1LT5zY2hlZCk7CisKIAkvKiByZXN0YXJ0IHNjaGVkdWxlciBhZnRlciBHUFUgaXMgdXNh YmxlIGFnYWluICovCi0JZHJtX3NjaGVkX2pvYl9yZWNvdmVyeSgmZ3B1LT5zY2hlZCk7Ci0Ja3Ro cmVhZF91bnBhcmsoZ3B1LT5zY2hlZC50aHJlYWQpOworCWRybV9zY2hlZF9zdGFydCgmZ3B1LT5z Y2hlZCk7CiB9CiAKIHN0YXRpYyB2b2lkIGV0bmF2aXZfc2NoZWRfZnJlZV9qb2Ioc3RydWN0IGRy bV9zY2hlZF9qb2IgKnNjaGVkX2pvYikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zY2hl ZHVsZXIvc2NoZWRfbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWlu LmMKaW5kZXggZGJiNjkwNi4uY2RmOTVlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Nj aGVkdWxlci9zY2hlZF9tYWluLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hl ZF9tYWluLmMKQEAgLTYwLDggKzYwLDYgQEAKIAogc3RhdGljIHZvaWQgZHJtX3NjaGVkX3Byb2Nl c3Nfam9iKHN0cnVjdCBkbWFfZmVuY2UgKmYsIHN0cnVjdCBkbWFfZmVuY2VfY2IgKmNiKTsKIAot c3RhdGljIHZvaWQgZHJtX3NjaGVkX2V4cGVsX2pvYl91bmxvY2tlZChzdHJ1Y3QgZHJtX3NjaGVk X2pvYiAqc19qb2IpOwotCiAvKioKICAqIGRybV9zY2hlZF9ycV9pbml0IC0gaW5pdGlhbGl6ZSBh IGdpdmVuIHJ1biBxdWV1ZSBzdHJ1Y3QKICAqCkBAIC0zNDIsMTMgKzM0MCwyMSBAQCBzdGF0aWMg dm9pZCBkcm1fc2NoZWRfam9iX3RpbWVkb3V0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKICAq IEBiYWQ6IGJhZCBzY2hlZHVsZXIgam9iCiAgKgogICovCi12b2lkIGRybV9zY2hlZF9od19qb2Jf cmVzZXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgc3RydWN0IGRybV9zY2hlZF9q b2IgKmJhZCkKK3ZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpz Y2hlZCwgc3RydWN0IGRybV9zY2hlZF9qb2IgKmJhZCwKKwkJICAgIGJvb2wgcGFya19vbmx5KQog ewogCXN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYjsKIAlzdHJ1Y3QgZHJtX3NjaGVkX2VudGl0 eSAqZW50aXR5LCAqdG1wOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGxpc3RfaGVh ZCB3YWl0X2xpc3Q7CiAJaW50IGk7CiAKKwlrdGhyZWFkX3Bhcmsoc2NoZWQtPnRocmVhZCk7CisJ aWYgKHBhcmtfb25seSkKKwkJcmV0dXJuOworCisJSU5JVF9MSVNUX0hFQUQoJndhaXRfbGlzdCk7 CisKIAlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKIAls aXN0X2Zvcl9lYWNoX2VudHJ5X3JldmVyc2Uoc19qb2IsICZzY2hlZC0+cmluZ19taXJyb3JfbGlz dCwgbm9kZSkgewogCQlpZiAoc19qb2ItPnNfZmVuY2UtPnBhcmVudCAmJgpAQCAtMzU4LDkgKzM2 NCwyNCBAQCB2b2lkIGRybV9zY2hlZF9od19qb2JfcmVzZXQoc3RydWN0IGRybV9ncHVfc2NoZWR1 bGVyICpzY2hlZCwgc3RydWN0IGRybV9zY2hlZF9qbwogCQkJc19qb2ItPnNfZmVuY2UtPnBhcmVu dCA9IE5VTEw7CiAJCQlhdG9taWNfZGVjKCZzY2hlZC0+aHdfcnFfY291bnQpOwogCQl9CisJCWVs c2UgeworCQkJLyogVE9ETyBJcyBpdCBnZXQvcHV0IG5lY2Nlc3NleSBoZXJlID8gKi8KKwkJCWRt YV9mZW5jZV9nZXQoJnNfam9iLT5zX2ZlbmNlLT5maW5pc2hlZCk7CisJCQlsaXN0X2FkZCgmc19q b2ItPmZpbmlzaF9ub2RlLCAmd2FpdF9saXN0KTsKKwkJfQogCX0KIAlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwogCisJLyoKKwkgKiBWZXJpZnkg YWxsIHRoZSBzaWduYWxlZCBqb2JzIGluIG1pcnJvciBsaXN0IGFyZSByZW1vdmVkIGZyb20gdGhl IHJpbmcKKwkgKiBXZSByZWx5IG9uIHRoZSBmYWN0IHRoYXQgYW55IGZpbmlzaF93b3JrIGluIHBy b2dyZXNzIHdpbGwgd2FpdCBmb3IgdGhpcworCSAqIGhhbmRsZXIgdG8gY29tcGxldGUgYmVmb3Jl IHJlbGVhc2luZyBhbGwgb2YgdGhlIGpvYnMgd2UgaXRlcmF0ZS4KKwkgKi8KKwlsaXN0X2Zvcl9l YWNoX2VudHJ5KHNfam9iLCAmd2FpdF9saXN0LCBmaW5pc2hfbm9kZSkgeworCQlkbWFfZmVuY2Vf d2FpdCgmc19qb2ItPnNfZmVuY2UtPmZpbmlzaGVkLCBmYWxzZSk7CisJCWRtYV9mZW5jZV9wdXQo JnNfam9iLT5zX2ZlbmNlLT5maW5pc2hlZCk7CisJfQorCiAJaWYgKGJhZCAmJiBiYWQtPnNfcHJp b3JpdHkgIT0gRFJNX1NDSEVEX1BSSU9SSVRZX0tFUk5FTCkgewogCQlhdG9taWNfaW5jKCZiYWQt Pmthcm1hKTsKIAkJLyogZG9uJ3QgaW5jcmVhc2UgQGJhZCdzIGthcm1hIGlmIGl0J3MgZnJvbSBL RVJORUwgUlEsCkBAIC0zODUsNyArNDA2LDcgQEAgdm9pZCBkcm1fc2NoZWRfaHdfam9iX3Jlc2V0 KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsIHN0cnVjdCBkcm1fc2NoZWRfam8KIAkJ fQogCX0KIH0KLUVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX2h3X2pvYl9yZXNldCk7CitFWFBPUlRf U1lNQk9MKGRybV9zY2hlZF9zdG9wKTsKIAogLyoqCiAgKiBkcm1fc2NoZWRfam9iX3JlY292ZXJ5 IC0gcmVjb3ZlciBqb2JzIGFmdGVyIGEgcmVzZXQKQEAgLTM5MywzMyArNDE0LDIxIEBAIEVYUE9S VF9TWU1CT0woZHJtX3NjaGVkX2h3X2pvYl9yZXNldCk7CiAgKiBAc2NoZWQ6IHNjaGVkdWxlciBp bnN0YW5jZQogICoKICAqLwotdm9pZCBkcm1fc2NoZWRfam9iX3JlY292ZXJ5KHN0cnVjdCBkcm1f Z3B1X3NjaGVkdWxlciAqc2NoZWQpCit2b2lkIGRybV9zY2hlZF9zdGFydChzdHJ1Y3QgZHJtX2dw dV9zY2hlZHVsZXIgKnNjaGVkLCBib29sIHVucGFya19vbmx5KQogewogCXN0cnVjdCBkcm1fc2No ZWRfam9iICpzX2pvYiwgKnRtcDsKLQlib29sIGZvdW5kX2d1aWx0eSA9IGZhbHNlOwogCXVuc2ln bmVkIGxvbmcgZmxhZ3M7CiAJaW50IHI7CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPmpv Yl9saXN0X2xvY2ssIGZsYWdzKTsKKwlpZiAodW5wYXJrX29ubHkpCisJCWdvdG8gdW5wYXJrOwor CisJc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CQogCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShzX2pvYiwgdG1wLCAmc2NoZWQtPnJpbmdfbWlycm9yX2xp c3QsIG5vZGUpIHsKIAkJc3RydWN0IGRybV9zY2hlZF9mZW5jZSAqc19mZW5jZSA9IHNfam9iLT5z X2ZlbmNlOwotCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKLQkJdWludDY0X3QgZ3VpbHR5X2Nv bnRleHQ7Ci0KLQkJaWYgKCFmb3VuZF9ndWlsdHkgJiYgYXRvbWljX3JlYWQoJnNfam9iLT5rYXJt YSkgPiBzY2hlZC0+aGFuZ19saW1pdCkgewotCQkJZm91bmRfZ3VpbHR5ID0gdHJ1ZTsKLQkJCWd1 aWx0eV9jb250ZXh0ID0gc19qb2ItPnNfZmVuY2UtPnNjaGVkdWxlZC5jb250ZXh0OwotCQl9Ci0K LQkJaWYgKGZvdW5kX2d1aWx0eSAmJiBzX2pvYi0+c19mZW5jZS0+c2NoZWR1bGVkLmNvbnRleHQg PT0gZ3VpbHR5X2NvbnRleHQpCi0JCQlkbWFfZmVuY2Vfc2V0X2Vycm9yKCZzX2ZlbmNlLT5maW5p c2hlZCwgLUVDQU5DRUxFRCk7Ci0KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpv Yl9saXN0X2xvY2ssIGZsYWdzKTsKLQkJZmVuY2UgPSBzY2hlZC0+b3BzLT5ydW5fam9iKHNfam9i KTsKLQkJYXRvbWljX2luYygmc2NoZWQtPmh3X3JxX2NvdW50KTsKKwkJc3RydWN0IGRtYV9mZW5j ZSAqZmVuY2UgPSBzX2pvYi0+c19mZW5jZS0+cGFyZW50OwogCiAJCWlmIChmZW5jZSkgewotCQkJ c19mZW5jZS0+cGFyZW50ID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAJCQlyID0gZG1hX2ZlbmNl X2FkZF9jYWxsYmFjayhmZW5jZSwgJnNfZmVuY2UtPmNiLAogCQkJCQkJICAgZHJtX3NjaGVkX3By b2Nlc3Nfam9iKTsKIAkJCWlmIChyID09IC1FTk9FTlQpCkBAIC00MjcsMTggKzQzNiw0NyBAQCB2 b2lkIGRybV9zY2hlZF9qb2JfcmVjb3Zlcnkoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hl ZCkKIAkJCWVsc2UgaWYgKHIpCiAJCQkJRFJNX0VSUk9SKCJmZW5jZSBhZGQgY2FsbGJhY2sgZmFp bGVkICglZClcbiIsCiAJCQkJCSAgcik7Ci0JCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKLQkJfSBl bHNlIHsKLQkJCWlmIChzX2ZlbmNlLT5maW5pc2hlZC5lcnJvciA8IDApCi0JCQkJZHJtX3NjaGVk X2V4cGVsX2pvYl91bmxvY2tlZChzX2pvYik7CisJCX0gZWxzZQogCQkJZHJtX3NjaGVkX3Byb2Nl c3Nfam9iKE5VTEwsICZzX2ZlbmNlLT5jYik7Ci0JCX0KLQkJc3Bpbl9sb2NrX2lycXNhdmUoJnNj aGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7CiAJfQorCiAJZHJtX3NjaGVkX3N0YXJ0X3RpbWVv dXQoc2NoZWQpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlzdF9sb2Nr LCBmbGFncyk7CisKK3VucGFyazoKKwlrdGhyZWFkX3VucGFyayhzY2hlZC0+dGhyZWFkKTsKIH0K LUVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX2pvYl9yZWNvdmVyeSk7CitFWFBPUlRfU1lNQk9MKGRy bV9zY2hlZF9zdGFydCk7CisKKy8qKgorICogZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMgLSBoZWxw ZXIgdG8gcmVsdW5jaCBqb2IgZnJvbSBtaXJyb3IgcmluZyBsaXN0CisgKgorICogQHNjaGVkOiBz Y2hlZHVsZXIgaW5zdGFuY2UKKyAqCisgKi8KK3ZvaWQgZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMo c3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKK3sKKwlzdHJ1Y3QgZHJtX3NjaGVkX2pv YiAqc19qb2IsICp0bXA7CisJdWludDY0X3QgZ3VpbHR5X2NvbnRleHQ7CisJYm9vbCBmb3VuZF9n dWlsdHkgPSBmYWxzZTsKKworCS8qVE9ETyBETyB3ZSBuZWVkIHNwaW5sb2NrIGhlcmUgPyAqLwor CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShzX2pvYiwgdG1wLCAmc2NoZWQtPnJpbmdfbWlycm9y X2xpc3QsIG5vZGUpIHsKKwkJc3RydWN0IGRybV9zY2hlZF9mZW5jZSAqc19mZW5jZSA9IHNfam9i LT5zX2ZlbmNlOworCisJCWlmICghZm91bmRfZ3VpbHR5ICYmIGF0b21pY19yZWFkKCZzX2pvYi0+ a2FybWEpID4gc2NoZWQtPmhhbmdfbGltaXQpIHsKKwkJCWZvdW5kX2d1aWx0eSA9IHRydWU7CisJ CQlndWlsdHlfY29udGV4dCA9IHNfam9iLT5zX2ZlbmNlLT5zY2hlZHVsZWQuY29udGV4dDsKKwkJ fQorCisJCWlmIChmb3VuZF9ndWlsdHkgJiYgc19qb2ItPnNfZmVuY2UtPnNjaGVkdWxlZC5jb250 ZXh0ID09IGd1aWx0eV9jb250ZXh0KQorCQkJZG1hX2ZlbmNlX3NldF9lcnJvcigmc19mZW5jZS0+ ZmluaXNoZWQsIC1FQ0FOQ0VMRUQpOworCisJCXNfam9iLT5zX2ZlbmNlLT5wYXJlbnQgPSBzY2hl ZC0+b3BzLT5ydW5fam9iKHNfam9iKTsKKwkJYXRvbWljX2luYygmc2NoZWQtPmh3X3JxX2NvdW50 KTsKKwl9Cit9CitFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKTsKIAogLyoq CiAgKiBkcm1fc2NoZWRfam9iX2luaXQgLSBpbml0IGEgc2NoZWR1bGVyIGpvYgpAQCAtNjM0LDI2 ICs2NzIsMTQgQEAgc3RhdGljIGludCBkcm1fc2NoZWRfbWFpbih2b2lkICpwYXJhbSkKIAkJCQlE Uk1fRVJST1IoImZlbmNlIGFkZCBjYWxsYmFjayBmYWlsZWQgKCVkKVxuIiwKIAkJCQkJICByKTsK IAkJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOwotCQl9IGVsc2UgewotCQkJaWYgKHNfZmVuY2UtPmZp bmlzaGVkLmVycm9yIDwgMCkKLQkJCQlkcm1fc2NoZWRfZXhwZWxfam9iX3VubG9ja2VkKHNjaGVk X2pvYik7CisJCX0gZWxzZQogCQkJZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKE5VTEwsICZzX2ZlbmNl LT5jYik7Ci0JCX0KIAogCQl3YWtlX3VwKCZzY2hlZC0+am9iX3NjaGVkdWxlZCk7CiAJfQogCXJl dHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBkcm1fc2NoZWRfZXhwZWxfam9iX3VubG9ja2VkKHN0 cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYikKLXsKLQlzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIg KnNjaGVkID0gc19qb2ItPnNjaGVkOwotCi0Jc3Bpbl9sb2NrKCZzY2hlZC0+am9iX2xpc3RfbG9j ayk7Ci0JbGlzdF9kZWxfaW5pdCgmc19qb2ItPm5vZGUpOwotCXNwaW5fdW5sb2NrKCZzY2hlZC0+ am9iX2xpc3RfbG9jayk7Ci19Ci0KIC8qKgogICogZHJtX3NjaGVkX2luaXQgLSBJbml0IGEgZ3B1 IHNjaGVkdWxlciBpbnN0YW5jZQogICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92M2Qv djNkX3NjaGVkLmMgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zY2hlZC5jCmluZGV4IDQ0NWIy ZWYuLmY5OTM0NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX3NjaGVkLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYwpAQCAtMTc4LDE4ICsxNzgsMTkg QEAgdjNkX2pvYl90aW1lZG91dChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc2NoZWRfam9iKQogCWZv ciAocSA9IDA7IHEgPCBWM0RfTUFYX1FVRVVFUzsgcSsrKSB7CiAJCXN0cnVjdCBkcm1fZ3B1X3Nj aGVkdWxlciAqc2NoZWQgPSAmdjNkLT5xdWV1ZVtxXS5zY2hlZDsKIAotCQlrdGhyZWFkX3Bhcmso c2NoZWQtPnRocmVhZCk7Ci0JCWRybV9zY2hlZF9od19qb2JfcmVzZXQoc2NoZWQsIChzY2hlZF9q b2ItPnNjaGVkID09IHNjaGVkID8KLQkJCQkJICAgICAgIHNjaGVkX2pvYiA6IE5VTEwpKTsKKwkJ ZHJtX3NjaGVkX3N0b3Aoc2NoZWQsIChzY2hlZF9qb2ItPnNjaGVkID09IHNjaGVkID8KKwkJCQkJ ICAgICAgIHNjaGVkX2pvYiA6IE5VTEwpLCBmYWxzZSk7CiAJfQogCiAJLyogZ2V0IHRoZSBHUFUg YmFjayBpbnRvIHRoZSBpbml0IHN0YXRlICovCiAJdjNkX3Jlc2V0KHYzZCk7CiAKKwlmb3IgKHEg PSAwOyBxIDwgVjNEX01BWF9RVUVVRVM7IHErKykKKwkJZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMo c2NoZWRfam9iLT5zY2hlZCk7CisKIAkvKiBVbmJsb2NrIHNjaGVkdWxlcnMgYW5kIHJlc3RhcnQg dGhlaXIgam9icy4gKi8KIAlmb3IgKHEgPSAwOyBxIDwgVjNEX01BWF9RVUVVRVM7IHErKykgewot CQlkcm1fc2NoZWRfam9iX3JlY292ZXJ5KCZ2M2QtPnF1ZXVlW3FdLnNjaGVkKTsKLQkJa3RocmVh ZF91bnBhcmsodjNkLT5xdWV1ZVtxXS5zY2hlZC50aHJlYWQpOworCQlkcm1fc2NoZWRfc3RhcnQo JnYzZC0+cXVldWVbcV0uc2NoZWQsIGZhbHNlKTsKIAl9CiAKIAltdXRleF91bmxvY2soJnYzZC0+ cmVzZXRfbG9jayk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmggYi9p bmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgKaW5kZXggNDdlMTk3OS4uYzk0YjU5MiAxMDA2NDQK LS0tIGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCisrKyBiL2luY2x1ZGUvZHJtL2dwdV9z Y2hlZHVsZXIuaApAQCAtMTc1LDYgKzE3NSw3IEBAIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2UgKnRv X2RybV9zY2hlZF9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKTsKICAqICAgICAgICAgICAgICAg ZmluaXNoZWQgdG8gcmVtb3ZlIHRoZSBqb2IgZnJvbSB0aGUKICAqICAgICAgICAgICAgICAgQGRy bV9ncHVfc2NoZWR1bGVyLnJpbmdfbWlycm9yX2xpc3QuCiAgKiBAbm9kZTogdXNlZCB0byBhcHBl bmQgdGhpcyBzdHJ1Y3QgdG8gdGhlIEBkcm1fZ3B1X3NjaGVkdWxlci5yaW5nX21pcnJvcl9saXN0 LgorICogQGZpbmlzaF9ub2RlOiB1c2VkIGluIGEgbGlzdCB0byB3YWl0IG9uIGJlZm9yZSByZXNl dHRpbmcgdGhlIHNjaGVkdWxlcgogICogQGlkOiBhIHVuaXF1ZSBpZCBhc3NpZ25lZCB0byBlYWNo IGpvYiBzY2hlZHVsZWQgb24gdGhlIHNjaGVkdWxlci4KICAqIEBrYXJtYTogaW5jcmVtZW50IG9u IGV2ZXJ5IGhhbmcgY2F1c2VkIGJ5IHRoaXMgam9iLiBJZiB0aGlzIGV4Y2VlZHMgdGhlIGhhbmcK ICAqICAgICAgICAgbGltaXQgb2YgdGhlIHNjaGVkdWxlciB0aGVuIHRoZSBqb2IgaXMgbWFya2Vk IGd1aWx0eSBhbmQgd2lsbCBub3QKQEAgLTE5Myw2ICsxOTQsNyBAQCBzdHJ1Y3QgZHJtX3NjaGVk X2pvYiB7CiAJc3RydWN0IGRtYV9mZW5jZV9jYgkJZmluaXNoX2NiOwogCXN0cnVjdCB3b3JrX3N0 cnVjdAkJZmluaXNoX3dvcms7CiAJc3RydWN0IGxpc3RfaGVhZAkJbm9kZTsKKwlzdHJ1Y3QgbGlz dF9oZWFkCQlmaW5pc2hfbm9kZTsKIAl1aW50NjRfdAkJCWlkOwogCWF0b21pY190CQkJa2FybWE7 CiAJZW51bSBkcm1fc2NoZWRfcHJpb3JpdHkJCXNfcHJpb3JpdHk7CkBAIC0yOTgsOSArMzAwLDEx IEBAIGludCBkcm1fc2NoZWRfam9iX2luaXQoc3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYiwKIAkJ ICAgICAgIHZvaWQgKm93bmVyKTsKIHZvaWQgZHJtX3NjaGVkX2pvYl9jbGVhbnVwKHN0cnVjdCBk cm1fc2NoZWRfam9iICpqb2IpOwogdm9pZCBkcm1fc2NoZWRfd2FrZXVwKHN0cnVjdCBkcm1fZ3B1 X3NjaGVkdWxlciAqc2NoZWQpOwotdm9pZCBkcm1fc2NoZWRfaHdfam9iX3Jlc2V0KHN0cnVjdCBk cm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsCi0JCQkgICAgc3RydWN0IGRybV9zY2hlZF9qb2IgKmpv Yik7Ci12b2lkIGRybV9zY2hlZF9qb2JfcmVjb3Zlcnkoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVy ICpzY2hlZCk7Cit2b2lkIGRybV9zY2hlZF9zdG9wKHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAq c2NoZWQsCisJCSAgICBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqam9iLAorCQkgICAgYm9vbCBwYXJr X29ubHkpOwordm9pZCBkcm1fc2NoZWRfc3RhcnQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpz Y2hlZCwgYm9vbCB1bnBhcmtfb25seSk7Cit2b2lkIGRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKHN0 cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpOwogYm9vbCBkcm1fc2NoZWRfZGVwZW5kZW5j eV9vcHRpbWl6ZWQoc3RydWN0IGRtYV9mZW5jZSogZmVuY2UsCiAJCQkJICAgIHN0cnVjdCBkcm1f c2NoZWRfZW50aXR5ICplbnRpdHkpOwogdm9pZCBkcm1fc2NoZWRfZmF1bHQoc3RydWN0IGRybV9n cHVfc2NoZWR1bGVyICpzY2hlZCk7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==