From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v2 07/12] x86/IRQ: fix locking around vector management Date: Wed, 08 May 2019 07:10:59 -0600 Message-ID: <5CD2D563020000780022CD40@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 us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hOMLg-0007MH-4f for xen-devel@lists.xenproject.org; Wed, 08 May 2019 13:11:04 +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 QWxsIG9mIF9fe2Fzc2lnbixiaW5kLGNsZWFyfV9pcnFfdmVjdG9yKCkgbWFuaXB1bGF0ZSBzdHJ1 Y3QgaXJxX2Rlc2MKZmllbGRzLCBhbmQgaGVuY2Ugb3VnaHQgdG8gYmUgY2FsbGVkIHdpdGggdGhl IGRlc2NyaXB0b3IgbG9jayBoZWxkIGluCmFkZGl0aW9uIHRvIHZlY3Rvcl9sb2NrLiBUaGlzIGlz IGN1cnJlbnRseSB0aGUgY2FzZSBmb3Igb25seQpzZXRfZGVzY19hZmZpbml0eSgpIChpbiB0aGUg Y29tbW9uIGNhc2UpIGFuZCBkZXN0cm95X2lycSgpLCB3aGljaCBhbHNvCmNsYXJpZmllcyB3aGF0 IHRoZSBuZXN0aW5nIGJlaGF2aW9yIGJldHdlZW4gdGhlIGxvY2tzIGhhcyB0byBiZS4KUmVmbGVj dCB0aGUgbmV3IGV4cGVjdGF0aW9uIGJ5IGhhdmluZyB0aGVzZSBmdW5jdGlvbnMgYWxsIHRha2Ug YQpkZXNjcmlwdG9yIGFzIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGFuIGludGVycnVwdCBudW1iZXIu CgpBbHNvIHRha2UgY2FyZSBvZiB0aGUgdHdvIHNwZWNpYWwgY2FzZXMgb2YgY2FsbHMgdG8gc2V0 X2Rlc2NfYWZmaW5pdHkoKToKc2V0X2lvYXBpY19hZmZpbml0eV9pcnEoKSBhbmQgVlQtZCdzIGRt YV9tc2lfc2V0X2FmZmluaXR5KCkgZ2V0IGNhbGxlZApkaXJlY3RseSBhcyB3ZWxsLCBhbmQgaW4g dGhlc2UgY2FzZXMgdGhlIGRlc2NyaXB0b3IgbG9ja3MgaGFkbid0IGdvdAphY3F1aXJlZCB0aWxs IG5vdy4gRm9yIHNldF9pb2FwaWNfYWZmaW5pdHlfaXJxKCkgdGhpcyBtZWFucyBhY3F1aXJpbmcg LwpyZWxlYXNpbmcgb2YgdGhlIElPLUFQSUMgbG9jayBjYW4gYmUgcGxhaW4gc3Bpbl97LHVufWxv Y2soKSB0aGVuLgoKRHJvcCBvbmUgb2YgdGhlIHR3byBsZWFkaW5nIHVuZGVyc2NvcmVzIGZyb20g YWxsIHRocmVlIGZ1bmN0aW9ucyBhdAp0aGUgc2FtZSB0aW1lLgoKVGhlcmUncyBvbmUgY2FzZSBs ZWZ0IHdoZXJlIGRlc2NyaXB0b3JzIGdldCBtYW5pcHVsYXRlZCB3aXRoIGp1c3QKdmVjdG9yX2xv Y2sgaGVsZDogc2V0dXBfdmVjdG9yX2lycSgpIGFzc3VtZXMgaXRzIGNhbGxlciB0byBhY3F1aXJl CnZlY3Rvcl9sb2NrLCBhbmQgaGVuY2UgY2FuJ3QgaXRzZWxmIGFjcXVpcmUgdGhlIGRlc2NyaXB0 b3IgbG9ja3MgKHdyb25nCmxvY2sgb3JkZXIpLiBJIGRvbid0IGN1cnJlbnRseSBzZWUgaG93IHRv IGFkZHJlc3MgdGhpcy4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KLS0tCnYyOiBBbHNvIGFkanVzdCBzZXRfaW9hcGljX2FmZmluaXR5X2lycSgpIGFuZCBW VC1kJ3MKICAgIGRtYV9tc2lfc2V0X2FmZmluaXR5KCkuCgotLS0gYS94ZW4vYXJjaC94ODYvaW9f YXBpYy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9pb19hcGljLmMKQEAgLTU1MCwxNCArNTUwLDE0IEBA IHN0YXRpYyB2b2lkIGNsZWFyX0lPX0FQSUMgKHZvaWQpCiBzdGF0aWMgdm9pZAogc2V0X2lvYXBp Y19hZmZpbml0eV9pcnEoc3RydWN0IGlycV9kZXNjICpkZXNjLCBjb25zdCBjcHVtYXNrX3QgKm1h c2spCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICB1bnNpZ25lZCBpbnQgZGVzdDsK ICAgICBpbnQgcGluLCBpcnE7CiAgICAgc3RydWN0IGlycV9waW5fbGlzdCAqZW50cnk7CiAKICAg ICBpcnEgPSBkZXNjLT5pcnE7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ss IGZsYWdzKTsKKyAgICBzcGluX2xvY2soJmlvYXBpY19sb2NrKTsKKwogICAgIGRlc3QgPSBzZXRf ZGVzY19hZmZpbml0eShkZXNjLCBtYXNrKTsKICAgICBpZiAoZGVzdCAhPSBCQURfQVBJQ0lEKSB7 CiAgICAgICAgIGlmICggIXgyYXBpY19lbmFibGVkICkKQEAgLTU4MCw4ICs1ODAsOCBAQCBzZXRf aW9hcGljX2FmZmluaXR5X2lycShzdHJ1Y3QgaXJxX2Rlc2MKICAgICAgICAgICAgIGVudHJ5ID0g aXJxXzJfcGluICsgZW50cnktPm5leHQ7CiAgICAgICAgIH0KICAgICB9Ci0gICAgc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAorICAgIHNwaW5fdW5sb2NrKCZp b2FwaWNfbG9jayk7CiB9CiAKIC8qCkBAIC02NzQsMTYgKzY3NCwxOSBAQCB2b2lkIC8qX19pbml0 Ki8gc2V0dXBfaW9hcGljX2Rlc3Qodm9pZCkKICAgICBmb3IgKGlvYXBpYyA9IDA7IGlvYXBpYyA8 IG5yX2lvYXBpY3M7IGlvYXBpYysrKSB7CiAgICAgICAgIGZvciAocGluID0gMDsgcGluIDwgbnJf aW9hcGljX2VudHJpZXNbaW9hcGljXTsgcGluKyspIHsKICAgICAgICAgICAgIHN0cnVjdCBpcnFf ZGVzYyAqZGVzYzsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKICAgICAgICAg ICAgIGlycV9lbnRyeSA9IGZpbmRfaXJxX2VudHJ5KGlvYXBpYywgcGluLCBtcF9JTlQpOwogICAg ICAgICAgICAgaWYgKGlycV9lbnRyeSA9PSAtMSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK ICAgICAgICAgICAgIGlycSA9IHBpbl8yX2lycShpcnFfZW50cnksIGlvYXBpYywgcGluKTsKICAg ICAgICAgICAgIGRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOworCisgICAgICAgICAgICBzcGluX2xv Y2tfaXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogICAgICAgICAgICAgQlVHX09OKCFjcHVt YXNrX2ludGVyc2VjdHMoZGVzYy0+YXJjaC5jcHVfbWFzaywgJmNwdV9vbmxpbmVfbWFwKSk7CiAg ICAgICAgICAgICBzZXRfaW9hcGljX2FmZmluaXR5X2lycShkZXNjLCBkZXNjLT5hcmNoLmNwdV9t YXNrKTsKKyAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZs YWdzKTsKICAgICAgICAgfQotCiAgICAgfQogfQogCi0tLSBhL3hlbi9hcmNoL3g4Ni9pcnEuYwor KysgYi94ZW4vYXJjaC94ODYvaXJxLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxwdWJs aWMvcGh5c2Rldi5oPgogCiBzdGF0aWMgaW50IHBhcnNlX2lycV92ZWN0b3JfbWFwX3BhcmFtKGNv bnN0IGNoYXIgKnMpOworc3RhdGljIHZvaWQgX2NsZWFyX2lycV92ZWN0b3Ioc3RydWN0IGlycV9k ZXNjICpkZXNjKTsKIAogLyogb3B0X25vaXJxYmFsYW5jZTogSWYgdHJ1ZSwgc29mdHdhcmUgSVJR IGJhbGFuY2luZy9hZmZpbml0eSBpcyBkaXNhYmxlZC4gKi8KIGJvb2wgX19yZWFkX21vc3RseSBv cHRfbm9pcnFiYWxhbmNlOwpAQCAtMTIwLDEzICsxMjEsMTIgQEAgc3RhdGljIHZvaWQgdHJhY2Vf aXJxX21hc2sodWludDMyX3QgZXZlbgogICAgIHRyYWNlX3ZhcihldmVudCwgMSwgc2l6ZW9mKGQp LCAmZCk7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IF9fYmluZF9pcnFfdmVjdG9yKGludCBpcnEs IGludCB2ZWN0b3IsIGNvbnN0IGNwdW1hc2tfdCAqY3B1X21hc2spCitzdGF0aWMgaW50IF9faW5p dCBfYmluZF9pcnFfdmVjdG9yKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgaW50IHZlY3RvciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3B1bWFza190ICpjcHVfbWFz aykKIHsKICAgICBjcHVtYXNrX3Qgb25saW5lX21hc2s7CiAgICAgaW50IGNwdTsKLSAgICBzdHJ1 Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOwogCi0gICAgQlVHX09OKCh1bnNp Z25lZClpcnEgPj0gbnJfaXJxcyk7CiAgICAgQlVHX09OKCh1bnNpZ25lZCl2ZWN0b3IgPj0gTlJf VkVDVE9SUyk7CiAKICAgICBjcHVtYXNrX2FuZCgmb25saW5lX21hc2ssIGNwdV9tYXNrLCAmY3B1 X29ubGluZV9tYXApOwpAQCAtMTM3LDkgKzEzNyw5IEBAIHN0YXRpYyBpbnQgX19pbml0IF9fYmlu ZF9pcnFfdmVjdG9yKGludAogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIGRlc2MtPmFyY2gu dmVjdG9yICE9IElSUV9WRUNUT1JfVU5BU1NJR05FRCApCiAgICAgICAgIHJldHVybiAtRUJVU1k7 Ci0gICAgdHJhY2VfaXJxX21hc2soVFJDX0hXX0lSUV9CSU5EX1ZFQ1RPUiwgaXJxLCB2ZWN0b3Is ICZvbmxpbmVfbWFzayk7CisgICAgdHJhY2VfaXJxX21hc2soVFJDX0hXX0lSUV9CSU5EX1ZFQ1RP UiwgZGVzYy0+aXJxLCB2ZWN0b3IsICZvbmxpbmVfbWFzayk7CiAgICAgZm9yX2VhY2hfY3B1KGNw dSwgJm9ubGluZV9tYXNrKQotICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbdmVjdG9y XSA9IGlycTsKKyAgICAgICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW3ZlY3Rvcl0gPSBkZXNj LT5pcnE7CiAgICAgZGVzYy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7CiAgICAgY3B1bWFza19jb3B5 KGRlc2MtPmFyY2guY3B1X21hc2ssICZvbmxpbmVfbWFzayk7CiAgICAgaWYgKCBkZXNjLT5hcmNo LnVzZWRfdmVjdG9ycyApCkBAIC0xNTMsMTIgKzE1MywxOCBAQCBzdGF0aWMgaW50IF9faW5pdCBf X2JpbmRfaXJxX3ZlY3RvcihpbnQKIAogaW50IF9faW5pdCBiaW5kX2lycV92ZWN0b3IoaW50IGly cSwgaW50IHZlY3RvciwgY29uc3QgY3B1bWFza190ICpjcHVfbWFzaykKIHsKKyAgICBzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOwogICAgIHVuc2lnbmVkIGxvbmcgZmxh Z3M7CiAgICAgaW50IHJldDsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZ2ZWN0b3JfbG9jaywg ZmxhZ3MpOwotICAgIHJldCA9IF9fYmluZF9pcnFfdmVjdG9yKGlycSwgdmVjdG9yLCBjcHVfbWFz ayk7Ci0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKKyAg ICBCVUdfT04oKHVuc2lnbmVkKWlycSA+PSBucl9pcnFzKTsKKworICAgIHNwaW5fbG9ja19pcnFz YXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAgc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9jayk7Cisg ICAgcmV0ID0gX2JpbmRfaXJxX3ZlY3RvcihkZXNjLCB2ZWN0b3IsIGNwdV9tYXNrKTsKKyAgICBz cGluX3VubG9jaygmdmVjdG9yX2xvY2spOworICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRl c2MtPmxvY2ssIGZsYWdzKTsKKwogICAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTI0Myw3ICsyNDks OSBAQCB2b2lkIGRlc3Ryb3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAKICAgICBzcGluX2xvY2tf aXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogICAgIGRlc2MtPmhhbmRsZXIgPSAmbm9faXJx X3R5cGU7Ci0gICAgY2xlYXJfaXJxX3ZlY3RvcihpcnEpOworICAgIHNwaW5fbG9jaygmdmVjdG9y X2xvY2spOworICAgIF9jbGVhcl9pcnFfdmVjdG9yKGRlc2MpOworICAgIHNwaW5fdW5sb2NrKCZ2 ZWN0b3JfbG9jayk7CiAgICAgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgPSBOVUxMOwogICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKIApAQCAtMjY2LDExICsy NzQsMTEgQEAgc3RhdGljIHZvaWQgcmVsZWFzZV9vbGRfdmVjKHN0cnVjdCBpcnFfZAogICAgIH0K IH0KIAotc3RhdGljIHZvaWQgX19jbGVhcl9pcnFfdmVjdG9yKGludCBpcnEpCitzdGF0aWMgdm9p ZCBfY2xlYXJfaXJxX3ZlY3RvcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCiB7Ci0gICAgaW50IGNw dSwgdmVjdG9yLCBvbGRfdmVjdG9yOworICAgIHVuc2lnbmVkIGludCBjcHU7CisgICAgaW50IHZl Y3Rvciwgb2xkX3ZlY3RvciwgaXJxID0gZGVzYy0+aXJxOwogICAgIGNwdW1hc2tfdCB0bXBfbWFz azsKLSAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOwogCiAgICAg QlVHX09OKCFkZXNjLT5hcmNoLnZlY3Rvcik7CiAKQEAgLTMxNiwxMSArMzI0LDE0IEBAIHN0YXRp YyB2b2lkIF9fY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQogCiB2b2lkIGNsZWFyX2lycV92ZWN0 b3IoaW50IGlycSkKIHsKKyAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhp cnEpOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgm dmVjdG9yX2xvY2ssIGZsYWdzKTsKLSAgICBfX2NsZWFyX2lycV92ZWN0b3IoaXJxKTsKLSAgICBz cGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOworICAgIHNwaW5fbG9j a19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAgc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9j ayk7CisgICAgX2NsZWFyX2lycV92ZWN0b3IoZGVzYyk7CisgICAgc3Bpbl91bmxvY2soJnZlY3Rv cl9sb2NrKTsKKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7 CiB9CiAKIGludCBpcnFfdG9fdmVjdG9yKGludCBpcnEpCkBAIC00NTUsOCArNDY2LDcgQEAgc3Rh dGljIHZtYXNrX3QgKmlycV9nZXRfdXNlZF92ZWN0b3JfbWFzawogICAgIHJldHVybiByZXQ7CiB9 CiAKLXN0YXRpYyBpbnQgX19hc3NpZ25faXJxX3ZlY3RvcigKLSAgICBpbnQgaXJxLCBzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MsIGNvbnN0IGNwdW1hc2tfdCAqbWFzaykKK3N0YXRpYyBpbnQgX2Fzc2ln bl9pcnFfdmVjdG9yKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgY29uc3QgY3B1bWFza190ICptYXNr KQogewogICAgIC8qCiAgICAgICogTk9URSEgVGhlIGxvY2FsIEFQSUMgaXNuJ3QgdmVyeSBnb29k IGF0IGhhbmRsaW5nCkBAIC00NzAsNyArNDgwLDggQEAgc3RhdGljIGludCBfX2Fzc2lnbl9pcnFf dmVjdG9yKAogICAgICAqIDB4ODAsIGJlY2F1c2UgaW50IDB4ODAgaXMgaG0sIGtpbmQgb2YgaW1w b3J0YW50aXNoLiA7KQogICAgICAqLwogICAgIHN0YXRpYyBpbnQgY3VycmVudF92ZWN0b3IgPSBG SVJTVF9EWU5BTUlDX1ZFQ1RPUiwgY3VycmVudF9vZmZzZXQgPSAwOwotICAgIGludCBjcHUsIGVy ciwgb2xkX3ZlY3RvcjsKKyAgICB1bnNpZ25lZCBpbnQgY3B1OworICAgIGludCBlcnIsIG9sZF92 ZWN0b3IsIGlycSA9IGRlc2MtPmlycTsKICAgICB2bWFza190ICppcnFfdXNlZF92ZWN0b3JzID0g TlVMTDsKIAogICAgIG9sZF92ZWN0b3IgPSBpcnFfdG9fdmVjdG9yKGlycSk7CkBAIC01ODMsOCAr NTk0LDEyIEBAIGludCBhc3NpZ25faXJxX3ZlY3RvcihpbnQgaXJxLCBjb25zdCBjcHUKICAgICAK ICAgICBCVUdfT04oaXJxID49IG5yX2lycXMgfHwgaXJxIDwwKTsKIAotICAgIHNwaW5fbG9ja19p cnFzYXZlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOwotICAgIHJldCA9IF9fYXNzaWduX2lycV92ZWN0 b3IoaXJxLCBkZXNjLCBtYXNrID86IFRBUkdFVF9DUFVTKTsKKyAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworCisgICAgc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9jayk7Cisg ICAgcmV0ID0gX2Fzc2lnbl9pcnFfdmVjdG9yKGRlc2MsIG1hc2sgPzogVEFSR0VUX0NQVVMpOwor ICAgIHNwaW5fdW5sb2NrKCZ2ZWN0b3JfbG9jayk7CisKICAgICBpZiAoICFyZXQgKQogICAgIHsK ICAgICAgICAgcmV0ID0gZGVzYy0+YXJjaC52ZWN0b3I7CkBAIC01OTMsNyArNjA4LDggQEAgaW50 IGFzc2lnbl9pcnFfdmVjdG9yKGludCBpcnEsIGNvbnN0IGNwdQogICAgICAgICBlbHNlCiAgICAg ICAgICAgICBjcHVtYXNrX3NldGFsbChkZXNjLT5hZmZpbml0eSk7CiAgICAgfQotICAgIHNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7CisKKyAgICBzcGluX3VubG9j a19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7CiAKICAgICByZXR1cm4gcmV0OwogfQpA QCAtNzY3LDcgKzc4Myw2IEBAIHZvaWQgaXJxX2NvbXBsZXRlX21vdmUoc3RydWN0IGlycV9kZXNj ICoKIAogdW5zaWduZWQgaW50IHNldF9kZXNjX2FmZmluaXR5KHN0cnVjdCBpcnFfZGVzYyAqZGVz YywgY29uc3QgY3B1bWFza190ICptYXNrKQogewotICAgIHVuc2lnbmVkIGludCBpcnE7CiAgICAg aW50IHJldDsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIGNwdW1hc2tfdCBkZXN0X21h c2s7CkBAIC03NzUsMTAgKzc5MCw4IEBAIHVuc2lnbmVkIGludCBzZXRfZGVzY19hZmZpbml0eShz dHJ1Y3QgaXIKICAgICBpZiAoIWNwdW1hc2tfaW50ZXJzZWN0cyhtYXNrLCAmY3B1X29ubGluZV9t YXApKQogICAgICAgICByZXR1cm4gQkFEX0FQSUNJRDsKIAotICAgIGlycSA9IGRlc2MtPmlycTsK LQogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOwotICAgIHJldCA9 IF9fYXNzaWduX2lycV92ZWN0b3IoaXJxLCBkZXNjLCBtYXNrKTsKKyAgICByZXQgPSBfYXNzaWdu X2lycV92ZWN0b3IoZGVzYywgbWFzayk7CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmVj dG9yX2xvY2ssIGZsYWdzKTsKIAogICAgIGlmIChyZXQgPCAwKQotLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYwpAQCAtMjEzNCwxMSArMjEzNCwxNiBAQCBzdGF0aWMgdm9pZCBhZGp1c3RfaXJxX2Fm ZmluaXR5KHN0cnVjdCBhCiAgICAgdW5zaWduZWQgaW50IG5vZGUgPSByaHNhID8gcHhtX3RvX25v ZGUocmhzYS0+cHJveGltaXR5X2RvbWFpbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBOVU1BX05PX05PREU7CiAgICAgY29uc3QgY3B1bWFza190ICpjcHVtYXNrID0gJmNwdV9vbmxp bmVfbWFwOworICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYzsKIAogICAgIGlmICggbm9kZSA8IE1B WF9OVU1OT0RFUyAmJiBub2RlX29ubGluZShub2RlKSAmJgogICAgICAgICAgY3B1bWFza19pbnRl cnNlY3RzKCZub2RlX3RvX2NwdW1hc2sobm9kZSksIGNwdW1hc2spICkKICAgICAgICAgY3B1bWFz ayA9ICZub2RlX3RvX2NwdW1hc2sobm9kZSk7Ci0gICAgZG1hX21zaV9zZXRfYWZmaW5pdHkoaXJx X3RvX2Rlc2MoZHJoZC0+aW9tbXUtPm1zaS5pcnEpLCBjcHVtYXNrKTsKKworICAgIGRlc2MgPSBp cnFfdG9fZGVzYyhkcmhkLT5pb21tdS0+bXNpLmlycSk7CisgICAgc3Bpbl9sb2NrX2lycSgmZGVz Yy0+bG9jayk7CisgICAgZG1hX21zaV9zZXRfYWZmaW5pdHkoZGVzYywgY3B1bWFzayk7CisgICAg c3Bpbl91bmxvY2tfaXJxKCZkZXNjLT5sb2NrKTsKIH0KIAogc3RhdGljIGludCBhZGp1c3RfdnRk X2lycV9hZmZpbml0aWVzKHZvaWQpCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs 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=-1.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,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 E17B4C04A6B for ; Wed, 8 May 2019 13:11:16 +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 B1A2520850 for ; Wed, 8 May 2019 13:11:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B1A2520850 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 1hOMLh-0007MP-0C; Wed, 08 May 2019 13:11:05 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hOMLg-0007MH-4f for xen-devel@lists.xenproject.org; Wed, 08 May 2019 13:11:04 +0000 X-Inumbo-ID: ba5f4d38-7192-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 ba5f4d38-7192-11e9-843c-bc764e045a96; Wed, 08 May 2019 13:11:02 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Wed, 08 May 2019 07:11:01 -0600 Message-Id: <5CD2D563020000780022CD40@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Wed, 08 May 2019 07:10:59 -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 07/12] 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: <20190508131059.aIahNoIHAk7JsA-EwpN5Td209snHhk-n-PVwigCt4A4@z> QWxsIG9mIF9fe2Fzc2lnbixiaW5kLGNsZWFyfV9pcnFfdmVjdG9yKCkgbWFuaXB1bGF0ZSBzdHJ1 Y3QgaXJxX2Rlc2MKZmllbGRzLCBhbmQgaGVuY2Ugb3VnaHQgdG8gYmUgY2FsbGVkIHdpdGggdGhl IGRlc2NyaXB0b3IgbG9jayBoZWxkIGluCmFkZGl0aW9uIHRvIHZlY3Rvcl9sb2NrLiBUaGlzIGlz IGN1cnJlbnRseSB0aGUgY2FzZSBmb3Igb25seQpzZXRfZGVzY19hZmZpbml0eSgpIChpbiB0aGUg Y29tbW9uIGNhc2UpIGFuZCBkZXN0cm95X2lycSgpLCB3aGljaCBhbHNvCmNsYXJpZmllcyB3aGF0 IHRoZSBuZXN0aW5nIGJlaGF2aW9yIGJldHdlZW4gdGhlIGxvY2tzIGhhcyB0byBiZS4KUmVmbGVj dCB0aGUgbmV3IGV4cGVjdGF0aW9uIGJ5IGhhdmluZyB0aGVzZSBmdW5jdGlvbnMgYWxsIHRha2Ug YQpkZXNjcmlwdG9yIGFzIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGFuIGludGVycnVwdCBudW1iZXIu CgpBbHNvIHRha2UgY2FyZSBvZiB0aGUgdHdvIHNwZWNpYWwgY2FzZXMgb2YgY2FsbHMgdG8gc2V0 X2Rlc2NfYWZmaW5pdHkoKToKc2V0X2lvYXBpY19hZmZpbml0eV9pcnEoKSBhbmQgVlQtZCdzIGRt YV9tc2lfc2V0X2FmZmluaXR5KCkgZ2V0IGNhbGxlZApkaXJlY3RseSBhcyB3ZWxsLCBhbmQgaW4g dGhlc2UgY2FzZXMgdGhlIGRlc2NyaXB0b3IgbG9ja3MgaGFkbid0IGdvdAphY3F1aXJlZCB0aWxs IG5vdy4gRm9yIHNldF9pb2FwaWNfYWZmaW5pdHlfaXJxKCkgdGhpcyBtZWFucyBhY3F1aXJpbmcg LwpyZWxlYXNpbmcgb2YgdGhlIElPLUFQSUMgbG9jayBjYW4gYmUgcGxhaW4gc3Bpbl97LHVufWxv Y2soKSB0aGVuLgoKRHJvcCBvbmUgb2YgdGhlIHR3byBsZWFkaW5nIHVuZGVyc2NvcmVzIGZyb20g YWxsIHRocmVlIGZ1bmN0aW9ucyBhdAp0aGUgc2FtZSB0aW1lLgoKVGhlcmUncyBvbmUgY2FzZSBs ZWZ0IHdoZXJlIGRlc2NyaXB0b3JzIGdldCBtYW5pcHVsYXRlZCB3aXRoIGp1c3QKdmVjdG9yX2xv Y2sgaGVsZDogc2V0dXBfdmVjdG9yX2lycSgpIGFzc3VtZXMgaXRzIGNhbGxlciB0byBhY3F1aXJl CnZlY3Rvcl9sb2NrLCBhbmQgaGVuY2UgY2FuJ3QgaXRzZWxmIGFjcXVpcmUgdGhlIGRlc2NyaXB0 b3IgbG9ja3MgKHdyb25nCmxvY2sgb3JkZXIpLiBJIGRvbid0IGN1cnJlbnRseSBzZWUgaG93IHRv IGFkZHJlc3MgdGhpcy4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KLS0tCnYyOiBBbHNvIGFkanVzdCBzZXRfaW9hcGljX2FmZmluaXR5X2lycSgpIGFuZCBW VC1kJ3MKICAgIGRtYV9tc2lfc2V0X2FmZmluaXR5KCkuCgotLS0gYS94ZW4vYXJjaC94ODYvaW9f YXBpYy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9pb19hcGljLmMKQEAgLTU1MCwxNCArNTUwLDE0IEBA IHN0YXRpYyB2b2lkIGNsZWFyX0lPX0FQSUMgKHZvaWQpCiBzdGF0aWMgdm9pZAogc2V0X2lvYXBp Y19hZmZpbml0eV9pcnEoc3RydWN0IGlycV9kZXNjICpkZXNjLCBjb25zdCBjcHVtYXNrX3QgKm1h c2spCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICB1bnNpZ25lZCBpbnQgZGVzdDsK ICAgICBpbnQgcGluLCBpcnE7CiAgICAgc3RydWN0IGlycV9waW5fbGlzdCAqZW50cnk7CiAKICAg ICBpcnEgPSBkZXNjLT5pcnE7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ss IGZsYWdzKTsKKyAgICBzcGluX2xvY2soJmlvYXBpY19sb2NrKTsKKwogICAgIGRlc3QgPSBzZXRf ZGVzY19hZmZpbml0eShkZXNjLCBtYXNrKTsKICAgICBpZiAoZGVzdCAhPSBCQURfQVBJQ0lEKSB7 CiAgICAgICAgIGlmICggIXgyYXBpY19lbmFibGVkICkKQEAgLTU4MCw4ICs1ODAsOCBAQCBzZXRf aW9hcGljX2FmZmluaXR5X2lycShzdHJ1Y3QgaXJxX2Rlc2MKICAgICAgICAgICAgIGVudHJ5ID0g aXJxXzJfcGluICsgZW50cnktPm5leHQ7CiAgICAgICAgIH0KICAgICB9Ci0gICAgc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAorICAgIHNwaW5fdW5sb2NrKCZp b2FwaWNfbG9jayk7CiB9CiAKIC8qCkBAIC02NzQsMTYgKzY3NCwxOSBAQCB2b2lkIC8qX19pbml0 Ki8gc2V0dXBfaW9hcGljX2Rlc3Qodm9pZCkKICAgICBmb3IgKGlvYXBpYyA9IDA7IGlvYXBpYyA8 IG5yX2lvYXBpY3M7IGlvYXBpYysrKSB7CiAgICAgICAgIGZvciAocGluID0gMDsgcGluIDwgbnJf aW9hcGljX2VudHJpZXNbaW9hcGljXTsgcGluKyspIHsKICAgICAgICAgICAgIHN0cnVjdCBpcnFf ZGVzYyAqZGVzYzsKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKICAgICAgICAg ICAgIGlycV9lbnRyeSA9IGZpbmRfaXJxX2VudHJ5KGlvYXBpYywgcGluLCBtcF9JTlQpOwogICAg ICAgICAgICAgaWYgKGlycV9lbnRyeSA9PSAtMSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK ICAgICAgICAgICAgIGlycSA9IHBpbl8yX2lycShpcnFfZW50cnksIGlvYXBpYywgcGluKTsKICAg ICAgICAgICAgIGRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOworCisgICAgICAgICAgICBzcGluX2xv Y2tfaXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogICAgICAgICAgICAgQlVHX09OKCFjcHVt YXNrX2ludGVyc2VjdHMoZGVzYy0+YXJjaC5jcHVfbWFzaywgJmNwdV9vbmxpbmVfbWFwKSk7CiAg ICAgICAgICAgICBzZXRfaW9hcGljX2FmZmluaXR5X2lycShkZXNjLCBkZXNjLT5hcmNoLmNwdV9t YXNrKTsKKyAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZs YWdzKTsKICAgICAgICAgfQotCiAgICAgfQogfQogCi0tLSBhL3hlbi9hcmNoL3g4Ni9pcnEuYwor KysgYi94ZW4vYXJjaC94ODYvaXJxLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxwdWJs aWMvcGh5c2Rldi5oPgogCiBzdGF0aWMgaW50IHBhcnNlX2lycV92ZWN0b3JfbWFwX3BhcmFtKGNv bnN0IGNoYXIgKnMpOworc3RhdGljIHZvaWQgX2NsZWFyX2lycV92ZWN0b3Ioc3RydWN0IGlycV9k ZXNjICpkZXNjKTsKIAogLyogb3B0X25vaXJxYmFsYW5jZTogSWYgdHJ1ZSwgc29mdHdhcmUgSVJR IGJhbGFuY2luZy9hZmZpbml0eSBpcyBkaXNhYmxlZC4gKi8KIGJvb2wgX19yZWFkX21vc3RseSBv cHRfbm9pcnFiYWxhbmNlOwpAQCAtMTIwLDEzICsxMjEsMTIgQEAgc3RhdGljIHZvaWQgdHJhY2Vf aXJxX21hc2sodWludDMyX3QgZXZlbgogICAgIHRyYWNlX3ZhcihldmVudCwgMSwgc2l6ZW9mKGQp LCAmZCk7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IF9fYmluZF9pcnFfdmVjdG9yKGludCBpcnEs IGludCB2ZWN0b3IsIGNvbnN0IGNwdW1hc2tfdCAqY3B1X21hc2spCitzdGF0aWMgaW50IF9faW5p dCBfYmluZF9pcnFfdmVjdG9yKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgaW50IHZlY3RvciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3B1bWFza190ICpjcHVfbWFz aykKIHsKICAgICBjcHVtYXNrX3Qgb25saW5lX21hc2s7CiAgICAgaW50IGNwdTsKLSAgICBzdHJ1 Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOwogCi0gICAgQlVHX09OKCh1bnNp Z25lZClpcnEgPj0gbnJfaXJxcyk7CiAgICAgQlVHX09OKCh1bnNpZ25lZCl2ZWN0b3IgPj0gTlJf VkVDVE9SUyk7CiAKICAgICBjcHVtYXNrX2FuZCgmb25saW5lX21hc2ssIGNwdV9tYXNrLCAmY3B1 X29ubGluZV9tYXApOwpAQCAtMTM3LDkgKzEzNyw5IEBAIHN0YXRpYyBpbnQgX19pbml0IF9fYmlu ZF9pcnFfdmVjdG9yKGludAogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIGRlc2MtPmFyY2gu dmVjdG9yICE9IElSUV9WRUNUT1JfVU5BU1NJR05FRCApCiAgICAgICAgIHJldHVybiAtRUJVU1k7 Ci0gICAgdHJhY2VfaXJxX21hc2soVFJDX0hXX0lSUV9CSU5EX1ZFQ1RPUiwgaXJxLCB2ZWN0b3Is ICZvbmxpbmVfbWFzayk7CisgICAgdHJhY2VfaXJxX21hc2soVFJDX0hXX0lSUV9CSU5EX1ZFQ1RP UiwgZGVzYy0+aXJxLCB2ZWN0b3IsICZvbmxpbmVfbWFzayk7CiAgICAgZm9yX2VhY2hfY3B1KGNw dSwgJm9ubGluZV9tYXNrKQotICAgICAgICBwZXJfY3B1KHZlY3Rvcl9pcnEsIGNwdSlbdmVjdG9y XSA9IGlycTsKKyAgICAgICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW3ZlY3Rvcl0gPSBkZXNj LT5pcnE7CiAgICAgZGVzYy0+YXJjaC52ZWN0b3IgPSB2ZWN0b3I7CiAgICAgY3B1bWFza19jb3B5 KGRlc2MtPmFyY2guY3B1X21hc2ssICZvbmxpbmVfbWFzayk7CiAgICAgaWYgKCBkZXNjLT5hcmNo LnVzZWRfdmVjdG9ycyApCkBAIC0xNTMsMTIgKzE1MywxOCBAQCBzdGF0aWMgaW50IF9faW5pdCBf X2JpbmRfaXJxX3ZlY3RvcihpbnQKIAogaW50IF9faW5pdCBiaW5kX2lycV92ZWN0b3IoaW50IGly cSwgaW50IHZlY3RvciwgY29uc3QgY3B1bWFza190ICpjcHVfbWFzaykKIHsKKyAgICBzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOwogICAgIHVuc2lnbmVkIGxvbmcgZmxh Z3M7CiAgICAgaW50IHJldDsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZ2ZWN0b3JfbG9jaywg ZmxhZ3MpOwotICAgIHJldCA9IF9fYmluZF9pcnFfdmVjdG9yKGlycSwgdmVjdG9yLCBjcHVfbWFz ayk7Ci0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKKyAg ICBCVUdfT04oKHVuc2lnbmVkKWlycSA+PSBucl9pcnFzKTsKKworICAgIHNwaW5fbG9ja19pcnFz YXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAgc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9jayk7Cisg ICAgcmV0ID0gX2JpbmRfaXJxX3ZlY3RvcihkZXNjLCB2ZWN0b3IsIGNwdV9tYXNrKTsKKyAgICBz cGluX3VubG9jaygmdmVjdG9yX2xvY2spOworICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRl c2MtPmxvY2ssIGZsYWdzKTsKKwogICAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTI0Myw3ICsyNDks OSBAQCB2b2lkIGRlc3Ryb3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAKICAgICBzcGluX2xvY2tf aXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogICAgIGRlc2MtPmhhbmRsZXIgPSAmbm9faXJx X3R5cGU7Ci0gICAgY2xlYXJfaXJxX3ZlY3RvcihpcnEpOworICAgIHNwaW5fbG9jaygmdmVjdG9y X2xvY2spOworICAgIF9jbGVhcl9pcnFfdmVjdG9yKGRlc2MpOworICAgIHNwaW5fdW5sb2NrKCZ2 ZWN0b3JfbG9jayk7CiAgICAgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgPSBOVUxMOwogICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKIApAQCAtMjY2LDExICsy NzQsMTEgQEAgc3RhdGljIHZvaWQgcmVsZWFzZV9vbGRfdmVjKHN0cnVjdCBpcnFfZAogICAgIH0K IH0KIAotc3RhdGljIHZvaWQgX19jbGVhcl9pcnFfdmVjdG9yKGludCBpcnEpCitzdGF0aWMgdm9p ZCBfY2xlYXJfaXJxX3ZlY3RvcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCiB7Ci0gICAgaW50IGNw dSwgdmVjdG9yLCBvbGRfdmVjdG9yOworICAgIHVuc2lnbmVkIGludCBjcHU7CisgICAgaW50IHZl Y3Rvciwgb2xkX3ZlY3RvciwgaXJxID0gZGVzYy0+aXJxOwogICAgIGNwdW1hc2tfdCB0bXBfbWFz azsKLSAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhpcnEpOwogCiAgICAg QlVHX09OKCFkZXNjLT5hcmNoLnZlY3Rvcik7CiAKQEAgLTMxNiwxMSArMzI0LDE0IEBAIHN0YXRp YyB2b2lkIF9fY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQogCiB2b2lkIGNsZWFyX2lycV92ZWN0 b3IoaW50IGlycSkKIHsKKyAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9fZGVzYyhp cnEpOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgm dmVjdG9yX2xvY2ssIGZsYWdzKTsKLSAgICBfX2NsZWFyX2lycV92ZWN0b3IoaXJxKTsKLSAgICBz cGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOworICAgIHNwaW5fbG9j a19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAgc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9j ayk7CisgICAgX2NsZWFyX2lycV92ZWN0b3IoZGVzYyk7CisgICAgc3Bpbl91bmxvY2soJnZlY3Rv cl9sb2NrKTsKKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7 CiB9CiAKIGludCBpcnFfdG9fdmVjdG9yKGludCBpcnEpCkBAIC00NTUsOCArNDY2LDcgQEAgc3Rh dGljIHZtYXNrX3QgKmlycV9nZXRfdXNlZF92ZWN0b3JfbWFzawogICAgIHJldHVybiByZXQ7CiB9 CiAKLXN0YXRpYyBpbnQgX19hc3NpZ25faXJxX3ZlY3RvcigKLSAgICBpbnQgaXJxLCBzdHJ1Y3Qg aXJxX2Rlc2MgKmRlc2MsIGNvbnN0IGNwdW1hc2tfdCAqbWFzaykKK3N0YXRpYyBpbnQgX2Fzc2ln bl9pcnFfdmVjdG9yKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgY29uc3QgY3B1bWFza190ICptYXNr KQogewogICAgIC8qCiAgICAgICogTk9URSEgVGhlIGxvY2FsIEFQSUMgaXNuJ3QgdmVyeSBnb29k IGF0IGhhbmRsaW5nCkBAIC00NzAsNyArNDgwLDggQEAgc3RhdGljIGludCBfX2Fzc2lnbl9pcnFf dmVjdG9yKAogICAgICAqIDB4ODAsIGJlY2F1c2UgaW50IDB4ODAgaXMgaG0sIGtpbmQgb2YgaW1w b3J0YW50aXNoLiA7KQogICAgICAqLwogICAgIHN0YXRpYyBpbnQgY3VycmVudF92ZWN0b3IgPSBG SVJTVF9EWU5BTUlDX1ZFQ1RPUiwgY3VycmVudF9vZmZzZXQgPSAwOwotICAgIGludCBjcHUsIGVy ciwgb2xkX3ZlY3RvcjsKKyAgICB1bnNpZ25lZCBpbnQgY3B1OworICAgIGludCBlcnIsIG9sZF92 ZWN0b3IsIGlycSA9IGRlc2MtPmlycTsKICAgICB2bWFza190ICppcnFfdXNlZF92ZWN0b3JzID0g TlVMTDsKIAogICAgIG9sZF92ZWN0b3IgPSBpcnFfdG9fdmVjdG9yKGlycSk7CkBAIC01ODMsOCAr NTk0LDEyIEBAIGludCBhc3NpZ25faXJxX3ZlY3RvcihpbnQgaXJxLCBjb25zdCBjcHUKICAgICAK ICAgICBCVUdfT04oaXJxID49IG5yX2lycXMgfHwgaXJxIDwwKTsKIAotICAgIHNwaW5fbG9ja19p cnFzYXZlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOwotICAgIHJldCA9IF9fYXNzaWduX2lycV92ZWN0 b3IoaXJxLCBkZXNjLCBtYXNrID86IFRBUkdFVF9DUFVTKTsKKyAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworCisgICAgc3Bpbl9sb2NrKCZ2ZWN0b3JfbG9jayk7Cisg ICAgcmV0ID0gX2Fzc2lnbl9pcnFfdmVjdG9yKGRlc2MsIG1hc2sgPzogVEFSR0VUX0NQVVMpOwor ICAgIHNwaW5fdW5sb2NrKCZ2ZWN0b3JfbG9jayk7CisKICAgICBpZiAoICFyZXQgKQogICAgIHsK ICAgICAgICAgcmV0ID0gZGVzYy0+YXJjaC52ZWN0b3I7CkBAIC01OTMsNyArNjA4LDggQEAgaW50 IGFzc2lnbl9pcnFfdmVjdG9yKGludCBpcnEsIGNvbnN0IGNwdQogICAgICAgICBlbHNlCiAgICAg ICAgICAgICBjcHVtYXNrX3NldGFsbChkZXNjLT5hZmZpbml0eSk7CiAgICAgfQotICAgIHNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7CisKKyAgICBzcGluX3VubG9j a19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7CiAKICAgICByZXR1cm4gcmV0OwogfQpA QCAtNzY3LDcgKzc4Myw2IEBAIHZvaWQgaXJxX2NvbXBsZXRlX21vdmUoc3RydWN0IGlycV9kZXNj ICoKIAogdW5zaWduZWQgaW50IHNldF9kZXNjX2FmZmluaXR5KHN0cnVjdCBpcnFfZGVzYyAqZGVz YywgY29uc3QgY3B1bWFza190ICptYXNrKQogewotICAgIHVuc2lnbmVkIGludCBpcnE7CiAgICAg aW50IHJldDsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIGNwdW1hc2tfdCBkZXN0X21h c2s7CkBAIC03NzUsMTAgKzc5MCw4IEBAIHVuc2lnbmVkIGludCBzZXRfZGVzY19hZmZpbml0eShz dHJ1Y3QgaXIKICAgICBpZiAoIWNwdW1hc2tfaW50ZXJzZWN0cyhtYXNrLCAmY3B1X29ubGluZV9t YXApKQogICAgICAgICByZXR1cm4gQkFEX0FQSUNJRDsKIAotICAgIGlycSA9IGRlc2MtPmlycTsK LQogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOwotICAgIHJldCA9 IF9fYXNzaWduX2lycV92ZWN0b3IoaXJxLCBkZXNjLCBtYXNrKTsKKyAgICByZXQgPSBfYXNzaWdu X2lycV92ZWN0b3IoZGVzYywgbWFzayk7CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmVj dG9yX2xvY2ssIGZsYWdzKTsKIAogICAgIGlmIChyZXQgPCAwKQotLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYwpAQCAtMjEzNCwxMSArMjEzNCwxNiBAQCBzdGF0aWMgdm9pZCBhZGp1c3RfaXJxX2Fm ZmluaXR5KHN0cnVjdCBhCiAgICAgdW5zaWduZWQgaW50IG5vZGUgPSByaHNhID8gcHhtX3RvX25v ZGUocmhzYS0+cHJveGltaXR5X2RvbWFpbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBOVU1BX05PX05PREU7CiAgICAgY29uc3QgY3B1bWFza190ICpjcHVtYXNrID0gJmNwdV9vbmxp bmVfbWFwOworICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYzsKIAogICAgIGlmICggbm9kZSA8IE1B WF9OVU1OT0RFUyAmJiBub2RlX29ubGluZShub2RlKSAmJgogICAgICAgICAgY3B1bWFza19pbnRl cnNlY3RzKCZub2RlX3RvX2NwdW1hc2sobm9kZSksIGNwdW1hc2spICkKICAgICAgICAgY3B1bWFz ayA9ICZub2RlX3RvX2NwdW1hc2sobm9kZSk7Ci0gICAgZG1hX21zaV9zZXRfYWZmaW5pdHkoaXJx X3RvX2Rlc2MoZHJoZC0+aW9tbXUtPm1zaS5pcnEpLCBjcHVtYXNrKTsKKworICAgIGRlc2MgPSBp cnFfdG9fZGVzYyhkcmhkLT5pb21tdS0+bXNpLmlycSk7CisgICAgc3Bpbl9sb2NrX2lycSgmZGVz Yy0+bG9jayk7CisgICAgZG1hX21zaV9zZXRfYWZmaW5pdHkoZGVzYywgY3B1bWFzayk7CisgICAg c3Bpbl91bmxvY2tfaXJxKCZkZXNjLT5sb2NrKTsKIH0KIAogc3RhdGljIGludCBhZGp1c3RfdnRk X2lycV9hZmZpbml0aWVzKHZvaWQpCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs