From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH RFC 3/4] tmem: Move global_ individual variables in a global structure. Date: Mon, 16 May 2016 11:58:30 -0400 Message-ID: <1463414311-10677-4-git-send-email-konrad.wilk@oracle.com> References: <1463414311-10677-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2Kuu-0003pJ-JY for xen-devel@lists.xenproject.org; Mon, 16 May 2016 15:58:48 +0000 In-Reply-To: <1463414311-10677-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: andrew.cooper3@citrix.com, wei.liu2@citrix.com, jbeulich@suse.com, Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org UHV0IHRoZW0gYWxsIGluIG9uZSBzdHJ1Y3R1cmUgdG8gbWFrZSBpdCBlYXNpZXIgdG8KZmlndXJl IG91dCB3aGF0IGNhbiBiZSByZW1vdmVkLiBUaGUgc3RydWN0dXJlIGlzIGNhbGxlZAondG1lbV9n bG9iYWwnIGFzIGl0IHdpbGwgYmUgZXZlbnR1YWxseSBub24tc3RhdGljLgoKU2lnbmVkLW9mZi1i eTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgotLS0KIHhl bi9jb21tb24vdG1lbS5jIHwgNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDM2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdG1lbS5jIGIveGVuL2NvbW1v bi90bWVtLmMKaW5kZXggYjU4YWI0ZC4uNzBjYjYxZSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi90 bWVtLmMKKysrIGIveGVuL2NvbW1vbi90bWVtLmMKQEAgLTIyMiwxMyArMjIyLDYgQEAgc3RydWN0 IHRtZW1fcGFnZV9jb250ZW50X2Rlc2NyaXB0b3Igewogc3RydWN0IHJiX3Jvb3QgcGNkX3RyZWVf cm9vdHNbMjU2XTsgLyogQ2hvb3NlIGJhc2VkIG9uIGZpcnN0IGJ5dGUgb2YgcGFnZS4gKi8KIHJ3 bG9ja190IHBjZF90cmVlX3J3bG9ja3NbMjU2XTsgLyogUG9vciBtYW4ncyBjb25jdXJyZW5jeSBm b3Igbm93LiAqLwogCi1zdGF0aWMgTElTVF9IRUFEKGdsb2JhbF9lcGhlbWVyYWxfcGFnZV9saXN0 KTsgLyogQWxsIHBhZ2VzIGluIGVwaGVtZXJhbCBwb29scy4gKi8KLQotc3RhdGljIExJU1RfSEVB RChnbG9iYWxfY2xpZW50X2xpc3QpOwotCi1zdGF0aWMgc3RydWN0IHRtZW1fcG9vbCAqZ2xvYmFs X3NoYXJlZF9wb29sc1tNQVhfR0xPQkFMX1NIQVJFRF9QT09MU10gPSB7IDAgfTsKLXN0YXRpYyBi b29sX3QgZ2xvYmFsX3NoYXJlZF9hdXRoID0gMDsKLXN0YXRpYyBhdG9taWNfdCBjbGllbnRfd2Vp Z2h0X3RvdGFsID0gQVRPTUlDX0lOSVQoMCk7CiBzdGF0aWMgaW50IHRtZW1faW5pdGlhbGl6ZWQg PSAwOwogCiBzdHJ1Y3QgeG1lbV9wb29sICp0bWVtX21lbXBvb2wgPSAwOwpAQCAtMjQ1LDggKzIz OCwyMCBAQCBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHBlcnNfbGlzdHNfc3BpbmxvY2spOwogI2Rl ZmluZSBBU1NFUlRfU1BJTkxPQ0soX2wpIEFTU0VSVChzcGluX2lzX2xvY2tlZChfbCkpCiAjZGVm aW5lIEFTU0VSVF9XUklURUxPQ0soX2wpIEFTU0VSVChyd19pc193cml0ZV9sb2NrZWQoX2wpKQog Ci1zdGF0aWMgbG9uZyBnbG9iYWxfZXBoX2NvdW50OyAvKiBBdG9taWNpdHkgZGVwZW5kcyBvbiBl cGhfbGlzdHNfc3BpbmxvY2suICovCitzdHJ1Y3QgdG1lbV9nbG9iYWwgeworICAgIHN0cnVjdCBs aXN0X2hlYWQgZXBoZW1lcmFsX3BhZ2VfbGlzdDsgIC8qIEFsbCBwYWdlcyBpbiBlcGhlbWVyYWwg cG9vbHMuICovCisgICAgc3RydWN0IGxpc3RfaGVhZCBjbGllbnRfbGlzdDsKKyAgICBzdHJ1Y3Qg dG1lbV9wb29sICpzaGFyZWRfcG9vbHNbTUFYX0dMT0JBTF9TSEFSRURfUE9PTFNdOworICAgIGJv b2xfdCBzaGFyZWRfYXV0aDsKKyAgICBhdG9taWNfdCBjbGllbnRfd2VpZ2h0X3RvdGFsOworICAg IGxvbmcgZXBoX2NvdW50OyAgLyogQXRvbWljaXR5IGRlcGVuZHMgb24gZXBoX2xpc3RzX3NwaW5s b2NrLiAqLworfTsKIAorc3RydWN0IHRtZW1fZ2xvYmFsIHRtZW1fZ2xvYmFsID0geworICAgIC5l cGhlbWVyYWxfcGFnZV9saXN0ID0gTElTVF9IRUFEX0lOSVQodG1lbV9nbG9iYWwuZXBoZW1lcmFs X3BhZ2VfbGlzdCksCisgICAgLmNsaWVudF9saXN0ID0gTElTVF9IRUFEX0lOSVQodG1lbV9nbG9i YWwuY2xpZW50X2xpc3QpLAorICAgIC5jbGllbnRfd2VpZ2h0X3RvdGFsID0gQVRPTUlDX0lOSVQo MCksCit9OwogCiAvKgogICogVGhlcmUgdHdvIHR5cGVzIG9mIG1lbW9yeSBhbGxvY2F0aW9uIGlu dGVyZmFjZXMgaW4gdG1lbS4KQEAgLTcyNCw4ICs3MjksOCBAQCBzdGF0aWMgdm9pZCBwZ3BfZGVs aXN0X2ZyZWUoc3RydWN0IHRtZW1fcGFnZV9kZXNjcmlwdG9yICpwZ3ApCiAgICAgICAgIEFTU0VS VChjbGllbnQtPmVwaF9jb3VudCA+PSAwKTsKICAgICAgICAgbGlzdF9kZWxfaW5pdCgmcGdwLT51 cy5jbGllbnRfZXBoX3BhZ2VzKTsKICAgICAgICAgaWYgKCAhbGlzdF9lbXB0eSgmcGdwLT5nbG9i YWxfZXBoX3BhZ2VzKSApCi0gICAgICAgICAgICBnbG9iYWxfZXBoX2NvdW50LS07Ci0gICAgICAg IEFTU0VSVChnbG9iYWxfZXBoX2NvdW50ID49IDApOworICAgICAgICAgICAgdG1lbV9nbG9iYWwu ZXBoX2NvdW50LS07CisgICAgICAgIEFTU0VSVCh0bWVtX2dsb2JhbC5lcGhfY291bnQgPj0gMCk7 CiAgICAgICAgIGxpc3RfZGVsX2luaXQoJnBncC0+Z2xvYmFsX2VwaF9wYWdlcyk7CiAgICAgICAg IHNwaW5fdW5sb2NrKCZlcGhfbGlzdHNfc3BpbmxvY2spOwogICAgIH0KQEAgLTExMjYsOSArMTEz MSw5IEBAIHN0YXRpYyBpbnQgc2hhcmVkX3Bvb2xfcXVpdChzdHJ1Y3QgdG1lbV9wb29sICpwb29s LCBkb21pZF90IGNsaV9pZCkKICAgICAgICAgaWYgKHBvb2wtPnNoYXJlZF9jb3VudCkKICAgICAg ICAgICAgIHJldHVybiBwb29sLT5zaGFyZWRfY291bnQ7CiAgICAgICAgIGZvciAoc19wb29saWQg PSAwOyBzX3Bvb2xpZCA8IE1BWF9HTE9CQUxfU0hBUkVEX1BPT0xTOyBzX3Bvb2xpZCsrKQotICAg ICAgICAgICAgaWYgKCAoZ2xvYmFsX3NoYXJlZF9wb29sc1tzX3Bvb2xpZF0pID09IHBvb2wgKQor ICAgICAgICAgICAgaWYgKCAodG1lbV9nbG9iYWwuc2hhcmVkX3Bvb2xzW3NfcG9vbGlkXSkgPT0g cG9vbCApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZ2xvYmFsX3NoYXJlZF9wb29s c1tzX3Bvb2xpZF0gPSBOVUxMOworICAgICAgICAgICAgICAgIHRtZW1fZ2xvYmFsLnNoYXJlZF9w b29sc1tzX3Bvb2xpZF0gPSBOVUxMOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg ICAgfQogICAgICAgICByZXR1cm4gMDsKQEAgLTEyMDksNyArMTIxNCw3IEBAIHN0YXRpYyBzdHJ1 Y3QgY2xpZW50ICpjbGllbnRfY3JlYXRlKGRvbWlkX3QgY2xpX2lkKQogICAgIGZvciAoIGkgPSAw OyBpIDwgTUFYX0dMT0JBTF9TSEFSRURfUE9PTFM7IGkrKykKICAgICAgICAgY2xpZW50LT5zaGFy ZWRfYXV0aF91dWlkW2ldWzBdID0KICAgICAgICAgICAgIGNsaWVudC0+c2hhcmVkX2F1dGhfdXVp ZFtpXVsxXSA9IC0xTDsKLSAgICBsaXN0X2FkZF90YWlsKCZjbGllbnQtPmNsaWVudF9saXN0LCAm Z2xvYmFsX2NsaWVudF9saXN0KTsKKyAgICBsaXN0X2FkZF90YWlsKCZjbGllbnQtPmNsaWVudF9s aXN0LCAmdG1lbV9nbG9iYWwuY2xpZW50X2xpc3QpOwogICAgIElOSVRfTElTVF9IRUFEKCZjbGll bnQtPmVwaGVtZXJhbF9wYWdlX2xpc3QpOwogICAgIElOSVRfTElTVF9IRUFEKCZjbGllbnQtPnBl cnNpc3RlbnRfaW52YWxpZGF0ZWRfbGlzdCk7CiAgICAgdG1lbV9jbGllbnRfaW5mbygib2tcbiIp OwpAQCAtMTI0NSwxMyArMTI1MCwxMyBAQCBzdGF0aWMgdm9pZCBjbGllbnRfZmx1c2goc3RydWN0 IGNsaWVudCAqY2xpZW50KQogCiBzdGF0aWMgYm9vbF90IGNsaWVudF9vdmVyX3F1b3RhKHN0cnVj dCBjbGllbnQgKmNsaWVudCkKIHsKLSAgICBpbnQgdG90YWwgPSBfYXRvbWljX3JlYWQoY2xpZW50 X3dlaWdodF90b3RhbCk7CisgICAgaW50IHRvdGFsID0gX2F0b21pY19yZWFkKHRtZW1fZ2xvYmFs LmNsaWVudF93ZWlnaHRfdG90YWwpOwogCiAgICAgQVNTRVJUKGNsaWVudCAhPSBOVUxMKTsKICAg ICBpZiAoICh0b3RhbCA9PSAwKSB8fCAoY2xpZW50LT53ZWlnaHQgPT0gMCkgfHwKICAgICAgICAg ICAoY2xpZW50LT5lcGhfY291bnQgPT0gMCkgKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1 cm4gKCAoKGdsb2JhbF9lcGhfY291bnQqMTAwTCkgLyBjbGllbnQtPmVwaF9jb3VudCApID4KKyAg ICByZXR1cm4gKCAoKHRtZW1fZ2xvYmFsLmVwaF9jb3VudCoxMDBMKSAvIGNsaWVudC0+ZXBoX2Nv dW50ICkgPgogICAgICAgICAgICAgICgodG90YWwqMTAwTCkgLyBjbGllbnQtPndlaWdodCkgKTsK IH0KIApAQCAtMTI4MCw3ICsxMjg1LDcgQEAgc3RhdGljIGJvb2xfdCB0bWVtX3RyeV90b19ldmlj dF9wZ3Aoc3RydWN0IHRtZW1fcGFnZV9kZXNjcmlwdG9yICpwZ3AsIGJvb2xfdCAqaG8KICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICBwZ3AtPmV2aWN0aW9uX2F0dGVtcHRlZCsrOwogICAg ICAgICAgICAgICAgIGxpc3RfZGVsKCZwZ3AtPmdsb2JhbF9lcGhfcGFnZXMpOwotICAgICAgICAg ICAgICAgIGxpc3RfYWRkX3RhaWwoJnBncC0+Z2xvYmFsX2VwaF9wYWdlcywmZ2xvYmFsX2VwaGVt ZXJhbF9wYWdlX2xpc3QpOworICAgICAgICAgICAgICAgIGxpc3RfYWRkX3RhaWwoJnBncC0+Z2xv YmFsX2VwaF9wYWdlcywmdG1lbV9nbG9iYWwuZXBoZW1lcmFsX3BhZ2VfbGlzdCk7CiAgICAgICAg ICAgICAgICAgbGlzdF9kZWwoJnBncC0+dXMuY2xpZW50X2VwaF9wYWdlcyk7CiAgICAgICAgICAg ICAgICAgbGlzdF9hZGRfdGFpbCgmcGdwLT51cy5jbGllbnRfZXBoX3BhZ2VzLCZjbGllbnQtPmVw aGVtZXJhbF9wYWdlX2xpc3QpOwogICAgICAgICAgICAgICAgIGdvdG8gcGNkX3VubG9jazsKQEAg LTEzMjAsOSArMTMyNSw5IEBAIHN0YXRpYyBpbnQgdG1lbV9ldmljdCh2b2lkKQogICAgICAgICAg ICAgaWYgKCB0bWVtX3RyeV90b19ldmljdF9wZ3AocGdwLCAmaG9sZF9wb29sX3J3bG9jaykgKQog ICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CiAgICAgfQotICAgIGVsc2UgaWYgKCAhbGlzdF9l bXB0eSgmZ2xvYmFsX2VwaGVtZXJhbF9wYWdlX2xpc3QpICkKKyAgICBlbHNlIGlmICggIWxpc3Rf ZW1wdHkoJnRtZW1fZ2xvYmFsLmVwaGVtZXJhbF9wYWdlX2xpc3QpICkKICAgICB7Ci0gICAgICAg IGxpc3RfZm9yX2VhY2hfZW50cnkocGdwLCAmZ2xvYmFsX2VwaGVtZXJhbF9wYWdlX2xpc3QsIGds b2JhbF9lcGhfcGFnZXMpCisgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkocGdwLCAmdG1lbV9n bG9iYWwuZXBoZW1lcmFsX3BhZ2VfbGlzdCwgZ2xvYmFsX2VwaF9wYWdlcykKICAgICAgICAgICAg IGlmICggdG1lbV90cnlfdG9fZXZpY3RfcGdwKHBncCwgJmhvbGRfcG9vbF9yd2xvY2spICkKICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjbGllbnQgPSBwZ3AtPnVzLm9iai0+cG9vbC0+ Y2xpZW50OwpAQCAtMTMzOCw4ICsxMzQzLDggQEAgZm91bmQ6CiAgICAgbGlzdF9kZWxfaW5pdCgm cGdwLT51cy5jbGllbnRfZXBoX3BhZ2VzKTsKICAgICBjbGllbnQtPmVwaF9jb3VudC0tOwogICAg IGxpc3RfZGVsX2luaXQoJnBncC0+Z2xvYmFsX2VwaF9wYWdlcyk7Ci0gICAgZ2xvYmFsX2VwaF9j b3VudC0tOwotICAgIEFTU0VSVChnbG9iYWxfZXBoX2NvdW50ID49IDApOworICAgIHRtZW1fZ2xv YmFsLmVwaF9jb3VudC0tOworICAgIEFTU0VSVCh0bWVtX2dsb2JhbC5lcGhfY291bnQgPj0gMCk7 CiAgICAgQVNTRVJUKGNsaWVudC0+ZXBoX2NvdW50ID49IDApOwogICAgIHNwaW5fdW5sb2NrKCZl cGhfbGlzdHNfc3BpbmxvY2spOwogCkBAIC0xNjY0LDEwICsxNjY5LDkgQEAgaW5zZXJ0X3BhZ2U6 CiAgICAgaWYgKCAhaXNfcGVyc2lzdGVudChwb29sKSApCiAgICAgewogICAgICAgICBzcGluX2xv Y2soJmVwaF9saXN0c19zcGlubG9jayk7Ci0gICAgICAgIGxpc3RfYWRkX3RhaWwoJnBncC0+Z2xv YmFsX2VwaF9wYWdlcywKLSAgICAgICAgICAgICZnbG9iYWxfZXBoZW1lcmFsX3BhZ2VfbGlzdCk7 Ci0gICAgICAgIGlmICgrK2dsb2JhbF9lcGhfY291bnQgPiB0bWVtX3N0YXRzLmdsb2JhbF9lcGhf Y291bnRfbWF4KQotICAgICAgICAgICAgdG1lbV9zdGF0cy5nbG9iYWxfZXBoX2NvdW50X21heCA9 IGdsb2JhbF9lcGhfY291bnQ7CisgICAgICAgIGxpc3RfYWRkX3RhaWwoJnBncC0+Z2xvYmFsX2Vw aF9wYWdlcywgJnRtZW1fZ2xvYmFsLmVwaGVtZXJhbF9wYWdlX2xpc3QpOworICAgICAgICBpZiAo Kyt0bWVtX2dsb2JhbC5lcGhfY291bnQgPiB0bWVtX3N0YXRzLmdsb2JhbF9lcGhfY291bnRfbWF4 KQorICAgICAgICAgICAgdG1lbV9zdGF0cy5nbG9iYWxfZXBoX2NvdW50X21heCA9IHRtZW1fZ2xv YmFsLmVwaF9jb3VudDsKICAgICAgICAgbGlzdF9hZGRfdGFpbCgmcGdwLT51cy5jbGllbnRfZXBo X3BhZ2VzLAogICAgICAgICAgICAgJmNsaWVudC0+ZXBoZW1lcmFsX3BhZ2VfbGlzdCk7CiAgICAg ICAgIGlmICgrK2NsaWVudC0+ZXBoX2NvdW50ID4gY2xpZW50LT5lcGhfY291bnRfbWF4KQpAQCAt MTc3NCw3ICsxNzc4LDcgQEAgc3RhdGljIGludCBkb190bWVtX2dldChzdHJ1Y3QgdG1lbV9wb29s ICpwb29sLAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgc3Bpbl9sb2NrKCZlcGhfbGlz dHNfc3BpbmxvY2spOwogICAgICAgICAgICAgbGlzdF9kZWwoJnBncC0+Z2xvYmFsX2VwaF9wYWdl cyk7Ci0gICAgICAgICAgICBsaXN0X2FkZF90YWlsKCZwZ3AtPmdsb2JhbF9lcGhfcGFnZXMsJmds b2JhbF9lcGhlbWVyYWxfcGFnZV9saXN0KTsKKyAgICAgICAgICAgIGxpc3RfYWRkX3RhaWwoJnBn cC0+Z2xvYmFsX2VwaF9wYWdlcywmdG1lbV9nbG9iYWwuZXBoZW1lcmFsX3BhZ2VfbGlzdCk7CiAg ICAgICAgICAgICBsaXN0X2RlbCgmcGdwLT51cy5jbGllbnRfZXBoX3BhZ2VzKTsKICAgICAgICAg ICAgIGxpc3RfYWRkX3RhaWwoJnBncC0+dXMuY2xpZW50X2VwaF9wYWdlcywmY2xpZW50LT5lcGhl bWVyYWxfcGFnZV9saXN0KTsKICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZlcGhfbGlzdHNfc3Bp bmxvY2spOwpAQCAtMTk2Miw3ICsxOTY2LDcgQEAgc3RhdGljIGludCBkb190bWVtX25ld19wb29s KGRvbWlkX3QgdGhpc19jbGlfaWQsCiAgICAgICAgICAgICBwb29sLT5zaGFyZWQgPSAwOwogICAg ICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCBjbGllbnQtPnNoYXJl ZF9hdXRoX3JlcXVpcmVkICYmICFnbG9iYWxfc2hhcmVkX2F1dGggKQorICAgICAgICBpZiAoIGNs aWVudC0+c2hhcmVkX2F1dGhfcmVxdWlyZWQgJiYgIXRtZW1fZ2xvYmFsLnNoYXJlZF9hdXRoICkK ICAgICAgICAgewogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBNQVhfR0xPQkFMX1NIQVJF RF9QT09MUzsgaSsrKQogICAgICAgICAgICAgICAgIGlmICggKGNsaWVudC0+c2hhcmVkX2F1dGhf dXVpZFtpXVswXSA9PSB1dWlkX2xvKSAmJgpAQCAtMTk4Myw3ICsxOTg3LDcgQEAgc3RhdGljIGlu dCBkb190bWVtX25ld19wb29sKGRvbWlkX3QgdGhpc19jbGlfaWQsCiAgICAgICAgIGZpcnN0X3Vu dXNlZF9zX3Bvb2xpZCA9IE1BWF9HTE9CQUxfU0hBUkVEX1BPT0xTOwogICAgICAgICBmb3IgKCBp ID0gMDsgaSA8IE1BWF9HTE9CQUxfU0hBUkVEX1BPT0xTOyBpKysgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBpZiAoIChzaHBvb2wgPSBnbG9iYWxfc2hhcmVkX3Bvb2xzW2ldKSAhPSBOVUxMICkK KyAgICAgICAgICAgIGlmICggKHNocG9vbCA9IHRtZW1fZ2xvYmFsLnNoYXJlZF9wb29sc1tpXSkg IT0gTlVMTCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCBzaHBvb2wtPnV1 aWRbMF0gPT0gdXVpZF9sbyAmJiBzaHBvb2wtPnV1aWRbMV0gPT0gdXVpZF9oaSApCiAgICAgICAg ICAgICAgICAgewpAQCAtMjAyMCw3ICsyMDI0LDcgQEAgc3RhdGljIGludCBkb190bWVtX25ld19w b29sKGRvbWlkX3QgdGhpc19jbGlfaWQsCiAgICAgICAgICAgICBwb29sLT5zaGFyZWRfY291bnQg PSAwOwogICAgICAgICAgICAgaWYgKCBzaGFyZWRfcG9vbF9qb2luKHBvb2wsIGNsaWVudCkgKQog ICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgIGdsb2JhbF9zaGFyZWRfcG9v bHNbZmlyc3RfdW51c2VkX3NfcG9vbGlkXSA9IHBvb2w7CisgICAgICAgICAgICB0bWVtX2dsb2Jh bC5zaGFyZWRfcG9vbHNbZmlyc3RfdW51c2VkX3NfcG9vbGlkXSA9IHBvb2w7CiAgICAgICAgIH0K ICAgICB9CiAKQEAgLTIwNDYsNyArMjA1MCw3IEBAIHN0YXRpYyBpbnQgdG1lbWNfZnJlZXplX3Bv b2xzKGRvbWlkX3QgY2xpX2lkLCBpbnQgYXJnKQogICAgIHMgPSBkZXN0cm95ID8gImRlc3Ryb3ll ZCIgOiAoIGZyZWV6ZSA/ICJmcm96ZW4iIDogInRoYXdlZCIgKTsKICAgICBpZiAoIGNsaV9pZCA9 PSBUTUVNX0NMSV9JRF9OVUxMICkKICAgICB7Ci0gICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnko Y2xpZW50LCZnbG9iYWxfY2xpZW50X2xpc3QsY2xpZW50X2xpc3QpCisgICAgICAgIGxpc3RfZm9y X2VhY2hfZW50cnkoY2xpZW50LCZ0bWVtX2dsb2JhbC5jbGllbnRfbGlzdCxjbGllbnRfbGlzdCkK ICAgICAgICAgICAgIGNsaWVudC0+ZnJvemVuID0gZnJlZXplOwogICAgICAgICB0bWVtX2NsaWVu dF9pbmZvKCJ0bWVtOiBhbGwgcG9vbHMgJXMgZm9yIGFsbCAlc3NcbiIsIHMsIHRtZW1fY2xpZW50 X3N0cik7CiAgICAgfQpAQCAtMjE1Miw3ICsyMTU2LDcgQEAgc3RhdGljIGludCB0bWVtY19saXN0 X3NoYXJlZCh0bWVtX2NsaV92YV9wYXJhbV90IGJ1ZiwgaW50IG9mZiwgdWludDMyX3QgbGVuLAog CiAgICAgZm9yICggaSA9IDA7IGkgPCBNQVhfR0xPQkFMX1NIQVJFRF9QT09MUzsgaSsrICkKICAg ICB7Ci0gICAgICAgIGlmICggKHAgPSBnbG9iYWxfc2hhcmVkX3Bvb2xzW2ldKSA9PSBOVUxMICkK KyAgICAgICAgaWYgKCAocCA9IHRtZW1fZ2xvYmFsLnNoYXJlZF9wb29sc1tpXSkgPT0gTlVMTCAp CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgbiA9IHNjbnByaW50ZihpbmZvK24sQlNJ WkUtbiwiUz1TSTolZCxQVDolYyVjLFUwOiUiUFJJeDY0IixVMTolIlBSSXg2NCwKICAgICAgICAg ICAgICAgICAgICAgICBpLCBpc19wZXJzaXN0ZW50KHApID8gJ1AnIDogJ0UnLApAQCAtMjIxNiw3 ICsyMjIwLDcgQEAgc3RhdGljIGludCB0bWVtY19saXN0X2dsb2JhbCh0bWVtX2NsaV92YV9wYXJh bV90IGJ1ZiwgaW50IG9mZiwgdWludDMyX3QgbGVuLAogICAgICAgICBuICs9IHNjbnByaW50Zihp bmZvK24sQlNJWkUtbiwKICAgICAgICAgICAiRWM6JWxkLEVtOiVsZCxPYzolZCxPbTolZCxOYzol ZCxObTolZCxQYzolZCxQbTolZCwiCiAgICAgICAgICAgIkZjOiVkLEZtOiVkLFNjOiVkLFNtOiVk LEVwOiVsdSxHZDolbHUsWnQ6JWx1LEd6OiVsdVxuIiwKLSAgICAgICAgICBnbG9iYWxfZXBoX2Nv dW50LCB0bWVtX3N0YXRzLmdsb2JhbF9lcGhfY291bnRfbWF4LAorICAgICAgICAgIHRtZW1fZ2xv YmFsLmVwaF9jb3VudCwgdG1lbV9zdGF0cy5nbG9iYWxfZXBoX2NvdW50X21heCwKICAgICAgICAg ICBfYXRvbWljX3JlYWQodG1lbV9zdGF0cy5nbG9iYWxfb2JqX2NvdW50KSwgdG1lbV9zdGF0cy5n bG9iYWxfb2JqX2NvdW50X21heCwKICAgICAgICAgICBfYXRvbWljX3JlYWQodG1lbV9zdGF0cy5n bG9iYWxfcnRyZWVfbm9kZV9jb3VudCksIHRtZW1fc3RhdHMuZ2xvYmFsX3J0cmVlX25vZGVfY291 bnRfbWF4LAogICAgICAgICAgIF9hdG9taWNfcmVhZCh0bWVtX3N0YXRzLmdsb2JhbF9wZ3BfY291 bnQpLCB0bWVtX3N0YXRzLmdsb2JhbF9wZ3BfY291bnRfbWF4LApAQCAtMjI0MCw3ICsyMjQ0LDcg QEAgc3RhdGljIGludCB0bWVtY19saXN0KGRvbWlkX3QgY2xpX2lkLCB0bWVtX2NsaV92YV9wYXJh bV90IGJ1ZiwgdWludDMyX3QgbGVuLAogICAgIGlmICggY2xpX2lkID09IFRNRU1fQ0xJX0lEX05V TEwgKSB7CiAgICAgICAgIG9mZiA9IHRtZW1jX2xpc3RfZ2xvYmFsKGJ1ZiwwLGxlbix1c2VfbG9u Zyk7CiAgICAgICAgIG9mZiArPSB0bWVtY19saXN0X3NoYXJlZChidWYsb2ZmLGxlbi1vZmYsdXNl X2xvbmcpOwotICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGNsaWVudCwmZ2xvYmFsX2NsaWVu dF9saXN0LGNsaWVudF9saXN0KQorICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGNsaWVudCwm dG1lbV9nbG9iYWwuY2xpZW50X2xpc3QsY2xpZW50X2xpc3QpCiAgICAgICAgICAgICBvZmYgKz0g dG1lbWNfbGlzdF9jbGllbnQoY2xpZW50LCBidWYsIG9mZiwgbGVuLW9mZiwgdXNlX2xvbmcpOwog ICAgICAgICBvZmYgKz0gdG1lbWNfbGlzdF9nbG9iYWxfcGVyZihidWYsb2ZmLGxlbi1vZmYsdXNl X2xvbmcpOwogICAgIH0KQEAgLTIyNjQsOCArMjI2OCw4IEBAIHN0YXRpYyBpbnQgX190bWVtY19z ZXRfdmFyKHN0cnVjdCBjbGllbnQgKmNsaWVudCwgdWludDMyX3Qgc3Vib3AsIHVpbnQzMl90IGFy ZzEpCiAgICAgICAgIGNsaWVudC0+d2VpZ2h0ID0gYXJnMTsKICAgICAgICAgdG1lbV9jbGllbnRf aW5mbygidG1lbTogd2VpZ2h0IHNldCB0byAlZCBmb3IgJXM9JWRcbiIsCiAgICAgICAgICAgICAg ICAgICAgICAgICBhcmcxLCB0bWVtX2NsaV9pZF9zdHIsIGNsaV9pZCk7Ci0gICAgICAgIGF0b21p Y19zdWIob2xkX3dlaWdodCwmY2xpZW50X3dlaWdodF90b3RhbCk7Ci0gICAgICAgIGF0b21pY19h ZGQoY2xpZW50LT53ZWlnaHQsJmNsaWVudF93ZWlnaHRfdG90YWwpOworICAgICAgICBhdG9taWNf c3ViKG9sZF93ZWlnaHQsJnRtZW1fZ2xvYmFsLmNsaWVudF93ZWlnaHRfdG90YWwpOworICAgICAg ICBhdG9taWNfYWRkKGNsaWVudC0+d2VpZ2h0LCZ0bWVtX2dsb2JhbC5jbGllbnRfd2VpZ2h0X3Rv dGFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBYRU5fU1lTQ1RMX1RNRU1fT1BfU0VUX0NB UDoKICAgICAgICAgY2xpZW50LT5jYXAgPSBhcmcxOwpAQCAtMjI5OCw3ICsyMzAyLDcgQEAgc3Rh dGljIGludCB0bWVtY19zZXRfdmFyKGRvbWlkX3QgY2xpX2lkLCB1aW50MzJfdCBzdWJvcCwgdWlu dDMyX3QgYXJnMSkKIAogICAgIGlmICggY2xpX2lkID09IFRNRU1fQ0xJX0lEX05VTEwgKQogICAg IHsKLSAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShjbGllbnQsJmdsb2JhbF9jbGllbnRfbGlz dCxjbGllbnRfbGlzdCkKKyAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShjbGllbnQsJnRtZW1f Z2xvYmFsLmNsaWVudF9saXN0LGNsaWVudF9saXN0KQogICAgICAgICB7CiAgICAgICAgICAgICBy ZXQgPSAgX190bWVtY19zZXRfdmFyKGNsaWVudCwgc3Vib3AsIGFyZzEpOwogICAgICAgICAgICAg aWYgKHJldCkKQEAgLTIzMjIsNyArMjMyNiw3IEBAIHN0YXRpYyBpbnQgdG1lbWNfc2hhcmVkX3Bv b2xfYXV0aChkb21pZF90IGNsaV9pZCwgdWludDY0X3QgdXVpZF9sbywKIAogICAgIGlmICggY2xp X2lkID09IFRNRU1fQ0xJX0lEX05VTEwgKQogICAgIHsKLSAgICAgICAgZ2xvYmFsX3NoYXJlZF9h dXRoID0gYXV0aDsKKyAgICAgICAgdG1lbV9nbG9iYWwuc2hhcmVkX2F1dGggPSBhdXRoOwogICAg ICAgICByZXR1cm4gMTsKICAgICB9CiAgICAgY2xpZW50ID0gdG1lbV9jbGllbnRfZnJvbV9jbGlf aWQoY2xpX2lkKTsKLS0gCjIuNS41CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK