From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v1b 1/9] x86/IRQ: deal with move-in-progress state in fixup_irqs() Date: Mon, 29 Apr 2019 09:40:14 -0600 Message-ID: <5CC71ADE020000780022A1B7@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 us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hL8OB-0000Qt-N0 for xen-devel@lists.xenproject.org; Mon, 29 Apr 2019 15:40:19 +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 , Roger Pau Monne , Wei Liu , Igor Druzhinin List-Id: xen-devel@lists.xenproject.org VGhlIGZsYWcgYmVpbmcgc2V0IG1heSBwcmV2ZW50IGFmZmluaXR5IGNoYW5nZXMsIGFzIHRoZXNl IG9mdGVuIGltcGx5CmFzc2lnbm1lbnQgb2YgYSBuZXcgdmVjdG9yLiBXaGVuIHRoZXJlJ3Mgbm8g cG9zc2libGUgZGVzdGluYXRpb24gbGVmdApmb3IgdGhlIElSUSwgdGhlIGNsZWFyaW5nIG9mIHRo ZSBmbGFnIG5lZWRzIHRvIGhhcHBlbiByaWdodCBmcm9tCmZpeHVwX2lycXMoKS4KCkFkZGl0aW9u YWxseSBfYXNzaWduX2lycV92ZWN0b3IoKSBuZWVkcyB0byBhdm9pZCBzZXR0aW5nIHRoZSBmbGFn IHdoZW4KdGhlcmUncyBubyBvbmxpbmUgQ1BVIGxlZnQgaW4gd2hhdCBnZXRzIHB1dCBpbnRvIC0+ YXJjaC5vbGRfY3B1X21hc2suClRoZSBvbGQgdmVjdG9yIGNhbiBiZSByZWxlYXNlZCByaWdodCBh d2F5IGluIHRoaXMgY2FzZS4KCkFsc28gZXh0ZW5kIHRoZSBsb2cgbWVzc2FnZSBhYm91dCBicm9r ZW4gYWZmaW5pdHkgdG8gaW5jbHVkZSB0aGUgbmV3CmFmZmluaXR5IGFzIHdlbGwsIGFsbG93aW5n IHRvIG5vdGljZSBpc3N1ZXMgd2l0aCBhZmZpbml0eSBjaGFuZ2VzIG5vdAphY3R1YWxseSBoYXZp bmcgdGFrZW4gcGxhY2UuIFN3YXAgdGhlIGlmL2Vsc2UtaWYgb3JkZXIgdGhlcmUgYXQgdGhlCnNh bWUgdGltZSB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBjb25kaXRpb25zIGNoZWNrZWQuCgpBdCB0 aGUgc2FtZSB0aW1lIHJlcGxhY2UgdHdvIG9wZW4gY29kZWQgaW5zdGFuY2VzIG9mIHRoZSBuZXcg aGVscGVyCmZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgotLS0KdjI6IEFsc28gdXBkYXRlIHZlY3Rvcl9pcnFbXSBpbiB0aGUgY29kZSBhZGRl ZCB0byBmaXh1cF9pcnFzKCkuCgotLS0gdW5zdGFibGUub3JpZy94ZW4vYXJjaC94ODYvaXJxLmMJ MjAxOS0wNC0yOSAxNzozNDoxNi43MjY1NDI2NTkgKzAyMDAKKysrIHVuc3RhYmxlL3hlbi9hcmNo L3g4Ni9pcnEuYwkyMDE5LTA0LTI5IDE1OjA1OjM5LjAwMDAwMDAwMCArMDIwMApAQCAtMjQyLDYg KzI0MiwyMCBAQCB2b2lkIGRlc3Ryb3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAgICAgeGZyZWUo YWN0aW9uKTsKIH0KIAorc3RhdGljIHZvaWQgcmVsZWFzZV9vbGRfdmVjKHN0cnVjdCBpcnFfZGVz YyAqZGVzYykKK3sKKyAgICB1bnNpZ25lZCBpbnQgdmVjdG9yID0gZGVzYy0+YXJjaC5vbGRfdmVj dG9yOworCisgICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVE OworICAgIGNwdW1hc2tfY2xlYXIoZGVzYy0+YXJjaC5vbGRfY3B1X21hc2spOworCisgICAgaWYg KCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCisgICAgeworICAgICAgICBBU1NFUlQodGVzdF9i aXQodmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycykpOworICAgICAgICBjbGVhcl9iaXQo dmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7CisgICAgfQorfQorCiBzdGF0aWMgdm9p ZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKIHsKICAgICBpbnQgY3B1LCB2ZWN0b3IsIG9s ZF92ZWN0b3I7CkBAIC0yODUsMTQgKzI5OSw3IEBAIHN0YXRpYyB2b2lkIF9fY2xlYXJfaXJxX3Zl Y3RvcihpbnQgaXJxKQogICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rv cl0gPSB+aXJxOwogICAgIH0KIAotICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNU T1JfVU5BU1NJR05FRDsKLSAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKLQotICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQotICAgIHsKLSAgICAgICAg QVNTRVJUKHRlc3RfYml0KG9sZF92ZWN0b3IsIGRlc2MtPmFyY2gudXNlZF92ZWN0b3JzKSk7Ci0g ICAgICAgIGNsZWFyX2JpdChvbGRfdmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0g ICAgfQorICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKIAogICAgIGRlc2MtPmFyY2gubW92ZV9p bl9wcm9ncmVzcyA9IDA7CiB9CkBAIC01MTcsMTIgKzUyNCwyMSBAQCBuZXh0OgogICAgICAgICAv KiBGb3VuZCBvbmUhICovCiAgICAgICAgIGN1cnJlbnRfdmVjdG9yID0gdmVjdG9yOwogICAgICAg ICBjdXJyZW50X29mZnNldCA9IG9mZnNldDsKLSAgICAgICAgaWYgKG9sZF92ZWN0b3IgPiAwKSB7 Ci0gICAgICAgICAgICBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgPSAxOwotICAgICAgICAg ICAgY3B1bWFza19jb3B5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrLCBkZXNjLT5hcmNoLmNwdV9t YXNrKTsKKworICAgICAgICBpZiAoIG9sZF92ZWN0b3IgPiAwICkKKyAgICAgICAgeworICAgICAg ICAgICAgY3B1bWFza19hbmQoZGVzYy0+YXJjaC5vbGRfY3B1X21hc2ssIGRlc2MtPmFyY2guY3B1 X21hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAmY3B1X29ubGluZV9tYXApOwogICAgICAg ICAgICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7CisgICAgICAg ICAgICBpZiAoICFjcHVtYXNrX2VtcHR5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKSApCisgICAg ICAgICAgICAgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMTsKKyAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgICAvKiBUaGlzIGNhbiBoYXBwZW4gd2hpbGUgb2ZmbGluaW5n IGEgQ1BVLiAqLworICAgICAgICAgICAgICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKICAgICAg ICAgfQorCiAgICAgICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQVNTSUdOX1ZFQ1RPUiwg aXJxLCB2ZWN0b3IsICZ0bXBfbWFzayk7CisKICAgICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUs ICZ0bXBfbWFzaykKICAgICAgICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgbmV3X2NwdSlbdmVj dG9yXSA9IGlycTsKICAgICAgICAgZGVzYy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7CkBAIC02OTEs MTQgKzcwNyw4IEBAIHZvaWQgaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQoc3RydWN0IGMKIAog ICAgICAgICBpZiAoIGRlc2MtPmFyY2gubW92ZV9jbGVhbnVwX2NvdW50ID09IDAgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBkZXNjLT5hcmNoLm9sZF92ZWN0b3IgPSBJUlFfVkVDVE9SX1VOQVNT SUdORUQ7Ci0gICAgICAgICAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKLQotICAgICAgICAgICAgaWYgKCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCi0gICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHRlc3RfYml0KHZlY3RvciwgZGVzYy0+YXJj aC51c2VkX3ZlY3RvcnMpKTsKLSAgICAgICAgICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNj LT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQo dmVjdG9yID09IGRlc2MtPmFyY2gub2xkX3ZlY3Rvcik7CisgICAgICAgICAgICByZWxlYXNlX29s ZF92ZWMoZGVzYyk7CiAgICAgICAgIH0KIHVubG9jazoKICAgICAgICAgc3Bpbl91bmxvY2soJmRl c2MtPmxvY2spOwpAQCAtMjM5MSw2ICsyNDAxLDMzIEBAIHZvaWQgZml4dXBfaXJxcyhjb25zdCBj cHVtYXNrX3QgKm1hc2ssIGIKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKKyAg ICAgICAgLyoKKyAgICAgICAgICogSW4gb3JkZXIgZm9yIHRoZSBhZmZpbml0eSBhZGp1c3RtZW50 IGJlbG93IHRvIGJlIHN1Y2Nlc3NmdWwsIHdlCisgICAgICAgICAqIG5lZWQgX19hc3NpZ25faXJx X3ZlY3RvcigpIHRvIHN1Y2NlZWQuIFRoaXMgaW4gcGFydGljdWxhciBtZWFucworICAgICAgICAg KiBjbGVhcmluZyBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgaWYgdGhpcyB3b3VsZCBvdGhl cndpc2UKKyAgICAgICAgICogcHJldmVudCB0aGUgZnVuY3Rpb24gZnJvbSBzdWNjZWVkaW5nLiBT aW5jZSB0aGVyZSdzIG5vIHdheSBmb3IgdGhlCisgICAgICAgICAqIGZsYWcgdG8gZ2V0IGNsZWFy ZWQgYW55bW9yZSB3aGVuIHRoZXJlJ3Mgbm8gcG9zc2libGUgZGVzdGluYXRpb24KKyAgICAgICAg ICogbGVmdCAodGhlIG9ubHkgcG9zc2liaWxpdHkgdGhlbiB3b3VsZCBiZSB0aGUgSVJRcyBlbmFi bGVkIHdpbmRvdworICAgICAgICAgKiBhZnRlciB0aGlzIGxvb3ApLCB0aGVyZSdzIHRoZW4gYWxz byBubyByYWNlIHdpdGggdXMgZG9pbmcgaXQgaGVyZS4KKyAgICAgICAgICoKKyAgICAgICAgICog VGhlcmVmb3JlIHRoZSBsb2dpYyBoZXJlIGFuZCB0aGVyZSBuZWVkIHRvIHJlbWFpbiBpbiBzeW5j LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3Mg JiYKKyAgICAgICAgICAgICAhY3B1bWFza19pbnRlcnNlY3RzKG1hc2ssIGRlc2MtPmFyY2guY3B1 X21hc2spICkKKyAgICAgICAgeworICAgICAgICAgICAgdW5zaWduZWQgaW50IGNwdTsKKworICAg ICAgICAgICAgY3B1bWFza19hbmQoJmFmZmluaXR5LCBkZXNjLT5hcmNoLm9sZF9jcHVfbWFzaywg JmNwdV9vbmxpbmVfbWFwKTsKKworICAgICAgICAgICAgc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9jayk7 CisgICAgICAgICAgICBmb3JfZWFjaF9jcHUoY3B1LCAmYWZmaW5pdHkpCisgICAgICAgICAgICAg ICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW2Rlc2MtPmFyY2gub2xkX3ZlY3Rvcl0gPSB+aXJx OworICAgICAgICAgICAgc3Bpbl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKKworICAgICAgICAgICAg cmVsZWFzZV9vbGRfdmVjKGRlc2MpOworICAgICAgICAgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3By b2dyZXNzID0gMDsKKyAgICAgICAgfQorCiAgICAgICAgIGNwdW1hc2tfYW5kKCZhZmZpbml0eSwg JmFmZmluaXR5LCBtYXNrKTsKICAgICAgICAgaWYgKCBjcHVtYXNrX2VtcHR5KCZhZmZpbml0eSkg KQogICAgICAgICB7CkBAIC0yNDA5LDE1ICsyNDQ2LDE4IEBAIHZvaWQgZml4dXBfaXJxcyhjb25z dCBjcHVtYXNrX3QgKm1hc2ssIGIKICAgICAgICAgaWYgKCBkZXNjLT5oYW5kbGVyLT5lbmFibGUg KQogICAgICAgICAgICAgZGVzYy0+aGFuZGxlci0+ZW5hYmxlKGRlc2MpOwogCisgICAgICAgIGNw dW1hc2tfY29weSgmYWZmaW5pdHksIGRlc2MtPmFmZmluaXR5KTsKKwogICAgICAgICBzcGluX3Vu bG9jaygmZGVzYy0+bG9jayk7CiAKICAgICAgICAgaWYgKCAhdmVyYm9zZSApCiAgICAgICAgICAg ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIGJyZWFrX2FmZmluaXR5ICYmIHNldF9hZmZpbml0 eSApCi0gICAgICAgICAgICBwcmludGsoIkJyb2tlIGFmZmluaXR5IGZvciBpcnEgJWlcbiIsIGly cSk7Ci0gICAgICAgIGVsc2UgaWYgKCAhc2V0X2FmZmluaXR5ICkKLSAgICAgICAgICAgIHByaW50 aygiQ2Fubm90IHNldCBhZmZpbml0eSBmb3IgaXJxICVpXG4iLCBpcnEpOworICAgICAgICBpZiAo ICFzZXRfYWZmaW5pdHkgKQorICAgICAgICAgICAgcHJpbnRrKCJDYW5ub3Qgc2V0IGFmZmluaXR5 IGZvciBJUlEldVxuIiwgaXJxKTsKKyAgICAgICAgZWxzZSBpZiAoIGJyZWFrX2FmZmluaXR5ICkK KyAgICAgICAgICAgIHByaW50aygiQnJva2UgYWZmaW5pdHkgZm9yIElSUSV1LCBuZXc6ICUqcGJc biIsCisgICAgICAgICAgICAgICAgICAgaXJxLCBucl9jcHVfaWRzLCAmYWZmaW5pdHkpOwogICAg IH0KIAogICAgIC8qIFRoYXQgZG9lc24ndCBzZWVtIHN1ZmZpY2llbnQuICBHaXZlIGl0IDFtcy4g Ki8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= 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 7293BC43219 for ; Mon, 29 Apr 2019 15:40:33 +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 4C02C20675 for ; Mon, 29 Apr 2019 15:40:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4C02C20675 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 1hL8OD-0000Qy-4B; Mon, 29 Apr 2019 15:40:21 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hL8OB-0000Qt-N0 for xen-devel@lists.xenproject.org; Mon, 29 Apr 2019 15:40:19 +0000 X-Inumbo-ID: 16879f74-6a95-11e9-843c-bc764e045a96 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 16879f74-6a95-11e9-843c-bc764e045a96; Mon, 29 Apr 2019 15:40:17 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Mon, 29 Apr 2019 09:40:16 -0600 Message-Id: <5CC71ADE020000780022A1B7@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Mon, 29 Apr 2019 09:40:14 -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 v1b 1/9] x86/IRQ: deal with move-in-progress state in fixup_irqs() 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 , Roger Pau Monne , Wei Liu , Igor Druzhinin Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190429154014.grKQrZ2l-vaP02cNOGSF89EUrEZabZUxnS3LevGejQg@z> VGhlIGZsYWcgYmVpbmcgc2V0IG1heSBwcmV2ZW50IGFmZmluaXR5IGNoYW5nZXMsIGFzIHRoZXNl IG9mdGVuIGltcGx5CmFzc2lnbm1lbnQgb2YgYSBuZXcgdmVjdG9yLiBXaGVuIHRoZXJlJ3Mgbm8g cG9zc2libGUgZGVzdGluYXRpb24gbGVmdApmb3IgdGhlIElSUSwgdGhlIGNsZWFyaW5nIG9mIHRo ZSBmbGFnIG5lZWRzIHRvIGhhcHBlbiByaWdodCBmcm9tCmZpeHVwX2lycXMoKS4KCkFkZGl0aW9u YWxseSBfYXNzaWduX2lycV92ZWN0b3IoKSBuZWVkcyB0byBhdm9pZCBzZXR0aW5nIHRoZSBmbGFn IHdoZW4KdGhlcmUncyBubyBvbmxpbmUgQ1BVIGxlZnQgaW4gd2hhdCBnZXRzIHB1dCBpbnRvIC0+ YXJjaC5vbGRfY3B1X21hc2suClRoZSBvbGQgdmVjdG9yIGNhbiBiZSByZWxlYXNlZCByaWdodCBh d2F5IGluIHRoaXMgY2FzZS4KCkFsc28gZXh0ZW5kIHRoZSBsb2cgbWVzc2FnZSBhYm91dCBicm9r ZW4gYWZmaW5pdHkgdG8gaW5jbHVkZSB0aGUgbmV3CmFmZmluaXR5IGFzIHdlbGwsIGFsbG93aW5n IHRvIG5vdGljZSBpc3N1ZXMgd2l0aCBhZmZpbml0eSBjaGFuZ2VzIG5vdAphY3R1YWxseSBoYXZp bmcgdGFrZW4gcGxhY2UuIFN3YXAgdGhlIGlmL2Vsc2UtaWYgb3JkZXIgdGhlcmUgYXQgdGhlCnNh bWUgdGltZSB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBjb25kaXRpb25zIGNoZWNrZWQuCgpBdCB0 aGUgc2FtZSB0aW1lIHJlcGxhY2UgdHdvIG9wZW4gY29kZWQgaW5zdGFuY2VzIG9mIHRoZSBuZXcg aGVscGVyCmZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgotLS0KdjI6IEFsc28gdXBkYXRlIHZlY3Rvcl9pcnFbXSBpbiB0aGUgY29kZSBhZGRl ZCB0byBmaXh1cF9pcnFzKCkuCgotLS0gdW5zdGFibGUub3JpZy94ZW4vYXJjaC94ODYvaXJxLmMJ MjAxOS0wNC0yOSAxNzozNDoxNi43MjY1NDI2NTkgKzAyMDAKKysrIHVuc3RhYmxlL3hlbi9hcmNo L3g4Ni9pcnEuYwkyMDE5LTA0LTI5IDE1OjA1OjM5LjAwMDAwMDAwMCArMDIwMApAQCAtMjQyLDYg KzI0MiwyMCBAQCB2b2lkIGRlc3Ryb3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAgICAgeGZyZWUo YWN0aW9uKTsKIH0KIAorc3RhdGljIHZvaWQgcmVsZWFzZV9vbGRfdmVjKHN0cnVjdCBpcnFfZGVz YyAqZGVzYykKK3sKKyAgICB1bnNpZ25lZCBpbnQgdmVjdG9yID0gZGVzYy0+YXJjaC5vbGRfdmVj dG9yOworCisgICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVE OworICAgIGNwdW1hc2tfY2xlYXIoZGVzYy0+YXJjaC5vbGRfY3B1X21hc2spOworCisgICAgaWYg KCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCisgICAgeworICAgICAgICBBU1NFUlQodGVzdF9i aXQodmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycykpOworICAgICAgICBjbGVhcl9iaXQo dmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7CisgICAgfQorfQorCiBzdGF0aWMgdm9p ZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKIHsKICAgICBpbnQgY3B1LCB2ZWN0b3IsIG9s ZF92ZWN0b3I7CkBAIC0yODUsMTQgKzI5OSw3IEBAIHN0YXRpYyB2b2lkIF9fY2xlYXJfaXJxX3Zl Y3RvcihpbnQgaXJxKQogICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rv cl0gPSB+aXJxOwogICAgIH0KIAotICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNU T1JfVU5BU1NJR05FRDsKLSAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKLQotICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQotICAgIHsKLSAgICAgICAg QVNTRVJUKHRlc3RfYml0KG9sZF92ZWN0b3IsIGRlc2MtPmFyY2gudXNlZF92ZWN0b3JzKSk7Ci0g ICAgICAgIGNsZWFyX2JpdChvbGRfdmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0g ICAgfQorICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKIAogICAgIGRlc2MtPmFyY2gubW92ZV9p bl9wcm9ncmVzcyA9IDA7CiB9CkBAIC01MTcsMTIgKzUyNCwyMSBAQCBuZXh0OgogICAgICAgICAv KiBGb3VuZCBvbmUhICovCiAgICAgICAgIGN1cnJlbnRfdmVjdG9yID0gdmVjdG9yOwogICAgICAg ICBjdXJyZW50X29mZnNldCA9IG9mZnNldDsKLSAgICAgICAgaWYgKG9sZF92ZWN0b3IgPiAwKSB7 Ci0gICAgICAgICAgICBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgPSAxOwotICAgICAgICAg ICAgY3B1bWFza19jb3B5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrLCBkZXNjLT5hcmNoLmNwdV9t YXNrKTsKKworICAgICAgICBpZiAoIG9sZF92ZWN0b3IgPiAwICkKKyAgICAgICAgeworICAgICAg ICAgICAgY3B1bWFza19hbmQoZGVzYy0+YXJjaC5vbGRfY3B1X21hc2ssIGRlc2MtPmFyY2guY3B1 X21hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAmY3B1X29ubGluZV9tYXApOwogICAgICAg ICAgICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7CisgICAgICAg ICAgICBpZiAoICFjcHVtYXNrX2VtcHR5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKSApCisgICAg ICAgICAgICAgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMTsKKyAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgICAvKiBUaGlzIGNhbiBoYXBwZW4gd2hpbGUgb2ZmbGluaW5n IGEgQ1BVLiAqLworICAgICAgICAgICAgICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKICAgICAg ICAgfQorCiAgICAgICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQVNTSUdOX1ZFQ1RPUiwg aXJxLCB2ZWN0b3IsICZ0bXBfbWFzayk7CisKICAgICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUs ICZ0bXBfbWFzaykKICAgICAgICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgbmV3X2NwdSlbdmVj dG9yXSA9IGlycTsKICAgICAgICAgZGVzYy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7CkBAIC02OTEs MTQgKzcwNyw4IEBAIHZvaWQgaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQoc3RydWN0IGMKIAog ICAgICAgICBpZiAoIGRlc2MtPmFyY2gubW92ZV9jbGVhbnVwX2NvdW50ID09IDAgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBkZXNjLT5hcmNoLm9sZF92ZWN0b3IgPSBJUlFfVkVDVE9SX1VOQVNT SUdORUQ7Ci0gICAgICAgICAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKLQotICAgICAgICAgICAgaWYgKCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCi0gICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHRlc3RfYml0KHZlY3RvciwgZGVzYy0+YXJj aC51c2VkX3ZlY3RvcnMpKTsKLSAgICAgICAgICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNj LT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQo dmVjdG9yID09IGRlc2MtPmFyY2gub2xkX3ZlY3Rvcik7CisgICAgICAgICAgICByZWxlYXNlX29s ZF92ZWMoZGVzYyk7CiAgICAgICAgIH0KIHVubG9jazoKICAgICAgICAgc3Bpbl91bmxvY2soJmRl c2MtPmxvY2spOwpAQCAtMjM5MSw2ICsyNDAxLDMzIEBAIHZvaWQgZml4dXBfaXJxcyhjb25zdCBj cHVtYXNrX3QgKm1hc2ssIGIKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKKyAg ICAgICAgLyoKKyAgICAgICAgICogSW4gb3JkZXIgZm9yIHRoZSBhZmZpbml0eSBhZGp1c3RtZW50 IGJlbG93IHRvIGJlIHN1Y2Nlc3NmdWwsIHdlCisgICAgICAgICAqIG5lZWQgX19hc3NpZ25faXJx X3ZlY3RvcigpIHRvIHN1Y2NlZWQuIFRoaXMgaW4gcGFydGljdWxhciBtZWFucworICAgICAgICAg KiBjbGVhcmluZyBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgaWYgdGhpcyB3b3VsZCBvdGhl cndpc2UKKyAgICAgICAgICogcHJldmVudCB0aGUgZnVuY3Rpb24gZnJvbSBzdWNjZWVkaW5nLiBT aW5jZSB0aGVyZSdzIG5vIHdheSBmb3IgdGhlCisgICAgICAgICAqIGZsYWcgdG8gZ2V0IGNsZWFy ZWQgYW55bW9yZSB3aGVuIHRoZXJlJ3Mgbm8gcG9zc2libGUgZGVzdGluYXRpb24KKyAgICAgICAg ICogbGVmdCAodGhlIG9ubHkgcG9zc2liaWxpdHkgdGhlbiB3b3VsZCBiZSB0aGUgSVJRcyBlbmFi bGVkIHdpbmRvdworICAgICAgICAgKiBhZnRlciB0aGlzIGxvb3ApLCB0aGVyZSdzIHRoZW4gYWxz byBubyByYWNlIHdpdGggdXMgZG9pbmcgaXQgaGVyZS4KKyAgICAgICAgICoKKyAgICAgICAgICog VGhlcmVmb3JlIHRoZSBsb2dpYyBoZXJlIGFuZCB0aGVyZSBuZWVkIHRvIHJlbWFpbiBpbiBzeW5j LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3Mg JiYKKyAgICAgICAgICAgICAhY3B1bWFza19pbnRlcnNlY3RzKG1hc2ssIGRlc2MtPmFyY2guY3B1 X21hc2spICkKKyAgICAgICAgeworICAgICAgICAgICAgdW5zaWduZWQgaW50IGNwdTsKKworICAg ICAgICAgICAgY3B1bWFza19hbmQoJmFmZmluaXR5LCBkZXNjLT5hcmNoLm9sZF9jcHVfbWFzaywg JmNwdV9vbmxpbmVfbWFwKTsKKworICAgICAgICAgICAgc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9jayk7 CisgICAgICAgICAgICBmb3JfZWFjaF9jcHUoY3B1LCAmYWZmaW5pdHkpCisgICAgICAgICAgICAg ICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW2Rlc2MtPmFyY2gub2xkX3ZlY3Rvcl0gPSB+aXJx OworICAgICAgICAgICAgc3Bpbl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKKworICAgICAgICAgICAg cmVsZWFzZV9vbGRfdmVjKGRlc2MpOworICAgICAgICAgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3By b2dyZXNzID0gMDsKKyAgICAgICAgfQorCiAgICAgICAgIGNwdW1hc2tfYW5kKCZhZmZpbml0eSwg JmFmZmluaXR5LCBtYXNrKTsKICAgICAgICAgaWYgKCBjcHVtYXNrX2VtcHR5KCZhZmZpbml0eSkg KQogICAgICAgICB7CkBAIC0yNDA5LDE1ICsyNDQ2LDE4IEBAIHZvaWQgZml4dXBfaXJxcyhjb25z dCBjcHVtYXNrX3QgKm1hc2ssIGIKICAgICAgICAgaWYgKCBkZXNjLT5oYW5kbGVyLT5lbmFibGUg KQogICAgICAgICAgICAgZGVzYy0+aGFuZGxlci0+ZW5hYmxlKGRlc2MpOwogCisgICAgICAgIGNw dW1hc2tfY29weSgmYWZmaW5pdHksIGRlc2MtPmFmZmluaXR5KTsKKwogICAgICAgICBzcGluX3Vu bG9jaygmZGVzYy0+bG9jayk7CiAKICAgICAgICAgaWYgKCAhdmVyYm9zZSApCiAgICAgICAgICAg ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIGJyZWFrX2FmZmluaXR5ICYmIHNldF9hZmZpbml0 eSApCi0gICAgICAgICAgICBwcmludGsoIkJyb2tlIGFmZmluaXR5IGZvciBpcnEgJWlcbiIsIGly cSk7Ci0gICAgICAgIGVsc2UgaWYgKCAhc2V0X2FmZmluaXR5ICkKLSAgICAgICAgICAgIHByaW50 aygiQ2Fubm90IHNldCBhZmZpbml0eSBmb3IgaXJxICVpXG4iLCBpcnEpOworICAgICAgICBpZiAo ICFzZXRfYWZmaW5pdHkgKQorICAgICAgICAgICAgcHJpbnRrKCJDYW5ub3Qgc2V0IGFmZmluaXR5 IGZvciBJUlEldVxuIiwgaXJxKTsKKyAgICAgICAgZWxzZSBpZiAoIGJyZWFrX2FmZmluaXR5ICkK KyAgICAgICAgICAgIHByaW50aygiQnJva2UgYWZmaW5pdHkgZm9yIElSUSV1LCBuZXc6ICUqcGJc biIsCisgICAgICAgICAgICAgICAgICAgaXJxLCBucl9jcHVfaWRzLCAmYWZmaW5pdHkpOwogICAg IH0KIAogICAgIC8qIFRoYXQgZG9lc24ndCBzZWVtIHN1ZmZpY2llbnQuICBHaXZlIGl0IDFtcy4g Ki8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=