From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH 5/9] x86/IRQ: fix locking around vector management Date: Mon, 29 Apr 2019 05:25:03 -0600 Message-ID: <5CC6DF0F0200007800229EBC@prv1-mh.provo.novell.com> References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hL4PG-000845-Sn for xen-devel@lists.xenproject.org; Mon, 29 Apr 2019 11:25:10 +0000 In-Reply-To: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: Andrew Cooper , Wei Liu , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org QWxsIG9mIF9fe2Fzc2lnbixiaW5kLGNsZWFyfV9pcnFfdmVjdG9yKCkgbWFuaXB1bGF0ZSBzdHJ1 Y3QgaXJxX2Rlc2MKZmllbGRzLCBhbmQgaGVuY2Ugb3VnaHQgdG8gYmUgY2FsbGVkIHdpdGggdGhl IGRlc2NyaXB0b3IgbG9jayBoZWxkIGluCmFkZGl0aW9uIHRvIHZlY3Rvcl9sb2NrLiBUaGlzIGlz IGN1cnJlbnRseSB0aGUgY2FzZSBmb3Igb25seQpzZXRfZGVzY19hZmZpbml0eSgpIGFuZCBkZXN0 cm95X2lycSgpLCB3aGljaCBhbHNvIGNsYXJpZmllcyB3aGF0IHRoZQpuZXN0aW5nIGJlaGF2aW9y IGJldHdlZW4gdGhlIGxvY2tzIGhhcyB0byBiZS4gUmVmbGVjdCB0aGUgbmV3CmV4cGVjdGF0aW9u IGJ5IGhhdmluZyB0aGVzZSBmdW5jdGlvbnMgYWxsIHRha2UgYSBkZXNjcmlwdG9yIGFzCnBhcmFt ZXRlciBpbnN0ZWFkIG9mIGFuIGludGVycnVwdCBudW1iZXIuCgpEcm9wIG9uZSBvZiB0aGUgdHdv IGxlYWRpbmcgdW5kZXJzY29yZXMgZnJvbSBhbGwgdGhyZWUgZnVuY3Rpb25zIGF0CnRoZSBzYW1l IHRpbWUuCgpUaGVyZSdzIG9uZSBjYXNlIGxlZnQgd2hlcmUgZGVzY3JpcHRvcnMgZ2V0IG1hbmlw dWxhdGVkIHdpdGgganVzdAp2ZWN0b3JfbG9jayBoZWxkOiBzZXR1cF92ZWN0b3JfaXJxKCkgYXNz dW1lcyBpdHMgY2FsbGVyIHRvIGFjcXVpcmUKdmVjdG9yX2xvY2ssIGFuZCBoZW5jZSBjYW4ndCBp dHNlbGYgYWNxdWlyZSB0aGUgZGVzY3JpcHRvciBsb2NrcyAod3JvbmcKbG9jayBvcmRlcikuIEkg ZG9uJ3QgY3VycmVudGx5IHNlZSBob3cgdG8gYWRkcmVzcyB0aGlzLgoKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoKLS0tIGEveGVuL2FyY2gveDg2L2lycS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPHB1 YmxpYy9waHlzZGV2Lmg+CiAKIHN0YXRpYyBpbnQgcGFyc2VfaXJxX3ZlY3Rvcl9tYXBfcGFyYW0o Y29uc3QgY2hhciAqcyk7CitzdGF0aWMgdm9pZCBfY2xlYXJfaXJxX3ZlY3RvcihzdHJ1Y3QgaXJx X2Rlc2MgKmRlc2MpOwogCiAvKiBvcHRfbm9pcnFiYWxhbmNlOiBJZiB0cnVlLCBzb2Z0d2FyZSBJ UlEgYmFsYW5jaW5nL2FmZmluaXR5IGlzIGRpc2FibGVkLiAqLwogYm9vbCBfX3JlYWRfbW9zdGx5 IG9wdF9ub2lycWJhbGFuY2U7CkBAIC0xMTIsMTMgKzExMywxMiBAQCBzdGF0aWMgdm9pZCB0cmFj ZV9pcnFfbWFzayh1MzIgZXZlbnQsIGluCiAgICAgdHJhY2VfdmFyKGV2ZW50LCAxLCBzaXplb2Yo ZCksICZkKTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgX19iaW5kX2lycV92ZWN0b3IoaW50IGly cSwgaW50IHZlY3RvciwgY29uc3QgY3B1bWFza190ICpjcHVfbWFzaykKK3N0YXRpYyBpbnQgX19p bml0IF9iaW5kX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjLCBpbnQgdmVjdG9yLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjcHVtYXNrX3QgKmNwdV9t YXNrKQogewogICAgIGNwdW1hc2tfdCBvbmxpbmVfbWFzazsKICAgICBpbnQgY3B1OwotICAgIHN0 cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CiAKLSAgICBCVUdfT04oKHVu c2lnbmVkKWlycSA+PSBucl9pcnFzKTsKICAgICBCVUdfT04oKHVuc2lnbmVkKXZlY3RvciA+PSBO Ul9WRUNUT1JTKTsKIAogICAgIGNwdW1hc2tfYW5kKCZvbmxpbmVfbWFzaywgY3B1X21hc2ssICZj cHVfb25saW5lX21hcCk7CkBAIC0xMjksOSArMTI5LDkgQEAgc3RhdGljIGludCBfX2luaXQgX19i aW5kX2lycV92ZWN0b3IoaW50CiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICggZGVzYy0+YXJj aC52ZWN0b3IgIT0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVEICkKICAgICAgICAgcmV0dXJuIC1FQlVT WTsKLSAgICB0cmFjZV9pcnFfbWFzayhUUkNfSFdfSVJRX0JJTkRfVkVDVE9SLCBpcnEsIHZlY3Rv ciwgJm9ubGluZV9tYXNrKTsKKyAgICB0cmFjZV9pcnFfbWFzayhUUkNfSFdfSVJRX0JJTkRfVkVD VE9SLCBkZXNjLT5pcnEsIHZlY3RvciwgJm9ubGluZV9tYXNrKTsKICAgICBmb3JfZWFjaF9jcHUo Y3B1LCAmb25saW5lX21hc2spCi0gICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVt2ZWN0 b3JdID0gaXJxOworICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbdmVjdG9yXSA9IGRl c2MtPmlycTsKICAgICBkZXNjLT5hcmNoLnZlY3RvciA9IHZlY3RvcjsKICAgICBjcHVtYXNrX2Nv cHkoZGVzYy0+YXJjaC5jcHVfbWFzaywgJm9ubGluZV9tYXNrKTsKICAgICBpZiAoIGRlc2MtPmFy Y2gudXNlZF92ZWN0b3JzICkKQEAgLTE0NSwxMiArMTQ1LDE4IEBAIHN0YXRpYyBpbnQgX19pbml0 IF9fYmluZF9pcnFfdmVjdG9yKGludAogCiBpbnQgX19pbml0IGJpbmRfaXJxX3ZlY3RvcihpbnQg aXJxLCBpbnQgdmVjdG9yLCBjb25zdCBjcHVtYXNrX3QgKmNwdV9tYXNrKQogeworICAgIHN0cnVj dCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CiAgICAgdW5zaWduZWQgbG9uZyBm bGFnczsKICAgICBpbnQgcmV0OwogCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJnZlY3Rvcl9sb2Nr LCBmbGFncyk7Ci0gICAgcmV0ID0gX19iaW5kX2lycV92ZWN0b3IoaXJxLCB2ZWN0b3IsIGNwdV9t YXNrKTsKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOwor ICAgIEJVR19PTigodW5zaWduZWQpaXJxID49IG5yX2lycXMpOworCisgICAgc3Bpbl9sb2NrX2ly cXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKKyAgICBzcGluX2xvY2soJnZlY3Rvcl9sb2NrKTsK KyAgICByZXQgPSBfYmluZF9pcnFfdmVjdG9yKGRlc2MsIHZlY3RvciwgY3B1X21hc2spOworICAg IHNwaW5fdW5sb2NrKCZ2ZWN0b3JfbG9jayk7CisgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZGVzYy0+bG9jaywgZmxhZ3MpOworCiAgICAgcmV0dXJuIHJldDsKIH0KIApAQCAtMjM1LDcgKzI0 MSw5IEBAIHZvaWQgZGVzdHJveV9pcnEodW5zaWduZWQgaW50IGlycSkKIAogICAgIHNwaW5fbG9j a19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CiAgICAgZGVzYy0+aGFuZGxlciA9ICZub19p cnFfdHlwZTsKLSAgICBjbGVhcl9pcnFfdmVjdG9yKGlycSk7CisgICAgc3Bpbl9sb2NrKCZ2ZWN0 b3JfbG9jayk7CisgICAgX2NsZWFyX2lycV92ZWN0b3IoZGVzYyk7CisgICAgc3Bpbl91bmxvY2so JnZlY3Rvcl9sb2NrKTsKICAgICBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyA9IE5VTEw7CiAgICAg c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogCkBAIC0yNTYsMTEg KzI2NCwxMSBAQCBzdGF0aWMgdm9pZCByZWxlYXNlX29sZF92ZWMoc3RydWN0IGlycV9kCiAgICAg fQogfQogCi1zdGF0aWMgdm9pZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKK3N0YXRpYyB2 b2lkIF9jbGVhcl9pcnFfdmVjdG9yKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKIHsKLSAgICBpbnQg Y3B1LCB2ZWN0b3IsIG9sZF92ZWN0b3I7CisgICAgdW5zaWduZWQgaW50IGNwdTsKKyAgICBpbnQg dmVjdG9yLCBvbGRfdmVjdG9yLCBpcnEgPSBkZXNjLT5pcnE7CiAgICAgY3B1bWFza190IHRtcF9t YXNrOwotICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CiAKICAg ICBCVUdfT04oIWRlc2MtPmFyY2gudmVjdG9yKTsKIApAQCAtMzA2LDExICszMTQsMTQgQEAgc3Rh dGljIHZvaWQgX19jbGVhcl9pcnFfdmVjdG9yKGludCBpcnEpCiAKIHZvaWQgY2xlYXJfaXJxX3Zl Y3RvcihpbnQgaXJxKQogeworICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNj KGlycSk7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZl KCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOwotICAgIF9fY2xlYXJfaXJxX3ZlY3RvcihpcnEpOwotICAg IHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7CisgICAgc3Bpbl9s b2NrX2lycXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKKyAgICBzcGluX2xvY2soJnZlY3Rvcl9s b2NrKTsKKyAgICBfY2xlYXJfaXJxX3ZlY3RvcihkZXNjKTsKKyAgICBzcGluX3VubG9jaygmdmVj dG9yX2xvY2spOworICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZsYWdz KTsKIH0KIAogaW50IGlycV90b192ZWN0b3IoaW50IGlycSkKQEAgLTQ0NSw4ICs0NTYsNyBAQCBz dGF0aWMgdm1hc2tfdCAqaXJxX2dldF91c2VkX3ZlY3Rvcl9tYXNrCiAgICAgcmV0dXJuIHJldDsK IH0KIAotc3RhdGljIGludCBfX2Fzc2lnbl9pcnFfdmVjdG9yKAotICAgIGludCBpcnEsIHN0cnVj dCBpcnFfZGVzYyAqZGVzYywgY29uc3QgY3B1bWFza190ICptYXNrKQorc3RhdGljIGludCBfYXNz aWduX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjLCBjb25zdCBjcHVtYXNrX3QgKm1h c2spCiB7CiAgICAgLyoKICAgICAgKiBOT1RFISBUaGUgbG9jYWwgQVBJQyBpc24ndCB2ZXJ5IGdv b2QgYXQgaGFuZGxpbmcKQEAgLTQ2MCw3ICs0NzAsOCBAQCBzdGF0aWMgaW50IF9fYXNzaWduX2ly cV92ZWN0b3IoCiAgICAgICogMHg4MCwgYmVjYXVzZSBpbnQgMHg4MCBpcyBobSwga2luZCBvZiBp bXBvcnRhbnRpc2guIDspCiAgICAgICovCiAgICAgc3RhdGljIGludCBjdXJyZW50X3ZlY3RvciA9 IEZJUlNUX0RZTkFNSUNfVkVDVE9SLCBjdXJyZW50X29mZnNldCA9IDA7Ci0gICAgaW50IGNwdSwg ZXJyLCBvbGRfdmVjdG9yOworICAgIHVuc2lnbmVkIGludCBjcHU7CisgICAgaW50IGVyciwgb2xk X3ZlY3RvciwgaXJxID0gZGVzYy0+aXJxOwogICAgIGNwdW1hc2tfdCB0bXBfbWFzazsKICAgICB2 bWFza190ICppcnFfdXNlZF92ZWN0b3JzID0gTlVMTDsKIApAQCAtNTcwLDggKzU4MSwxMiBAQCBp bnQgYXNzaWduX2lycV92ZWN0b3IoaW50IGlycSwgY29uc3QgY3B1CiAgICAgCiAgICAgQlVHX09O KGlycSA+PSBucl9pcnFzIHx8IGlycSA8MCk7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdmVj dG9yX2xvY2ssIGZsYWdzKTsKLSAgICByZXQgPSBfX2Fzc2lnbl9pcnFfdmVjdG9yKGlycSwgZGVz YywgbWFzayA/OiBUQVJHRVRfQ1BVUyk7CisgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmRlc2MtPmxv Y2ssIGZsYWdzKTsKKworICAgIHNwaW5fbG9jaygmdmVjdG9yX2xvY2spOworICAgIHJldCA9IF9h c3NpZ25faXJxX3ZlY3RvcihkZXNjLCBtYXNrID86IFRBUkdFVF9DUFVTKTsKKyAgICBzcGluX3Vu bG9jaygmdmVjdG9yX2xvY2spOworCiAgICAgaWYgKCAhcmV0ICkKICAgICB7CiAgICAgICAgIHJl dCA9IGRlc2MtPmFyY2gudmVjdG9yOwpAQCAtNTgwLDcgKzU5NSw4IEBAIGludCBhc3NpZ25faXJx X3ZlY3RvcihpbnQgaXJxLCBjb25zdCBjcHUKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY3B1 bWFza19zZXRhbGwoZGVzYy0+YWZmaW5pdHkpOwogICAgIH0KLSAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOworCisgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KQEAgLTc1NCw3ICs3 NzAsNiBAQCB2b2lkIGlycV9jb21wbGV0ZV9tb3ZlKHN0cnVjdCBpcnFfZGVzYyAqCiAKIHVuc2ln bmVkIGludCBzZXRfZGVzY19hZmZpbml0eShzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGNvbnN0IGNw dW1hc2tfdCAqbWFzaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgaXJxOwogICAgIGludCByZXQ7CiAg ICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBjcHVtYXNrX3QgZGVzdF9tYXNrOwpAQCAtNzYy LDEwICs3NzcsOCBAQCB1bnNpZ25lZCBpbnQgc2V0X2Rlc2NfYWZmaW5pdHkoc3RydWN0IGlyCiAg ICAgaWYgKCFjcHVtYXNrX2ludGVyc2VjdHMobWFzaywgJmNwdV9vbmxpbmVfbWFwKSkKICAgICAg ICAgcmV0dXJuIEJBRF9BUElDSUQ7CiAKLSAgICBpcnEgPSBkZXNjLT5pcnE7Ci0KICAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKLSAgICByZXQgPSBfX2Fzc2lnbl9p cnFfdmVjdG9yKGlycSwgZGVzYywgbWFzayk7CisgICAgcmV0ID0gX2Fzc2lnbl9pcnFfdmVjdG9y KGRlc2MsIG1hc2spOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZlY3Rvcl9sb2NrLCBm bGFncyk7CiAKICAgICBpZiAocmV0IDwgMCkKCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw= 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=-4.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 82E7AC43219 for ; Mon, 29 Apr 2019 11:25:22 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 59E992084B for ; Mon, 29 Apr 2019 11:25:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 59E992084B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hL4PI-00084Q-Hx; Mon, 29 Apr 2019 11:25:12 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hL4PG-000845-Sn for xen-devel@lists.xenproject.org; Mon, 29 Apr 2019 11:25:10 +0000 X-Inumbo-ID: 71bb1362-6a71-11e9-8ca8-4f52f2f08acb Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 71bb1362-6a71-11e9-8ca8-4f52f2f08acb; Mon, 29 Apr 2019 11:25:09 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Mon, 29 Apr 2019 05:25:08 -0600 Message-Id: <5CC6DF0F0200007800229EBC@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Mon, 29 Apr 2019 05:25:03 -0600 From: "Jan Beulich" To: "xen-devel" References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> In-Reply-To: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH 5/9] x86/IRQ: fix locking around vector management X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Wei Liu , Roger Pau Monne Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190429112503.lxJ4vHYApfkz6p62lD3dJtx8mxn_bPXDYyEUVBoRgys@z> QWxsIG9mIF9fe2Fzc2lnbixiaW5kLGNsZWFyfV9pcnFfdmVjdG9yKCkgbWFuaXB1bGF0ZSBzdHJ1 Y3QgaXJxX2Rlc2MKZmllbGRzLCBhbmQgaGVuY2Ugb3VnaHQgdG8gYmUgY2FsbGVkIHdpdGggdGhl IGRlc2NyaXB0b3IgbG9jayBoZWxkIGluCmFkZGl0aW9uIHRvIHZlY3Rvcl9sb2NrLiBUaGlzIGlz IGN1cnJlbnRseSB0aGUgY2FzZSBmb3Igb25seQpzZXRfZGVzY19hZmZpbml0eSgpIGFuZCBkZXN0 cm95X2lycSgpLCB3aGljaCBhbHNvIGNsYXJpZmllcyB3aGF0IHRoZQpuZXN0aW5nIGJlaGF2aW9y IGJldHdlZW4gdGhlIGxvY2tzIGhhcyB0byBiZS4gUmVmbGVjdCB0aGUgbmV3CmV4cGVjdGF0aW9u IGJ5IGhhdmluZyB0aGVzZSBmdW5jdGlvbnMgYWxsIHRha2UgYSBkZXNjcmlwdG9yIGFzCnBhcmFt ZXRlciBpbnN0ZWFkIG9mIGFuIGludGVycnVwdCBudW1iZXIuCgpEcm9wIG9uZSBvZiB0aGUgdHdv IGxlYWRpbmcgdW5kZXJzY29yZXMgZnJvbSBhbGwgdGhyZWUgZnVuY3Rpb25zIGF0CnRoZSBzYW1l IHRpbWUuCgpUaGVyZSdzIG9uZSBjYXNlIGxlZnQgd2hlcmUgZGVzY3JpcHRvcnMgZ2V0IG1hbmlw dWxhdGVkIHdpdGgganVzdAp2ZWN0b3JfbG9jayBoZWxkOiBzZXR1cF92ZWN0b3JfaXJxKCkgYXNz dW1lcyBpdHMgY2FsbGVyIHRvIGFjcXVpcmUKdmVjdG9yX2xvY2ssIGFuZCBoZW5jZSBjYW4ndCBp dHNlbGYgYWNxdWlyZSB0aGUgZGVzY3JpcHRvciBsb2NrcyAod3JvbmcKbG9jayBvcmRlcikuIEkg ZG9uJ3QgY3VycmVudGx5IHNlZSBob3cgdG8gYWRkcmVzcyB0aGlzLgoKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoKLS0tIGEveGVuL2FyY2gveDg2L2lycS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPHB1 YmxpYy9waHlzZGV2Lmg+CiAKIHN0YXRpYyBpbnQgcGFyc2VfaXJxX3ZlY3Rvcl9tYXBfcGFyYW0o Y29uc3QgY2hhciAqcyk7CitzdGF0aWMgdm9pZCBfY2xlYXJfaXJxX3ZlY3RvcihzdHJ1Y3QgaXJx X2Rlc2MgKmRlc2MpOwogCiAvKiBvcHRfbm9pcnFiYWxhbmNlOiBJZiB0cnVlLCBzb2Z0d2FyZSBJ UlEgYmFsYW5jaW5nL2FmZmluaXR5IGlzIGRpc2FibGVkLiAqLwogYm9vbCBfX3JlYWRfbW9zdGx5 IG9wdF9ub2lycWJhbGFuY2U7CkBAIC0xMTIsMTMgKzExMywxMiBAQCBzdGF0aWMgdm9pZCB0cmFj ZV9pcnFfbWFzayh1MzIgZXZlbnQsIGluCiAgICAgdHJhY2VfdmFyKGV2ZW50LCAxLCBzaXplb2Yo ZCksICZkKTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgX19iaW5kX2lycV92ZWN0b3IoaW50IGly cSwgaW50IHZlY3RvciwgY29uc3QgY3B1bWFza190ICpjcHVfbWFzaykKK3N0YXRpYyBpbnQgX19p bml0IF9iaW5kX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjLCBpbnQgdmVjdG9yLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjcHVtYXNrX3QgKmNwdV9t YXNrKQogewogICAgIGNwdW1hc2tfdCBvbmxpbmVfbWFzazsKICAgICBpbnQgY3B1OwotICAgIHN0 cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CiAKLSAgICBCVUdfT04oKHVu c2lnbmVkKWlycSA+PSBucl9pcnFzKTsKICAgICBCVUdfT04oKHVuc2lnbmVkKXZlY3RvciA+PSBO Ul9WRUNUT1JTKTsKIAogICAgIGNwdW1hc2tfYW5kKCZvbmxpbmVfbWFzaywgY3B1X21hc2ssICZj cHVfb25saW5lX21hcCk7CkBAIC0xMjksOSArMTI5LDkgQEAgc3RhdGljIGludCBfX2luaXQgX19i aW5kX2lycV92ZWN0b3IoaW50CiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICggZGVzYy0+YXJj aC52ZWN0b3IgIT0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVEICkKICAgICAgICAgcmV0dXJuIC1FQlVT WTsKLSAgICB0cmFjZV9pcnFfbWFzayhUUkNfSFdfSVJRX0JJTkRfVkVDVE9SLCBpcnEsIHZlY3Rv ciwgJm9ubGluZV9tYXNrKTsKKyAgICB0cmFjZV9pcnFfbWFzayhUUkNfSFdfSVJRX0JJTkRfVkVD VE9SLCBkZXNjLT5pcnEsIHZlY3RvciwgJm9ubGluZV9tYXNrKTsKICAgICBmb3JfZWFjaF9jcHUo Y3B1LCAmb25saW5lX21hc2spCi0gICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVt2ZWN0 b3JdID0gaXJxOworICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbdmVjdG9yXSA9IGRl c2MtPmlycTsKICAgICBkZXNjLT5hcmNoLnZlY3RvciA9IHZlY3RvcjsKICAgICBjcHVtYXNrX2Nv cHkoZGVzYy0+YXJjaC5jcHVfbWFzaywgJm9ubGluZV9tYXNrKTsKICAgICBpZiAoIGRlc2MtPmFy Y2gudXNlZF92ZWN0b3JzICkKQEAgLTE0NSwxMiArMTQ1LDE4IEBAIHN0YXRpYyBpbnQgX19pbml0 IF9fYmluZF9pcnFfdmVjdG9yKGludAogCiBpbnQgX19pbml0IGJpbmRfaXJxX3ZlY3RvcihpbnQg aXJxLCBpbnQgdmVjdG9yLCBjb25zdCBjcHVtYXNrX3QgKmNwdV9tYXNrKQogeworICAgIHN0cnVj dCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CiAgICAgdW5zaWduZWQgbG9uZyBm bGFnczsKICAgICBpbnQgcmV0OwogCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJnZlY3Rvcl9sb2Nr LCBmbGFncyk7Ci0gICAgcmV0ID0gX19iaW5kX2lycV92ZWN0b3IoaXJxLCB2ZWN0b3IsIGNwdV9t YXNrKTsKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOwor ICAgIEJVR19PTigodW5zaWduZWQpaXJxID49IG5yX2lycXMpOworCisgICAgc3Bpbl9sb2NrX2ly cXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKKyAgICBzcGluX2xvY2soJnZlY3Rvcl9sb2NrKTsK KyAgICByZXQgPSBfYmluZF9pcnFfdmVjdG9yKGRlc2MsIHZlY3RvciwgY3B1X21hc2spOworICAg IHNwaW5fdW5sb2NrKCZ2ZWN0b3JfbG9jayk7CisgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZGVzYy0+bG9jaywgZmxhZ3MpOworCiAgICAgcmV0dXJuIHJldDsKIH0KIApAQCAtMjM1LDcgKzI0 MSw5IEBAIHZvaWQgZGVzdHJveV9pcnEodW5zaWduZWQgaW50IGlycSkKIAogICAgIHNwaW5fbG9j a19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CiAgICAgZGVzYy0+aGFuZGxlciA9ICZub19p cnFfdHlwZTsKLSAgICBjbGVhcl9pcnFfdmVjdG9yKGlycSk7CisgICAgc3Bpbl9sb2NrKCZ2ZWN0 b3JfbG9jayk7CisgICAgX2NsZWFyX2lycV92ZWN0b3IoZGVzYyk7CisgICAgc3Bpbl91bmxvY2so JnZlY3Rvcl9sb2NrKTsKICAgICBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyA9IE5VTEw7CiAgICAg c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogCkBAIC0yNTYsMTEg KzI2NCwxMSBAQCBzdGF0aWMgdm9pZCByZWxlYXNlX29sZF92ZWMoc3RydWN0IGlycV9kCiAgICAg fQogfQogCi1zdGF0aWMgdm9pZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKK3N0YXRpYyB2 b2lkIF9jbGVhcl9pcnFfdmVjdG9yKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKIHsKLSAgICBpbnQg Y3B1LCB2ZWN0b3IsIG9sZF92ZWN0b3I7CisgICAgdW5zaWduZWQgaW50IGNwdTsKKyAgICBpbnQg dmVjdG9yLCBvbGRfdmVjdG9yLCBpcnEgPSBkZXNjLT5pcnE7CiAgICAgY3B1bWFza190IHRtcF9t YXNrOwotICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CiAKICAg ICBCVUdfT04oIWRlc2MtPmFyY2gudmVjdG9yKTsKIApAQCAtMzA2LDExICszMTQsMTQgQEAgc3Rh dGljIHZvaWQgX19jbGVhcl9pcnFfdmVjdG9yKGludCBpcnEpCiAKIHZvaWQgY2xlYXJfaXJxX3Zl Y3RvcihpbnQgaXJxKQogeworICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNj KGlycSk7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZl KCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOwotICAgIF9fY2xlYXJfaXJxX3ZlY3RvcihpcnEpOwotICAg IHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7CisgICAgc3Bpbl9s b2NrX2lycXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKKyAgICBzcGluX2xvY2soJnZlY3Rvcl9s b2NrKTsKKyAgICBfY2xlYXJfaXJxX3ZlY3RvcihkZXNjKTsKKyAgICBzcGluX3VubG9jaygmdmVj dG9yX2xvY2spOworICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZsYWdz KTsKIH0KIAogaW50IGlycV90b192ZWN0b3IoaW50IGlycSkKQEAgLTQ0NSw4ICs0NTYsNyBAQCBz dGF0aWMgdm1hc2tfdCAqaXJxX2dldF91c2VkX3ZlY3Rvcl9tYXNrCiAgICAgcmV0dXJuIHJldDsK IH0KIAotc3RhdGljIGludCBfX2Fzc2lnbl9pcnFfdmVjdG9yKAotICAgIGludCBpcnEsIHN0cnVj dCBpcnFfZGVzYyAqZGVzYywgY29uc3QgY3B1bWFza190ICptYXNrKQorc3RhdGljIGludCBfYXNz aWduX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjLCBjb25zdCBjcHVtYXNrX3QgKm1h c2spCiB7CiAgICAgLyoKICAgICAgKiBOT1RFISBUaGUgbG9jYWwgQVBJQyBpc24ndCB2ZXJ5IGdv b2QgYXQgaGFuZGxpbmcKQEAgLTQ2MCw3ICs0NzAsOCBAQCBzdGF0aWMgaW50IF9fYXNzaWduX2ly cV92ZWN0b3IoCiAgICAgICogMHg4MCwgYmVjYXVzZSBpbnQgMHg4MCBpcyBobSwga2luZCBvZiBp bXBvcnRhbnRpc2guIDspCiAgICAgICovCiAgICAgc3RhdGljIGludCBjdXJyZW50X3ZlY3RvciA9 IEZJUlNUX0RZTkFNSUNfVkVDVE9SLCBjdXJyZW50X29mZnNldCA9IDA7Ci0gICAgaW50IGNwdSwg ZXJyLCBvbGRfdmVjdG9yOworICAgIHVuc2lnbmVkIGludCBjcHU7CisgICAgaW50IGVyciwgb2xk X3ZlY3RvciwgaXJxID0gZGVzYy0+aXJxOwogICAgIGNwdW1hc2tfdCB0bXBfbWFzazsKICAgICB2 bWFza190ICppcnFfdXNlZF92ZWN0b3JzID0gTlVMTDsKIApAQCAtNTcwLDggKzU4MSwxMiBAQCBp bnQgYXNzaWduX2lycV92ZWN0b3IoaW50IGlycSwgY29uc3QgY3B1CiAgICAgCiAgICAgQlVHX09O KGlycSA+PSBucl9pcnFzIHx8IGlycSA8MCk7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdmVj dG9yX2xvY2ssIGZsYWdzKTsKLSAgICByZXQgPSBfX2Fzc2lnbl9pcnFfdmVjdG9yKGlycSwgZGVz YywgbWFzayA/OiBUQVJHRVRfQ1BVUyk7CisgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmRlc2MtPmxv Y2ssIGZsYWdzKTsKKworICAgIHNwaW5fbG9jaygmdmVjdG9yX2xvY2spOworICAgIHJldCA9IF9h c3NpZ25faXJxX3ZlY3RvcihkZXNjLCBtYXNrID86IFRBUkdFVF9DUFVTKTsKKyAgICBzcGluX3Vu bG9jaygmdmVjdG9yX2xvY2spOworCiAgICAgaWYgKCAhcmV0ICkKICAgICB7CiAgICAgICAgIHJl dCA9IGRlc2MtPmFyY2gudmVjdG9yOwpAQCAtNTgwLDcgKzU5NSw4IEBAIGludCBhc3NpZ25faXJx X3ZlY3RvcihpbnQgaXJxLCBjb25zdCBjcHUKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY3B1 bWFza19zZXRhbGwoZGVzYy0+YWZmaW5pdHkpOwogICAgIH0KLSAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOworCisgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KQEAgLTc1NCw3ICs3 NzAsNiBAQCB2b2lkIGlycV9jb21wbGV0ZV9tb3ZlKHN0cnVjdCBpcnFfZGVzYyAqCiAKIHVuc2ln bmVkIGludCBzZXRfZGVzY19hZmZpbml0eShzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGNvbnN0IGNw dW1hc2tfdCAqbWFzaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgaXJxOwogICAgIGludCByZXQ7CiAg ICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBjcHVtYXNrX3QgZGVzdF9tYXNrOwpAQCAtNzYy LDEwICs3NzcsOCBAQCB1bnNpZ25lZCBpbnQgc2V0X2Rlc2NfYWZmaW5pdHkoc3RydWN0IGlyCiAg ICAgaWYgKCFjcHVtYXNrX2ludGVyc2VjdHMobWFzaywgJmNwdV9vbmxpbmVfbWFwKSkKICAgICAg ICAgcmV0dXJuIEJBRF9BUElDSUQ7CiAKLSAgICBpcnEgPSBkZXNjLT5pcnE7Ci0KICAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKLSAgICByZXQgPSBfX2Fzc2lnbl9p cnFfdmVjdG9yKGlycSwgZGVzYywgbWFzayk7CisgICAgcmV0ID0gX2Fzc2lnbl9pcnFfdmVjdG9y KGRlc2MsIG1hc2spOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZlY3Rvcl9sb2NrLCBm bGFncyk7CiAKICAgICBpZiAocmV0IDwgMCkKCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=