From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v3 06/15] x86/IRQ: fix locking around vector management Date: Fri, 17 May 2019 04:47:47 -0600 Message-ID: <5CDE91530200007800230078@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 1hRaP2-0005bK-Go for xen-devel@lists.xenproject.org; Fri, 17 May 2019 10:47:52 +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 QWxsIG9mIF9fe2Fzc2lnbixiaW5kLGNsZWFyfV9pcnFfdmVjdG9yKCkgbWFuaXB1bGF0ZSBzdHJ1 Y3QgaXJxX2Rlc2MKZmllbGRzLCBhbmQgaGVuY2Ugb3VnaHQgdG8gYmUgY2FsbGVkIHdpdGggdGhl IGRlc2NyaXB0b3IgbG9jayBoZWxkIGluCmFkZGl0aW9uIHRvIHZlY3Rvcl9sb2NrLiBUaGlzIGlz IGN1cnJlbnRseSB0aGUgY2FzZSBmb3Igb25seQpzZXRfZGVzY19hZmZpbml0eSgpIChpbiB0aGUg Y29tbW9uIGNhc2UpIGFuZCBkZXN0cm95X2lycSgpLCB3aGljaCBhbHNvCmNsYXJpZmllcyB3aGF0 IHRoZSBuZXN0aW5nIGJlaGF2aW9yIGJldHdlZW4gdGhlIGxvY2tzIGhhcyB0byBiZS4KUmVmbGVj dCB0aGUgbmV3IGV4cGVjdGF0aW9uIGJ5IGhhdmluZyB0aGVzZSBmdW5jdGlvbnMgYWxsIHRha2Ug YQpkZXNjcmlwdG9yIGFzIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGFuIGludGVycnVwdCBudW1iZXIu CgpBbHNvIHRha2UgY2FyZSBvZiB0aGUgdHdvIHNwZWNpYWwgY2FzZXMgb2YgY2FsbHMgdG8gc2V0 X2Rlc2NfYWZmaW5pdHkoKToKc2V0X2lvYXBpY19hZmZpbml0eV9pcnEoKSBhbmQgVlQtZCdzIGRt YV9tc2lfc2V0X2FmZmluaXR5KCkgZ2V0IGNhbGxlZApkaXJlY3RseSBhcyB3ZWxsLCBhbmQgaW4g dGhlc2UgY2FzZXMgdGhlIGRlc2NyaXB0b3IgbG9ja3MgaGFkbid0IGdvdAphY3F1aXJlZCB0aWxs IG5vdy4gRm9yIHNldF9pb2FwaWNfYWZmaW5pdHlfaXJxKCkgdGhpcyBtZWFucyBhY3F1aXJpbmcg LwpyZWxlYXNpbmcgb2YgdGhlIElPLUFQSUMgbG9jayBjYW4gYmUgcGxhaW4gc3Bpbl97LHVufWxv Y2soKSB0aGVuLgoKRHJvcCBvbmUgb2YgdGhlIHR3byBsZWFkaW5nIHVuZGVyc2NvcmVzIGZyb20g YWxsIHRocmVlIGZ1bmN0aW9ucyBhdAp0aGUgc2FtZSB0aW1lLgoKVGhlcmUncyBvbmUgY2FzZSBs ZWZ0IHdoZXJlIGRlc2NyaXB0b3JzIGdldCBtYW5pcHVsYXRlZCB3aXRoIGp1c3QKdmVjdG9yX2xv Y2sgaGVsZDogc2V0dXBfdmVjdG9yX2lycSgpIGFzc3VtZXMgaXRzIGNhbGxlciB0byBhY3F1aXJl CnZlY3Rvcl9sb2NrLCBhbmQgaGVuY2UgY2FuJ3QgaXRzZWxmIGFjcXVpcmUgdGhlIGRlc2NyaXB0 b3IgbG9ja3MgKHdyb25nCmxvY2sgb3JkZXIpLiBJIGRvbid0IGN1cnJlbnRseSBzZWUgaG93IHRv IGFkZHJlc3MgdGhpcy4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPiBbVlQt ZF0KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgot LS0KdjM6IEFsc28gZHJvcCBvbmUgbGVhZGluZyB1bmRlcnNjb3JlIGZyb20gYSBjb21tZW50LiBS ZS1iYXNlLgp2MjogQWxzbyBhZGp1c3Qgc2V0X2lvYXBpY19hZmZpbml0eV9pcnEoKSBhbmQgVlQt ZCdzCiAgICBkbWFfbXNpX3NldF9hZmZpbml0eSgpLgoKLS0tIGEveGVuL2FyY2gveDg2L2lvX2Fw aWMuYworKysgYi94ZW4vYXJjaC94ODYvaW9fYXBpYy5jCkBAIC01NTAsMTQgKzU1MCwxNCBAQCBz dGF0aWMgdm9pZCBjbGVhcl9JT19BUElDICh2b2lkKQogc3RhdGljIHZvaWQKIHNldF9pb2FwaWNf YWZmaW5pdHlfaXJxKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgY29uc3QgY3B1bWFza190ICptYXNr KQogewotICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgdW5zaWduZWQgaW50IGRlc3Q7CiAg ICAgaW50IHBpbiwgaXJxOwogICAgIHN0cnVjdCBpcnFfcGluX2xpc3QgKmVudHJ5OwogCiAgICAg aXJxID0gZGVzYy0+aXJxOwogCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvYXBpY19sb2NrLCBm bGFncyk7CisgICAgc3Bpbl9sb2NrKCZpb2FwaWNfbG9jayk7CisKICAgICBkZXN0ID0gc2V0X2Rl c2NfYWZmaW5pdHkoZGVzYywgbWFzayk7CiAgICAgaWYgKGRlc3QgIT0gQkFEX0FQSUNJRCkgewog ICAgICAgICBpZiAoICF4MmFwaWNfZW5hYmxlZCApCkBAIC01ODAsOCArNTgwLDggQEAgc2V0X2lv YXBpY19hZmZpbml0eV9pcnEoc3RydWN0IGlycV9kZXNjCiAgICAgICAgICAgICBlbnRyeSA9IGly cV8yX3BpbiArIGVudHJ5LT5uZXh0OwogICAgICAgICB9CiAgICAgfQotICAgIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAKKyAgICBzcGluX3VubG9jaygmaW9h cGljX2xvY2spOwogfQogCiAvKgpAQCAtNjc0LDE2ICs2NzQsMTkgQEAgdm9pZCAvKl9faW5pdCov IHNldHVwX2lvYXBpY19kZXN0KHZvaWQpCiAgICAgZm9yIChpb2FwaWMgPSAwOyBpb2FwaWMgPCBu cl9pb2FwaWNzOyBpb2FwaWMrKykgewogICAgICAgICBmb3IgKHBpbiA9IDA7IHBpbiA8IG5yX2lv YXBpY19lbnRyaWVzW2lvYXBpY107IHBpbisrKSB7CiAgICAgICAgICAgICBzdHJ1Y3QgaXJxX2Rl c2MgKmRlc2M7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAgICAgICAgICAg ICBpcnFfZW50cnkgPSBmaW5kX2lycV9lbnRyeShpb2FwaWMsIHBpbiwgbXBfSU5UKTsKICAgICAg ICAgICAgIGlmIChpcnFfZW50cnkgPT0gLTEpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg ICAgICAgICAgICBpcnEgPSBwaW5fMl9pcnEoaXJxX2VudHJ5LCBpb2FwaWMsIHBpbik7CiAgICAg ICAgICAgICBkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsKKworICAgICAgICAgICAgc3Bpbl9sb2Nr X2lycXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgICAgIEJVR19PTighY3B1bWFz a19pbnRlcnNlY3RzKGRlc2MtPmFyY2guY3B1X21hc2ssICZjcHVfb25saW5lX21hcCkpOwogICAg ICAgICAgICAgc2V0X2lvYXBpY19hZmZpbml0eV9pcnEoZGVzYywgZGVzYy0+YXJjaC5jcHVfbWFz ayk7CisgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFn cyk7CiAgICAgICAgIH0KLQogICAgIH0KIH0KIAotLS0gYS94ZW4vYXJjaC94ODYvaXJxLmMKKysr IGIveGVuL2FyY2gveDg2L2lycS5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8cHVibGlj L3BoeXNkZXYuaD4KIAogc3RhdGljIGludCBwYXJzZV9pcnFfdmVjdG9yX21hcF9wYXJhbShjb25z dCBjaGFyICpzKTsKK3N0YXRpYyB2b2lkIF9jbGVhcl9pcnFfdmVjdG9yKHN0cnVjdCBpcnFfZGVz YyAqZGVzYyk7CiAKIC8qIG9wdF9ub2lycWJhbGFuY2U6IElmIHRydWUsIHNvZnR3YXJlIElSUSBi YWxhbmNpbmcvYWZmaW5pdHkgaXMgZGlzYWJsZWQuICovCiBib29sIF9fcmVhZF9tb3N0bHkgb3B0 X25vaXJxYmFsYW5jZTsKQEAgLTEzNiwxMyArMTM3LDEyIEBAIHN0YXRpYyB2b2lkIHRyYWNlX2ly cV9tYXNrKHVpbnQzMl90IGV2ZW4KICAgICB0cmFjZV92YXIoZXZlbnQsIDEsIHNpemVvZihkKSwg JmQpOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBfX2JpbmRfaXJxX3ZlY3RvcihpbnQgaXJxLCBp bnQgdmVjdG9yLCBjb25zdCBjcHVtYXNrX3QgKmNwdV9tYXNrKQorc3RhdGljIGludCBfX2luaXQg X2JpbmRfaXJxX3ZlY3RvcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGludCB2ZWN0b3IsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNwdW1hc2tfdCAqY3B1X21hc2sp CiB7CiAgICAgY3B1bWFza190IG9ubGluZV9tYXNrOwogICAgIGludCBjcHU7Ci0gICAgc3RydWN0 IGlycV9kZXNjICpkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsKIAotICAgIEJVR19PTigodW5zaWdu ZWQpaXJxID49IG5yX2lycXMpOwogICAgIEJVR19PTigodW5zaWduZWQpdmVjdG9yID49IE5SX1ZF Q1RPUlMpOwogCiAgICAgY3B1bWFza19hbmQoJm9ubGluZV9tYXNrLCBjcHVfbWFzaywgJmNwdV9v bmxpbmVfbWFwKTsKQEAgLTE1Myw5ICsxNTMsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBfX2JpbmRf aXJxX3ZlY3RvcihpbnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCBkZXNjLT5hcmNoLnZl Y3RvciAhPSBJUlFfVkVDVE9SX1VOQVNTSUdORUQgKQogICAgICAgICByZXR1cm4gLUVCVVNZOwot ICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQklORF9WRUNUT1IsIGlycSwgdmVjdG9yLCAm b25saW5lX21hc2spOworICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQklORF9WRUNUT1Is IGRlc2MtPmlycSwgdmVjdG9yLCAmb25saW5lX21hc2spOwogICAgIGZvcl9lYWNoX2NwdShjcHUs ICZvbmxpbmVfbWFzaykKLSAgICAgICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW3ZlY3Rvcl0g PSBpcnE7CisgICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVt2ZWN0b3JdID0gZGVzYy0+ aXJxOwogICAgIGRlc2MtPmFyY2gudmVjdG9yID0gdmVjdG9yOwogICAgIGNwdW1hc2tfY29weShk ZXNjLT5hcmNoLmNwdV9tYXNrLCAmb25saW5lX21hc2spOwogICAgIGlmICggZGVzYy0+YXJjaC51 c2VkX3ZlY3RvcnMgKQpAQCAtMTY5LDEyICsxNjksMTggQEAgc3RhdGljIGludCBfX2luaXQgX19i aW5kX2lycV92ZWN0b3IoaW50CiAKIGludCBfX2luaXQgYmluZF9pcnFfdmVjdG9yKGludCBpcnEs IGludCB2ZWN0b3IsIGNvbnN0IGNwdW1hc2tfdCAqY3B1X21hc2spCiB7CisgICAgc3RydWN0IGly cV9kZXNjICpkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdz OwogICAgIGludCByZXQ7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdmVjdG9yX2xvY2ssIGZs YWdzKTsKLSAgICByZXQgPSBfX2JpbmRfaXJxX3ZlY3RvcihpcnEsIHZlY3RvciwgY3B1X21hc2sp OwotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7CisgICAg QlVHX09OKCh1bnNpZ25lZClpcnEgPj0gbnJfaXJxcyk7CisKKyAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworICAgIHNwaW5fbG9jaygmdmVjdG9yX2xvY2spOworICAg IHJldCA9IF9iaW5kX2lycV92ZWN0b3IoZGVzYywgdmVjdG9yLCBjcHVfbWFzayk7CisgICAgc3Bp bl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNj LT5sb2NrLCBmbGFncyk7CisKICAgICByZXR1cm4gcmV0OwogfQogCkBAIC0yNTksMTggKzI2NSwy MCBAQCB2b2lkIGRlc3Ryb3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAKICAgICBzcGluX2xvY2tf aXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogICAgIGRlc2MtPmhhbmRsZXIgPSAmbm9faXJx X3R5cGU7Ci0gICAgY2xlYXJfaXJxX3ZlY3RvcihpcnEpOworICAgIHNwaW5fbG9jaygmdmVjdG9y X2xvY2spOworICAgIF9jbGVhcl9pcnFfdmVjdG9yKGRlc2MpOworICAgIHNwaW5fdW5sb2NrKCZ2 ZWN0b3JfbG9jayk7CiAgICAgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgPSBOVUxMOwogICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKIAogICAgIHhmcmVlKGFj dGlvbik7CiB9CiAKLXN0YXRpYyB2b2lkIF9fY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQorc3Rh dGljIHZvaWQgX2NsZWFyX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjKQogewotICAg IGludCBjcHUsIHZlY3Rvciwgb2xkX3ZlY3RvcjsKKyAgICB1bnNpZ25lZCBpbnQgY3B1OworICAg IGludCB2ZWN0b3IsIG9sZF92ZWN0b3IsIGlycSA9IGRlc2MtPmlycTsKICAgICBjcHVtYXNrX3Qg dG1wX21hc2s7Ci0gICAgc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsK IAogICAgIEJVR19PTighZGVzYy0+YXJjaC52ZWN0b3IpOwogCkBAIC0zMTYsMTEgKzMyNCwxNCBA QCBzdGF0aWMgdm9pZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKIAogdm9pZCBjbGVhcl9p cnFfdmVjdG9yKGludCBpcnEpCiB7CisgICAgc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJxX3Rv X2Rlc2MoaXJxKTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0gICAgc3Bpbl9sb2NrX2ly cXNhdmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7Ci0gICAgX19jbGVhcl9pcnFfdmVjdG9yKGlycSk7 Ci0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKKyAgICBz cGluX2xvY2tfaXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworICAgIHNwaW5fbG9jaygmdmVj dG9yX2xvY2spOworICAgIF9jbGVhcl9pcnFfdmVjdG9yKGRlc2MpOworICAgIHNwaW5fdW5sb2Nr KCZ2ZWN0b3JfbG9jayk7CisgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywg ZmxhZ3MpOwogfQogCiBpbnQgaXJxX3RvX3ZlY3RvcihpbnQgaXJxKQpAQCAtNDU1LDggKzQ2Niw3 IEBAIHN0YXRpYyB2bWFza190ICppcnFfZ2V0X3VzZWRfdmVjdG9yX21hc2sKICAgICByZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50IF9fYXNzaWduX2lycV92ZWN0b3IoCi0gICAgaW50IGlycSwg c3RydWN0IGlycV9kZXNjICpkZXNjLCBjb25zdCBjcHVtYXNrX3QgKm1hc2spCitzdGF0aWMgaW50 IF9hc3NpZ25faXJxX3ZlY3RvcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGNvbnN0IGNwdW1hc2tf dCAqbWFzaykKIHsKICAgICAvKgogICAgICAqIE5PVEUhIFRoZSBsb2NhbCBBUElDIGlzbid0IHZl cnkgZ29vZCBhdCBoYW5kbGluZwpAQCAtNDcwLDcgKzQ4MCw4IEBAIHN0YXRpYyBpbnQgX19hc3Np Z25faXJxX3ZlY3RvcigKICAgICAgKiAweDgwLCBiZWNhdXNlIGludCAweDgwIGlzIGhtLCBraW5k IG9mIGltcG9ydGFudGlzaC4gOykKICAgICAgKi8KICAgICBzdGF0aWMgaW50IGN1cnJlbnRfdmVj dG9yID0gRklSU1RfRFlOQU1JQ19WRUNUT1IsIGN1cnJlbnRfb2Zmc2V0ID0gMDsKLSAgICBpbnQg Y3B1LCBlcnIsIG9sZF92ZWN0b3I7CisgICAgdW5zaWduZWQgaW50IGNwdTsKKyAgICBpbnQgZXJy LCBvbGRfdmVjdG9yLCBpcnEgPSBkZXNjLT5pcnE7CiAgICAgdm1hc2tfdCAqaXJxX3VzZWRfdmVj dG9ycyA9IE5VTEw7CiAKICAgICBvbGRfdmVjdG9yID0gaXJxX3RvX3ZlY3RvcihpcnEpOwpAQCAt NTgzLDggKzU5NCwxMiBAQCBpbnQgYXNzaWduX2lycV92ZWN0b3IoaW50IGlycSwgY29uc3QgY3B1 CiAgICAgCiAgICAgQlVHX09OKGlycSA+PSBucl9pcnFzIHx8IGlycSA8MCk7CiAKLSAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKLSAgICByZXQgPSBfX2Fzc2lnbl9p cnFfdmVjdG9yKGlycSwgZGVzYywgbWFzayA/OiBUQVJHRVRfQ1BVUyk7CisgICAgc3Bpbl9sb2Nr X2lycXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKKworICAgIHNwaW5fbG9jaygmdmVjdG9yX2xv Y2spOworICAgIHJldCA9IF9hc3NpZ25faXJxX3ZlY3RvcihkZXNjLCBtYXNrID86IFRBUkdFVF9D UFVTKTsKKyAgICBzcGluX3VubG9jaygmdmVjdG9yX2xvY2spOworCiAgICAgaWYgKCAhcmV0ICkK ICAgICB7CiAgICAgICAgIHJldCA9IGRlc2MtPmFyY2gudmVjdG9yOwpAQCAtNTkzLDcgKzYwOCw4 IEBAIGludCBhc3NpZ25faXJxX3ZlY3RvcihpbnQgaXJxLCBjb25zdCBjcHUKICAgICAgICAgZWxz ZQogICAgICAgICAgICAgY3B1bWFza19zZXRhbGwoZGVzYy0+YWZmaW5pdHkpOwogICAgIH0KLSAg ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOworCisgICAgc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogCiAgICAgcmV0dXJuIHJl dDsKIH0KQEAgLTc2Nyw3ICs3ODMsNiBAQCB2b2lkIGlycV9jb21wbGV0ZV9tb3ZlKHN0cnVjdCBp cnFfZGVzYyAqCiAKIHVuc2lnbmVkIGludCBzZXRfZGVzY19hZmZpbml0eShzdHJ1Y3QgaXJxX2Rl c2MgKmRlc2MsIGNvbnN0IGNwdW1hc2tfdCAqbWFzaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgaXJx OwogICAgIGludCByZXQ7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBjcHVtYXNrX3Qg ZGVzdF9tYXNrOwpAQCAtNzc1LDEwICs3OTAsOCBAQCB1bnNpZ25lZCBpbnQgc2V0X2Rlc2NfYWZm aW5pdHkoc3RydWN0IGlyCiAgICAgaWYgKCFjcHVtYXNrX2ludGVyc2VjdHMobWFzaywgJmNwdV9v bmxpbmVfbWFwKSkKICAgICAgICAgcmV0dXJuIEJBRF9BUElDSUQ7CiAKLSAgICBpcnEgPSBkZXNj LT5pcnE7Ci0KICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKLSAg ICByZXQgPSBfX2Fzc2lnbl9pcnFfdmVjdG9yKGlycSwgZGVzYywgbWFzayk7CisgICAgcmV0ID0g X2Fzc2lnbl9pcnFfdmVjdG9yKGRlc2MsIG1hc2spOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7CiAKICAgICBpZiAocmV0IDwgMCkKQEAgLTI0NDIsNyAr MjQ1NSw3IEBAIHZvaWQgZml4dXBfaXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIKIAogICAg ICAgICAvKgogICAgICAgICAgKiBJbiBvcmRlciBmb3IgdGhlIGFmZmluaXR5IGFkanVzdG1lbnQg YmVsb3cgdG8gYmUgc3VjY2Vzc2Z1bCwgd2UKLSAgICAgICAgICogbmVlZCBfX2Fzc2lnbl9pcnFf dmVjdG9yKCkgdG8gc3VjY2VlZC4gVGhpcyBpbiBwYXJ0aWN1bGFyIG1lYW5zCisgICAgICAgICAq IG5lZWQgX2Fzc2lnbl9pcnFfdmVjdG9yKCkgdG8gc3VjY2VlZC4gVGhpcyBpbiBwYXJ0aWN1bGFy IG1lYW5zCiAgICAgICAgICAqIGNsZWFyaW5nIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyBp ZiB0aGlzIHdvdWxkIG90aGVyd2lzZQogICAgICAgICAgKiBwcmV2ZW50IHRoZSBmdW5jdGlvbiBm cm9tIHN1Y2NlZWRpbmcuIFNpbmNlIHRoZXJlJ3Mgbm8gd2F5IGZvciB0aGUKICAgICAgICAgICog ZmxhZyB0byBnZXQgY2xlYXJlZCBhbnltb3JlIHdoZW4gdGhlcmUncyBubyBwb3NzaWJsZSBkZXN0 aW5hdGlvbgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMjEzNCwxMSArMjEzNCwxNiBA QCBzdGF0aWMgdm9pZCBhZGp1c3RfaXJxX2FmZmluaXR5KHN0cnVjdCBhCiAgICAgdW5zaWduZWQg aW50IG5vZGUgPSByaHNhID8gcHhtX3RvX25vZGUocmhzYS0+cHJveGltaXR5X2RvbWFpbikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBOVU1BX05PX05PREU7CiAgICAgY29uc3QgY3B1 bWFza190ICpjcHVtYXNrID0gJmNwdV9vbmxpbmVfbWFwOworICAgIHN0cnVjdCBpcnFfZGVzYyAq ZGVzYzsKIAogICAgIGlmICggbm9kZSA8IE1BWF9OVU1OT0RFUyAmJiBub2RlX29ubGluZShub2Rl KSAmJgogICAgICAgICAgY3B1bWFza19pbnRlcnNlY3RzKCZub2RlX3RvX2NwdW1hc2sobm9kZSks IGNwdW1hc2spICkKICAgICAgICAgY3B1bWFzayA9ICZub2RlX3RvX2NwdW1hc2sobm9kZSk7Ci0g ICAgZG1hX21zaV9zZXRfYWZmaW5pdHkoaXJxX3RvX2Rlc2MoZHJoZC0+aW9tbXUtPm1zaS5pcnEp LCBjcHVtYXNrKTsKKworICAgIGRlc2MgPSBpcnFfdG9fZGVzYyhkcmhkLT5pb21tdS0+bXNpLmly cSk7CisgICAgc3Bpbl9sb2NrX2lycSgmZGVzYy0+bG9jayk7CisgICAgZG1hX21zaV9zZXRfYWZm aW5pdHkoZGVzYywgY3B1bWFzayk7CisgICAgc3Bpbl91bmxvY2tfaXJxKCZkZXNjLT5sb2NrKTsK IH0KIAogc3RhdGljIGludCBhZGp1c3RfdnRkX2lycV9hZmZpbml0aWVzKHZvaWQpCgoKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs 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 520C0C04AB4 for ; Fri, 17 May 2019 10:48:07 +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 208FA2087E for ; Fri, 17 May 2019 10:48:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 208FA2087E 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 1hRaP3-0005bW-BI; Fri, 17 May 2019 10:47:53 +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 1hRaP2-0005bK-Go for xen-devel@lists.xenproject.org; Fri, 17 May 2019 10:47:52 +0000 X-Inumbo-ID: 35856cc0-7891-11e9-b094-a7d66cc25ea1 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 35856cc0-7891-11e9-b094-a7d66cc25ea1; Fri, 17 May 2019 10:47:48 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Fri, 17 May 2019 04:47:46 -0600 Message-Id: <5CDE91530200007800230078@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Fri, 17 May 2019 04:47:47 -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 06/15] 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: <20190517104747.UuI_whCR_lMUpVM1ECORyAfLcvO-8PHgVdrJCbF6eaM@z> QWxsIG9mIF9fe2Fzc2lnbixiaW5kLGNsZWFyfV9pcnFfdmVjdG9yKCkgbWFuaXB1bGF0ZSBzdHJ1 Y3QgaXJxX2Rlc2MKZmllbGRzLCBhbmQgaGVuY2Ugb3VnaHQgdG8gYmUgY2FsbGVkIHdpdGggdGhl IGRlc2NyaXB0b3IgbG9jayBoZWxkIGluCmFkZGl0aW9uIHRvIHZlY3Rvcl9sb2NrLiBUaGlzIGlz IGN1cnJlbnRseSB0aGUgY2FzZSBmb3Igb25seQpzZXRfZGVzY19hZmZpbml0eSgpIChpbiB0aGUg Y29tbW9uIGNhc2UpIGFuZCBkZXN0cm95X2lycSgpLCB3aGljaCBhbHNvCmNsYXJpZmllcyB3aGF0 IHRoZSBuZXN0aW5nIGJlaGF2aW9yIGJldHdlZW4gdGhlIGxvY2tzIGhhcyB0byBiZS4KUmVmbGVj dCB0aGUgbmV3IGV4cGVjdGF0aW9uIGJ5IGhhdmluZyB0aGVzZSBmdW5jdGlvbnMgYWxsIHRha2Ug YQpkZXNjcmlwdG9yIGFzIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGFuIGludGVycnVwdCBudW1iZXIu CgpBbHNvIHRha2UgY2FyZSBvZiB0aGUgdHdvIHNwZWNpYWwgY2FzZXMgb2YgY2FsbHMgdG8gc2V0 X2Rlc2NfYWZmaW5pdHkoKToKc2V0X2lvYXBpY19hZmZpbml0eV9pcnEoKSBhbmQgVlQtZCdzIGRt YV9tc2lfc2V0X2FmZmluaXR5KCkgZ2V0IGNhbGxlZApkaXJlY3RseSBhcyB3ZWxsLCBhbmQgaW4g dGhlc2UgY2FzZXMgdGhlIGRlc2NyaXB0b3IgbG9ja3MgaGFkbid0IGdvdAphY3F1aXJlZCB0aWxs IG5vdy4gRm9yIHNldF9pb2FwaWNfYWZmaW5pdHlfaXJxKCkgdGhpcyBtZWFucyBhY3F1aXJpbmcg LwpyZWxlYXNpbmcgb2YgdGhlIElPLUFQSUMgbG9jayBjYW4gYmUgcGxhaW4gc3Bpbl97LHVufWxv Y2soKSB0aGVuLgoKRHJvcCBvbmUgb2YgdGhlIHR3byBsZWFkaW5nIHVuZGVyc2NvcmVzIGZyb20g YWxsIHRocmVlIGZ1bmN0aW9ucyBhdAp0aGUgc2FtZSB0aW1lLgoKVGhlcmUncyBvbmUgY2FzZSBs ZWZ0IHdoZXJlIGRlc2NyaXB0b3JzIGdldCBtYW5pcHVsYXRlZCB3aXRoIGp1c3QKdmVjdG9yX2xv Y2sgaGVsZDogc2V0dXBfdmVjdG9yX2lycSgpIGFzc3VtZXMgaXRzIGNhbGxlciB0byBhY3F1aXJl CnZlY3Rvcl9sb2NrLCBhbmQgaGVuY2UgY2FuJ3QgaXRzZWxmIGFjcXVpcmUgdGhlIGRlc2NyaXB0 b3IgbG9ja3MgKHdyb25nCmxvY2sgb3JkZXIpLiBJIGRvbid0IGN1cnJlbnRseSBzZWUgaG93IHRv IGFkZHJlc3MgdGhpcy4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPiBbVlQt ZF0KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgot LS0KdjM6IEFsc28gZHJvcCBvbmUgbGVhZGluZyB1bmRlcnNjb3JlIGZyb20gYSBjb21tZW50LiBS ZS1iYXNlLgp2MjogQWxzbyBhZGp1c3Qgc2V0X2lvYXBpY19hZmZpbml0eV9pcnEoKSBhbmQgVlQt ZCdzCiAgICBkbWFfbXNpX3NldF9hZmZpbml0eSgpLgoKLS0tIGEveGVuL2FyY2gveDg2L2lvX2Fw aWMuYworKysgYi94ZW4vYXJjaC94ODYvaW9fYXBpYy5jCkBAIC01NTAsMTQgKzU1MCwxNCBAQCBz dGF0aWMgdm9pZCBjbGVhcl9JT19BUElDICh2b2lkKQogc3RhdGljIHZvaWQKIHNldF9pb2FwaWNf YWZmaW5pdHlfaXJxKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgY29uc3QgY3B1bWFza190ICptYXNr KQogewotICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgdW5zaWduZWQgaW50IGRlc3Q7CiAg ICAgaW50IHBpbiwgaXJxOwogICAgIHN0cnVjdCBpcnFfcGluX2xpc3QgKmVudHJ5OwogCiAgICAg aXJxID0gZGVzYy0+aXJxOwogCi0gICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvYXBpY19sb2NrLCBm bGFncyk7CisgICAgc3Bpbl9sb2NrKCZpb2FwaWNfbG9jayk7CisKICAgICBkZXN0ID0gc2V0X2Rl c2NfYWZmaW5pdHkoZGVzYywgbWFzayk7CiAgICAgaWYgKGRlc3QgIT0gQkFEX0FQSUNJRCkgewog ICAgICAgICBpZiAoICF4MmFwaWNfZW5hYmxlZCApCkBAIC01ODAsOCArNTgwLDggQEAgc2V0X2lv YXBpY19hZmZpbml0eV9pcnEoc3RydWN0IGlycV9kZXNjCiAgICAgICAgICAgICBlbnRyeSA9IGly cV8yX3BpbiArIGVudHJ5LT5uZXh0OwogICAgICAgICB9CiAgICAgfQotICAgIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAKKyAgICBzcGluX3VubG9jaygmaW9h cGljX2xvY2spOwogfQogCiAvKgpAQCAtNjc0LDE2ICs2NzQsMTkgQEAgdm9pZCAvKl9faW5pdCov IHNldHVwX2lvYXBpY19kZXN0KHZvaWQpCiAgICAgZm9yIChpb2FwaWMgPSAwOyBpb2FwaWMgPCBu cl9pb2FwaWNzOyBpb2FwaWMrKykgewogICAgICAgICBmb3IgKHBpbiA9IDA7IHBpbiA8IG5yX2lv YXBpY19lbnRyaWVzW2lvYXBpY107IHBpbisrKSB7CiAgICAgICAgICAgICBzdHJ1Y3QgaXJxX2Rl c2MgKmRlc2M7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAgICAgICAgICAg ICBpcnFfZW50cnkgPSBmaW5kX2lycV9lbnRyeShpb2FwaWMsIHBpbiwgbXBfSU5UKTsKICAgICAg ICAgICAgIGlmIChpcnFfZW50cnkgPT0gLTEpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg ICAgICAgICAgICBpcnEgPSBwaW5fMl9pcnEoaXJxX2VudHJ5LCBpb2FwaWMsIHBpbik7CiAgICAg ICAgICAgICBkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsKKworICAgICAgICAgICAgc3Bpbl9sb2Nr X2lycXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgICAgIEJVR19PTighY3B1bWFz a19pbnRlcnNlY3RzKGRlc2MtPmFyY2guY3B1X21hc2ssICZjcHVfb25saW5lX21hcCkpOwogICAg ICAgICAgICAgc2V0X2lvYXBpY19hZmZpbml0eV9pcnEoZGVzYywgZGVzYy0+YXJjaC5jcHVfbWFz ayk7CisgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFn cyk7CiAgICAgICAgIH0KLQogICAgIH0KIH0KIAotLS0gYS94ZW4vYXJjaC94ODYvaXJxLmMKKysr IGIveGVuL2FyY2gveDg2L2lycS5jCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8cHVibGlj L3BoeXNkZXYuaD4KIAogc3RhdGljIGludCBwYXJzZV9pcnFfdmVjdG9yX21hcF9wYXJhbShjb25z dCBjaGFyICpzKTsKK3N0YXRpYyB2b2lkIF9jbGVhcl9pcnFfdmVjdG9yKHN0cnVjdCBpcnFfZGVz YyAqZGVzYyk7CiAKIC8qIG9wdF9ub2lycWJhbGFuY2U6IElmIHRydWUsIHNvZnR3YXJlIElSUSBi YWxhbmNpbmcvYWZmaW5pdHkgaXMgZGlzYWJsZWQuICovCiBib29sIF9fcmVhZF9tb3N0bHkgb3B0 X25vaXJxYmFsYW5jZTsKQEAgLTEzNiwxMyArMTM3LDEyIEBAIHN0YXRpYyB2b2lkIHRyYWNlX2ly cV9tYXNrKHVpbnQzMl90IGV2ZW4KICAgICB0cmFjZV92YXIoZXZlbnQsIDEsIHNpemVvZihkKSwg JmQpOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBfX2JpbmRfaXJxX3ZlY3RvcihpbnQgaXJxLCBp bnQgdmVjdG9yLCBjb25zdCBjcHVtYXNrX3QgKmNwdV9tYXNrKQorc3RhdGljIGludCBfX2luaXQg X2JpbmRfaXJxX3ZlY3RvcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGludCB2ZWN0b3IsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNwdW1hc2tfdCAqY3B1X21hc2sp CiB7CiAgICAgY3B1bWFza190IG9ubGluZV9tYXNrOwogICAgIGludCBjcHU7Ci0gICAgc3RydWN0 IGlycV9kZXNjICpkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsKIAotICAgIEJVR19PTigodW5zaWdu ZWQpaXJxID49IG5yX2lycXMpOwogICAgIEJVR19PTigodW5zaWduZWQpdmVjdG9yID49IE5SX1ZF Q1RPUlMpOwogCiAgICAgY3B1bWFza19hbmQoJm9ubGluZV9tYXNrLCBjcHVfbWFzaywgJmNwdV9v bmxpbmVfbWFwKTsKQEAgLTE1Myw5ICsxNTMsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBfX2JpbmRf aXJxX3ZlY3RvcihpbnQKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCBkZXNjLT5hcmNoLnZl Y3RvciAhPSBJUlFfVkVDVE9SX1VOQVNTSUdORUQgKQogICAgICAgICByZXR1cm4gLUVCVVNZOwot ICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQklORF9WRUNUT1IsIGlycSwgdmVjdG9yLCAm b25saW5lX21hc2spOworICAgIHRyYWNlX2lycV9tYXNrKFRSQ19IV19JUlFfQklORF9WRUNUT1Is IGRlc2MtPmlycSwgdmVjdG9yLCAmb25saW5lX21hc2spOwogICAgIGZvcl9lYWNoX2NwdShjcHUs ICZvbmxpbmVfbWFzaykKLSAgICAgICAgcGVyX2NwdSh2ZWN0b3JfaXJxLCBjcHUpW3ZlY3Rvcl0g PSBpcnE7CisgICAgICAgIHBlcl9jcHUodmVjdG9yX2lycSwgY3B1KVt2ZWN0b3JdID0gZGVzYy0+ aXJxOwogICAgIGRlc2MtPmFyY2gudmVjdG9yID0gdmVjdG9yOwogICAgIGNwdW1hc2tfY29weShk ZXNjLT5hcmNoLmNwdV9tYXNrLCAmb25saW5lX21hc2spOwogICAgIGlmICggZGVzYy0+YXJjaC51 c2VkX3ZlY3RvcnMgKQpAQCAtMTY5LDEyICsxNjksMTggQEAgc3RhdGljIGludCBfX2luaXQgX19i aW5kX2lycV92ZWN0b3IoaW50CiAKIGludCBfX2luaXQgYmluZF9pcnFfdmVjdG9yKGludCBpcnEs IGludCB2ZWN0b3IsIGNvbnN0IGNwdW1hc2tfdCAqY3B1X21hc2spCiB7CisgICAgc3RydWN0IGly cV9kZXNjICpkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdz OwogICAgIGludCByZXQ7CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdmVjdG9yX2xvY2ssIGZs YWdzKTsKLSAgICByZXQgPSBfX2JpbmRfaXJxX3ZlY3RvcihpcnEsIHZlY3RvciwgY3B1X21hc2sp OwotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7CisgICAg QlVHX09OKCh1bnNpZ25lZClpcnEgPj0gbnJfaXJxcyk7CisKKyAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworICAgIHNwaW5fbG9jaygmdmVjdG9yX2xvY2spOworICAg IHJldCA9IF9iaW5kX2lycV92ZWN0b3IoZGVzYywgdmVjdG9yLCBjcHVfbWFzayk7CisgICAgc3Bp bl91bmxvY2soJnZlY3Rvcl9sb2NrKTsKKyAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNj LT5sb2NrLCBmbGFncyk7CisKICAgICByZXR1cm4gcmV0OwogfQogCkBAIC0yNTksMTggKzI2NSwy MCBAQCB2b2lkIGRlc3Ryb3lfaXJxKHVuc2lnbmVkIGludCBpcnEpCiAKICAgICBzcGluX2xvY2tf aXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogICAgIGRlc2MtPmhhbmRsZXIgPSAmbm9faXJx X3R5cGU7Ci0gICAgY2xlYXJfaXJxX3ZlY3RvcihpcnEpOworICAgIHNwaW5fbG9jaygmdmVjdG9y X2xvY2spOworICAgIF9jbGVhcl9pcnFfdmVjdG9yKGRlc2MpOworICAgIHNwaW5fdW5sb2NrKCZ2 ZWN0b3JfbG9jayk7CiAgICAgZGVzYy0+YXJjaC51c2VkX3ZlY3RvcnMgPSBOVUxMOwogICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKIAogICAgIHhmcmVlKGFj dGlvbik7CiB9CiAKLXN0YXRpYyB2b2lkIF9fY2xlYXJfaXJxX3ZlY3RvcihpbnQgaXJxKQorc3Rh dGljIHZvaWQgX2NsZWFyX2lycV92ZWN0b3Ioc3RydWN0IGlycV9kZXNjICpkZXNjKQogewotICAg IGludCBjcHUsIHZlY3Rvciwgb2xkX3ZlY3RvcjsKKyAgICB1bnNpZ25lZCBpbnQgY3B1OworICAg IGludCB2ZWN0b3IsIG9sZF92ZWN0b3IsIGlycSA9IGRlc2MtPmlycTsKICAgICBjcHVtYXNrX3Qg dG1wX21hc2s7Ci0gICAgc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJxX3RvX2Rlc2MoaXJxKTsK IAogICAgIEJVR19PTighZGVzYy0+YXJjaC52ZWN0b3IpOwogCkBAIC0zMTYsMTEgKzMyNCwxNCBA QCBzdGF0aWMgdm9pZCBfX2NsZWFyX2lycV92ZWN0b3IoaW50IGlycSkKIAogdm9pZCBjbGVhcl9p cnFfdmVjdG9yKGludCBpcnEpCiB7CisgICAgc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJxX3Rv X2Rlc2MoaXJxKTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0gICAgc3Bpbl9sb2NrX2ly cXNhdmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7Ci0gICAgX19jbGVhcl9pcnFfdmVjdG9yKGlycSk7 Ci0gICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKKyAgICBz cGluX2xvY2tfaXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworICAgIHNwaW5fbG9jaygmdmVj dG9yX2xvY2spOworICAgIF9jbGVhcl9pcnFfdmVjdG9yKGRlc2MpOworICAgIHNwaW5fdW5sb2Nr KCZ2ZWN0b3JfbG9jayk7CisgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywg ZmxhZ3MpOwogfQogCiBpbnQgaXJxX3RvX3ZlY3RvcihpbnQgaXJxKQpAQCAtNDU1LDggKzQ2Niw3 IEBAIHN0YXRpYyB2bWFza190ICppcnFfZ2V0X3VzZWRfdmVjdG9yX21hc2sKICAgICByZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50IF9fYXNzaWduX2lycV92ZWN0b3IoCi0gICAgaW50IGlycSwg c3RydWN0IGlycV9kZXNjICpkZXNjLCBjb25zdCBjcHVtYXNrX3QgKm1hc2spCitzdGF0aWMgaW50 IF9hc3NpZ25faXJxX3ZlY3RvcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGNvbnN0IGNwdW1hc2tf dCAqbWFzaykKIHsKICAgICAvKgogICAgICAqIE5PVEUhIFRoZSBsb2NhbCBBUElDIGlzbid0IHZl cnkgZ29vZCBhdCBoYW5kbGluZwpAQCAtNDcwLDcgKzQ4MCw4IEBAIHN0YXRpYyBpbnQgX19hc3Np Z25faXJxX3ZlY3RvcigKICAgICAgKiAweDgwLCBiZWNhdXNlIGludCAweDgwIGlzIGhtLCBraW5k IG9mIGltcG9ydGFudGlzaC4gOykKICAgICAgKi8KICAgICBzdGF0aWMgaW50IGN1cnJlbnRfdmVj dG9yID0gRklSU1RfRFlOQU1JQ19WRUNUT1IsIGN1cnJlbnRfb2Zmc2V0ID0gMDsKLSAgICBpbnQg Y3B1LCBlcnIsIG9sZF92ZWN0b3I7CisgICAgdW5zaWduZWQgaW50IGNwdTsKKyAgICBpbnQgZXJy LCBvbGRfdmVjdG9yLCBpcnEgPSBkZXNjLT5pcnE7CiAgICAgdm1hc2tfdCAqaXJxX3VzZWRfdmVj dG9ycyA9IE5VTEw7CiAKICAgICBvbGRfdmVjdG9yID0gaXJxX3RvX3ZlY3RvcihpcnEpOwpAQCAt NTgzLDggKzU5NCwxMiBAQCBpbnQgYXNzaWduX2lycV92ZWN0b3IoaW50IGlycSwgY29uc3QgY3B1 CiAgICAgCiAgICAgQlVHX09OKGlycSA+PSBucl9pcnFzIHx8IGlycSA8MCk7CiAKLSAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKLSAgICByZXQgPSBfX2Fzc2lnbl9p cnFfdmVjdG9yKGlycSwgZGVzYywgbWFzayA/OiBUQVJHRVRfQ1BVUyk7CisgICAgc3Bpbl9sb2Nr X2lycXNhdmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKKworICAgIHNwaW5fbG9jaygmdmVjdG9yX2xv Y2spOworICAgIHJldCA9IF9hc3NpZ25faXJxX3ZlY3RvcihkZXNjLCBtYXNrID86IFRBUkdFVF9D UFVTKTsKKyAgICBzcGluX3VubG9jaygmdmVjdG9yX2xvY2spOworCiAgICAgaWYgKCAhcmV0ICkK ICAgICB7CiAgICAgICAgIHJldCA9IGRlc2MtPmFyY2gudmVjdG9yOwpAQCAtNTkzLDcgKzYwOCw4 IEBAIGludCBhc3NpZ25faXJxX3ZlY3RvcihpbnQgaXJxLCBjb25zdCBjcHUKICAgICAgICAgZWxz ZQogICAgICAgICAgICAgY3B1bWFza19zZXRhbGwoZGVzYy0+YWZmaW5pdHkpOwogICAgIH0KLSAg ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWN0b3JfbG9jaywgZmxhZ3MpOworCisgICAgc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwogCiAgICAgcmV0dXJuIHJl dDsKIH0KQEAgLTc2Nyw3ICs3ODMsNiBAQCB2b2lkIGlycV9jb21wbGV0ZV9tb3ZlKHN0cnVjdCBp cnFfZGVzYyAqCiAKIHVuc2lnbmVkIGludCBzZXRfZGVzY19hZmZpbml0eShzdHJ1Y3QgaXJxX2Rl c2MgKmRlc2MsIGNvbnN0IGNwdW1hc2tfdCAqbWFzaykKIHsKLSAgICB1bnNpZ25lZCBpbnQgaXJx OwogICAgIGludCByZXQ7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBjcHVtYXNrX3Qg ZGVzdF9tYXNrOwpAQCAtNzc1LDEwICs3OTAsOCBAQCB1bnNpZ25lZCBpbnQgc2V0X2Rlc2NfYWZm aW5pdHkoc3RydWN0IGlyCiAgICAgaWYgKCFjcHVtYXNrX2ludGVyc2VjdHMobWFzaywgJmNwdV9v bmxpbmVfbWFwKSkKICAgICAgICAgcmV0dXJuIEJBRF9BUElDSUQ7CiAKLSAgICBpcnEgPSBkZXNj LT5pcnE7Ci0KICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdmVjdG9yX2xvY2ssIGZsYWdzKTsKLSAg ICByZXQgPSBfX2Fzc2lnbl9pcnFfdmVjdG9yKGlycSwgZGVzYywgbWFzayk7CisgICAgcmV0ID0g X2Fzc2lnbl9pcnFfdmVjdG9yKGRlc2MsIG1hc2spOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJnZlY3Rvcl9sb2NrLCBmbGFncyk7CiAKICAgICBpZiAocmV0IDwgMCkKQEAgLTI0NDIsNyAr MjQ1NSw3IEBAIHZvaWQgZml4dXBfaXJxcyhjb25zdCBjcHVtYXNrX3QgKm1hc2ssIGIKIAogICAg ICAgICAvKgogICAgICAgICAgKiBJbiBvcmRlciBmb3IgdGhlIGFmZmluaXR5IGFkanVzdG1lbnQg YmVsb3cgdG8gYmUgc3VjY2Vzc2Z1bCwgd2UKLSAgICAgICAgICogbmVlZCBfX2Fzc2lnbl9pcnFf dmVjdG9yKCkgdG8gc3VjY2VlZC4gVGhpcyBpbiBwYXJ0aWN1bGFyIG1lYW5zCisgICAgICAgICAq IG5lZWQgX2Fzc2lnbl9pcnFfdmVjdG9yKCkgdG8gc3VjY2VlZC4gVGhpcyBpbiBwYXJ0aWN1bGFy IG1lYW5zCiAgICAgICAgICAqIGNsZWFyaW5nIGRlc2MtPmFyY2gubW92ZV9pbl9wcm9ncmVzcyBp ZiB0aGlzIHdvdWxkIG90aGVyd2lzZQogICAgICAgICAgKiBwcmV2ZW50IHRoZSBmdW5jdGlvbiBm cm9tIHN1Y2NlZWRpbmcuIFNpbmNlIHRoZXJlJ3Mgbm8gd2F5IGZvciB0aGUKICAgICAgICAgICog ZmxhZyB0byBnZXQgY2xlYXJlZCBhbnltb3JlIHdoZW4gdGhlcmUncyBubyBwb3NzaWJsZSBkZXN0 aW5hdGlvbgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMjEzNCwxMSArMjEzNCwxNiBA QCBzdGF0aWMgdm9pZCBhZGp1c3RfaXJxX2FmZmluaXR5KHN0cnVjdCBhCiAgICAgdW5zaWduZWQg aW50IG5vZGUgPSByaHNhID8gcHhtX3RvX25vZGUocmhzYS0+cHJveGltaXR5X2RvbWFpbikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBOVU1BX05PX05PREU7CiAgICAgY29uc3QgY3B1 bWFza190ICpjcHVtYXNrID0gJmNwdV9vbmxpbmVfbWFwOworICAgIHN0cnVjdCBpcnFfZGVzYyAq ZGVzYzsKIAogICAgIGlmICggbm9kZSA8IE1BWF9OVU1OT0RFUyAmJiBub2RlX29ubGluZShub2Rl KSAmJgogICAgICAgICAgY3B1bWFza19pbnRlcnNlY3RzKCZub2RlX3RvX2NwdW1hc2sobm9kZSks IGNwdW1hc2spICkKICAgICAgICAgY3B1bWFzayA9ICZub2RlX3RvX2NwdW1hc2sobm9kZSk7Ci0g ICAgZG1hX21zaV9zZXRfYWZmaW5pdHkoaXJxX3RvX2Rlc2MoZHJoZC0+aW9tbXUtPm1zaS5pcnEp LCBjcHVtYXNrKTsKKworICAgIGRlc2MgPSBpcnFfdG9fZGVzYyhkcmhkLT5pb21tdS0+bXNpLmly cSk7CisgICAgc3Bpbl9sb2NrX2lycSgmZGVzYy0+bG9jayk7CisgICAgZG1hX21zaV9zZXRfYWZm aW5pdHkoZGVzYywgY3B1bWFzayk7CisgICAgc3Bpbl91bmxvY2tfaXJxKCZkZXNjLT5sb2NrKTsK IH0KIAogc3RhdGljIGludCBhZGp1c3RfdnRkX2lycV9hZmZpbml0aWVzKHZvaWQpCgoKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs