From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH RFC 1/9] x86/IRQ: deal with move-in-progress state in fixup_irqs() Date: Mon, 29 Apr 2019 05:22:55 -0600 Message-ID: <5CC6DE8F0200007800229E9A@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 1hL4ND-0007mH-IA for xen-devel@lists.xenproject.org; Mon, 29 Apr 2019 11:23:03 +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 VGhlIGZsYWcgYmVpbmcgc2V0IG1heSBwcmV2ZW50IGFmZmluaXR5IGNoYW5nZXMsIGFzIHRoZXNl IG9mdGVuIGltcGx5CmFzc2lnbm1lbnQgb2YgYSBuZXcgdmVjdG9yLiBXaGVuIHRoZXJlJ3Mgbm8g cG9zc2libGUgZGVzdGluYXRpb24gbGVmdApmb3IgdGhlIElSUSwgdGhlIGNsZWFyaW5nIG9mIHRo ZSBmbGFnIG5lZWRzIHRvIGhhcHBlbiByaWdodCBmcm9tCmZpeHVwX2lycXMoKS4KCkFkZGl0aW9u YWxseSBfYXNzaWduX2lycV92ZWN0b3IoKSBuZWVkcyB0byBhdm9pZCBzZXR0aW5nIHRoZSBmbGFn IHdoZW4KdGhlcmUncyBubyBvbmxpbmUgQ1BVIGxlZnQgaW4gd2hhdCBnZXRzIHB1dCBpbnRvIC0+ YXJjaC5vbGRfY3B1X21hc2suClRoZSBvbGQgdmVjdG9yIGNhbiBiZSByZWxlYXNlZCByaWdodCBh d2F5IGluIHRoaXMgY2FzZS4KCkFsc28gZXh0ZW5kIHRoZSBsb2cgbWVzc2FnZSBhYm91dCBicm9r ZW4gYWZmaW5pdHkgdG8gaW5jbHVkZSB0aGUgbmV3CmFmZmluaXR5IGFzIHdlbGwsIGFsbG93aW5n IHRvIG5vdGljZSBpc3N1ZXMgd2l0aCBhZmZpbml0eSBjaGFuZ2VzIG5vdAphY3R1YWxseSBoYXZp bmcgdGFrZW4gcGxhY2UuIFN3YXAgdGhlIGlmL2Vsc2UtaWYgb3JkZXIgdGhlcmUgYXQgdGhlCnNh bWUgdGltZSB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBjb25kaXRpb25zIGNoZWNrZWQuCgpBdCB0 aGUgc2FtZSB0aW1lIHJlcGxhY2UgdHdvIG9wZW4gY29kZWQgaW5zdGFuY2VzIG9mIHRoZSBuZXcg aGVscGVyCmZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgotLS0KUkZDOiBJJ3ZlIHNlZW4gdGhlIG5ldyBBU1NFUlQoKSBpbiBpcnFfbW92ZV9j bGVhbnVwX2ludGVycnVwdCgpIHRyaWdnZXIuCiAgICAgSSdtIHByZXR0eSBzdXJlIHRoYXQgdGhp cyBhc3NlcnRpb24gdHJpZ2dlcmluZyBtZWFucyBzb21ldGhpbmcgZWxzZQogICAgIGlzIHdyb25n LCBhbmQgaGFzIGJlZW4gZXZlbiBwcmlvciB0byB0aGlzIGNoYW5nZSAoYWRkaW5nIHRoZQogICAg IGFzc2VydGlvbiB3aXRob3V0IGFueSBvZiB0aGUgb3RoZXIgY2hhbmdlcyBoZXJlIHNob3VsZCBi ZSB2YWxpZCBpbgogICAgIG15IHVuZGVyc3RhbmRpbmcpLgoKLS0tIGEveGVuL2FyY2gveDg2L2ly cS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYwpAQCAtMjQyLDYgKzI0MiwyMCBAQCB2b2lkIGRl c3Ryb3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAgICAgeGZyZWUoYWN0aW9uKTsKIH0KIAorc3Rh dGljIHZvaWQgcmVsZWFzZV9vbGRfdmVjKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKK3sKKyAgICB1 bnNpZ25lZCBpbnQgdmVjdG9yID0gZGVzYy0+YXJjaC5vbGRfdmVjdG9yOworCisgICAgZGVzYy0+ YXJjaC5vbGRfdmVjdG9yID0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVEOworICAgIGNwdW1hc2tfY2xl YXIoZGVzYy0+YXJjaC5vbGRfY3B1X21hc2spOworCisgICAgaWYgKCBkZXNjLT5hcmNoLnVzZWRf dmVjdG9ycyApCisgICAgeworICAgICAgICBBU1NFUlQodGVzdF9iaXQodmVjdG9yLCBkZXNjLT5h cmNoLnVzZWRfdmVjdG9ycykpOworICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNjLT5hcmNo LnVzZWRfdmVjdG9ycyk7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCBfX2NsZWFyX2lycV92ZWN0 b3IoaW50IGlycSkKIHsKICAgICBpbnQgY3B1LCB2ZWN0b3IsIG9sZF92ZWN0b3I7CkBAIC0yODUs MTQgKzI5OSw3IEBAIHN0YXRpYyB2b2lkIF9fY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQogICAg ICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rvcl0gPSB+aXJxOwogICAgIH0K IAotICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJR05FRDsKLSAg ICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKLQotICAgIGlmICggZGVz Yy0+YXJjaC51c2VkX3ZlY3RvcnMgKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHRlc3RfYml0KG9s ZF92ZWN0b3IsIGRlc2MtPmFyY2gudXNlZF92ZWN0b3JzKSk7Ci0gICAgICAgIGNsZWFyX2JpdChv bGRfdmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0gICAgfQorICAgIHJlbGVhc2Vf b2xkX3ZlYyhkZXNjKTsKIAogICAgIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyA9IDA7CiB9 CkBAIC01MTcsMTIgKzUyNCwyMSBAQCBuZXh0OgogICAgICAgICAvKiBGb3VuZCBvbmUhICovCiAg ICAgICAgIGN1cnJlbnRfdmVjdG9yID0gdmVjdG9yOwogICAgICAgICBjdXJyZW50X29mZnNldCA9 IG9mZnNldDsKLSAgICAgICAgaWYgKG9sZF92ZWN0b3IgPiAwKSB7Ci0gICAgICAgICAgICBkZXNj LT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgPSAxOwotICAgICAgICAgICAgY3B1bWFza19jb3B5KGRl c2MtPmFyY2gub2xkX2NwdV9tYXNrLCBkZXNjLT5hcmNoLmNwdV9tYXNrKTsKKworICAgICAgICBp ZiAoIG9sZF92ZWN0b3IgPiAwICkKKyAgICAgICAgeworICAgICAgICAgICAgY3B1bWFza19hbmQo ZGVzYy0+YXJjaC5vbGRfY3B1X21hc2ssIGRlc2MtPmFyY2guY3B1X21hc2ssCisgICAgICAgICAg ICAgICAgICAgICAgICAmY3B1X29ubGluZV9tYXApOwogICAgICAgICAgICAgZGVzYy0+YXJjaC5v bGRfdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7CisgICAgICAgICAgICBpZiAoICFjcHVtYXNr X2VtcHR5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKSApCisgICAgICAgICAgICAgICAgZGVzYy0+ YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg ICAgICAvKiBUaGlzIGNhbiBoYXBwZW4gd2hpbGUgb2ZmbGluaW5nIGEgQ1BVLiAqLworICAgICAg ICAgICAgICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKICAgICAgICAgfQorCiAgICAgICAgIHRy YWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQVNTSUdOX1ZFQ1RPUiwgaXJxLCB2ZWN0b3IsICZ0bXBf bWFzayk7CisKICAgICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUsICZ0bXBfbWFzaykKICAgICAg ICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgbmV3X2NwdSlbdmVjdG9yXSA9IGlycTsKICAgICAg ICAgZGVzYy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7CkBAIC02OTEsMTQgKzcwNyw4IEBAIHZvaWQg aXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQoc3RydWN0IGMKIAogICAgICAgICBpZiAoIGRlc2Mt PmFyY2gubW92ZV9jbGVhbnVwX2NvdW50ID09IDAgKQogICAgICAgICB7Ci0gICAgICAgICAgICBk ZXNjLT5hcmNoLm9sZF92ZWN0b3IgPSBJUlFfVkVDVE9SX1VOQVNTSUdORUQ7Ci0gICAgICAgICAg ICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKLQotICAgICAgICAgICAg aWYgKCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgQVNTRVJUKHRlc3RfYml0KHZlY3RvciwgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMpKTsK LSAgICAgICAgICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9y cyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQodmVjdG9yID09IGRlc2MtPmFy Y2gub2xkX3ZlY3Rvcik7CisgICAgICAgICAgICByZWxlYXNlX29sZF92ZWMoZGVzYyk7CiAgICAg ICAgIH0KIHVubG9jazoKICAgICAgICAgc3Bpbl91bmxvY2soJmRlc2MtPmxvY2spOwpAQCAtMjM5 MSw2ICsyNDAxLDI0IEBAIHZvaWQgZml4dXBfaXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIK ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKKyAgICAgICAgLyoKKyAgICAgICAg ICogSW4gb3JkZXIgZm9yIHRoZSBhZmZpbml0eSBhZGp1c3RtZW50IGJlbG93IHRvIGJlIHN1Y2Nl c3NmdWwsIHdlCisgICAgICAgICAqIG5lZWQgX19hc3NpZ25faXJxX3ZlY3RvcigpIHRvIHN1Y2Nl ZWQuIFRoaXMgaW4gcGFydGljdWxhciBtZWFucworICAgICAgICAgKiBjbGVhcmluZyBkZXNjLT5h cmNoLm1vdmVfaW5fcHJvZ3Jlc3MgaWYgdGhpcyB3b3VsZCBvdGhlcndpc2UKKyAgICAgICAgICog cHJldmVudCB0aGUgZnVuY3Rpb24gZnJvbSBzdWNjZWVkaW5nLiBTaW5jZSB0aGVyZSdzIG5vIHdh eSBmb3IgdGhlCisgICAgICAgICAqIGZsYWcgdG8gZ2V0IGNsZWFyZWQgYW55bW9yZSB3aGVuIHRo ZXJlJ3Mgbm8gcG9zc2libGUgZGVzdGluYXRpb24KKyAgICAgICAgICogbGVmdCAodGhlIG9ubHkg cG9zc2liaWxpdHkgdGhlbiB3b3VsZCBiZSB0aGUgSVJRcyBlbmFibGVkIHdpbmRvdworICAgICAg ICAgKiBhZnRlciB0aGlzIGxvb3ApLCB0aGVyZSdzIHRoZW4gYWxzbyBubyByYWNlIHdpdGggdXMg ZG9pbmcgaXQgaGVyZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBsb2dp YyBoZXJlIGFuZCB0aGVyZSBuZWVkIHRvIHJlbWFpbiBpbiBzeW5jLgorICAgICAgICAgKi8KKyAg ICAgICAgaWYgKCBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgJiYKKyAgICAgICAgICAgICAh Y3B1bWFza19pbnRlcnNlY3RzKG1hc2ssIGRlc2MtPmFyY2guY3B1X21hc2spICkKKyAgICAgICAg eworICAgICAgICAgICAgcmVsZWFzZV9vbGRfdmVjKGRlc2MpOworICAgICAgICAgICAgZGVzYy0+ YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMDsKKyAgICAgICAgfQorCiAgICAgICAgIGNwdW1hc2tf YW5kKCZhZmZpbml0eSwgJmFmZmluaXR5LCBtYXNrKTsKICAgICAgICAgaWYgKCBjcHVtYXNrX2Vt cHR5KCZhZmZpbml0eSkgKQogICAgICAgICB7CkBAIC0yNDA5LDE1ICsyNDM3LDE4IEBAIHZvaWQg Zml4dXBfaXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIKICAgICAgICAgaWYgKCBkZXNjLT5o YW5kbGVyLT5lbmFibGUgKQogICAgICAgICAgICAgZGVzYy0+aGFuZGxlci0+ZW5hYmxlKGRlc2Mp OwogCisgICAgICAgIGNwdW1hc2tfY29weSgmYWZmaW5pdHksIGRlc2MtPmFmZmluaXR5KTsKKwog ICAgICAgICBzcGluX3VubG9jaygmZGVzYy0+bG9jayk7CiAKICAgICAgICAgaWYgKCAhdmVyYm9z ZSApCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIGJyZWFrX2FmZmluaXR5 ICYmIHNldF9hZmZpbml0eSApCi0gICAgICAgICAgICBwcmludGsoIkJyb2tlIGFmZmluaXR5IGZv ciBpcnEgJWlcbiIsIGlycSk7Ci0gICAgICAgIGVsc2UgaWYgKCAhc2V0X2FmZmluaXR5ICkKLSAg ICAgICAgICAgIHByaW50aygiQ2Fubm90IHNldCBhZmZpbml0eSBmb3IgaXJxICVpXG4iLCBpcnEp OworICAgICAgICBpZiAoICFzZXRfYWZmaW5pdHkgKQorICAgICAgICAgICAgcHJpbnRrKCJDYW5u b3Qgc2V0IGFmZmluaXR5IGZvciBJUlEldVxuIiwgaXJxKTsKKyAgICAgICAgZWxzZSBpZiAoIGJy ZWFrX2FmZmluaXR5ICkKKyAgICAgICAgICAgIHByaW50aygiQnJva2UgYWZmaW5pdHkgZm9yIElS USV1LCBuZXc6ICUqcGJcbiIsCisgICAgICAgICAgICAgICAgICAgaXJxLCBucl9jcHVfaWRzLCAm YWZmaW5pdHkpOwogICAgIH0KIAogICAgIC8qIFRoYXQgZG9lc24ndCBzZWVtIHN1ZmZpY2llbnQu ICBHaXZlIGl0IDFtcy4gKi8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnBy b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94 ZW4tZGV2ZWw= 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 A8601C43219 for ; Mon, 29 Apr 2019 11:23:30 +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 6DF0B2084B for ; Mon, 29 Apr 2019 11:23:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6DF0B2084B 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 1hL4NF-0007mM-4q; Mon, 29 Apr 2019 11:23:05 +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 1hL4ND-0007mH-IA for xen-devel@lists.xenproject.org; Mon, 29 Apr 2019 11:23:03 +0000 X-Inumbo-ID: 25474eec-6a71-11e9-9fd0-0721d75f5957 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 25474eec-6a71-11e9-9fd0-0721d75f5957; Mon, 29 Apr 2019 11:23:00 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Mon, 29 Apr 2019 05:22:59 -0600 Message-Id: <5CC6DE8F0200007800229E9A@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Mon, 29 Apr 2019 05:22:55 -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 RFC 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 , 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: <20190429112255.eLY93eMVAQNOg0k12-p9JmIeGVSDqVYSYDiOC2VfMwE@z> VGhlIGZsYWcgYmVpbmcgc2V0IG1heSBwcmV2ZW50IGFmZmluaXR5IGNoYW5nZXMsIGFzIHRoZXNl IG9mdGVuIGltcGx5CmFzc2lnbm1lbnQgb2YgYSBuZXcgdmVjdG9yLiBXaGVuIHRoZXJlJ3Mgbm8g cG9zc2libGUgZGVzdGluYXRpb24gbGVmdApmb3IgdGhlIElSUSwgdGhlIGNsZWFyaW5nIG9mIHRo ZSBmbGFnIG5lZWRzIHRvIGhhcHBlbiByaWdodCBmcm9tCmZpeHVwX2lycXMoKS4KCkFkZGl0aW9u YWxseSBfYXNzaWduX2lycV92ZWN0b3IoKSBuZWVkcyB0byBhdm9pZCBzZXR0aW5nIHRoZSBmbGFn IHdoZW4KdGhlcmUncyBubyBvbmxpbmUgQ1BVIGxlZnQgaW4gd2hhdCBnZXRzIHB1dCBpbnRvIC0+ YXJjaC5vbGRfY3B1X21hc2suClRoZSBvbGQgdmVjdG9yIGNhbiBiZSByZWxlYXNlZCByaWdodCBh d2F5IGluIHRoaXMgY2FzZS4KCkFsc28gZXh0ZW5kIHRoZSBsb2cgbWVzc2FnZSBhYm91dCBicm9r ZW4gYWZmaW5pdHkgdG8gaW5jbHVkZSB0aGUgbmV3CmFmZmluaXR5IGFzIHdlbGwsIGFsbG93aW5n IHRvIG5vdGljZSBpc3N1ZXMgd2l0aCBhZmZpbml0eSBjaGFuZ2VzIG5vdAphY3R1YWxseSBoYXZp bmcgdGFrZW4gcGxhY2UuIFN3YXAgdGhlIGlmL2Vsc2UtaWYgb3JkZXIgdGhlcmUgYXQgdGhlCnNh bWUgdGltZSB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBjb25kaXRpb25zIGNoZWNrZWQuCgpBdCB0 aGUgc2FtZSB0aW1lIHJlcGxhY2UgdHdvIG9wZW4gY29kZWQgaW5zdGFuY2VzIG9mIHRoZSBuZXcg aGVscGVyCmZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgotLS0KUkZDOiBJJ3ZlIHNlZW4gdGhlIG5ldyBBU1NFUlQoKSBpbiBpcnFfbW92ZV9j bGVhbnVwX2ludGVycnVwdCgpIHRyaWdnZXIuCiAgICAgSSdtIHByZXR0eSBzdXJlIHRoYXQgdGhp cyBhc3NlcnRpb24gdHJpZ2dlcmluZyBtZWFucyBzb21ldGhpbmcgZWxzZQogICAgIGlzIHdyb25n LCBhbmQgaGFzIGJlZW4gZXZlbiBwcmlvciB0byB0aGlzIGNoYW5nZSAoYWRkaW5nIHRoZQogICAg IGFzc2VydGlvbiB3aXRob3V0IGFueSBvZiB0aGUgb3RoZXIgY2hhbmdlcyBoZXJlIHNob3VsZCBi ZSB2YWxpZCBpbgogICAgIG15IHVuZGVyc3RhbmRpbmcpLgoKLS0tIGEveGVuL2FyY2gveDg2L2ly cS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYwpAQCAtMjQyLDYgKzI0MiwyMCBAQCB2b2lkIGRl c3Ryb3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAgICAgeGZyZWUoYWN0aW9uKTsKIH0KIAorc3Rh dGljIHZvaWQgcmVsZWFzZV9vbGRfdmVjKHN0cnVjdCBpcnFfZGVzYyAqZGVzYykKK3sKKyAgICB1 bnNpZ25lZCBpbnQgdmVjdG9yID0gZGVzYy0+YXJjaC5vbGRfdmVjdG9yOworCisgICAgZGVzYy0+ YXJjaC5vbGRfdmVjdG9yID0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVEOworICAgIGNwdW1hc2tfY2xl YXIoZGVzYy0+YXJjaC5vbGRfY3B1X21hc2spOworCisgICAgaWYgKCBkZXNjLT5hcmNoLnVzZWRf dmVjdG9ycyApCisgICAgeworICAgICAgICBBU1NFUlQodGVzdF9iaXQodmVjdG9yLCBkZXNjLT5h cmNoLnVzZWRfdmVjdG9ycykpOworICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNjLT5hcmNo LnVzZWRfdmVjdG9ycyk7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCBfX2NsZWFyX2lycV92ZWN0 b3IoaW50IGlycSkKIHsKICAgICBpbnQgY3B1LCB2ZWN0b3IsIG9sZF92ZWN0b3I7CkBAIC0yODUs MTQgKzI5OSw3IEBAIHN0YXRpYyB2b2lkIF9fY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQogICAg ICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rvcl0gPSB+aXJxOwogICAgIH0K IAotICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJR05FRDsKLSAg ICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKLQotICAgIGlmICggZGVz Yy0+YXJjaC51c2VkX3ZlY3RvcnMgKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHRlc3RfYml0KG9s ZF92ZWN0b3IsIGRlc2MtPmFyY2gudXNlZF92ZWN0b3JzKSk7Ci0gICAgICAgIGNsZWFyX2JpdChv bGRfdmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0gICAgfQorICAgIHJlbGVhc2Vf b2xkX3ZlYyhkZXNjKTsKIAogICAgIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyA9IDA7CiB9 CkBAIC01MTcsMTIgKzUyNCwyMSBAQCBuZXh0OgogICAgICAgICAvKiBGb3VuZCBvbmUhICovCiAg ICAgICAgIGN1cnJlbnRfdmVjdG9yID0gdmVjdG9yOwogICAgICAgICBjdXJyZW50X29mZnNldCA9 IG9mZnNldDsKLSAgICAgICAgaWYgKG9sZF92ZWN0b3IgPiAwKSB7Ci0gICAgICAgICAgICBkZXNj LT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgPSAxOwotICAgICAgICAgICAgY3B1bWFza19jb3B5KGRl c2MtPmFyY2gub2xkX2NwdV9tYXNrLCBkZXNjLT5hcmNoLmNwdV9tYXNrKTsKKworICAgICAgICBp ZiAoIG9sZF92ZWN0b3IgPiAwICkKKyAgICAgICAgeworICAgICAgICAgICAgY3B1bWFza19hbmQo ZGVzYy0+YXJjaC5vbGRfY3B1X21hc2ssIGRlc2MtPmFyY2guY3B1X21hc2ssCisgICAgICAgICAg ICAgICAgICAgICAgICAmY3B1X29ubGluZV9tYXApOwogICAgICAgICAgICAgZGVzYy0+YXJjaC5v bGRfdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7CisgICAgICAgICAgICBpZiAoICFjcHVtYXNr X2VtcHR5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKSApCisgICAgICAgICAgICAgICAgZGVzYy0+ YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg ICAgICAvKiBUaGlzIGNhbiBoYXBwZW4gd2hpbGUgb2ZmbGluaW5nIGEgQ1BVLiAqLworICAgICAg ICAgICAgICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKICAgICAgICAgfQorCiAgICAgICAgIHRy YWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQVNTSUdOX1ZFQ1RPUiwgaXJxLCB2ZWN0b3IsICZ0bXBf bWFzayk7CisKICAgICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUsICZ0bXBfbWFzaykKICAgICAg ICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgbmV3X2NwdSlbdmVjdG9yXSA9IGlycTsKICAgICAg ICAgZGVzYy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7CkBAIC02OTEsMTQgKzcwNyw4IEBAIHZvaWQg aXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQoc3RydWN0IGMKIAogICAgICAgICBpZiAoIGRlc2Mt PmFyY2gubW92ZV9jbGVhbnVwX2NvdW50ID09IDAgKQogICAgICAgICB7Ci0gICAgICAgICAgICBk ZXNjLT5hcmNoLm9sZF92ZWN0b3IgPSBJUlFfVkVDVE9SX1VOQVNTSUdORUQ7Ci0gICAgICAgICAg ICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKLQotICAgICAgICAgICAg aWYgKCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgQVNTRVJUKHRlc3RfYml0KHZlY3RvciwgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMpKTsK LSAgICAgICAgICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9y cyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQodmVjdG9yID09IGRlc2MtPmFy Y2gub2xkX3ZlY3Rvcik7CisgICAgICAgICAgICByZWxlYXNlX29sZF92ZWMoZGVzYyk7CiAgICAg ICAgIH0KIHVubG9jazoKICAgICAgICAgc3Bpbl91bmxvY2soJmRlc2MtPmxvY2spOwpAQCAtMjM5 MSw2ICsyNDAxLDI0IEBAIHZvaWQgZml4dXBfaXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIK ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKKyAgICAgICAgLyoKKyAgICAgICAg ICogSW4gb3JkZXIgZm9yIHRoZSBhZmZpbml0eSBhZGp1c3RtZW50IGJlbG93IHRvIGJlIHN1Y2Nl c3NmdWwsIHdlCisgICAgICAgICAqIG5lZWQgX19hc3NpZ25faXJxX3ZlY3RvcigpIHRvIHN1Y2Nl ZWQuIFRoaXMgaW4gcGFydGljdWxhciBtZWFucworICAgICAgICAgKiBjbGVhcmluZyBkZXNjLT5h cmNoLm1vdmVfaW5fcHJvZ3Jlc3MgaWYgdGhpcyB3b3VsZCBvdGhlcndpc2UKKyAgICAgICAgICog cHJldmVudCB0aGUgZnVuY3Rpb24gZnJvbSBzdWNjZWVkaW5nLiBTaW5jZSB0aGVyZSdzIG5vIHdh eSBmb3IgdGhlCisgICAgICAgICAqIGZsYWcgdG8gZ2V0IGNsZWFyZWQgYW55bW9yZSB3aGVuIHRo ZXJlJ3Mgbm8gcG9zc2libGUgZGVzdGluYXRpb24KKyAgICAgICAgICogbGVmdCAodGhlIG9ubHkg cG9zc2liaWxpdHkgdGhlbiB3b3VsZCBiZSB0aGUgSVJRcyBlbmFibGVkIHdpbmRvdworICAgICAg ICAgKiBhZnRlciB0aGlzIGxvb3ApLCB0aGVyZSdzIHRoZW4gYWxzbyBubyByYWNlIHdpdGggdXMg ZG9pbmcgaXQgaGVyZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhlcmVmb3JlIHRoZSBsb2dp YyBoZXJlIGFuZCB0aGVyZSBuZWVkIHRvIHJlbWFpbiBpbiBzeW5jLgorICAgICAgICAgKi8KKyAg ICAgICAgaWYgKCBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgJiYKKyAgICAgICAgICAgICAh Y3B1bWFza19pbnRlcnNlY3RzKG1hc2ssIGRlc2MtPmFyY2guY3B1X21hc2spICkKKyAgICAgICAg eworICAgICAgICAgICAgcmVsZWFzZV9vbGRfdmVjKGRlc2MpOworICAgICAgICAgICAgZGVzYy0+ YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMDsKKyAgICAgICAgfQorCiAgICAgICAgIGNwdW1hc2tf YW5kKCZhZmZpbml0eSwgJmFmZmluaXR5LCBtYXNrKTsKICAgICAgICAgaWYgKCBjcHVtYXNrX2Vt cHR5KCZhZmZpbml0eSkgKQogICAgICAgICB7CkBAIC0yNDA5LDE1ICsyNDM3LDE4IEBAIHZvaWQg Zml4dXBfaXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIKICAgICAgICAgaWYgKCBkZXNjLT5o YW5kbGVyLT5lbmFibGUgKQogICAgICAgICAgICAgZGVzYy0+aGFuZGxlci0+ZW5hYmxlKGRlc2Mp OwogCisgICAgICAgIGNwdW1hc2tfY29weSgmYWZmaW5pdHksIGRlc2MtPmFmZmluaXR5KTsKKwog ICAgICAgICBzcGluX3VubG9jaygmZGVzYy0+bG9jayk7CiAKICAgICAgICAgaWYgKCAhdmVyYm9z ZSApCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIGJyZWFrX2FmZmluaXR5 ICYmIHNldF9hZmZpbml0eSApCi0gICAgICAgICAgICBwcmludGsoIkJyb2tlIGFmZmluaXR5IGZv ciBpcnEgJWlcbiIsIGlycSk7Ci0gICAgICAgIGVsc2UgaWYgKCAhc2V0X2FmZmluaXR5ICkKLSAg ICAgICAgICAgIHByaW50aygiQ2Fubm90IHNldCBhZmZpbml0eSBmb3IgaXJxICVpXG4iLCBpcnEp OworICAgICAgICBpZiAoICFzZXRfYWZmaW5pdHkgKQorICAgICAgICAgICAgcHJpbnRrKCJDYW5u b3Qgc2V0IGFmZmluaXR5IGZvciBJUlEldVxuIiwgaXJxKTsKKyAgICAgICAgZWxzZSBpZiAoIGJy ZWFrX2FmZmluaXR5ICkKKyAgICAgICAgICAgIHByaW50aygiQnJva2UgYWZmaW5pdHkgZm9yIElS USV1LCBuZXc6ICUqcGJcbiIsCisgICAgICAgICAgICAgICAgICAgaXJxLCBucl9jcHVfaWRzLCAm YWZmaW5pdHkpOwogICAgIH0KIAogICAgIC8qIFRoYXQgZG9lc24ndCBzZWVtIHN1ZmZpY2llbnQu ICBHaXZlIGl0IDFtcy4gKi8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnBy b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94 ZW4tZGV2ZWw=