From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ABA99C43603 for ; Sat, 7 Dec 2019 17:01:25 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8712620637 for ; Sat, 7 Dec 2019 17:01:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8712620637 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=chris-wilson.co.uk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 336AE6E1ED; Sat, 7 Dec 2019 17:01:25 +0000 (UTC) Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 514DE6E1ED for ; Sat, 7 Dec 2019 17:01:24 +0000 (UTC) X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=78.156.65.138; Received: from haswell.alporthouse.com (unverified [78.156.65.138]) by fireflyinternet.com (Firefly Internet (M1)) with ESMTP id 19496911-1500050 for multiple; Sat, 07 Dec 2019 17:01:12 +0000 From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Sat, 7 Dec 2019 17:01:09 +0000 Message-Id: <20191207170110.2200142-7-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191207170110.2200142-1-chris@chris-wilson.co.uk> References: <20191207170110.2200142-1-chris@chris-wilson.co.uk> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 7/8] drm/i915: Asynchronous cmdparser X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RXhlY3V0ZSB0aGUgY21kcGFyc2VyIGFzeW5jaHJvbm91c2x5IGFzIHBhcnQgb2YgdGhlIHN1Ym1p c3Npb24gcGlwZWxpbmUuClVzaW5nIG91ciBkbWEtZmVuY2VzLCB3ZSBjYW4gc2NoZWR1bGUgZXhl Y3V0aW9uIGFmdGVyIGFuIGFzeW5jaHJvbm91cwpwaWVjZSBvZiB3b3JrLCBzbyB3ZSBtb3ZlIHRo ZSBjbWRwYXJzZXIgb3V0IGZyb20gdW5kZXIgdGhlIHN0cnVjdF9tdXRleAppbnNpZGUgZXhlY2J1 ZiBhcyBydW4gaXQgYXMgcGFydCBvZiB0aGUgc3VibWlzc2lvbiBwaXBlbGluZS4gVGhlIHNhbWUK c2VjdXJpdHkgcnVsZXMgYXBwbHksIHdlIGNvcHkgdGhlIHVzZXIgYmF0Y2ggYmVmb3JlIHZhbGlk YXRpb24gYW5kCnVzZXJzcGFjZSBjYW5ub3QgdG91Y2ggdGhlIHZhbGlkYXRpb24gc2hhZG93LiBU aGUgb25seSBjYXZlYXQgaXMgdGhhdCB3ZQp3aWxsIGRvIHJlcXVlc3QgY29uc3RydWN0aW9uIGJl Zm9yZSB3ZSBjb21wbGV0ZSBjbWRwYXJzaW5nIGFuZCBzbyB3ZQpjYW5ub3Qga25vdyB0aGUgb3V0 Y29tZSBvZiB0aGUgdmFsaWRhdGlvbiBzdGVwIHVudGlsIGxhdGVyIC0tIHNvIHRoZQpleGVjYnVm IGlvY3RsIGRvZXMgbm90IHJlcG9ydCAtRUlOVkFMIGRpcmVjdGx5LCBidXQgd2UgbXVzdCBjYW5j ZWwKZXhlY3V0aW9uIG9mIHRoZSByZXF1ZXN0IGFuZCBmbGFnIHRoZSBlcnJvciBvbiB0aGUgb3V0 LWZlbmNlLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+Ci0tLQogLi4uL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jICAg IHwgODIgKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRf cGFyc2VyLmMgICAgICAgIHwgMzMgKysrLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0 aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggNWY0ZTQ2MDcwMWNhLi42ZWZjYTJiY2Y0NmEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9leGVjYnVmZmVyLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAt MjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImk5MTVfZ2VtX2NsZmx1c2guaCIKICNpbmNsdWRlICJp OTE1X2dlbV9jb250ZXh0LmgiCiAjaW5jbHVkZSAiaTkxNV9nZW1faW9jdGxzLmgiCisjaW5jbHVk ZSAiaTkxNV9zd19mZW5jZV93b3JrLmgiCiAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogCiBlbnVt IHsKQEAgLTEyMjUsMTAgKzEyMjYsNiBAQCBzdGF0aWMgdTMyICpyZWxvY19ncHUoc3RydWN0IGk5 MTVfZXhlY2J1ZmZlciAqZWIsCiAJaWYgKHVubGlrZWx5KCFjYWNoZS0+cnEpKSB7CiAJCWludCBl cnI7CiAKLQkJLyogSWYgd2UgbmVlZCB0byBjb3B5IGZvciB0aGUgY21kcGFyc2VyLCB3ZSB3aWxs IHN0YWxsIGFueXdheSAqLwotCQlpZiAoZWJfdXNlX2NtZHBhcnNlcihlYikpCi0JCQlyZXR1cm4g RVJSX1BUUigtRVdPVUxEQkxPQ0spOwotCiAJCWlmICghaW50ZWxfZW5naW5lX2Nhbl9zdG9yZV9k d29yZChlYi0+ZW5naW5lKSkKIAkJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCkBAIC0xOTY3 LDYgKzE5NjQsNzcgQEAgc2hhZG93X2JhdGNoX3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAogCXJldHVybiB2bWE7CiB9CiAKK3N0cnVjdCBlYl9wYXJzZV93b3JrIHsKKwlzdHJ1 Y3QgZG1hX2ZlbmNlX3dvcmsgYmFzZTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7 CisJc3RydWN0IGk5MTVfdm1hICpiYXRjaDsKKwlzdHJ1Y3QgaTkxNV92bWEgKnNoYWRvdzsKKwl1 bnNpZ25lZCBpbnQgYmF0Y2hfb2Zmc2V0OworCXVuc2lnbmVkIGludCBiYXRjaF9sZW5ndGg7Cit9 OworCitzdGF0aWMgaW50IF9fZWJfcGFyc2Uoc3RydWN0IGRtYV9mZW5jZV93b3JrICp3b3JrKQor eworCXN0cnVjdCBlYl9wYXJzZV93b3JrICpwdyA9IGNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2Yo KnB3KSwgYmFzZSk7CisKKwlyZXR1cm4gaW50ZWxfZW5naW5lX2NtZF9wYXJzZXIocHctPmVuZ2lu ZSwKKwkJCQkgICAgICAgcHctPmJhdGNoLAorCQkJCSAgICAgICBwdy0+YmF0Y2hfb2Zmc2V0LAor CQkJCSAgICAgICBwdy0+YmF0Y2hfbGVuZ3RoLAorCQkJCSAgICAgICBwdy0+c2hhZG93KTsKK30K Kworc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfd29ya19vcHMgZWJfcGFyc2Vfb3BzID0g eworCS5uYW1lID0gInBhcnNlIiwKKwkud29yayA9IF9fZWJfcGFyc2UsCit9OworCitzdGF0aWMg aW50IGViX3BhcnNlX3BpcGVsaW5lKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViLAorCQkJICAg ICBzdHJ1Y3QgaTkxNV92bWEgKnNoYWRvdykKK3sKKwlzdHJ1Y3QgZWJfcGFyc2Vfd29yayAqcHc7 CisJaW50IGVycjsKKworCXB3ID0ga3phbGxvYyhzaXplb2YoKnB3KSwgR0ZQX0tFUk5FTCk7CisJ aWYgKCFwdykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkbWFfZmVuY2Vfd29ya19pbml0KCZwdy0+ YmFzZSwgJmViX3BhcnNlX29wcyk7CisKKwlwdy0+ZW5naW5lID0gZWItPmVuZ2luZTsKKwlwdy0+ YmF0Y2ggPSBlYi0+YmF0Y2g7CisJcHctPmJhdGNoX29mZnNldCA9IGViLT5iYXRjaF9zdGFydF9v ZmZzZXQ7CisJcHctPmJhdGNoX2xlbmd0aCA9IGViLT5iYXRjaF9sZW47CisJcHctPnNoYWRvdyA9 IHNoYWRvdzsKKworCWRtYV9yZXN2X2xvY2socHctPmJhdGNoLT5yZXN2LCBOVUxMKTsKKwllcnIg PSBkbWFfcmVzdl9yZXNlcnZlX3NoYXJlZChwdy0+YmF0Y2gtPnJlc3YsIDEpOworCWlmIChlcnIp IHsKKwkJZG1hX3Jlc3ZfdW5sb2NrKHB3LT5iYXRjaC0+cmVzdik7CisJCWtmcmVlKHB3KTsKKwkJ cmV0dXJuIGVycjsKKwl9CisKKwllcnIgPSBpOTE1X3N3X2ZlbmNlX2F3YWl0X3Jlc2VydmF0aW9u KCZwdy0+YmFzZS5jaGFpbiwKKwkJCQkJICAgICAgcHctPmJhdGNoLT5yZXN2LCBOVUxMLCBmYWxz ZSwKKwkJCQkJICAgICAgMCwgSTkxNV9GRU5DRV9HRlApOworCWlmIChlcnIgPCAwKSB7CisJCWRt YV9yZXN2X3VubG9jayhwdy0+YmF0Y2gtPnJlc3YpOworCQlrZnJlZShwdyk7CisJCXJldHVybiBl cnI7CisJfQorCisJZG1hX3Jlc3ZfYWRkX3NoYXJlZF9mZW5jZShwdy0+YmF0Y2gtPnJlc3YsICZw dy0+YmFzZS5kbWEpOworCWRtYV9yZXN2X3VubG9jayhwdy0+YmF0Y2gtPnJlc3YpOworCisJZG1h X3Jlc3ZfbG9jayhzaGFkb3ctPnJlc3YsIE5VTEwpOworCWRtYV9yZXN2X2FkZF9leGNsX2ZlbmNl KHNoYWRvdy0+cmVzdiwgJnB3LT5iYXNlLmRtYSk7CisJZG1hX3Jlc3ZfdW5sb2NrKHNoYWRvdy0+ cmVzdik7CisKKwlkbWFfZmVuY2Vfd29ya19jb21taXQoJnB3LT5iYXNlKTsKKwlyZXR1cm4gMDsK K30KKwogc3RhdGljIGludCBlYl9wYXJzZShzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyICplYikKIHsK IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX3Bvb2xfbm9kZSAqcG9vbDsKQEAgLTIwMTgsMTEgKzIwODYs NyBAQCBzdGF0aWMgaW50IGViX3BhcnNlKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXIgKmViKQogCQll Yi0+YmF0Y2hfZmxhZ3MgfD0gSTkxNV9ESVNQQVRDSF9TRUNVUkU7CiAJfQogCi0JZXJyID0gaW50 ZWxfZW5naW5lX2NtZF9wYXJzZXIoZWItPmVuZ2luZSwKLQkJCQkgICAgICBlYi0+YmF0Y2gsCi0J CQkJICAgICAgZWItPmJhdGNoX3N0YXJ0X29mZnNldCwKLQkJCQkgICAgICBlYi0+YmF0Y2hfbGVu LAotCQkJCSAgICAgIHNoYWRvdyk7CisJZXJyID0gZWJfcGFyc2VfcGlwZWxpbmUoZWIsIHNoYWRv dyk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfdHJhbXBvbGluZTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2NtZF9wYXJzZXIuYwppbmRleCA1Yzk0MmE1ODJiMDYuLjk4NDUxODJjZTU4NyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKQEAgLTExMjcsMzIgKzExMjcsMjgg QEAgZmluZF9yZWcoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgYWRk cikKIC8qIFJldHVybnMgYSB2bWFwJ2QgcG9pbnRlciB0byBkc3Rfb2JqLCB3aGljaCB0aGUgY2Fs bGVyIG11c3QgdW5tYXAgKi8KIHN0YXRpYyB1MzIgKmNvcHlfYmF0Y2goc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKmRzdF9vYmosCiAJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqc3JjX29iaiwKLQkJICAgICAgIHUzMiBvZmZzZXQsIHUzMiBsZW5ndGgsCi0JCSAgICAgICBi b29sICpuZWVkc19jbGZsdXNoX2FmdGVyKQorCQkgICAgICAgdTMyIG9mZnNldCwgdTMyIGxlbmd0 aCkKIHsKLQl1bnNpZ25lZCBpbnQgc3JjX25lZWRzX2NsZmx1c2g7Ci0JdW5zaWduZWQgaW50IGRz dF9uZWVkc19jbGZsdXNoOwogCXZvaWQgKmRzdCwgKnNyYywgKnB0cjsKKwlib29sIG5lZWRzX2Ns Zmx1c2g7CiAJaW50IHJldCwgbGVuOwogCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3ByZXBhcmVf d3JpdGUoZHN0X29iaiwgJmRzdF9uZWVkc19jbGZsdXNoKTsKLQlpZiAocmV0KQotCQlyZXR1cm4g RVJSX1BUUihyZXQpOwotCiAJZHN0ID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAoZHN0X29iaiwg STkxNV9NQVBfRk9SQ0VfV0IpOwotCWk5MTVfZ2VtX29iamVjdF9maW5pc2hfYWNjZXNzKGRzdF9v YmopOwogCWlmIChJU19FUlIoZHN0KSkKIAkJcmV0dXJuIGRzdDsKIAotCXJldCA9IGk5MTVfZ2Vt X29iamVjdF9wcmVwYXJlX3JlYWQoc3JjX29iaiwgJnNyY19uZWVkc19jbGZsdXNoKTsKKwlyZXQg PSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKHNyY19vYmopOwogCWlmIChyZXQpIHsKIAkJaTkx NV9nZW1fb2JqZWN0X3VucGluX21hcChkc3Rfb2JqKTsKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsK IAl9CiAKKwluZWVkc19jbGZsdXNoID0KKwkJIShzcmNfb2JqLT5jYWNoZV9jb2hlcmVudCAmIEk5 MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1JFQUQpOworCiAJcHRyID0gZHN0OwogCXNyYyA9IEVS Ul9QVFIoLUVOT0RFVik7Ci0JaWYgKHNyY19uZWVkc19jbGZsdXNoICYmIGk5MTVfaGFzX21lbWNw eV9mcm9tX3djKCkpIHsKKwlpZiAobmVlZHNfY2xmbHVzaCAmJiBpOTE1X2hhc19tZW1jcHlfZnJv bV93YygpKSB7CiAJCXNyYyA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwKHNyY19vYmosIEk5MTVf TUFQX1dDKTsKIAkJaWYgKCFJU19FUlIoc3JjKSkgewogCQkJc3JjICs9IG9mZnNldDsKQEAgLTEx ODQsNyArMTE4MCw3IEBAIHN0YXRpYyB1MzIgKmNvcHlfYmF0Y2goc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmRzdF9vYmosCiAJCSAqIFdlIGRvbid0IGNhcmUgYWJvdXQgY29weWluZyB0b28g bXVjaCBoZXJlIGFzIHdlIG9ubHkKIAkJICogdmFsaWRhdGUgdXAgdG8gdGhlIGVuZCBvZiB0aGUg YmF0Y2guCiAJCSAqLwotCQlpZiAoZHN0X25lZWRzX2NsZmx1c2ggJiBDTEZMVVNIX0JFRk9SRSkK KwkJaWYgKCEoZHN0X29iai0+Y2FjaGVfY29oZXJlbnQgJiBJOTE1X0JPX0NBQ0hFX0NPSEVSRU5U X0ZPUl9SRUFEKSkKIAkJCWxlbmd0aCA9IHJvdW5kX3VwKGxlbmd0aCwKIAkJCQkJICBib290X2Nw dV9kYXRhLng4Nl9jbGZsdXNoX3NpemUpOwogCkBAIC0xMTkzLDcgKzExODksNyBAQCBzdGF0aWMg dTMyICpjb3B5X2JhdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpkc3Rfb2JqLAogCQkJ bGVuID0gbWluX3QoaW50LCBsZW5ndGgsIFBBR0VfU0laRSAtIHgpOwogCiAJCQlzcmMgPSBrbWFw X2F0b21pYyhpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uoc3JjX29iaiwgbikpOwotCQkJaWYgKHNy Y19uZWVkc19jbGZsdXNoKQorCQkJaWYgKG5lZWRzX2NsZmx1c2gpCiAJCQkJZHJtX2NsZmx1c2hf dmlydF9yYW5nZShzcmMgKyB4LCBsZW4pOwogCQkJbWVtY3B5KHB0ciwgc3JjICsgeCwgbGVuKTsK IAkJCWt1bm1hcF9hdG9taWMoc3JjKTsKQEAgLTEyMDQsMTEgKzEyMDAsOSBAQCBzdGF0aWMgdTMy ICpjb3B5X2JhdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpkc3Rfb2JqLAogCQl9CiAJ fQogCi0JaTkxNV9nZW1fb2JqZWN0X2ZpbmlzaF9hY2Nlc3Moc3JjX29iaik7CisJaTkxNV9nZW1f b2JqZWN0X3VucGluX3BhZ2VzKHNyY19vYmopOwogCiAJLyogZHN0X29iaiBpcyByZXR1cm5lZCB3 aXRoIHZtYXAgcGlubmVkICovCi0JKm5lZWRzX2NsZmx1c2hfYWZ0ZXIgPSBkc3RfbmVlZHNfY2xm bHVzaCAmIENMRkxVU0hfQUZURVI7Ci0KIAlyZXR1cm4gZHN0OwogfQogCkBAIC0xNDIyLDcgKzE0 MTYsNiBAQCBpbnQgaW50ZWxfZW5naW5lX2NtZF9wYXJzZXIoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAogCXUzMiAqY21kLCAqYmF0Y2hfZW5kLCBvZmZzZXQgPSAwOwogCXN0cnVjdCBk cm1faTkxNV9jbWRfZGVzY3JpcHRvciBkZWZhdWx0X2Rlc2MgPSBub29wX2Rlc2M7CiAJY29uc3Qg c3RydWN0IGRybV9pOTE1X2NtZF9kZXNjcmlwdG9yICpkZXNjID0gJmRlZmF1bHRfZGVzYzsKLQli b29sIG5lZWRzX2NsZmx1c2hfYWZ0ZXIgPSBmYWxzZTsKIAl1bnNpZ25lZCBsb25nICpqdW1wX3do aXRlbGlzdDsKIAl1NjQgYmF0Y2hfYWRkciwgc2hhZG93X2FkZHI7CiAJaW50IHJldCA9IDA7CkBA IC0xNDMzLDkgKzE0MjYsNyBAQCBpbnQgaW50ZWxfZW5naW5lX2NtZF9wYXJzZXIoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQkJCSAgICAgYmF0Y2gtPnNpemUpKTsKIAlHRU1fQlVH X09OKCFiYXRjaF9sZW5ndGgpOwogCi0JY21kID0gY29weV9iYXRjaChzaGFkb3ctPm9iaiwgYmF0 Y2gtPm9iaiwKLQkJCSBiYXRjaF9vZmZzZXQsIGJhdGNoX2xlbmd0aCwKLQkJCSAmbmVlZHNfY2xm bHVzaF9hZnRlcik7CisJY21kID0gY29weV9iYXRjaChzaGFkb3ctPm9iaiwgYmF0Y2gtPm9iaiwg YmF0Y2hfb2Zmc2V0LCBiYXRjaF9sZW5ndGgpOwogCWlmIChJU19FUlIoY21kKSkgewogCQlEUk1f REVCVUcoIkNNRDogRmFpbGVkIHRvIGNvcHkgYmF0Y2hcbiIpOwogCQlyZXR1cm4gUFRSX0VSUihj bWQpOwpAQCAtMTUzMSw3ICsxNTIyLDcgQEAgaW50IGludGVsX2VuZ2luZV9jbWRfcGFyc2VyKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJfQogCX0KIAotCWlmIChuZWVkc19jbGZs dXNoX2FmdGVyKSB7CisJaWYgKCEoc2hhZG93LT5vYmotPmNhY2hlX2NvaGVyZW50ICYgSTkxNV9C T19DQUNIRV9DT0hFUkVOVF9GT1JfV1JJVEUpKSB7CiAJCXZvaWQgKnB0ciA9IHBhZ2VfbWFza19i aXRzKHNoYWRvdy0+b2JqLT5tbS5tYXBwaW5nKTsKIAogCQlkcm1fY2xmbHVzaF92aXJ0X3Jhbmdl KHB0ciwgKHZvaWQgKikoY21kICsgMSkgLSBwdHIpOwotLSAKMi4yNC4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=