From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v5 05/12] drm: revocation check at drm subsystem Date: Thu, 18 Apr 2019 14:27:58 +0530 Message-ID: <20190418085805.5648-6-ramalingam.c@intel.com> References: <20190418085805.5648-1-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190418085805.5648-1-ramalingam.c@intel.com> 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, dri-devel@lists.freedesktop.org, daniel@ffwll.ch, gwan-gyeong.mun@intel.com List-Id: dri-devel@lists.freedesktop.org T24gZXZlcnkgaGRjcCByZXZvY2F0aW9uIGNoZWNrIHJlcXVlc3QgU1JNIGlzIHJlYWQgZnJvbSBm dyBmaWxlCi9saWIvZmlybXdhcmUvZGlzcGxheV9oZGNwX3NybS5iaW4KClNSTSB0YWJsZSBpcyBw YXJzZWQgYW5kIHN0b3JlZCBhdCBkcm1faGRjcC5jLCB3aXRoIGZ1bmN0aW9ucyBleHBvcnRlZApm b3IgdGhlIHNlcnZpY2VzIGZvciByZXZvY2F0aW9uIGNoZWNrIGZyb20gZHJpdmVycyAod2hpY2gK aW1wbGVtZW50cyB0aGUgSERDUCBhdXRoZW50aWNhdGlvbikKClRoaXMgcGF0Y2ggaGFuZGxlcyB0 aGUgSERDUDEuNCBhbmQgMi4yIHZlcnNpb25zIG9mIFNSTSB0YWJsZS4KCnYyOgogIG1vdmVkIHRo ZSB1QVBJIHRvIHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KCkgW0RhbmllbF0KClNpZ25lZC1vZmYt Ynk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KU3VnZ2VzdGVkLWJ5OiBE YW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Ci0tLQogZHJpdmVycy9ncHUvZHJtL01ha2Vm aWxlICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYyAgICAgfCAzMzYg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lu dGVybmFsLmggfCAgIDQgKwogZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jICAgIHwgICAyICsK IGluY2x1ZGUvZHJtL2RybV9oZGNwLmggICAgICAgICB8ICAzNiArKysrCiA1IGZpbGVzIGNoYW5n ZWQsIDM3OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL2RybV9oZGNwLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v TWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggM2QwYzc1Y2Q2ODdjLi5m ZTg0MDBhZjI0MjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQorKysgYi9k cml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTE5LDcgKzE5LDcgQEAgZHJtLXkgICAgICAgOj0J ZHJtX2F1dGgubyBkcm1fYnVmcy5vIGRybV9jYWNoZS5vIFwKIAkJZHJtX3BsYW5lLm8gZHJtX2Nv bG9yX21nbXQubyBkcm1fcHJpbnQubyBcCiAJCWRybV9kdW1iX2J1ZmZlcnMubyBkcm1fbW9kZV9j b25maWcubyBkcm1fdmJsYW5rLm8gXAogCQlkcm1fc3luY29iai5vIGRybV9sZWFzZS5vIGRybV93 cml0ZWJhY2subyBkcm1fY2xpZW50Lm8gXAotCQlkcm1fYXRvbWljX3VhcGkubworCQlkcm1fYXRv bWljX3VhcGkubyBkcm1faGRjcC5vCiAKIGRybS0kKENPTkZJR19EUk1fTElCX1JBTkRPTSkgKz0g bGliL2RybV9yYW5kb20ubwogZHJtLSQoQ09ORklHX0RSTV9WTSkgKz0gZHJtX3ZtLm8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9o ZGNwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43OGIwNDNjODE5 NWUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYwpAQCAtMCww ICsxLDMzNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBD b3B5cmlnaHQgKEMpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24uCisgKgorICogQXV0aG9yczoKKyAq IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KKyAqLworCisjaW5jbHVkZSA8 bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgv Z2ZwLmg+CisjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5o PgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2hkY3Au aD4KKyNpbmNsdWRlIDxkcm0vZHJtX3N5c2ZzLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5o PgorI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+CisKK3N0cnVjdCBoZGNwX3NybSB7CisJdTgg KnNybV9idWY7CisJc2l6ZV90IHJlY2VpdmVkX3NybV9zejsKKwl1MzIgcmV2b2NhdGVkX2tzdl9j bnQ7CisJdTggKnJldm9jYXRlZF9rc3ZfbGlzdDsKKworCS8qIE11dGV4IHRvIHByb3RlY3QgYWJv dmUgc3RydWN0IG1lbWJlciAqLworCXN0cnVjdCBtdXRleCBtdXRleDsKK30gKnNybV9kYXRhOwor CitzdGF0aWMgaW5saW5lIHZvaWQgZHJtX2hkY3BfcHJpbnRfa3N2KGNvbnN0IGNoYXIgKmtzdikK K3sKKwlEUk1fREVCVUcoIlx0JSMwNHgsICUjMDR4LCAlIzA0eCwgJSMwNHgsICUjMDR4XG4iLCAq a3N2ICYgMHhmZiwKKwkJICAqKGtzdiArIDEpICYgMHhmZiwgKihrc3YgKyAyKSAmIDB4ZmYsICoo a3N2ICsgMykgJiAweGZmLAorCQkgICooa3N2ICsgNCkgJiAweGZmKTsKK30KKworc3RhdGljIHUz MiBkcm1faGRjcF9nZXRfcmV2b2NhdGVkX2tzdl9jb3VudChjb25zdCBjaGFyICpidWYsIHUzMiB2 cmxzX2xlbmd0aCkKK3sKKwl1MzIgcGFyc2VkX2J5dGVzID0gMCwga3N2X2NvdW50ID0gMCwgdnJs X2tzdl9jbnQsIHZybF9zejsKKworCWRvIHsKKwkJdnJsX2tzdl9jbnQgPSAqYnVmOworCQlrc3Zf Y291bnQgKz0gdnJsX2tzdl9jbnQ7CisKKwkJdnJsX3N6ID0gKHZybF9rc3ZfY250ICogRFJNX0hE Q1BfS1NWX0xFTikgKyAxOworCQlidWYgKz0gdnJsX3N6OworCQlwYXJzZWRfYnl0ZXMgKz0gdnJs X3N6OworCX0gd2hpbGUgKHBhcnNlZF9ieXRlcyA8IHZybHNfbGVuZ3RoKTsKKworCXJldHVybiBr c3ZfY291bnQ7Cit9CisKK3N0YXRpYyB1MzIgZHJtX2hkY3BfZ2V0X3Jldm9jYXRlZF9rc3ZzKGNv bnN0IGNoYXIgKmJ1ZiwgdTggKnJldm9jYXRlZF9rc3ZfbGlzdCwKKwkJCQkgICAgICAgdTMyIHZy bHNfbGVuZ3RoKQoreworCXUzMiBwYXJzZWRfYnl0ZXMgPSAwLCBrc3ZfY291bnQgPSAwOworCXUz MiB2cmxfa3N2X2NudCwgdnJsX2tzdl9zeiwgdnJsX2lkeCA9IDA7CisKKwlkbyB7CisJCXZybF9r c3ZfY250ID0gKmJ1ZjsKKwkJdnJsX2tzdl9zeiA9IHZybF9rc3ZfY250ICogRFJNX0hEQ1BfS1NW X0xFTjsKKworCQlidWYrKzsKKworCQlEUk1fREVCVUcoInZybDogJWQsIFJldm9rZWQgS1NWczog JWRcbiIsIHZybF9pZHgrKywKKwkJCSAgdnJsX2tzdl9jbnQpOworCQltZW1jcHkocmV2b2NhdGVk X2tzdl9saXN0LCBidWYsIHZybF9rc3Zfc3opOworCisJCWtzdl9jb3VudCArPSB2cmxfa3N2X2Nu dDsKKwkJcmV2b2NhdGVkX2tzdl9saXN0ICs9IHZybF9rc3Zfc3o7CisJCWJ1ZiArPSB2cmxfa3N2 X3N6OworCisJCXBhcnNlZF9ieXRlcyArPSAodnJsX2tzdl9zeiArIDEpOworCX0gd2hpbGUgKHBh cnNlZF9ieXRlcyA8IHZybHNfbGVuZ3RoKTsKKworCXJldHVybiBrc3ZfY291bnQ7Cit9CisKK3N0 YXRpYyBpbnQgZHJtX2hkY3BfcGFyc2VfaGRjcDFfc3JtKGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90 IGNvdW50KQoreworCXN0cnVjdCBoZGNwX3NybV9oZWFkZXIgKmhlYWRlcjsKKwl1MzIgdnJsX2xl bmd0aCwga3N2X2NvdW50OworCisJaWYgKGNvdW50IDwgKHNpemVvZihzdHJ1Y3QgaGRjcF9zcm1f aGVhZGVyKSArCisJICAgIERSTV9IRENQXzFfNF9WUkxfTEVOR1RIX1NJWkUgKyBEUk1fSERDUF8x XzRfRENQX1NJR19TSVpFKSkgeworCQlEUk1fRVJST1IoIkludmFsaWQgYmxvYiBsZW5ndGhcbiIp OworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwloZWFkZXIgPSAoc3RydWN0IGhkY3Bfc3JtX2hl YWRlciAqKWJ1ZjsKKwltdXRleF9sb2NrKCZzcm1fZGF0YS0+bXV0ZXgpOworCURSTV9ERUJVRygi U1JNIElEOiAweCV4LCBTUk0gVmVyOiAweCV4LCBTUk0gR2VuIE5vOiAweCV4XG4iLAorCQkgIGhl YWRlci0+c3BlY19pbmRpY2F0b3Iuc3JtX2lkLAorCQkgIF9fc3dhYjE2KGhlYWRlci0+c3JtX3Zl cnNpb24pLCBoZWFkZXItPnNybV9nZW5fbm8pOworCisJV0FSTl9PTihoZWFkZXItPnNwZWNfaW5k aWNhdG9yLnJlc2VydmVkX2hpIHx8CisJCWhlYWRlci0+c3BlY19pbmRpY2F0b3IucmVzZXJ2ZWRf bG8pOworCisJaWYgKGhlYWRlci0+c3BlY19pbmRpY2F0b3Iuc3JtX2lkICE9IERSTV9IRENQXzFf NF9TUk1fSUQpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIHNybV9pZFxuIik7CisJCW11dGV4X3Vu bG9jaygmc3JtX2RhdGEtPm11dGV4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJYnVmID0g YnVmICsgc2l6ZW9mKCpoZWFkZXIpOworCXZybF9sZW5ndGggPSAoKmJ1ZiA8PCAxNiB8ICooYnVm ICsgMSkgPDwgOCB8ICooYnVmICsgMikpOworCWlmIChjb3VudCA8IChzaXplb2Yoc3RydWN0IGhk Y3Bfc3JtX2hlYWRlcikgKyB2cmxfbGVuZ3RoKSB8fAorCSAgICB2cmxfbGVuZ3RoIDwgKERSTV9I RENQXzFfNF9WUkxfTEVOR1RIX1NJWkUgKworCQkJICBEUk1fSERDUF8xXzRfRENQX1NJR19TSVpF KSkgeworCQlEUk1fRVJST1IoIkludmFsaWQgYmxvYiBsZW5ndGggb3IgdnJsIGxlbmd0aFxuIik7 CisJCW11dGV4X3VubG9jaygmc3JtX2RhdGEtPm11dGV4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJ fQorCisJLyogTGVuZ3RoIG9mIHRoZSBhbGwgdnJscyBjb21iaW5lZCAqLworCXZybF9sZW5ndGgg LT0gKERSTV9IRENQXzFfNF9WUkxfTEVOR1RIX1NJWkUgKworCQkgICAgICAgRFJNX0hEQ1BfMV80 X0RDUF9TSUdfU0laRSk7CisKKwlpZiAoIXZybF9sZW5ndGgpIHsKKwkJRFJNX0VSUk9SKCJObyB2 cmwgZm91bmRcbiIpOworCQltdXRleF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7CisJCXJldHVy biAtRUlOVkFMOworCX0KKworCWJ1ZiArPSBEUk1fSERDUF8xXzRfVlJMX0xFTkdUSF9TSVpFOwor CWtzdl9jb3VudCA9IGRybV9oZGNwX2dldF9yZXZvY2F0ZWRfa3N2X2NvdW50KGJ1ZiwgdnJsX2xl bmd0aCk7CisJaWYgKCFrc3ZfY291bnQpIHsKKwkJRFJNX0RFQlVHKCJSZXZvY2F0ZWQgS1NWIGNv dW50IGlzIDBcbiIpOworCQltdXRleF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7CisJCXJldHVy biBjb3VudDsKKwl9CisKKwlrZnJlZShzcm1fZGF0YS0+cmV2b2NhdGVkX2tzdl9saXN0KTsKKwlz cm1fZGF0YS0+cmV2b2NhdGVkX2tzdl9saXN0ID0ga3phbGxvYyhrc3ZfY291bnQgKiBEUk1fSERD UF9LU1ZfTEVOLAorCQkJCQkgICAgICAgR0ZQX0tFUk5FTCk7CisJaWYgKCFzcm1fZGF0YS0+cmV2 b2NhdGVkX2tzdl9saXN0KSB7CisJCURSTV9FUlJPUigiT3V0IG9mIE1lbW9yeVxuIik7CisJCW11 dGV4X3VubG9jaygmc3JtX2RhdGEtPm11dGV4KTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJ aWYgKGRybV9oZGNwX2dldF9yZXZvY2F0ZWRfa3N2cyhidWYsIHNybV9kYXRhLT5yZXZvY2F0ZWRf a3N2X2xpc3QsCisJCQkJCXZybF9sZW5ndGgpICE9IGtzdl9jb3VudCkgeworCQlzcm1fZGF0YS0+ cmV2b2NhdGVkX2tzdl9jbnQgPSAwOworCQlrZnJlZShzcm1fZGF0YS0+cmV2b2NhdGVkX2tzdl9s aXN0KTsKKwkJbXV0ZXhfdW5sb2NrKCZzcm1fZGF0YS0+bXV0ZXgpOworCQlyZXR1cm4gLUVJTlZB TDsKKwl9CisKKwlzcm1fZGF0YS0+cmV2b2NhdGVkX2tzdl9jbnQgPSBrc3ZfY291bnQ7CisJbXV0 ZXhfdW5sb2NrKCZzcm1fZGF0YS0+bXV0ZXgpOworCXJldHVybiBjb3VudDsKK30KKworc3RhdGlj IGludCBkcm1faGRjcF9wYXJzZV9oZGNwMl9zcm0oY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291 bnQpCit7CisJc3RydWN0IGhkY3AyX3NybV9oZWFkZXIgKmhlYWRlcjsKKwl1MzIgdnJsX2xlbmd0 aCwga3N2X2NvdW50LCBrc3Zfc3o7CisKKwltdXRleF9sb2NrKCZzcm1fZGF0YS0+bXV0ZXgpOwor CWlmIChjb3VudCA8IChzaXplb2Yoc3RydWN0IGhkY3AyX3NybV9oZWFkZXIpICsKKwkgICAgRFJN X0hEQ1BfMl9WUkxfTEVOR1RIX1NJWkUgKyBEUk1fSERDUF8yX0RDUF9TSUdfU0laRSkpIHsKKwkJ RFJNX0VSUk9SKCJJbnZhbGlkIGJsb2IgbGVuZ3RoXG4iKTsKKwkJbXV0ZXhfdW5sb2NrKCZzcm1f ZGF0YS0+bXV0ZXgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwloZWFkZXIgPSAoc3RydWN0 IGhkY3AyX3NybV9oZWFkZXIgKilidWY7CisJRFJNX0RFQlVHKCJTUk0gSUQ6IDB4JXgsIFNSTSBW ZXI6IDB4JXgsIFNSTSBHZW4gTm86IDB4JXhcbiIsCisJCSAgaGVhZGVyLT5zcGVjX2luZGljYXRv ci5zcm1faWQsCisJCSAgX19zd2FiMTYoaGVhZGVyLT5zcm1fdmVyc2lvbiksIGhlYWRlci0+c3Jt X2dlbl9ubyk7CisKKwlpZiAoaGVhZGVyLT5zcGVjX2luZGljYXRvci5yZXNlcnZlZCkKKwkJcmV0 dXJuIC1FSU5WQUw7CisKKwlidWYgPSBidWYgKyBzaXplb2YoKmhlYWRlcik7CisJdnJsX2xlbmd0 aCA9ICgqYnVmIDw8IDE2IHwgKihidWYgKyAxKSA8PCA4IHwgKihidWYgKyAyKSk7CisKKwlpZiAo Y291bnQgPCAoc2l6ZW9mKHN0cnVjdCBoZGNwMl9zcm1faGVhZGVyKSArIHZybF9sZW5ndGgpIHx8 CisJICAgIHZybF9sZW5ndGggPCAoRFJNX0hEQ1BfMl9WUkxfTEVOR1RIX1NJWkUgKworCSAgICBE Uk1fSERDUF8yX0RDUF9TSUdfU0laRSkpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGJsb2IgbGVu Z3RoIG9yIHZybCBsZW5ndGhcbiIpOworCQltdXRleF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7 CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIExlbmd0aCBvZiB0aGUgYWxsIHZybHMgY29t YmluZWQgKi8KKwl2cmxfbGVuZ3RoIC09IChEUk1fSERDUF8yX1ZSTF9MRU5HVEhfU0laRSArCisJ CSAgICAgICBEUk1fSERDUF8yX0RDUF9TSUdfU0laRSk7CisKKwlpZiAoIXZybF9sZW5ndGgpIHsK KwkJRFJNX0VSUk9SKCJObyB2cmwgZm91bmRcbiIpOworCQltdXRleF91bmxvY2soJnNybV9kYXRh LT5tdXRleCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWJ1ZiArPSBEUk1fSERDUF8yX1ZS TF9MRU5HVEhfU0laRTsKKwlrc3ZfY291bnQgPSAoKmJ1ZiA8PCAyKSB8IERSTV9IRENQXzJfS1NW X0NPVU5UXzJfTFNCSVRTKCooYnVmICsgMSkpOworCWlmICgha3N2X2NvdW50KSB7CisJCURSTV9E RUJVRygiUmV2b2NhdGVkIEtTViBjb3VudCBpcyAwXG4iKTsKKwkJbXV0ZXhfdW5sb2NrKCZzcm1f ZGF0YS0+bXV0ZXgpOworCQlyZXR1cm4gY291bnQ7CisJfQorCisJa2ZyZWUoc3JtX2RhdGEtPnJl dm9jYXRlZF9rc3ZfbGlzdCk7CisJc3JtX2RhdGEtPnJldm9jYXRlZF9rc3ZfbGlzdCA9IGt6YWxs b2Moa3N2X2NvdW50ICogRFJNX0hEQ1BfS1NWX0xFTiwKKwkJCQkJICAgICAgIEdGUF9LRVJORUwp OworCWlmICghc3JtX2RhdGEtPnJldm9jYXRlZF9rc3ZfbGlzdCkgeworCQlEUk1fRVJST1IoIk91 dCBvZiBNZW1vcnlcbiIpOworCQltdXRleF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7CisJCXJl dHVybiAtRU5PTUVNOworCX0KKworCWtzdl9zeiA9IGtzdl9jb3VudCAqIERSTV9IRENQX0tTVl9M RU47CisJYnVmICs9IERSTV9IRENQXzJfTk9fT0ZfREVWX1BMVVNfUkVTRVJWRURfU1o7CisKKwlE Uk1fREVCVUcoIlJldm9rZWQgS1NWczogJWRcbiIsIGtzdl9jb3VudCk7CisJbWVtY3B5KHNybV9k YXRhLT5yZXZvY2F0ZWRfa3N2X2xpc3QsIGJ1Ziwga3N2X3N6KTsKKworCXNybV9kYXRhLT5yZXZv Y2F0ZWRfa3N2X2NudCA9IGtzdl9jb3VudDsKKwltdXRleF91bmxvY2soJnNybV9kYXRhLT5tdXRl eCk7CisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNfc3JtX3ZlcnNp b25faGRjcDEoY29uc3QgY2hhciAqYnVmKQoreworCXJldHVybiAoKHU4KSpidWYpID09IERSTV9I RENQXzFfNF9TUk1fSUQgPDwgNDsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzX3NybV92ZXJz aW9uX2hkY3AyKGNvbnN0IGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gKCh1OCkqYnVmKSA9PSAoRFJN X0hEQ1BfMl9TUk1fSUQgPDwgNCB8CisJCQkgICAgIERSTV9IRENQXzJfSU5ESUNBVE9SKTsKK30K Kworc3RhdGljIHNzaXplX3QgZHJtX2hkY3Bfc3JtX3VwZGF0ZShjb25zdCBjaGFyICpidWYsIHNp emVfdCBjb3VudCkKK3sKKwlpZiAoaXNfc3JtX3ZlcnNpb25faGRjcDEoYnVmKSkKKwkJcmV0dXJu IChzc2l6ZV90KWRybV9oZGNwX3BhcnNlX2hkY3AxX3NybShidWYsIGNvdW50KTsKKwllbHNlIGlm IChpc19zcm1fdmVyc2lvbl9oZGNwMihidWYpKQorCQlyZXR1cm4gKHNzaXplX3QpZHJtX2hkY3Bf cGFyc2VfaGRjcDJfc3JtKGJ1ZiwgY291bnQpOworCisJcmV0dXJuIChzc2l6ZV90KS1FSU5WQUw7 Cit9CisKK3ZvaWQgZHJtX2hkY3BfcmVxdWVzdF9zcm0oc3RydWN0IGRybV9kZXZpY2UgKmRybV9k ZXYpCit7CisJY2hhciBmd19uYW1lWzM2XSA9ICJkaXNwbGF5X2hkY3Bfc3JtLmJpbiI7CisJY29u c3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKworCWludCByZXQ7CisKKwlyZXQgPSByZXF1ZXN0X2Zp cm13YXJlX2RpcmVjdCgmZncsIChjb25zdCBjaGFyICopZndfbmFtZSwKKwkJCQkgICAgICBkcm1f ZGV2LT5kZXYpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGV4aXQ7CisKKwlpZiAoZnctPnNpemUg JiYgZnctPmRhdGEpCisJCWRybV9oZGNwX3NybV91cGRhdGUoKGNvbnN0IGNoYXIgKilmdy0+ZGF0 YSwgZnctPnNpemUpOworCitleGl0OgorCXJlbGVhc2VfZmlybXdhcmUoZncpOworfQorCisvKiBD aGVjayBpZiBhbnkgb2YgdGhlIEtTViBpcyByZXZvY2F0ZWQgYnkgRENQIExMQyB0aHJvdWdoIFNS TSB0YWJsZSAqLworYm9vbCBkcm1faGRjcF9rc3ZzX3Jldm9jYXRlZChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtX2RldiwgdTggKmtzdnMsCisJCQkgICAgIHUzMiBrc3ZfY291bnQpCit7CisJdTMyIHJl dl9rc3ZfY250LCBjbnQsIGksIGo7CisJdTggKnJldl9rc3ZfbGlzdDsKKworCWlmICghc3JtX2Rh dGEpCisJCXJldHVybiBmYWxzZTsKKworCWRybV9oZGNwX3JlcXVlc3Rfc3JtKGRybV9kZXYpOwor CisJbXV0ZXhfbG9jaygmc3JtX2RhdGEtPm11dGV4KTsKKwlyZXZfa3N2X2NudCA9IHNybV9kYXRh LT5yZXZvY2F0ZWRfa3N2X2NudDsKKwlyZXZfa3N2X2xpc3QgPSBzcm1fZGF0YS0+cmV2b2NhdGVk X2tzdl9saXN0OworCisJLyogSWYgdGhlIFJldm9jYXRlZCBrc3YgbGlzdCBpcyBlbXB0eSAqLwor CWlmICghcmV2X2tzdl9jbnQgfHwgIXJldl9rc3ZfbGlzdCkgeworCQltdXRleF91bmxvY2soJnNy bV9kYXRhLT5tdXRleCk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlmb3IgIChjbnQgPSAwOyBj bnQgPCBrc3ZfY291bnQ7IGNudCsrKSB7CisJCXJldl9rc3ZfbGlzdCA9IHNybV9kYXRhLT5yZXZv Y2F0ZWRfa3N2X2xpc3Q7CisJCWZvciAoaSA9IDA7IGkgPCByZXZfa3N2X2NudDsgaSsrKSB7CisJ CQlmb3IgKGogPSAwOyBqIDwgRFJNX0hEQ1BfS1NWX0xFTjsgaisrKQorCQkJCWlmICgqKGtzdnMg KyBqKSAhPSAqKHJldl9rc3ZfbGlzdCArIGopKSB7CisJCQkJCWJyZWFrOworCQkJCX0gZWxzZSBp ZiAoaiA9PSAoRFJNX0hEQ1BfS1NWX0xFTiAtIDEpKSB7CisJCQkJCURSTV9ERUJVRygiUmV2b2Nh dGVkIEtTViBpcyAiKTsKKwkJCQkJZHJtX2hkY3BfcHJpbnRfa3N2KGtzdnMpOworCQkJCQltdXRl eF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7CisJCQkJCXJldHVybiB0cnVlOworCQkJCX0KKwkJ CS8qIE1vdmUgdGhlIG9mZnNldCB0byBuZXh0IEtTViBpbiB0aGUgcmV2b2NhdGVkIGxpc3QgKi8K KwkJCXJldl9rc3ZfbGlzdCArPSBEUk1fSERDUF9LU1ZfTEVOOworCQl9CisKKwkJLyogSXRlcmF0 ZSB0byBuZXh0IGtzdl9vZmZzZXQgKi8KKwkJa3N2cyArPSBEUk1fSERDUF9LU1ZfTEVOOworCX0K KwltdXRleF91bmxvY2soJnNybV9kYXRhLT5tdXRleCk7CisJcmV0dXJuIGZhbHNlOworfQorRVhQ T1JUX1NZTUJPTF9HUEwoZHJtX2hkY3Bfa3N2c19yZXZvY2F0ZWQpOworCitpbnQgZHJtX3NldHVw X2hkY3Bfc3JtKHN0cnVjdCBjbGFzcyAqZHJtX2NsYXNzKQoreworCXNybV9kYXRhID0ga3phbGxv YyhzaXplb2YoKnNybV9kYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzcm1fZGF0YSkKKwkJcmV0 dXJuIC1FTk9NRU07CisKKwlzcm1fZGF0YS0+c3JtX2J1ZiA9IGtjYWxsb2MoRFJNX0hEQ1BfU1JN X0dFTjFfTUFYX0JZVEVTLAorCQkJCSAgICBzaXplb2YodTgpLCBHRlBfS0VSTkVMKTsKKwlpZiAo IXNybV9kYXRhLT5zcm1fYnVmKSB7CisJCWtmcmVlKHNybV9kYXRhKTsKKwkJcmV0dXJuIC1FTk9N RU07CisJfQorCW11dGV4X2luaXQoJnNybV9kYXRhLT5tdXRleCk7CisKKwlyZXR1cm4gMDsKK30K Kwordm9pZCBkcm1fdGVhcmRvd25faGRjcF9zcm0oc3RydWN0IGNsYXNzICpkcm1fY2xhc3MpCit7 CisJaWYgKHNybV9kYXRhKSB7CisJCWtmcmVlKHNybV9kYXRhLT5zcm1fYnVmKTsKKwkJa2ZyZWUo c3JtX2RhdGEtPnJldm9jYXRlZF9rc3ZfbGlzdCk7CisJCWtmcmVlKHNybV9kYXRhKTsKKwl9Cit9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggZDlhNDgzYTVmY2UwLi5lZjMxODA0NDM4NzAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ludGVybmFsLmgKQEAgLTE5OSwzICsxOTksNyBAQCBpbnQgZHJtX3N5bmNvYmpf cXVlcnlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIHZvaWQgZHJt X2ZyYW1lYnVmZmVyX3ByaW50X2luZm8oc3RydWN0IGRybV9wcmludGVyICpwLCB1bnNpZ25lZCBp bnQgaW5kZW50LAogCQkJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKIGludCBk cm1fZnJhbWVidWZmZXJfZGVidWdmc19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKTsKKwor LyogZHJtX2hkY3AuYyAqLworaW50IGRybV9zZXR1cF9oZGNwX3NybShzdHJ1Y3QgY2xhc3MgKmRy bV9jbGFzcyk7Cit2b2lkIGRybV90ZWFyZG93bl9oZGNwX3NybShzdHJ1Y3QgY2xhc3MgKmRybV9j bGFzcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX3N5c2ZzLmMKaW5kZXggZWNiN2IzMzAwMmJiLi4xOGIxYWM0NDI5OTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX3N5c2ZzLmMKQEAgLTc4LDYgKzc4LDcgQEAgaW50IGRybV9zeXNmc19pbml0KHZvaWQp CiAJfQogCiAJZHJtX2NsYXNzLT5kZXZub2RlID0gZHJtX2Rldm5vZGU7CisJZHJtX3NldHVwX2hk Y3Bfc3JtKGRybV9jbGFzcyk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTkwLDYgKzkxLDcgQEAgdm9p ZCBkcm1fc3lzZnNfZGVzdHJveSh2b2lkKQogewogCWlmIChJU19FUlJfT1JfTlVMTChkcm1fY2xh c3MpKQogCQlyZXR1cm47CisJZHJtX3RlYXJkb3duX2hkY3Bfc3JtKGRybV9jbGFzcyk7CiAJY2xh c3NfcmVtb3ZlX2ZpbGUoZHJtX2NsYXNzLCAmY2xhc3NfYXR0cl92ZXJzaW9uLmF0dHIpOwogCWNs YXNzX2Rlc3Ryb3koZHJtX2NsYXNzKTsKIAlkcm1fY2xhc3MgPSBOVUxMOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX2hkY3AuaCBiL2luY2x1ZGUvZHJtL2RybV9oZGNwLmgKaW5kZXggZjI0 MzQwOGVjZjI2Li5mZjJiY2ZjMWVjZWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9oZGNw LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaApAQCAtMjY1LDQgKzI2NSw0MCBAQCB2b2lk IGRybV9oZGNwMl91MzJfdG9fc2VxX251bSh1OCBzZXFfbnVtW0hEQ1BfMl8yX1NFUV9OVU1fTEVO XSwgdTMyIHZhbCkKIAlzZXFfbnVtWzJdID0gdmFsOwogfQogCisjZGVmaW5lIERSTV9IRENQX1NS TV9HRU4xX01BWF9CWVRFUwkJKDUgKiAxMDI0KQorI2RlZmluZSBEUk1fSERDUF8xXzRfU1JNX0lE CQkJMHg4CisjZGVmaW5lIERSTV9IRENQXzFfNF9WUkxfTEVOR1RIX1NJWkUJCTMKKyNkZWZpbmUg RFJNX0hEQ1BfMV80X0RDUF9TSUdfU0laRQkJNDAKKworc3RydWN0IGhkY3Bfc3JtX2hlYWRlciB7 CisJc3RydWN0IHsKKwkJdTggcmVzZXJ2ZWRfaGk6NDsKKwkJdTggc3JtX2lkOjQ7CisJCXU4IHJl c2VydmVkX2xvOworCX0gc3BlY19pbmRpY2F0b3I7CisJdTE2IHNybV92ZXJzaW9uOworCXU4IHNy bV9nZW5fbm87Cit9IF9fcGFja2VkOworCisjZGVmaW5lIERSTV9IRENQXzJfU1JNX0lECQkJMHg5 CisjZGVmaW5lIERSTV9IRENQXzJfSU5ESUNBVE9SCQkJMHgxCisjZGVmaW5lIERSTV9IRENQXzJf VlJMX0xFTkdUSF9TSVpFCQkzCisjZGVmaW5lIERSTV9IRENQXzJfRENQX1NJR19TSVpFCQkJMzg0 CisjZGVmaW5lIERSTV9IRENQXzJfTk9fT0ZfREVWX1BMVVNfUkVTRVJWRURfU1oJNAorCisjZGVm aW5lIERSTV9IRENQXzJfS1NWX0NPVU5UXzJfTFNCSVRTKGJ5dGUpCSgoKGJ5dGUpICYgMHhDKSA+ PiA2KQorCitzdHJ1Y3QgaGRjcDJfc3JtX2hlYWRlciB7CisJc3RydWN0IHsKKwkJdTggaGRjcDJf aW5kaWNhdG9yOjQ7CisJCXU4IHNybV9pZDo0OworCQl1OCByZXNlcnZlZDsKKwl9IHNwZWNfaW5k aWNhdG9yOworCXUxNiBzcm1fdmVyc2lvbjsKKwl1OCBzcm1fZ2VuX25vOworfSBfX3BhY2tlZDsK Kworc3RydWN0IGRybV9kZXZpY2U7CisKK2Jvb2wgZHJtX2hkY3Bfa3N2c19yZXZvY2F0ZWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdTggKmtzdnMsIHUzMiBrc3ZfY291bnQpOwogI2VuZGlmCi0t IAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==