From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v2 01/12] x86/IRQ: deal with move-in-progress state in fixup_irqs() Date: Wed, 08 May 2019 07:03:09 -0600 Message-ID: <5CD2D38D020000780022CD00@prv1-mh.provo.novell.com> References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> <5CD2D2C8020000780022CCF2@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 1hOME8-00067T-FN for xen-devel@lists.xenproject.org; Wed, 08 May 2019 13:03:16 +0000 In-Reply-To: <5CD2D2C8020000780022CCF2@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 c2UuY29tPgotLS0KdjI6IEFkZC91c2UgdmFsaWRfaXJxX3ZlY3RvcigpLgp2MWI6IEFsc28gdXBk YXRlIHZlY3Rvcl9pcnFbXSBpbiB0aGUgY29kZSBhZGRlZCB0byBmaXh1cF9pcnFzKCkuCgotLS0g YS94ZW4vYXJjaC94ODYvaXJxLmMKKysrIGIveGVuL2FyY2gveDg2L2lycS5jCkBAIC05OSw2ICs5 OSwxMSBAQCB2b2lkIHVubG9ja192ZWN0b3JfbG9jayh2b2lkKQogICAgIHNwaW5fdW5sb2NrKCZ2 ZWN0b3JfbG9jayk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCB2YWxpZF9pcnFfdmVjdG9yKHVu c2lnbmVkIGludCB2ZWN0b3IpCit7CisgICAgcmV0dXJuIHZlY3RvciA+PSBGSVJTVF9EWU5BTUlD X1ZFQ1RPUiAmJiB2ZWN0b3IgPD0gTEFTVF9ISVBSSU9SSVRZX1ZFQ1RPUjsKK30KKwogc3RhdGlj IHZvaWQgdHJhY2VfaXJxX21hc2sodTMyIGV2ZW50LCBpbnQgaXJxLCBpbnQgdmVjdG9yLCBjcHVt YXNrX3QgKm1hc2spCiB7CiAgICAgc3RydWN0IHsKQEAgLTI0Miw2ICsyNDcsMjIgQEAgdm9pZCBk ZXN0cm95X2lycSh1bnNpZ25lZCBpbnQgaXJxKQogICAgIHhmcmVlKGFjdGlvbik7CiB9CiAKK3N0 YXRpYyB2b2lkIHJlbGVhc2Vfb2xkX3ZlYyhzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCit7CisgICAg dW5zaWduZWQgaW50IHZlY3RvciA9IGRlc2MtPmFyY2gub2xkX3ZlY3RvcjsKKworICAgIGRlc2Mt PmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJR05FRDsKKyAgICBjcHVtYXNrX2Ns ZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKKworICAgIGlmICggIXZhbGlkX2lycV92ZWN0 b3IodmVjdG9yKSApCisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgIGVsc2UgaWYg KCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCisgICAgeworICAgICAgICBBU1NFUlQodGVzdF9i aXQodmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycykpOworICAgICAgICBjbGVhcl9iaXQo dmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7CisgICAgfQorfQorCiBzdGF0aWMgdm9p ZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKIHsKICAgICBpbnQgY3B1LCB2ZWN0b3IsIG9s ZF92ZWN0b3I7CkBAIC0yODUsMTQgKzMwNiw3IEBAIHN0YXRpYyB2b2lkIF9fY2xlYXJfaXJxX3Zl Y3RvcihpbnQgaXJxKQogICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rv cl0gPSB+aXJxOwogICAgIH0KIAotICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNU T1JfVU5BU1NJR05FRDsKLSAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKLQotICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQotICAgIHsKLSAgICAgICAg QVNTRVJUKHRlc3RfYml0KG9sZF92ZWN0b3IsIGRlc2MtPmFyY2gudXNlZF92ZWN0b3JzKSk7Ci0g ICAgICAgIGNsZWFyX2JpdChvbGRfdmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0g ICAgfQorICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKIAogICAgIGRlc2MtPmFyY2gubW92ZV9p bl9wcm9ncmVzcyA9IDA7CiB9CkBAIC01MTcsMTIgKzUzMSwyMSBAQCBuZXh0OgogICAgICAgICAv KiBGb3VuZCBvbmUhICovCiAgICAgICAgIGN1cnJlbnRfdmVjdG9yID0gdmVjdG9yOwogICAgICAg ICBjdXJyZW50X29mZnNldCA9IG9mZnNldDsKLSAgICAgICAgaWYgKG9sZF92ZWN0b3IgPiAwKSB7 Ci0gICAgICAgICAgICBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgPSAxOwotICAgICAgICAg ICAgY3B1bWFza19jb3B5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrLCBkZXNjLT5hcmNoLmNwdV9t YXNrKTsKKworICAgICAgICBpZiAoIG9sZF92ZWN0b3IgPiAwICkKKyAgICAgICAgeworICAgICAg ICAgICAgY3B1bWFza19hbmQoZGVzYy0+YXJjaC5vbGRfY3B1X21hc2ssIGRlc2MtPmFyY2guY3B1 X21hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAmY3B1X29ubGluZV9tYXApOwogICAgICAg ICAgICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7CisgICAgICAg ICAgICBpZiAoICFjcHVtYXNrX2VtcHR5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKSApCisgICAg ICAgICAgICAgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMTsKKyAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgICAvKiBUaGlzIGNhbiBoYXBwZW4gd2hpbGUgb2ZmbGluaW5n IGEgQ1BVLiAqLworICAgICAgICAgICAgICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKICAgICAg ICAgfQorCiAgICAgICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQVNTSUdOX1ZFQ1RPUiwg aXJxLCB2ZWN0b3IsICZ0bXBfbWFzayk7CisKICAgICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUs ICZ0bXBfbWFzaykKICAgICAgICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgbmV3X2NwdSlbdmVj dG9yXSA9IGlycTsKICAgICAgICAgZGVzYy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7CkBAIC02OTEs MTQgKzcxNCw4IEBAIHZvaWQgaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQoc3RydWN0IGMKIAog ICAgICAgICBpZiAoIGRlc2MtPmFyY2gubW92ZV9jbGVhbnVwX2NvdW50ID09IDAgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBkZXNjLT5hcmNoLm9sZF92ZWN0b3IgPSBJUlFfVkVDVE9SX1VOQVNT SUdORUQ7Ci0gICAgICAgICAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKLQotICAgICAgICAgICAgaWYgKCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCi0gICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHRlc3RfYml0KHZlY3RvciwgZGVzYy0+YXJj aC51c2VkX3ZlY3RvcnMpKTsKLSAgICAgICAgICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNj LT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQo dmVjdG9yID09IGRlc2MtPmFyY2gub2xkX3ZlY3Rvcik7CisgICAgICAgICAgICByZWxlYXNlX29s ZF92ZWMoZGVzYyk7CiAgICAgICAgIH0KIHVubG9jazoKICAgICAgICAgc3Bpbl91bmxvY2soJmRl c2MtPmxvY2spOwpAQCAtMjM5MSw2ICsyNDA4LDMzIEBAIHZvaWQgZml4dXBfaXJxcyhjb25zdCBj 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 KQogICAgICAgICB7CkBAIC0yNDA5LDE1ICsyNDUzLDE4IEBAIHZvaWQgZml4dXBfaXJxcyhjb25z 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 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 505FBC04A6B for ; Wed, 8 May 2019 13:03: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 28E7F21019 for ; Wed, 8 May 2019 13:03:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 28E7F21019 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 1hOME9-00067Y-J2; Wed, 08 May 2019 13:03:17 +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 1hOME8-00067T-FN for xen-devel@lists.xenproject.org; Wed, 08 May 2019 13:03:16 +0000 X-Inumbo-ID: a335677c-7191-11e9-b7ea-6f9a177fc82f Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id a335677c-7191-11e9-b7ea-6f9a177fc82f; Wed, 08 May 2019 13:03:14 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Wed, 08 May 2019 07:03:13 -0600 Message-Id: <5CD2D38D020000780022CD00@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Wed, 08 May 2019 07:03:09 -0600 From: "Jan Beulich" To: "xen-devel" References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> <5CD2D2C8020000780022CCF2@prv1-mh.provo.novell.com> In-Reply-To: <5CD2D2C8020000780022CCF2@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH v2 01/12] 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: <20190508130309.A1f7_mwZExa0vd6iltm0-An9XYpYZvDENq4N7YpEPZM@z> VGhlIGZsYWcgYmVpbmcgc2V0IG1heSBwcmV2ZW50IGFmZmluaXR5IGNoYW5nZXMsIGFzIHRoZXNl IG9mdGVuIGltcGx5CmFzc2lnbm1lbnQgb2YgYSBuZXcgdmVjdG9yLiBXaGVuIHRoZXJlJ3Mgbm8g cG9zc2libGUgZGVzdGluYXRpb24gbGVmdApmb3IgdGhlIElSUSwgdGhlIGNsZWFyaW5nIG9mIHRo ZSBmbGFnIG5lZWRzIHRvIGhhcHBlbiByaWdodCBmcm9tCmZpeHVwX2lycXMoKS4KCkFkZGl0aW9u YWxseSBfYXNzaWduX2lycV92ZWN0b3IoKSBuZWVkcyB0byBhdm9pZCBzZXR0aW5nIHRoZSBmbGFn IHdoZW4KdGhlcmUncyBubyBvbmxpbmUgQ1BVIGxlZnQgaW4gd2hhdCBnZXRzIHB1dCBpbnRvIC0+ YXJjaC5vbGRfY3B1X21hc2suClRoZSBvbGQgdmVjdG9yIGNhbiBiZSByZWxlYXNlZCByaWdodCBh d2F5IGluIHRoaXMgY2FzZS4KCkFsc28gZXh0ZW5kIHRoZSBsb2cgbWVzc2FnZSBhYm91dCBicm9r ZW4gYWZmaW5pdHkgdG8gaW5jbHVkZSB0aGUgbmV3CmFmZmluaXR5IGFzIHdlbGwsIGFsbG93aW5n IHRvIG5vdGljZSBpc3N1ZXMgd2l0aCBhZmZpbml0eSBjaGFuZ2VzIG5vdAphY3R1YWxseSBoYXZp bmcgdGFrZW4gcGxhY2UuIFN3YXAgdGhlIGlmL2Vsc2UtaWYgb3JkZXIgdGhlcmUgYXQgdGhlCnNh bWUgdGltZSB0byByZWR1Y2UgdGhlIGFtb3VudCBvZiBjb25kaXRpb25zIGNoZWNrZWQuCgpBdCB0 aGUgc2FtZSB0aW1lIHJlcGxhY2UgdHdvIG9wZW4gY29kZWQgaW5zdGFuY2VzIG9mIHRoZSBuZXcg aGVscGVyCmZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgotLS0KdjI6IEFkZC91c2UgdmFsaWRfaXJxX3ZlY3RvcigpLgp2MWI6IEFsc28gdXBk YXRlIHZlY3Rvcl9pcnFbXSBpbiB0aGUgY29kZSBhZGRlZCB0byBmaXh1cF9pcnFzKCkuCgotLS0g YS94ZW4vYXJjaC94ODYvaXJxLmMKKysrIGIveGVuL2FyY2gveDg2L2lycS5jCkBAIC05OSw2ICs5 OSwxMSBAQCB2b2lkIHVubG9ja192ZWN0b3JfbG9jayh2b2lkKQogICAgIHNwaW5fdW5sb2NrKCZ2 ZWN0b3JfbG9jayk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCB2YWxpZF9pcnFfdmVjdG9yKHVu c2lnbmVkIGludCB2ZWN0b3IpCit7CisgICAgcmV0dXJuIHZlY3RvciA+PSBGSVJTVF9EWU5BTUlD X1ZFQ1RPUiAmJiB2ZWN0b3IgPD0gTEFTVF9ISVBSSU9SSVRZX1ZFQ1RPUjsKK30KKwogc3RhdGlj IHZvaWQgdHJhY2VfaXJxX21hc2sodTMyIGV2ZW50LCBpbnQgaXJxLCBpbnQgdmVjdG9yLCBjcHVt YXNrX3QgKm1hc2spCiB7CiAgICAgc3RydWN0IHsKQEAgLTI0Miw2ICsyNDcsMjIgQEAgdm9pZCBk ZXN0cm95X2lycSh1bnNpZ25lZCBpbnQgaXJxKQogICAgIHhmcmVlKGFjdGlvbik7CiB9CiAKK3N0 YXRpYyB2b2lkIHJlbGVhc2Vfb2xkX3ZlYyhzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCit7CisgICAg dW5zaWduZWQgaW50IHZlY3RvciA9IGRlc2MtPmFyY2gub2xkX3ZlY3RvcjsKKworICAgIGRlc2Mt PmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJR05FRDsKKyAgICBjcHVtYXNrX2Ns ZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKTsKKworICAgIGlmICggIXZhbGlkX2lycV92ZWN0 b3IodmVjdG9yKSApCisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgIGVsc2UgaWYg KCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCisgICAgeworICAgICAgICBBU1NFUlQodGVzdF9i aXQodmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycykpOworICAgICAgICBjbGVhcl9iaXQo dmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7CisgICAgfQorfQorCiBzdGF0aWMgdm9p ZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKIHsKICAgICBpbnQgY3B1LCB2ZWN0b3IsIG9s ZF92ZWN0b3I7CkBAIC0yODUsMTQgKzMwNiw3IEBAIHN0YXRpYyB2b2lkIF9fY2xlYXJfaXJxX3Zl Y3RvcihpbnQgaXJxKQogICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rv cl0gPSB+aXJxOwogICAgIH0KIAotICAgIGRlc2MtPmFyY2gub2xkX3ZlY3RvciA9IElSUV9WRUNU T1JfVU5BU1NJR05FRDsKLSAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKLQotICAgIGlmICggZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgKQotICAgIHsKLSAgICAgICAg QVNTRVJUKHRlc3RfYml0KG9sZF92ZWN0b3IsIGRlc2MtPmFyY2gudXNlZF92ZWN0b3JzKSk7Ci0g ICAgICAgIGNsZWFyX2JpdChvbGRfdmVjdG9yLCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0g ICAgfQorICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKIAogICAgIGRlc2MtPmFyY2gubW92ZV9p bl9wcm9ncmVzcyA9IDA7CiB9CkBAIC01MTcsMTIgKzUzMSwyMSBAQCBuZXh0OgogICAgICAgICAv KiBGb3VuZCBvbmUhICovCiAgICAgICAgIGN1cnJlbnRfdmVjdG9yID0gdmVjdG9yOwogICAgICAg ICBjdXJyZW50X29mZnNldCA9IG9mZnNldDsKLSAgICAgICAgaWYgKG9sZF92ZWN0b3IgPiAwKSB7 Ci0gICAgICAgICAgICBkZXNjLT5hcmNoLm1vdmVfaW5fcHJvZ3Jlc3MgPSAxOwotICAgICAgICAg ICAgY3B1bWFza19jb3B5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrLCBkZXNjLT5hcmNoLmNwdV9t YXNrKTsKKworICAgICAgICBpZiAoIG9sZF92ZWN0b3IgPiAwICkKKyAgICAgICAgeworICAgICAg ICAgICAgY3B1bWFza19hbmQoZGVzYy0+YXJjaC5vbGRfY3B1X21hc2ssIGRlc2MtPmFyY2guY3B1 X21hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAmY3B1X29ubGluZV9tYXApOwogICAgICAg ICAgICAgZGVzYy0+YXJjaC5vbGRfdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7CisgICAgICAg ICAgICBpZiAoICFjcHVtYXNrX2VtcHR5KGRlc2MtPmFyY2gub2xkX2NwdV9tYXNrKSApCisgICAg ICAgICAgICAgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMTsKKyAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgICAgICAvKiBUaGlzIGNhbiBoYXBwZW4gd2hpbGUgb2ZmbGluaW5n IGEgQ1BVLiAqLworICAgICAgICAgICAgICAgIHJlbGVhc2Vfb2xkX3ZlYyhkZXNjKTsKICAgICAg ICAgfQorCiAgICAgICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQVNTSUdOX1ZFQ1RPUiwg aXJxLCB2ZWN0b3IsICZ0bXBfbWFzayk7CisKICAgICAgICAgZm9yX2VhY2hfY3B1KG5ld19jcHUs ICZ0bXBfbWFzaykKICAgICAgICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgbmV3X2NwdSlbdmVj dG9yXSA9IGlycTsKICAgICAgICAgZGVzYy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7CkBAIC02OTEs MTQgKzcxNCw4IEBAIHZvaWQgaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHQoc3RydWN0IGMKIAog ICAgICAgICBpZiAoIGRlc2MtPmFyY2gubW92ZV9jbGVhbnVwX2NvdW50ID09IDAgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBkZXNjLT5hcmNoLm9sZF92ZWN0b3IgPSBJUlFfVkVDVE9SX1VOQVNT SUdORUQ7Ci0gICAgICAgICAgICBjcHVtYXNrX2NsZWFyKGRlc2MtPmFyY2gub2xkX2NwdV9tYXNr KTsKLQotICAgICAgICAgICAgaWYgKCBkZXNjLT5hcmNoLnVzZWRfdmVjdG9ycyApCi0gICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHRlc3RfYml0KHZlY3RvciwgZGVzYy0+YXJj aC51c2VkX3ZlY3RvcnMpKTsKLSAgICAgICAgICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNj LT5hcmNoLnVzZWRfdmVjdG9ycyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQo dmVjdG9yID09IGRlc2MtPmFyY2gub2xkX3ZlY3Rvcik7CisgICAgICAgICAgICByZWxlYXNlX29s ZF92ZWMoZGVzYyk7CiAgICAgICAgIH0KIHVubG9jazoKICAgICAgICAgc3Bpbl91bmxvY2soJmRl c2MtPmxvY2spOwpAQCAtMjM5MSw2ICsyNDA4LDMzIEBAIHZvaWQgZml4dXBfaXJxcyhjb25zdCBj 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 KQogICAgICAgICB7CkBAIC0yNDA5LDE1ICsyNDUzLDE4IEBAIHZvaWQgZml4dXBfaXJxcyhjb25z dCBjcHVtYXNrX3QgKm1hc2ssIGIKICAgICAgICAgaWYgKCBkZXNjLT5oYW5kbGVyLT5lbmFibGUg KQogICAgICAgICAgICAgZGVzYy0+aGFuZGxlci0+ZW5hYmxlKGRlc2MpOwogCisgICAgICAgIGNw dW1hc2tfY29weSgmYWZmaW5pdHksIGRlc2MtPmFmZmluaXR5KTsKKwogICAgICAgICBzcGluX3Vu bG9jaygmZGVzYy0+bG9jayk7CiAKICAgICAgICAgaWYgKCAhdmVyYm9zZSApCiAgICAgICAgICAg ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIGJyZWFrX2FmZmluaXR5ICYmIHNldF9hZmZpbml0 eSApCi0gICAgICAgICAgICBwcmludGsoIkJyb2tlIGFmZmluaXR5IGZvciBpcnEgJWlcbiIsIGly cSk7Ci0gICAgICAgIGVsc2UgaWYgKCAhc2V0X2FmZmluaXR5ICkKLSAgICAgICAgICAgIHByaW50 aygiQ2Fubm90IHNldCBhZmZpbml0eSBmb3IgaXJxICVpXG4iLCBpcnEpOworICAgICAgICBpZiAo ICFzZXRfYWZmaW5pdHkgKQorICAgICAgICAgICAgcHJpbnRrKCJDYW5ub3Qgc2V0IGFmZmluaXR5 IGZvciBJUlEldVxuIiwgaXJxKTsKKyAgICAgICAgZWxzZSBpZiAoIGJyZWFrX2FmZmluaXR5ICkK KyAgICAgICAgICAgIHByaW50aygiQnJva2UgYWZmaW5pdHkgZm9yIElSUSV1LCBuZXc6ICUqcGJc biIsCisgICAgICAgICAgICAgICAgICAgaXJxLCBucl9jcHVfaWRzLCAmYWZmaW5pdHkpOwogICAg IH0KIAogICAgIC8qIFRoYXQgZG9lc24ndCBzZWVtIHN1ZmZpY2llbnQuICBHaXZlIGl0IDFtcy4g Ki8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=