From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v3 15/15] x86/IRQ: move {,_}clear_irq_vector() Date: Fri, 17 May 2019 04:53:23 -0600 Message-ID: <5CDE92A302000078002300F9@prv1-mh.provo.novell.com> References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> <5CDE8F5B020000780023005F@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 1hRaUR-00079K-62 for xen-devel@lists.xenproject.org; Fri, 17 May 2019 10:53:27 +0000 In-Reply-To: <5CDE8F5B020000780023005F@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 VGhpcyBpcyBsYXJnZWx5IHRvIGRyb3AgYSBmb3J3YXJkIGRlY2xhcmF0aW9uLiBUaGVyZSdzIG9u ZSBmdW5jdGlvbmFsCmNoYW5nZSAtIGNsZWFyX2lycV92ZWN0b3IoKSBnZXRzIG1hcmtlZCBfX2lu aXQsIGFzIGl0cyBvbmx5IGNhbGxlciBpcwpjaGVja190aW1lcigpLiBCZXlvbmQgdGhpcyBvbmx5 IGEgZmV3IHN0cmF5IGJsYW5rcyBnZXQgcmVtb3ZlZC4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCnYzOiBOZXcuCgotLS0gYS94ZW4vYXJjaC94ODYv aXJxLmMKKysrIGIveGVuL2FyY2gveDg2L2lycS5jCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVk ZSA8cHVibGljL3BoeXNkZXYuaD4KIAogc3RhdGljIGludCBwYXJzZV9pcnFfdmVjdG9yX21hcF9w YXJhbShjb25zdCBjaGFyICpzKTsKLXN0YXRpYyB2b2lkIF9jbGVhcl9pcnFfdmVjdG9yKHN0cnVj dCBpcnFfZGVzYyAqZGVzYyk7CiAKIC8qIG9wdF9ub2lycWJhbGFuY2U6IElmIHRydWUsIHNvZnR3 YXJlIElSUSBiYWxhbmNpbmcvYWZmaW5pdHkgaXMgZGlzYWJsZWQuICovCiBib29sIF9fcmVhZF9t b3N0bHkgb3B0X25vaXJxYmFsYW5jZTsKQEAgLTE5MSw2ICsxOTAsNjcgQEAgaW50IF9faW5pdCBi aW5kX2lycV92ZWN0b3IoaW50IGlycSwgaW50CiAgICAgcmV0dXJuIHJldDsKIH0KIAorc3RhdGlj IHZvaWQgX2NsZWFyX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjKQoreworICAgIHVu c2lnbmVkIGludCBjcHUsIG9sZF92ZWN0b3IsIGlycSA9IGRlc2MtPmlycTsKKyAgICB1bnNpZ25l ZCBpbnQgdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7CisgICAgY3B1bWFza190ICp0bXBfbWFz ayA9IHRoaXNfY3B1KHNjcmF0Y2hfY3B1bWFzayk7CisKKyAgICBCVUdfT04oIXZhbGlkX2lycV92 ZWN0b3IodmVjdG9yKSk7CisKKyAgICAvKiBBbHdheXMgY2xlYXIgZGVzYy0+YXJjaC52ZWN0b3Ig Ki8KKyAgICBjcHVtYXNrX2FuZCh0bXBfbWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzaywgJmNwdV9v bmxpbmVfbWFwKTsKKworICAgIGZvcl9lYWNoX2NwdShjcHUsIHRtcF9tYXNrKQorICAgIHsKKyAg ICAgICAgQVNTRVJUKHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVt2ZWN0b3JdID09IGlycSk7Cisg ICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVt2ZWN0b3JdID0gfmlycTsKKyAgICB9CisK KyAgICBkZXNjLT5hcmNoLnZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJR05FRDsKKyAgICBjcHVt YXNrX2NsZWFyKGRlc2MtPmFyY2guY3B1X21hc2spOworCisgICAgaWYgKCBkZXNjLT5hcmNoLnVz ZWRfdmVjdG9ycyApCisgICAgeworICAgICAgICBBU1NFUlQodGVzdF9iaXQodmVjdG9yLCBkZXNj LT5hcmNoLnVzZWRfdmVjdG9ycykpOworICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNjLT5h cmNoLnVzZWRfdmVjdG9ycyk7CisgICAgfQorCisgICAgZGVzYy0+YXJjaC51c2VkID0gSVJRX1VO VVNFRDsKKworICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQ0xFQVJfVkVDVE9SLCBpcnEs IHZlY3RvciwgdG1wX21hc2spOworCisgICAgaWYgKCBsaWtlbHkoIWRlc2MtPmFyY2gubW92ZV9p bl9wcm9ncmVzcykgKQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBJZiB3ZSB3ZXJlIGluIG1v dGlvbiwgYWxzbyBjbGVhciBkZXNjLT5hcmNoLm9sZF92ZWN0b3IgKi8KKyAgICBvbGRfdmVjdG9y ID0gZGVzYy0+YXJjaC5vbGRfdmVjdG9yOworICAgIGNwdW1hc2tfYW5kKHRtcF9tYXNrLCBkZXNj LT5hcmNoLm9sZF9jcHVfbWFzaywgJmNwdV9vbmxpbmVfbWFwKTsKKworICAgIGZvcl9lYWNoX2Nw dShjcHUsIHRtcF9tYXNrKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHBlcl9jcHUodmVjdG9yX2ly cSwgY3B1KVtvbGRfdmVjdG9yXSA9PSBpcnEpOworICAgICAgICBUUkFDRV8zRChUUkNfSFdfSVJR X01PVkVfRklOSVNILCBpcnEsIG9sZF92ZWN0b3IsIGNwdSk7CisgICAgICAgIHBlcl9jcHUodmVj dG9yX2lycSwgY3B1KVtvbGRfdmVjdG9yXSA9IH5pcnE7CisgICAgfQorCisgICAgcmVsZWFzZV9v bGRfdmVjKGRlc2MpOworCisgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMDsKK30K Kwordm9pZCBfX2luaXQgY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQoreworICAgIHN0cnVjdCBp cnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CisgICAgdW5zaWduZWQgbG9uZyBmbGFn czsKKworICAgIHNwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAgc3Bp bl9sb2NrKCZ2ZWN0b3JfbG9jayk7CisgICAgX2NsZWFyX2lycV92ZWN0b3IoZGVzYyk7CisgICAg c3Bpbl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZk ZXNjLT5sb2NrLCBmbGFncyk7Cit9CisKIC8qCiAgKiBEeW5hbWljIGlycSBhbGxvY2F0ZSBhbmQg ZGVhbGxvY2F0aW9uIGZvciBNU0kKICAqLwpAQCAtMjgxLDY3ICszNDEsNiBAQCB2b2lkIGRlc3Ry b3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAgICAgeGZyZWUoYWN0aW9uKTsKIH0KIAotc3RhdGlj IHZvaWQgX2NsZWFyX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjKQotewotICAgIHVu c2lnbmVkIGludCBjcHUsIG9sZF92ZWN0b3IsIGlycSA9IGRlc2MtPmlycTsKLSAgICB1bnNpZ25l ZCBpbnQgdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7Ci0gICAgY3B1bWFza190ICp0bXBfbWFz ayA9IHRoaXNfY3B1KHNjcmF0Y2hfY3B1bWFzayk7Ci0KLSAgICBCVUdfT04oIXZhbGlkX2lycV92 ZWN0b3IodmVjdG9yKSk7Ci0KLSAgICAvKiBBbHdheXMgY2xlYXIgZGVzYy0+YXJjaC52ZWN0b3Ig Ki8KLSAgICBjcHVtYXNrX2FuZCh0bXBfbWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzaywgJmNwdV9v bmxpbmVfbWFwKTsKLQotICAgIGZvcl9lYWNoX2NwdShjcHUsIHRtcF9tYXNrKQotICAgIHsKLSAg ICAgICAgQVNTRVJUKCBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbdmVjdG9yXSA9PSBpcnEgKTsK LSAgICAgICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW3ZlY3Rvcl0gPSB+aXJxOwotICAgIH0K LQotICAgIGRlc2MtPmFyY2gudmVjdG9yID0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVEOwotICAgIGNw dW1hc2tfY2xlYXIoZGVzYy0+YXJjaC5jcHVfbWFzayk7Ci0KLSAgICBpZiAoIGRlc2MtPmFyY2gu dXNlZF92ZWN0b3JzICkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCh0ZXN0X2JpdCh2ZWN0b3IsIGRl c2MtPmFyY2gudXNlZF92ZWN0b3JzKSk7Ci0gICAgICAgIGNsZWFyX2JpdCh2ZWN0b3IsIGRlc2Mt PmFyY2gudXNlZF92ZWN0b3JzKTsKLSAgICB9Ci0KLSAgICBkZXNjLT5hcmNoLnVzZWQgPSBJUlFf VU5VU0VEOwotCi0gICAgdHJhY2VfaXJxX21hc2soVFJDX0hXX0lSUV9DTEVBUl9WRUNUT1IsIGly cSwgdmVjdG9yLCB0bXBfbWFzayk7Ci0KLSAgICBpZiAoIGxpa2VseSghZGVzYy0+YXJjaC5tb3Zl X2luX3Byb2dyZXNzKSApCi0gICAgICAgIHJldHVybjsKLQotICAgIC8qIElmIHdlIHdlcmUgaW4g bW90aW9uLCBhbHNvIGNsZWFyIGRlc2MtPmFyY2gub2xkX3ZlY3RvciAqLwotICAgIG9sZF92ZWN0 b3IgPSBkZXNjLT5hcmNoLm9sZF92ZWN0b3I7Ci0gICAgY3B1bWFza19hbmQodG1wX21hc2ssIGRl c2MtPmFyY2gub2xkX2NwdV9tYXNrLCAmY3B1X29ubGluZV9tYXApOwotCi0gICAgZm9yX2VhY2hf Y3B1KGNwdSwgdG1wX21hc2spCi0gICAgewotICAgICAgICBBU1NFUlQoIHBlcl9jcHUodmVjdG9y X2lycSwgY3B1KVtvbGRfdmVjdG9yXSA9PSBpcnEgKTsKLSAgICAgICAgVFJBQ0VfM0QoVFJDX0hX X0lSUV9NT1ZFX0ZJTklTSCwgaXJxLCBvbGRfdmVjdG9yLCBjcHUpOwotICAgICAgICBwZXJfY3B1 KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rvcl0gPSB+aXJxOwotICAgIH0KLQotICAgIHJlbGVh c2Vfb2xkX3ZlYyhkZXNjKTsKLQotICAgIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyA9IDA7 Ci19Ci0KLXZvaWQgY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQotewotICAgIHN0cnVjdCBpcnFf ZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7Ci0gICAgdW5zaWduZWQgbG9uZyBmbGFnczsK LQotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7Ci0gICAgc3Bpbl9s b2NrKCZ2ZWN0b3JfbG9jayk7Ci0gICAgX2NsZWFyX2lycV92ZWN0b3IoZGVzYyk7Ci0gICAgc3Bp bl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNj LT5sb2NrLCBmbGFncyk7Ci19Ci0KIGludCBpcnFfdG9fdmVjdG9yKGludCBpcnEpCiB7CiAgICAg aW50IHZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJR05FRDsKCgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw= 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 B4EADC04AB4 for ; Fri, 17 May 2019 10:53:38 +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 8E09D20848 for ; Fri, 17 May 2019 10:53:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8E09D20848 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 1hRaUS-00079f-MZ; Fri, 17 May 2019 10:53:28 +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 1hRaUR-00079K-62 for xen-devel@lists.xenproject.org; Fri, 17 May 2019 10:53:27 +0000 X-Inumbo-ID: fd992ce2-7891-11e9-bb02-53d9015f7d8a Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id fd992ce2-7891-11e9-bb02-53d9015f7d8a; Fri, 17 May 2019 10:53:23 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Fri, 17 May 2019 04:53:22 -0600 Message-Id: <5CDE92A302000078002300F9@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Fri, 17 May 2019 04:53:23 -0600 From: "Jan Beulich" To: "xen-devel" References: <5CC6DD090200007800229E80@prv1-mh.provo.novell.com> <5CDE8F5B020000780023005F@prv1-mh.provo.novell.com> In-Reply-To: <5CDE8F5B020000780023005F@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH v3 15/15] x86/IRQ: move {,_}clear_irq_vector() 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: <20190517105323.8BxSAOtW9mfhVQwgGl9TX4JBAve5cmSycf4XcepKeZM@z> VGhpcyBpcyBsYXJnZWx5IHRvIGRyb3AgYSBmb3J3YXJkIGRlY2xhcmF0aW9uLiBUaGVyZSdzIG9u ZSBmdW5jdGlvbmFsCmNoYW5nZSAtIGNsZWFyX2lycV92ZWN0b3IoKSBnZXRzIG1hcmtlZCBfX2lu aXQsIGFzIGl0cyBvbmx5IGNhbGxlciBpcwpjaGVja190aW1lcigpLiBCZXlvbmQgdGhpcyBvbmx5 IGEgZmV3IHN0cmF5IGJsYW5rcyBnZXQgcmVtb3ZlZC4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCnYzOiBOZXcuCgotLS0gYS94ZW4vYXJjaC94ODYv aXJxLmMKKysrIGIveGVuL2FyY2gveDg2L2lycS5jCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVk ZSA8cHVibGljL3BoeXNkZXYuaD4KIAogc3RhdGljIGludCBwYXJzZV9pcnFfdmVjdG9yX21hcF9w YXJhbShjb25zdCBjaGFyICpzKTsKLXN0YXRpYyB2b2lkIF9jbGVhcl9pcnFfdmVjdG9yKHN0cnVj dCBpcnFfZGVzYyAqZGVzYyk7CiAKIC8qIG9wdF9ub2lycWJhbGFuY2U6IElmIHRydWUsIHNvZnR3 YXJlIElSUSBiYWxhbmNpbmcvYWZmaW5pdHkgaXMgZGlzYWJsZWQuICovCiBib29sIF9fcmVhZF9t b3N0bHkgb3B0X25vaXJxYmFsYW5jZTsKQEAgLTE5MSw2ICsxOTAsNjcgQEAgaW50IF9faW5pdCBi aW5kX2lycV92ZWN0b3IoaW50IGlycSwgaW50CiAgICAgcmV0dXJuIHJldDsKIH0KIAorc3RhdGlj IHZvaWQgX2NsZWFyX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjKQoreworICAgIHVu c2lnbmVkIGludCBjcHUsIG9sZF92ZWN0b3IsIGlycSA9IGRlc2MtPmlycTsKKyAgICB1bnNpZ25l ZCBpbnQgdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7CisgICAgY3B1bWFza190ICp0bXBfbWFz ayA9IHRoaXNfY3B1KHNjcmF0Y2hfY3B1bWFzayk7CisKKyAgICBCVUdfT04oIXZhbGlkX2lycV92 ZWN0b3IodmVjdG9yKSk7CisKKyAgICAvKiBBbHdheXMgY2xlYXIgZGVzYy0+YXJjaC52ZWN0b3Ig Ki8KKyAgICBjcHVtYXNrX2FuZCh0bXBfbWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzaywgJmNwdV9v bmxpbmVfbWFwKTsKKworICAgIGZvcl9lYWNoX2NwdShjcHUsIHRtcF9tYXNrKQorICAgIHsKKyAg ICAgICAgQVNTRVJUKHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVt2ZWN0b3JdID09IGlycSk7Cisg ICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVt2ZWN0b3JdID0gfmlycTsKKyAgICB9CisK KyAgICBkZXNjLT5hcmNoLnZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJR05FRDsKKyAgICBjcHVt YXNrX2NsZWFyKGRlc2MtPmFyY2guY3B1X21hc2spOworCisgICAgaWYgKCBkZXNjLT5hcmNoLnVz ZWRfdmVjdG9ycyApCisgICAgeworICAgICAgICBBU1NFUlQodGVzdF9iaXQodmVjdG9yLCBkZXNj LT5hcmNoLnVzZWRfdmVjdG9ycykpOworICAgICAgICBjbGVhcl9iaXQodmVjdG9yLCBkZXNjLT5h cmNoLnVzZWRfdmVjdG9ycyk7CisgICAgfQorCisgICAgZGVzYy0+YXJjaC51c2VkID0gSVJRX1VO VVNFRDsKKworICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQ0xFQVJfVkVDVE9SLCBpcnEs IHZlY3RvciwgdG1wX21hc2spOworCisgICAgaWYgKCBsaWtlbHkoIWRlc2MtPmFyY2gubW92ZV9p bl9wcm9ncmVzcykgKQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBJZiB3ZSB3ZXJlIGluIG1v dGlvbiwgYWxzbyBjbGVhciBkZXNjLT5hcmNoLm9sZF92ZWN0b3IgKi8KKyAgICBvbGRfdmVjdG9y ID0gZGVzYy0+YXJjaC5vbGRfdmVjdG9yOworICAgIGNwdW1hc2tfYW5kKHRtcF9tYXNrLCBkZXNj LT5hcmNoLm9sZF9jcHVfbWFzaywgJmNwdV9vbmxpbmVfbWFwKTsKKworICAgIGZvcl9lYWNoX2Nw dShjcHUsIHRtcF9tYXNrKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHBlcl9jcHUodmVjdG9yX2ly cSwgY3B1KVtvbGRfdmVjdG9yXSA9PSBpcnEpOworICAgICAgICBUUkFDRV8zRChUUkNfSFdfSVJR X01PVkVfRklOSVNILCBpcnEsIG9sZF92ZWN0b3IsIGNwdSk7CisgICAgICAgIHBlcl9jcHUodmVj dG9yX2lycSwgY3B1KVtvbGRfdmVjdG9yXSA9IH5pcnE7CisgICAgfQorCisgICAgcmVsZWFzZV9v bGRfdmVjKGRlc2MpOworCisgICAgZGVzYy0+YXJjaC5tb3ZlX2luX3Byb2dyZXNzID0gMDsKK30K Kwordm9pZCBfX2luaXQgY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQoreworICAgIHN0cnVjdCBp cnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7CisgICAgdW5zaWduZWQgbG9uZyBmbGFn czsKKworICAgIHNwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAgc3Bp bl9sb2NrKCZ2ZWN0b3JfbG9jayk7CisgICAgX2NsZWFyX2lycV92ZWN0b3IoZGVzYyk7CisgICAg c3Bpbl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZk ZXNjLT5sb2NrLCBmbGFncyk7Cit9CisKIC8qCiAgKiBEeW5hbWljIGlycSBhbGxvY2F0ZSBhbmQg ZGVhbGxvY2F0aW9uIGZvciBNU0kKICAqLwpAQCAtMjgxLDY3ICszNDEsNiBAQCB2b2lkIGRlc3Ry b3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAgICAgeGZyZWUoYWN0aW9uKTsKIH0KIAotc3RhdGlj IHZvaWQgX2NsZWFyX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjKQotewotICAgIHVu c2lnbmVkIGludCBjcHUsIG9sZF92ZWN0b3IsIGlycSA9IGRlc2MtPmlycTsKLSAgICB1bnNpZ25l ZCBpbnQgdmVjdG9yID0gZGVzYy0+YXJjaC52ZWN0b3I7Ci0gICAgY3B1bWFza190ICp0bXBfbWFz ayA9IHRoaXNfY3B1KHNjcmF0Y2hfY3B1bWFzayk7Ci0KLSAgICBCVUdfT04oIXZhbGlkX2lycV92 ZWN0b3IodmVjdG9yKSk7Ci0KLSAgICAvKiBBbHdheXMgY2xlYXIgZGVzYy0+YXJjaC52ZWN0b3Ig Ki8KLSAgICBjcHVtYXNrX2FuZCh0bXBfbWFzaywgZGVzYy0+YXJjaC5jcHVfbWFzaywgJmNwdV9v bmxpbmVfbWFwKTsKLQotICAgIGZvcl9lYWNoX2NwdShjcHUsIHRtcF9tYXNrKQotICAgIHsKLSAg ICAgICAgQVNTRVJUKCBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbdmVjdG9yXSA9PSBpcnEgKTsK LSAgICAgICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW3ZlY3Rvcl0gPSB+aXJxOwotICAgIH0K LQotICAgIGRlc2MtPmFyY2gudmVjdG9yID0gSVJRX1ZFQ1RPUl9VTkFTU0lHTkVEOwotICAgIGNw dW1hc2tfY2xlYXIoZGVzYy0+YXJjaC5jcHVfbWFzayk7Ci0KLSAgICBpZiAoIGRlc2MtPmFyY2gu dXNlZF92ZWN0b3JzICkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCh0ZXN0X2JpdCh2ZWN0b3IsIGRl c2MtPmFyY2gudXNlZF92ZWN0b3JzKSk7Ci0gICAgICAgIGNsZWFyX2JpdCh2ZWN0b3IsIGRlc2Mt PmFyY2gudXNlZF92ZWN0b3JzKTsKLSAgICB9Ci0KLSAgICBkZXNjLT5hcmNoLnVzZWQgPSBJUlFf VU5VU0VEOwotCi0gICAgdHJhY2VfaXJxX21hc2soVFJDX0hXX0lSUV9DTEVBUl9WRUNUT1IsIGly cSwgdmVjdG9yLCB0bXBfbWFzayk7Ci0KLSAgICBpZiAoIGxpa2VseSghZGVzYy0+YXJjaC5tb3Zl X2luX3Byb2dyZXNzKSApCi0gICAgICAgIHJldHVybjsKLQotICAgIC8qIElmIHdlIHdlcmUgaW4g bW90aW9uLCBhbHNvIGNsZWFyIGRlc2MtPmFyY2gub2xkX3ZlY3RvciAqLwotICAgIG9sZF92ZWN0 b3IgPSBkZXNjLT5hcmNoLm9sZF92ZWN0b3I7Ci0gICAgY3B1bWFza19hbmQodG1wX21hc2ssIGRl c2MtPmFyY2gub2xkX2NwdV9tYXNrLCAmY3B1X29ubGluZV9tYXApOwotCi0gICAgZm9yX2VhY2hf Y3B1KGNwdSwgdG1wX21hc2spCi0gICAgewotICAgICAgICBBU1NFUlQoIHBlcl9jcHUodmVjdG9y X2lycSwgY3B1KVtvbGRfdmVjdG9yXSA9PSBpcnEgKTsKLSAgICAgICAgVFJBQ0VfM0QoVFJDX0hX X0lSUV9NT1ZFX0ZJTklTSCwgaXJxLCBvbGRfdmVjdG9yLCBjcHUpOwotICAgICAgICBwZXJfY3B1 KHZlY3Rvcl9pcnEsIGNwdSlbb2xkX3ZlY3Rvcl0gPSB+aXJxOwotICAgIH0KLQotICAgIHJlbGVh c2Vfb2xkX3ZlYyhkZXNjKTsKLQotICAgIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyA9IDA7 Ci19Ci0KLXZvaWQgY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQotewotICAgIHN0cnVjdCBpcnFf ZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7Ci0gICAgdW5zaWduZWQgbG9uZyBmbGFnczsK LQotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7Ci0gICAgc3Bpbl9s b2NrKCZ2ZWN0b3JfbG9jayk7Ci0gICAgX2NsZWFyX2lycV92ZWN0b3IoZGVzYyk7Ci0gICAgc3Bp bl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNj LT5sb2NrLCBmbGFncyk7Ci19Ci0KIGludCBpcnFfdG9fdmVjdG9yKGludCBpcnEpCiB7CiAgICAg aW50IHZlY3RvciA9IElSUV9WRUNUT1JfVU5BU1NJR05FRDsKCgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=