From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mayuresh Gharpure Subject: [PATCH] lib/igt_kms: Add COMMIT_ATOMIC to igt_display_commit2() Date: Wed, 9 Mar 2016 19:43:54 +0530 Message-ID: <1457532834-6072-1-git-send-email-mayuresh.s.gharpure@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id EE0786E105 for ; Wed, 9 Mar 2016 14:13:45 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q28tQXV0aG9yIDogTWFyaXVzIFZsYWQgPG1hcml1cy5jLnZsYWRAaW50ZWwuY29tPgpDby1BdXRo b3IgOiBQcmF0aWsgVmlzaHdha2FybWEgPHByYXRpay52aXNod2FrYXJtYUBpbnRlbC5jb20+CgpT byBmYXIgd2UgaGF2ZSBoYWQgb25seSB0d28gY29tbWl0IHN0eWxlcywgQ09NTUlUX0xFR0FDWQph bmQgQ09NTUlUX1VOSVZFUlNBTC4gVGhpcyBwYXRjaCBhZGRzIGFub3RoZXIgY29tbWl0IHN0eWxl CkNPTU1JVF9BVE9NSUMgd2hpY2ggbWFrZXMgdXNlIG9mIGRybU1vZGVBdG9taWNDb21taXQoKQoK djI6IChNYXJpdXMpCglpKVNldCBDUlRDX0lEIHRvIHplcm8gd2hpbGUgZGlzYWJsaW5nIHBsYW5l CglpaSlNb2RpZmllZCB0aGUgbG9nIG1lc3NhZ2UgaW4gaWd0X2F0b21pY19wcmVwYXJlX3BsYW5l X2NvbW1pdAoJaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzcxOTQ1LwoK djM6IChNYXJpdXMpU2V0IEZCX0lEIHRvIHplcm8gd2hpbGUgZGlzYWJsaW5nIHBsYW5lCglodHRw czovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvNzIxNzkvCgp2NDogKE1hYXJ0ZW4p IENvcnJlY3RlZCB0aGUgdHlwbyBpbiBjb21taXQgbWVzc2FnZQoJaHR0cHM6Ly9wYXRjaHdvcmsu ZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzcyNTk4LwoKdjU6IEFkZGVkIGNoZWNrIGZvciBEUk1fQ0xJ RU5UX0NBUF9BVE9NSUMgaW4gaWd0X2Rpc3BsYXlfaW5pdAogICAgKE1hcml1cykKCWkpUmVtb3Zl ZCB1bnVzZWQgcHJvcHMgZnJvbSBpZ3RfZGlzcGxheV9pbml0CglpaSlSZW1vdmVkIHVudXNlZCBy ZXQuIENoYW5nZWQgZnVuY3Rpb24gdG8gdm9pZAoJaWlpKURlY2xhcmUgdGhlIHZhcmlhYmxlIGJl Zm9yZSBjaGVja2luZyBpZiB3ZSBoYXZlCglEUk1fQ0xJRU5UX0NBUF9BVE9NSUMuCglodHRwczov L3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvNzM1MDUvCgp2NjogKEphbmkpIENvcnJl Y3RlZCB0eXBvIGluIGNvbW1pdCBtZXNzYWdlCgp2NzogQWRkZWQgaXNfYXRvbWljIGNoZWNrIGZv ciBEUk1fQ0xJRU5UX0NBUF9BVE9NSUMgaW4KCWlndF9kaXNwbGF5X2luaXQgYW5kIGlndF9hdG9t aWNfY29tbWl0Cgp2ODogKE1hdHRoZXcgQXVsZCkgUmVwbGFjZWQgZm9yIGxvb3BzIGJ5IGZvcl9l YWNoX2Nvbm5lY3RlZF9vdXRwdXQgYW5kCglmb3JfZWFjaF9wbGFuZV9vbl9waXBlCiAgICAoTGlv bmVsKSBQb3B1bGF0ZSBwcm9wZXJ0aWVzIG9ubHkgaWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkCiAg ICAJUmVtb3ZlIHRoZSByZXNldHRpbmcgb2YgdmFsdWVzIGluIGRpc2FibGUgY2FzZQoJTm90ZSA6 IEkndmUgdXNlZCBNYWFydGVuJ3MgZGlmZiBwYXRjaAoKU2lnbmVkLW9mZi1ieTogTWF5dXJlc2gg R2hhcnB1cmUgPG1heXVyZXNoLnMuZ2hhcnB1cmVAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBQ cmF0aWsgVmlzaHdha2FybWEgPHByYXRpay52aXNod2FrYXJtYUBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IE1heXVyZXNoIEdoYXJwdXJlIDxtYXl1cmVzaC5zLmdoYXJwdXJlQGludGVsLmNvbT4K LS0tCkluY29ycG9yYXRlZCBDb21tZW50cyBNYXR0aGV3IGFuZCBMaW9uZWwKIGxpYi9pZ3Rfa21z LmMgfCAyODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogbGliL2lndF9rbXMuaCB8ICA3MiArKysrKysrKysrKysrKy0KIDIgZmlsZXMg Y2hhbmdlZCwgMzU5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bGliL2lndF9rbXMuYyBiL2xpYi9pZ3Rfa21zLmMKaW5kZXggOWYxOGFlZi4uNWI2YzMyNCAxMDA2 NDQKLS0tIGEvbGliL2lndF9rbXMuYworKysgYi9saWIvaWd0X2ttcy5jCkBAIC0xNDUsNiArMTQ1 LDEyMCBAQCBjb25zdCB1bnNpZ25lZCBjaGFyKiBpZ3Rfa21zX2dldF9iYXNlX2VkaWQodm9pZCkK ICAqCiAgKiBSZXR1cm5zOiBhbiBhbHRlcm5hdGUgZWRpZCBibG9jawogICovCitzdGF0aWMgY29u c3QgY2hhciAqaWd0X3BsYW5lX3Byb3BfbmFtZXNbSUdUX05VTV9QTEFORV9QUk9QU10gPSB7CisJ IlNSQ19YIiwKKwkiU1JDX1kiLAorCSJTUkNfVyIsCisJIlNSQ19IIiwKKwkiQ1JUQ19YIiwKKwki Q1JUQ19ZIiwKKwkiQ1JUQ19XIiwKKwkiQ1JUQ19IIiwKKwkiRkJfSUQiLAorCSJDUlRDX0lEIiwK KwkidHlwZSIsCisJInJvdGF0aW9uIgorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKmlndF9jcnRj X3Byb3BfbmFtZXNbSUdUX05VTV9DUlRDX1BST1BTXSA9IHsKKwkiYmFja2dyb3VuZF9jb2xvciIK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICppZ3RfY29ubmVjdG9yX3Byb3BfbmFtZXNbSUdUX05V TV9DT05ORUNUT1JfUFJPUFNdID0geworCSJzY2FsaW5nIG1vZGUiLAorCSJEUE1TIgorfTsKKwor LyoKKyAqIFJldHJpZXZlIGFsbCB0aGUgcHJvcGVyaWVzIHNwZWNpZmllZCBpbiBwcm9wc19uYW1l IGFuZCBzdG9yZSB0aGVtIGludG8KKyAqIHBsYW5lLT5hdG9taWNfcHJvcHNfcGxhbmUuCisgKi8K K3N0YXRpYyB2b2lkCitpZ3RfYXRvbWljX2ZpbGxfcGxhbmVfcHJvcHMoaWd0X2Rpc3BsYXlfdCAq ZGlzcGxheSwgaWd0X3BsYW5lX3QgKnBsYW5lLAorCQkJaW50IG51bV9wcm9wcywgY29uc3QgY2hh ciAqKnByb3BfbmFtZXMpCit7CisJZHJtTW9kZU9iamVjdFByb3BlcnRpZXNQdHIgcHJvcHM7CisJ aW50IGksIGosIGZkOworCisJZmQgPSBkaXNwbGF5LT5kcm1fZmQ7CisKKwlwcm9wcyA9IGRybU1v ZGVPYmplY3RHZXRQcm9wZXJ0aWVzKGZkLCBwbGFuZS0+ZHJtX3BsYW5lLT5wbGFuZV9pZCwgRFJN X01PREVfT0JKRUNUX1BMQU5FKTsKKwlpZ3RfYXNzZXJ0KHByb3BzKTsKKworCWZvciAoaSA9IDA7 IGkgPCBwcm9wcy0+Y291bnRfcHJvcHM7IGkrKykgeworCQlkcm1Nb2RlUHJvcGVydHlQdHIgcHJv cCA9CisJCQlkcm1Nb2RlR2V0UHJvcGVydHkoZmQsIHByb3BzLT5wcm9wc1tpXSk7CisKKwkJZm9y IChqID0gMDsgaiA8IG51bV9wcm9wczsgaisrKSB7CisJCQlpZiAoc3RyY21wKHByb3AtPm5hbWUs IHByb3BfbmFtZXNbal0pICE9IDApCisJCQkJY29udGludWU7CisKKwkJCXBsYW5lLT5hdG9taWNf cHJvcHNfcGxhbmVbal0gPSBwcm9wcy0+cHJvcHNbaV07CisJCQlicmVhazsKKwkJfQorCisJCWRy bU1vZGVGcmVlUHJvcGVydHkocHJvcCk7CisJfQorCisJZHJtTW9kZUZyZWVPYmplY3RQcm9wZXJ0 aWVzKHByb3BzKTsKK30KKworLyoKKyAqIFJldHJpZXZlIGFsbCB0aGUgcHJvcGVyaWVzIHNwZWNp ZmllZCBpbiBwcm9wc19uYW1lIGFuZCBzdG9yZSB0aGVtIGludG8KKyAqIGNvbmZpZy0+YXRvbWlj X3Byb3BzX2NydGMgYW5kIGNvbmZpZy0+YXRvbWljX3Byb3BzX2Nvbm5lY3Rvci4KKyAqLworc3Rh dGljIHZvaWQKK2lndF9hdG9taWNfZmlsbF9wcm9wcyhpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBp Z3Rfb3V0cHV0X3QgKm91dHB1dCwKKwkJCWludCBudW1fY3J0Y19wcm9wcywgY29uc3QgY2hhciAq KmNydGNfcHJvcF9uYW1lcywKKwkJCWludCBudW1fY29ubmVjdG9yX3Byb3BzLCBjb25zdCBjaGFy ICoqY29ubl9wcm9wX25hbWVzKQoreworCWRybU1vZGVPYmplY3RQcm9wZXJ0aWVzUHRyIHByb3Bz OworCWludCBpLCBqLCBmZDsKKworCWZkID0gZGlzcGxheS0+ZHJtX2ZkOworCisJcHJvcHMgPSBk cm1Nb2RlT2JqZWN0R2V0UHJvcGVydGllcyhmZCwgb3V0cHV0LT5jb25maWcuY3J0Yy0+Y3J0Y19p ZCwgRFJNX01PREVfT0JKRUNUX0NSVEMpOworCWlndF9hc3NlcnQocHJvcHMpOworCisJZm9yIChp ID0gMDsgaSA8IHByb3BzLT5jb3VudF9wcm9wczsgaSsrKSB7CisJCWRybU1vZGVQcm9wZXJ0eVB0 ciBwcm9wID0KKwkJCWRybU1vZGVHZXRQcm9wZXJ0eShmZCwgcHJvcHMtPnByb3BzW2ldKTsKKwor CQlmb3IgKGogPSAwOyBqIDwgbnVtX2NydGNfcHJvcHM7IGorKykgeworCQkJaWYgKHN0cmNtcChw cm9wLT5uYW1lLCBjcnRjX3Byb3BfbmFtZXNbal0pICE9IDApCisJCQkJY29udGludWU7CisKKwkJ CW91dHB1dC0+Y29uZmlnLmF0b21pY19wcm9wc19jcnRjW2pdID0gcHJvcHMtPnByb3BzW2ldOwor CQkJYnJlYWs7CisJCX0KKworCQlkcm1Nb2RlRnJlZVByb3BlcnR5KHByb3ApOworCX0KKworCWRy bU1vZGVGcmVlT2JqZWN0UHJvcGVydGllcyhwcm9wcyk7CisJcHJvcHMgPSBOVUxMOworCXByb3Bz ID0gZHJtTW9kZU9iamVjdEdldFByb3BlcnRpZXMoZmQsIG91dHB1dC0+Y29uZmlnLmNvbm5lY3Rv ci0+Y29ubmVjdG9yX2lkLCBEUk1fTU9ERV9PQkpFQ1RfQ09OTkVDVE9SKTsKKwlpZ3RfYXNzZXJ0 KHByb3BzKTsKKworCWZvciAoaSA9IDA7IGkgPCBwcm9wcy0+Y291bnRfcHJvcHM7IGkrKykgewor CQlkcm1Nb2RlUHJvcGVydHlQdHIgcHJvcCA9CisJCQlkcm1Nb2RlR2V0UHJvcGVydHkoZmQsIHBy b3BzLT5wcm9wc1tpXSk7CisKKwkJZm9yIChqID0gMDsgaiA8IG51bV9jb25uZWN0b3JfcHJvcHM7 IGorKykgeworCQkJaWYgKHN0cmNtcChwcm9wLT5uYW1lLCBjb25uX3Byb3BfbmFtZXNbal0pICE9 IDApCisJCQkJY29udGludWU7CisKKwkJCW91dHB1dC0+Y29uZmlnLmF0b21pY19wcm9wc19jb25u ZWN0b3Jbal0gPSBwcm9wcy0+cHJvcHNbaV07CisJCQlicmVhazsKKwkJfQorCisJCWRybU1vZGVG cmVlUHJvcGVydHkocHJvcCk7CisJfQorCisJZHJtTW9kZUZyZWVPYmplY3RQcm9wZXJ0aWVzKHBy b3BzKTsKKworfQorCiBjb25zdCB1bnNpZ25lZCBjaGFyKiBpZ3Rfa21zX2dldF9hbHRfZWRpZCh2 b2lkKQogewogCXVwZGF0ZV9lZGlkX2NzdW0oYWx0X2VkaWQpOwpAQCAtMTAwMCw2ICsxMTE0LDgg QEAgc3RhdGljIHZvaWQgaWd0X291dHB1dF9yZWZyZXNoKGlndF9vdXRwdXRfdCAqb3V0cHV0KQog CSAgICBrbXN0ZXN0X3BpcGVfbmFtZShvdXRwdXQtPmNvbmZpZy5waXBlKSk7CiAKIAlkaXNwbGF5 LT5waXBlc19pbl91c2UgfD0gMSA8PCBvdXRwdXQtPmNvbmZpZy5waXBlOworCWlndF9hdG9taWNf ZmlsbF9wcm9wcyhkaXNwbGF5LCBvdXRwdXQsIElHVF9OVU1fQ1JUQ19QUk9QUywgaWd0X2NydGNf cHJvcF9uYW1lcywKKwkJSUdUX05VTV9DT05ORUNUT1JfUFJPUFMsIGlndF9jb25uZWN0b3JfcHJv cF9uYW1lcyk7CiB9CiAKIHN0YXRpYyBib29sCkBAIC0xMDY5LDYgKzExODUsNyBAQCB2b2lkIGln dF9kaXNwbGF5X2luaXQoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IGRybV9mZCkKIAlkcm1N b2RlUmVzICpyZXNvdXJjZXM7CiAJZHJtTW9kZVBsYW5lUmVzICpwbGFuZV9yZXNvdXJjZXM7CiAJ aW50IGk7CisJaW50IGlzX2F0b21pYyA9IDA7CiAKIAltZW1zZXQoZGlzcGxheSwgMCwgc2l6ZW9m KGlndF9kaXNwbGF5X3QpKTsKIApAQCAtMTA4Niw2ICsxMjAzLDcgQEAgdm9pZCBpZ3RfZGlzcGxh eV9pbml0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGludCBkcm1fZmQpCiAJZGlzcGxheS0+bl9w aXBlcyA9IHJlc291cmNlcy0+Y291bnRfY3J0Y3M7CiAKIAlkcm1TZXRDbGllbnRDYXAoZHJtX2Zk LCBEUk1fQ0xJRU5UX0NBUF9VTklWRVJTQUxfUExBTkVTLCAxKTsKKwlpc19hdG9taWMgPSBkcm1T ZXRDbGllbnRDYXAoZHJtX2ZkLCBEUk1fQ0xJRU5UX0NBUF9BVE9NSUMsIDEpOwogCXBsYW5lX3Jl c291cmNlcyA9IGRybU1vZGVHZXRQbGFuZVJlc291cmNlcyhkaXNwbGF5LT5kcm1fZmQpOwogCWln dF9hc3NlcnQocGxhbmVfcmVzb3VyY2VzKTsKIApAQCAtMTE0Miw2ICsxMjYwLDEwIEBAIHZvaWQg aWd0X2Rpc3BsYXlfaW5pdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBpbnQgZHJtX2ZkKQogCiAJ CQlwbGFuZS0+cGlwZSA9IHBpcGU7CiAJCQlwbGFuZS0+ZHJtX3BsYW5lID0gZHJtX3BsYW5lOwor CQkJaWYgKGlzX2F0b21pYyA9PSAwKSB7CisJCQkJZGlzcGxheS0+aXNfYXRvbWljID0gMTsKKwkJ CQlpZ3RfYXRvbWljX2ZpbGxfcGxhbmVfcHJvcHMoZGlzcGxheSwgcGxhbmUsIElHVF9OVU1fUExB TkVfUFJPUFMsIGlndF9wbGFuZV9wcm9wX25hbWVzKTsKKwkJCX0KIAogCQkJZ2V0X3BsYW5lX3By b3BlcnR5KGRpc3BsYXktPmRybV9mZCwgZHJtX3BsYW5lLT5wbGFuZV9pZCwKIAkJCQkJICAgInJv dGF0aW9uIiwKQEAgLTEzOTcsNiArMTUxOSw3OSBAQCBzdGF0aWMgdWludDMyX3QgaWd0X3BsYW5l X2dldF9mYl9nZW1faGFuZGxlKGlndF9wbGFuZV90ICpwbGFuZSkKIAlpZ3RfYXNzZXJ0KHIgPT0g MCk7CVwKIH0KIAorCisKKworLyoKKyAqIEFkZCBwb3NpdGlvbiBhbmQgZmIgY2hhbmdlcyBvZiBh IHBsYW5lIHRvIHRoZSBhdG9taWMgcHJvcGVydHkgc2V0CisgKi8KK3N0YXRpYyB2b2lkCitpZ3Rf YXRvbWljX3ByZXBhcmVfcGxhbmVfY29tbWl0KGlndF9wbGFuZV90ICpwbGFuZSwgaWd0X291dHB1 dF90ICpvdXRwdXQsCisJZHJtTW9kZUF0b21pY1JlcSAqcmVxKQoreworCisJaWd0X2Rpc3BsYXlf dCAqZGlzcGxheSA9IG91dHB1dC0+ZGlzcGxheTsKKwl1aW50MzJfdCBmYl9pZCwgY3J0Y19pZDsK KworCWlndF9hc3NlcnQocGxhbmUtPmRybV9wbGFuZSk7CisKKwkvKiBpdCdzIGFuIGVycm9yIHRv IHRyeSBhbiB1bnN1cHBvcnRlZCBmZWF0dXJlICovCisJaWd0X2Fzc2VydChpZ3RfcGxhbmVfc3Vw cG9ydHNfcm90YXRpb24ocGxhbmUpIHx8CisJCQkhcGxhbmUtPnJvdGF0aW9uX2NoYW5nZWQpOwor CisJZmJfaWQgPSBpZ3RfcGxhbmVfZ2V0X2ZiX2lkKHBsYW5lKTsKKwljcnRjX2lkID0gb3V0cHV0 LT5jb25maWcuY3J0Yy0+Y3J0Y19pZDsKKworCUxPRyhkaXNwbGF5LAorCSAgICAiJXM6IHBvcHVs YXRpbmcgcGxhbmUgZGF0YTogJXMuJWQsIGZiICV1XG4iLAorCSAgICBpZ3Rfb3V0cHV0X25hbWUo b3V0cHV0KSwKKwkgICAga21zdGVzdF9waXBlX25hbWUob3V0cHV0LT5jb25maWcucGlwZSksCisJ ICAgIHBsYW5lLT5pbmRleCwKKwkgICAgZmJfaWQpOworCisJaWYgKHBsYW5lLT5mYl9jaGFuZ2Vk KSB7CisJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUsIElHVF9QTEFO RV9DUlRDX0lELCBmYl9pZCA/IGNydGNfaWQgOiAwKTsKKwkJaWd0X2F0b21pY19wb3B1bGF0ZV9w bGFuZV9yZXEocmVxLCBwbGFuZSwgSUdUX1BMQU5FX0ZCX0lELCBmYl9pZCk7CisJfQorCisJaWYg KHBsYW5lLT5wb3NpdGlvbl9jaGFuZ2VkIHx8IHBsYW5lLT5zaXplX2NoYW5nZWQpIHsKKwkJdWlu dDMyX3Qgc3JjX3ggPSBJR1RfRklYRUQocGxhbmUtPmZiLT5zcmNfeCwgMCk7IC8qIHNyY194ICov CisJCXVpbnQzMl90IHNyY195ID0gSUdUX0ZJWEVEKHBsYW5lLT5mYi0+c3JjX3ksIDApOyAvKiBz cmNfeSAqLworCQl1aW50MzJfdCBzcmNfdyA9IElHVF9GSVhFRChwbGFuZS0+ZmItPnNyY193LCAw KTsgLyogc3JjX3cgKi8KKwkJdWludDMyX3Qgc3JjX2ggPSBJR1RfRklYRUQocGxhbmUtPmZiLT5z cmNfaCwgMCk7IC8qIHNyY19oICovCisJCWludDMyX3QgY3J0Y194ID0gcGxhbmUtPmNydGNfeDsK KwkJaW50MzJfdCBjcnRjX3kgPSBwbGFuZS0+Y3J0Y195OworCQl1aW50MzJfdCBjcnRjX3cgPSBw bGFuZS0+Y3J0Y193OworCQl1aW50MzJfdCBjcnRjX2ggPSBwbGFuZS0+Y3J0Y19oOworCisJCUxP RyhkaXNwbGF5LAorCQkic3JjID0gKCVkLCAlZCkgJXUgeCAldSAiCisJCSJkc3QgPSAoJWQsICVk KSAldSB4ICV1XG4iLAorCQlzcmNfeCA+PiAxNiwgc3JjX3kgPj4gMTYsIHNyY193ID4+IDE2LCBz cmNfaCA+PiAxNiwKKwkJY3J0Y194LCBjcnRjX3ksIGNydGNfdywgY3J0Y19oKTsKKworCQlpZ3Rf YXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExBTkVfU1JDX1gsIHNy Y194KTsKKwkJaWd0X2F0b21pY19wb3B1bGF0ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwgSUdUX1BM QU5FX1NSQ19ZLCBzcmNfeSk7CisJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwg cGxhbmUsIElHVF9QTEFORV9TUkNfVywgc3JjX3cpOworCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3Bs YW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExBTkVfU1JDX0gsIHNyY19oKTsKKworCQlpZ3RfYXRv bWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19YLCBjcnRj X3gpOworCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExB TkVfQ1JUQ19ZLCBjcnRjX3kpOworCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEs IHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19XLCBjcnRjX3cpOworCQlpZ3RfYXRvbWljX3BvcHVsYXRl X3BsYW5lX3JlcShyZXEsIHBsYW5lLCBJR1RfUExBTkVfQ1JUQ19ILCBjcnRjX2gpOworCX0KKwor CWlmIChwbGFuZS0+cm90YXRpb25fY2hhbmdlZCkKKwkJaWd0X2F0b21pY19wb3B1bGF0ZV9wbGFu ZV9yZXEocmVxLCBwbGFuZSwKKwkJCUlHVF9QTEFORV9ST1RBVElPTiwgcGxhbmUtPnJvdGF0aW9u KTsKKworCXBsYW5lLT5mYl9jaGFuZ2VkID0gZmFsc2U7CisJcGxhbmUtPnBvc2l0aW9uX2NoYW5n ZWQgPSBmYWxzZTsKKwlwbGFuZS0+c2l6ZV9jaGFuZ2VkID0gZmFsc2U7Cit9CisKKworCiAvKgog ICogQ29tbWl0IHBvc2l0aW9uIGFuZCBmYiBjaGFuZ2VzIHRvIGEgRFJNIHBsYW5lIHZpYSB0aGUg U2V0UGxhbmUgaW9jdGw7IGlmIHRoZQogICogRFJNIGNhbGwgdG8gcHJvZ3JhbSB0aGUgcGxhbmUg ZmFpbHMsIHdlJ2xsIGVpdGhlciBmYWlsIGltbWVkaWF0ZWx5IChmb3IKQEAgLTE2NDksNyArMTg0 NCw3IEBAIHN0YXRpYyBpbnQgaWd0X3BsYW5lX2NvbW1pdChpZ3RfcGxhbmVfdCAqcGxhbmUsCiAJ CXJldHVybiBpZ3RfcHJpbWFyeV9wbGFuZV9jb21taXRfbGVnYWN5KHBsYW5lLCBvdXRwdXQsCiAJ CQkJCQkgICAgICAgZmFpbF9vbl9lcnJvcik7CiAJfSBlbHNlIHsKLQkJcmV0dXJuIGlndF9kcm1f cGxhbmVfY29tbWl0KHBsYW5lLCBvdXRwdXQsIGZhaWxfb25fZXJyb3IpOworCQkJcmV0dXJuIGln dF9kcm1fcGxhbmVfY29tbWl0KHBsYW5lLCBvdXRwdXQsIGZhaWxfb25fZXJyb3IpOwogCX0KIH0K IApAQCAtMTcwMyw2ICsxODk4LDkwIEBAIHN0YXRpYyBpbnQgaWd0X291dHB1dF9jb21taXQoaWd0 X291dHB1dF90ICpvdXRwdXQsCiAJcmV0dXJuIDA7CiB9CiAKKworLyoKKyAqIEFkZCBjcnRjIHBy b3BlcnR5IGNoYW5nZXMgdG8gdGhlIGF0b21pYyBwcm9wZXJ0eSBzZXQKKyAqLworc3RhdGljIHZv aWQgaWd0X2F0b21pY19wcmVwYXJlX2NydGNfY29tbWl0KGlndF9vdXRwdXRfdCAqb3V0cHV0LCBk cm1Nb2RlQXRvbWljUmVxICpyZXEpCit7CisKKwlpZ3RfcGlwZV90ICpwaXBlX29iaiA9IGlndF9v dXRwdXRfZ2V0X2RyaXZpbmdfcGlwZShvdXRwdXQpOworCisJaWYgKHBpcGVfb2JqLT5iYWNrZ3Jv dW5kX2NoYW5nZWQpCisJCWlndF9hdG9taWNfcG9wdWxhdGVfY3J0Y19yZXEocmVxLCBvdXRwdXQs IElHVF9DUlRDX0JBQ0tHUk9VTkQsIHBpcGVfb2JqLT5iYWNrZ3JvdW5kKTsKKworCS8qCisJICoJ VE9ETzogQWRkIGFsbCBjcnRjIGxldmVsIHByb3BlcnRpZXMgaGVyZQorCSAqLworCit9CisKKy8q CisgKiBBZGQgY29ubmVjdG9yIHByb3BlcnR5IGNoYW5nZXMgdG8gdGhlIGF0b21pYyBwcm9wZXJ0 eSBzZXQKKyAqLworc3RhdGljIHZvaWQgaWd0X2F0b21pY19wcmVwYXJlX2Nvbm5lY3Rvcl9jb21t aXQoaWd0X291dHB1dF90ICpvdXRwdXQsIGRybU1vZGVBdG9taWNSZXEgKnJlcSkKK3sKKworCXN0 cnVjdCBrbXN0ZXN0X2Nvbm5lY3Rvcl9jb25maWcgKmNvbmZpZyA9ICZvdXRwdXQtPmNvbmZpZzsK KworCWlmIChjb25maWctPmNvbm5lY3Rvcl9zY2FsaW5nX21vZGVfY2hhbmdlZCkKKwkJaWd0X2F0 b21pY19wb3B1bGF0ZV9jb25uZWN0b3JfcmVxKHJlcSwgb3V0cHV0LCBJR1RfQ09OTkVDVE9SX1ND QUxJTkdfTU9ERSwgY29uZmlnLT5jb25uZWN0b3Jfc2NhbGluZ19tb2RlKTsKKworCWlmIChjb25m aWctPmNvbm5lY3Rvcl9kcG1zX2NoYW5nZWQpCisJCWlndF9hdG9taWNfcG9wdWxhdGVfY29ubmVj dG9yX3JlcShyZXEsIG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9EUE1TLCBjb25maWctPmNvbm5lY3Rv cl9kcG1zKTsKKwkvKgorCSAqCVRPRE86IEFkZCBhbGwgb3RoZXIgY29ubmVjdG9yIGxldmVsIHBy b3BlcnRpZXMgaGVyZQorCSAqLworCit9CisKKy8qCisgKiBDb21taXQgYWxsIHRoZSBjaGFuZ2Vz IG9mIGFsbCB0aGUgcGxhbmVzLGNydGNzLCBjb25uZWN0b3JzCisgKiBhdG9taWNhbGx5IHVzaW5n IGRybU1vZGVBdG9taWNDb21taXQoKQorICovCitzdGF0aWMgaW50IGlndF9hdG9taWNfY29tbWl0 KGlndF9kaXNwbGF5X3QgKmRpc3BsYXkpCit7CisKKwlpbnQgcmV0ID0gMDsKKwlpbnQgaSA9IDA7 CisJZHJtTW9kZUF0b21pY1JlcSAqcmVxOworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWlmIChk aXNwbGF5LT5pc19hdG9taWMgIT0gMSkKKwkJcmV0dXJuIC0xOworCXJlcSA9IGRybU1vZGVBdG9t aWNBbGxvYygpOworCWRybU1vZGVBdG9taWNTZXRDdXJzb3IocmVxLCAwKTsKKworCWZvcl9lYWNo X2Nvbm5lY3RlZF9vdXRwdXQoZGlzcGxheSwgb3V0cHV0KSB7CisJCWlndF9waXBlX3QgKnBpcGVf b2JqOworCQlpZ3RfcGxhbmVfdCAqcGxhbmU7CisJCWVudW0gcGlwZSBwaXBlOworCisJCS8qCisJ CSAqIEFkZCBDUlRDIFByb3BlcnRpZXMgdG8gdGhlIHByb3BlcnR5IHNldAorCQkgKi8KKwkJaWd0 X2F0b21pY19wcmVwYXJlX2NydGNfY29tbWl0KG91dHB1dCwgcmVxKTsKKworCQkvKgorCQkgKiBB ZGQgQ29ubmVjdG9yIFByb3BlcnRpZXMgdG8gdGhlIHByb3BlcnR5IHNldAorCQkgKi8KKwkJaWd0 X2F0b21pY19wcmVwYXJlX2Nvbm5lY3Rvcl9jb21taXQob3V0cHV0LCByZXEpOworCisKKwkJcGlw ZV9vYmogPSBpZ3Rfb3V0cHV0X2dldF9kcml2aW5nX3BpcGUob3V0cHV0KTsKKworCQlwaXBlID0g cGlwZV9vYmotPnBpcGU7CisKKwkJZm9yX2VhY2hfcGxhbmVfb25fcGlwZShkaXNwbGF5LCBwaXBl LCBwbGFuZSkgeworCQkJaWd0X2F0b21pY19wcmVwYXJlX3BsYW5lX2NvbW1pdChwbGFuZSwgb3V0 cHV0LCByZXEpOworCQl9CisKKwl9CisKKwlyZXQgPSBkcm1Nb2RlQXRvbWljQ29tbWl0KGRpc3Bs YXktPmRybV9mZCwgcmVxLCAwLCBOVUxMKTsKKwlkcm1Nb2RlQXRvbWljRnJlZShyZXEpOworCXJl dHVybiByZXQ7CisKK30KIC8qCiAgKiBDb21taXQgYWxsIHBsYW5lIGNoYW5nZXMgYWNyb3NzIGFs bCBvdXRwdXRzIG9mIHRoZSBkaXNwbGF5LgogICoKQEAgLTE3MjIsNiArMjAwMSwxNCBAQCBzdGF0 aWMgaW50IGRvX2Rpc3BsYXlfY29tbWl0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksCiAKIAlpZ3Rf ZGlzcGxheV9yZWZyZXNoKGRpc3BsYXkpOwogCisJaWYgKHMgPT0gQ09NTUlUX0FUT01JQykgewor CisJCXJldCA9IGlndF9hdG9taWNfY29tbWl0KGRpc3BsYXkpOworCQlDSEVDS19SRVRVUk4ocmV0 LCBmYWlsX29uX2Vycm9yKTsKKwkJcmV0dXJuIDA7CisKKwl9CisKIAlmb3IgKGkgPSAwOyBpIDwg ZGlzcGxheS0+bl9vdXRwdXRzOyBpKyspIHsKIAkJaWd0X291dHB1dF90ICpvdXRwdXQgPSAmZGlz cGxheS0+b3V0cHV0c1tpXTsKIApkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9pZ3Rf a21zLmgKaW5kZXggNTc0NGVkMC4uZDZlMmYxMiAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAor KysgYi9saWIvaWd0X2ttcy5oCkBAIC0xMDYsMTEgKzEwNiwyOCBAQCBpbnQga21zdGVzdF9nZXRf cGlwZV9mcm9tX2NydGNfaWQoaW50IGZkLCBpbnQgY3J0Y19pZCk7CiB2b2lkIGttc3Rlc3Rfc2V0 X3Z0X2dyYXBoaWNzX21vZGUodm9pZCk7CiB2b2lkIGttc3Rlc3RfcmVzdG9yZV92dF9tb2RlKHZv aWQpOwogCitlbnVtIGlndF9hdG9taWNfY3J0Y19wcm9wZXJ0aWVzIHsKKyAgICAgICBJR1RfQ1JU Q19CQUNLR1JPVU5EID0gMCwKKyAgICAgICBJR1RfTlVNX0NSVENfUFJPUFMKK307CisKK2VudW0g aWd0X2F0b21pY19jb25uZWN0b3JfcHJvcGVydGllcyB7CisgICAgICAgSUdUX0NPTk5FQ1RPUl9T Q0FMSU5HX01PREUgPSAwLAorICAgICAgIElHVF9DT05ORUNUT1JfRFBNUywKKyAgICAgICBJR1Rf TlVNX0NPTk5FQ1RPUl9QUk9QUworfTsKKwogc3RydWN0IGttc3Rlc3RfY29ubmVjdG9yX2NvbmZp ZyB7CiAJZHJtTW9kZUNydGMgKmNydGM7CiAJZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOwog CWRybU1vZGVFbmNvZGVyICplbmNvZGVyOwogCWRybU1vZGVNb2RlSW5mbyBkZWZhdWx0X21vZGU7 CisJdWludDY0X3QgY29ubmVjdG9yX3NjYWxpbmdfbW9kZTsKKwlib29sIGNvbm5lY3Rvcl9zY2Fs aW5nX21vZGVfY2hhbmdlZDsKKwl1aW50NjRfdCBjb25uZWN0b3JfZHBtczsKKwlib29sIGNvbm5l Y3Rvcl9kcG1zX2NoYW5nZWQ7CisJdWludDMyX3QgYXRvbWljX3Byb3BzX2NydGNbSUdUX05VTV9D UlRDX1BST1BTXTsKKwl1aW50MzJfdCBhdG9taWNfcHJvcHNfY29ubmVjdG9yW0lHVF9OVU1fQ09O TkVDVE9SX1BST1BTXTsKIAlpbnQgY3J0Y19pZHg7CiAJaW50IHBpcGU7CiB9OwpAQCAtMTYzLDkg KzE4MCwyOCBAQCB1aW50MzJfdCBrbXN0ZXN0X2ZpbmRfY3J0Y19mb3JfY29ubmVjdG9yKGludCBm ZCwgZHJtTW9kZVJlcyAqcmVzLAogZW51bSBpZ3RfY29tbWl0X3N0eWxlIHsKIAlDT01NSVRfTEVH QUNZID0gMCwKIAlDT01NSVRfVU5JVkVSU0FMLAotCS8qIFdlJ2xsIGFkZCBhdG9taWMgaGVyZSBl dmVudHVhbGx5LiAqLworCUNPTU1JVF9BVE9NSUMsCiB9OwogCitlbnVtIGlndF9hdG9taWNfcGxh bmVfcHJvcGVydGllcyB7CisgICAgICAgSUdUX1BMQU5FX1NSQ19YID0gMCwKKyAgICAgICBJR1Rf UExBTkVfU1JDX1ksCisgICAgICAgSUdUX1BMQU5FX1NSQ19XLAorICAgICAgIElHVF9QTEFORV9T UkNfSCwKKworICAgICAgIElHVF9QTEFORV9DUlRDX1gsCisgICAgICAgSUdUX1BMQU5FX0NSVENf WSwKKyAgICAgICBJR1RfUExBTkVfQ1JUQ19XLAorICAgICAgIElHVF9QTEFORV9DUlRDX0gsCisK KyAgICAgICBJR1RfUExBTkVfRkJfSUQsCisgICAgICAgSUdUX1BMQU5FX0NSVENfSUQsCisgICAg ICAgSUdUX1BMQU5FX1RZUEUsCisgICAgICAgSUdUX1BMQU5FX1JPVEFUSU9OLAorICAgICAgIElH VF9OVU1fUExBTkVfUFJPUFMKK307CisKKwogdHlwZWRlZiBzdHJ1Y3QgaWd0X2Rpc3BsYXkgaWd0 X2Rpc3BsYXlfdDsKIHR5cGVkZWYgc3RydWN0IGlndF9waXBlIGlndF9waXBlX3Q7CiB0eXBlZGVm IHVpbnQzMl90IGlndF9maXhlZF90OwkJCS8qIDE2LjE2IGZpeGVkIHBvaW50ICovCkBAIC0yMDcs NiArMjQzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCS8qIHBhbm5pbmcgb2Zmc2V0IHdpdGhpbiB0 aGUgZmIgKi8KIAl1bnNpZ25lZCBpbnQgcGFuX3gsIHBhbl95OwogCWlndF9yb3RhdGlvbl90IHJv dGF0aW9uOworCXVpbnQzMl90IGF0b21pY19wcm9wc19wbGFuZVtJR1RfTlVNX1BMQU5FX1BST1BT XTsKIH0gaWd0X3BsYW5lX3Q7CiAKIHN0cnVjdCBpZ3RfcGlwZSB7CkBAIC0yNDIsNiArMjc5LDcg QEAgc3RydWN0IGlndF9kaXNwbGF5IHsKIAlpZ3Rfb3V0cHV0X3QgKm91dHB1dHM7CiAJaWd0X3Bp cGVfdCBwaXBlc1tJOTE1X01BWF9QSVBFU107CiAJYm9vbCBoYXNfdW5pdmVyc2FsX3BsYW5lczsK Kwlib29sIGlzX2F0b21pYzsKIH07CiAKIHZvaWQgaWd0X2Rpc3BsYXlfaW5pdChpZ3RfZGlzcGxh eV90ICpkaXNwbGF5LCBpbnQgZHJtX2ZkKTsKQEAgLTI4OCw2ICszMjYsMzggQEAgdm9pZCBpZ3Rf d2FpdF9mb3JfdmJsYW5rKGludCBkcm1fZmQsIGVudW0gcGlwZSBwaXBlKTsKIAogI2RlZmluZSBJ R1RfRklYRUQoaSxmKQkoKGkpIDw8IDE2IHwgKGYpKQogCisvKioKKyAqIGlndF9hdG9taWNfcG9w dWxhdGVfcGxhbmVfcmVxOgorICogQHJlcTogQSBwb2ludGVyIHRvIGRybU1vZGVBdG9taWNSZXEK KyAqIEBwbGFuZTogQSBwb2ludGVyIGlndF9wbGFuZV90CisgKiBAcHJvcDogb25lIG9mIGlndF9h dG9taWNfcGxhbmVfcHJvcGVydGllcworICogQHZhbHVlOiB0aGUgdmFsdWUgdG8gYWRkCisgKi8K KyNkZWZpbmUgaWd0X2F0b21pY19wb3B1bGF0ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwgcHJvcCwg dmFsdWUpIFwKKwlpZ3RfYXNzZXJ0X2x0KDAsIGRybU1vZGVBdG9taWNBZGRQcm9wZXJ0eShyZXEs IHBsYW5lLT5kcm1fcGxhbmUtPnBsYW5lX2lkLFwKKwkJCQkJCSAgcGxhbmUtPmF0b21pY19wcm9w c19wbGFuZVtwcm9wXSwgdmFsdWUpKQorCisvKioKKyAqIGlndF9hdG9taWNfcG9wdWxhdGVfY3J0 Y19yZXE6CisgKiBAcmVxOiBBIHBvaW50ZXIgdG8gZHJtTW9kZUF0b21pY1JlcQorICogQG91dHB1 dDogQSBwb2ludGVyIGlndF9vdXRwdXRfdAorICogQHByb3A6IG9uZSBvZiBpZ3RfYXRvbWljX2Ny dGNfcHJvcGVydGllcworICogQHZhbHVlOiB0aGUgdmFsdWUgdG8gYWRkCisgKi8KKyNkZWZpbmUg aWd0X2F0b21pY19wb3B1bGF0ZV9jcnRjX3JlcShyZXEsIG91dHB1dCwgcHJvcCwgdmFsdWUpIFwK KwlpZ3RfYXNzZXJ0X2x0KDAsIGRybU1vZGVBdG9taWNBZGRQcm9wZXJ0eShyZXEsIG91dHB1dC0+ Y29uZmlnLmNydGMtPmNydGNfaWQsXAorCQkJCQkJICBvdXRwdXQtPmNvbmZpZy5hdG9taWNfcHJv cHNfY3J0Y1twcm9wXSwgdmFsdWUpKQorLyoqCisgKiBpZ3RfYXRvbWljX3BvcHVsYXRlX2Nvbm5l Y3Rvcl9yZXE6CisgKiBAcmVxOiBBIHBvaW50ZXIgdG8gZHJtTW9kZUF0b21pY1JlcQorICogQG91 dHB1dDogQSBwb2ludGVyIGlndF9vdXRwdXRfdAorICogQHByb3A6IG9uZSBvZiBpZ3RfYXRvbWlj X2Nvbm5lY3Rvcl9wcm9wZXJ0aWVzCisgKiBAdmFsdWU6IHRoZSB2YWx1ZSB0byBhZGQKKyAqLwor I2RlZmluZSBpZ3RfYXRvbWljX3BvcHVsYXRlX2Nvbm5lY3Rvcl9yZXEocmVxLCBvdXRwdXQsIHBy b3AsIHZhbHVlKSBcCisJaWd0X2Fzc2VydF9sdCgwLCBkcm1Nb2RlQXRvbWljQWRkUHJvcGVydHko cmVxLCBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3ItPmNvbm5lY3Rvcl9pZCxcCisJCQkJCQkgIG91 dHB1dC0+Y29uZmlnLmF0b21pY19wcm9wc19jb25uZWN0b3JbcHJvcF0sIHZhbHVlKSkKKwogdm9p ZCBpZ3RfZW5hYmxlX2Nvbm5lY3RvcnModm9pZCk7CiB2b2lkIGlndF9yZXNldF9jb25uZWN0b3Jz KHZvaWQpOwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==