From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936941AbXGZUQ6 (ORCPT ); Thu, 26 Jul 2007 16:16:58 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S936836AbXGZUQO (ORCPT ); Thu, 26 Jul 2007 16:16:14 -0400 Received: from nz-out-0506.google.com ([64.233.162.231]:60810 "EHLO nz-out-0506.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936830AbXGZUQM (ORCPT ); Thu, 26 Jul 2007 16:16:12 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:mime-version:content-type; b=FQqtnOD4eDykeEM1qjAG0fsryaoV0yBBwVur3dc+Qu6PN1ljuSvksxiXrfSbuuVradc3S9la7fud1CUP2AKJQO1I9NH/GNpaVI+l7G2/A1QeRn4v23nRJ4GtIY4XndssRTBV6uL4CvvZJAhOPRuWCJ4DkwaNplCLuukI1Xm1+G0= Message-ID: <86802c440707261316w3b7e92e6jfdbc0ad0770d30ae@mail.gmail.com> Date: Thu, 26 Jul 2007 13:16:07 -0700 From: "Yinghai Lu" To: "Andrew Morton" , "Andi Kleen" , "Christoph Lameter" Subject: [PATCH 04/05] x86_64: get boot_cpu_id as early for k8_scan_nodes Cc: linux-kernel MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_205844_9684281.1185480967684" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org ------=_Part_205844_9684281.1185480967684 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline ------=_Part_205844_9684281.1185480967684 Content-Type: text/x-patch; name=apicid_to_node_4.diff; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f4lotvto Content-Disposition: attachment; filename="apicid_to_node_4.diff" W1BBVENIIDA0LzA1XSB4ODZfNjQ6IGdldCBib290X2NwdV9pZCBhcyBlYXJseSBmb3Igazhfc2Nh bl9ub2RlcwoKV2hlbiBhY3BpPW9mZiBvciB0aGVyZSBpcyBubyBTUkFUIGRlZmluZWQsIGFwaWNp ZF90b19ub2RlIGlzIGdvdCBmcm9tIEs4Ck5vcnRoYnJpZGdlIFBDSSBjb25maWd1cmF0aW9uIHNw YWNlIGluIGs4X3NjYW5fbm9kZXMoKSBpbgphcmNoL3g4Nl82NC9tbS9rOHRvcGxvZ3kuYy4KVGhl IHByb2JsZW0gaXMgdGhhdCBpdCBhc3N1bWVzIGJzcCBhcGljIGlkIGlzIDAgYXQgdGhhdCBwb2lu dC4KRm9yIGZvdXIgc29ja2V0IHN5c3RlbSB3aXRoIFF1YWQgY29yZSBjcHVzIGluc3RhbGxlZCwg YWxsIGNwdXMgYXBpYyBpZAppcyBvZmZzZXQgYnkgNCwgYW5kIGJzcCBhcGljIGlkIGlzIDQuCkZv ciBlaWdodCBzb2NrZXQgc3lzdGVtIHdpdGggZHVhbCBjb3JlIGNwdXMgaW5zdGFsbGVkLCBhbGwg Y3B1cyBhcGljIGlkCmlzIG9mZnNldCBieSAyLCBhbmQgYnNwIGFwaWMgaWQgaXMgMi4KCldlIG5l ZWQgZ2V0IGJvb3RfY3B1X2lkIC0tLSBic3AgYXBpYyBpZCwgYmVmb3JlIGs4X3NjYW5fbm9kZXMg YnkgY2FsbGVkLgoKU28gY3JlYXRlIGVhcmx5X2FjcGlfYm9vdF9pbml0IGFuZCBlYXJseV9nZXRf c21wX2NvbmZpZyBmb3IgZ2V0IGJvb3RfY3B1X2lkLgoKU2lnbmVkLW9mZi1ieTogWWluZ2hhaSBM dSA8eWhsdS5rZXJuZWxAZ21haWwuY29tPgoKIGFyY2gveDg2XzY0L21tL2s4dG9wb2xvZ3kuYyAg ICB8ICAgIDggKysrCiBiL2FyY2gvaTM4Ni9rZXJuZWwvYWNwaS9ib290LmMgfCAgIDcwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBiL2FyY2gveDg2XzY0L2tlcm5lbC9hcGljLmMg ICAgfCAgIDI5ICsrKysrKysrKysrLS0KIGIvYXJjaC94ODZfNjQva2VybmVsL21wcGFyc2UuYyB8 ICAgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGIvYXJjaC94 ODZfNjQva2VybmVsL3NldHVwLmMgICB8ICAgMjEgKysrKysrKysrCiBiL2luY2x1ZGUvYXNtLXg4 Nl82NC9hcGljLmggICAgfCAgICAyCiBiL2luY2x1ZGUvYXNtLXg4Nl82NC9tcHNwZWMuaCAgfCAg ICAyCiBiL2luY2x1ZGUvbGludXgvYWNwaS5oICAgICAgICAgfCAgICA1ICsrCiA4IGZpbGVzIGNo YW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCi0tLSBhL2FyY2gveDg2 XzY0L21tL2s4dG9wb2xvZ3kuYwkyMDA3LTA3LTIyIDE2OjE2OjU3LjAwMDAwMDAwMCAtMDcwMAor KysgYi9hcmNoL3g4Nl82NC9tbS9rOHRvcG9sb2d5LmMJMjAwNy0wNy0yMyAwMDoxOTo0OS4wMDAw MDAwMDAgLTA3MDAKQEAgLTUyLDYgKzUyLDcgQEAKIAl1bnNpZ25lZCBjb3JlczsKIAl1bnNpZ25l ZCBiaXRzOwogCWludCBqOworCXVuc2lnbmVkIGFwaWNpZF9iYXNlOwogCiAJaWYgKCFlYXJseV9w Y2lfYWxsb3dlZCgpKQogCQlyZXR1cm4gLTE7CkBAIC0xNzAsMTEgKzE3MSwxNiBAQAogCS8qIHVz ZSB0aGUgY29yZWlkIGJpdHMgZnJvbSBlYXJseV9pZGVudGlmeV9jcHUgKi8KIAliaXRzID0gYm9v dF9jcHVfZGF0YS54ODZfY29yZWlkX2JpdHM7CiAJY29yZXMgPSAoMTw8Yml0cyk7CisJYXBpY2lk X2Jhc2UgPSAwOworCWlmIChib290X2NwdV9pZCA+IDApIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAi QlNQIEFQSUMgSUQ6ICUwMnhcbiIsIGJvb3RfY3B1X2lkKTsKKwkJYXBpY2lkX2Jhc2UgPSBib290 X2NwdV9pZDsKKwl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CiAJCWlmIChub2Rlc1tp XS5zdGFydCAhPSBub2Rlc1tpXS5lbmQpIHsgCiAJCQlub2RlaWQgPSBub2RlaWRzW2ldOwotCQkJ Zm9yIChqID0gMDsgaiA8IGNvcmVzOyBqKyspCisJCQlmb3IgKGogPSBhcGljaWRfYmFzZTsgaiA8 IGNvcmVzICsgYXBpY2lkX2Jhc2U7IGorKykKIAkJCQlhcGljaWRfdG9fbm9kZVsobm9kZWlkIDw8 IGJpdHMpICsgal0gPSBpOwogCQkJc2V0dXBfbm9kZV9ib290bWVtKGksIG5vZGVzW2ldLnN0YXJ0 LCBub2Rlc1tpXS5lbmQpOyAKIAkJfSAKZGlmZiAtLWdpdCBhL2FyY2gvaTM4Ni9rZXJuZWwvYWNw aS9ib290LmMgYi9hcmNoL2kzODYva2VybmVsL2FjcGkvYm9vdC5jCmluZGV4IGNhY2RkODguLmU2 Njc5ZDUgMTAwNjQ0Ci0tLSBhL2FyY2gvaTM4Ni9rZXJuZWwvYWNwaS9ib290LmMKKysrIGIvYXJj aC9pMzg2L2tlcm5lbC9hY3BpL2Jvb3QuYwpAQCAtNzM2LDYgKzczNiwzMiBAQCB1bnNpZ25lZCBs b25nIF9faW5pdCBhY3BpX2ZpbmRfcnNkcCh2b2lkKQogICogUGFyc2UgTEFQSUMgZW50cmllcyBp biBNQURUCiAgKiByZXR1cm5zIDAgb24gc3VjY2VzcywgPCAwIG9uIGVycm9yCiAgKi8KK3N0YXRp YyBpbnQgX19pbml0IGVhcmx5X2FjcGlfcGFyc2VfbWFkdF9sYXBpY19hZGRyX292cih2b2lkKQor eworCWludCBjb3VudDsKKworCWlmICghY3B1X2hhc19hcGljKQorCQlyZXR1cm4gLUVOT0RFVjsK KworCS8qCisJICogTm90ZSB0aGF0IHRoZSBMQVBJQyBhZGRyZXNzIGlzIG9idGFpbmVkIGZyb20g dGhlIE1BRFQgKDMyLWJpdCB2YWx1ZSkKKwkgKiBhbmQgKG9wdGlvbmFsbHkpIG92ZXJyaWRlbiBi eSBhIExBUElDX0FERFJfT1ZSIGVudHJ5ICg2NC1iaXQgdmFsdWUpLgorCSAqLworCisJY291bnQg PQorCSAgICBhY3BpX3RhYmxlX3BhcnNlX21hZHQoQUNQSV9NQURUX1RZUEVfTE9DQUxfQVBJQ19P VkVSUklERSwKKwkJCQkgIGFjcGlfcGFyc2VfbGFwaWNfYWRkcl9vdnIsIDApOworCWlmIChjb3Vu dCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSIFBSRUZJWAorCQkgICAgICAgIkVycm9yIHBhcnNp bmcgTEFQSUMgYWRkcmVzcyBvdmVycmlkZSBlbnRyeVxuIik7CisJCXJldHVybiBjb3VudDsKKwl9 CisKKwltcF9yZWdpc3Rlcl9sYXBpY19hZGRyZXNzKGFjcGlfbGFwaWNfYWRkcik7CisKKwlyZXR1 cm4gY291bnQ7Cit9CisKIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfcGFyc2VfbWFkdF9sYXBpY19l bnRyaWVzKHZvaWQpCiB7CiAJaW50IGNvdW50OwpAQCAtODYyLDYgKzg4OCwzMyBAQCBzdGF0aWMg aW5saW5lIGludCBhY3BpX3BhcnNlX21hZHRfaW9hcGljX2VudHJpZXModm9pZCkKIH0KICNlbmRp ZgkvKiAhQ09ORklHX1g4Nl9JT19BUElDICovCiAKK3N0YXRpYyB2b2lkIF9faW5pdCBlYXJseV9h Y3BpX3Byb2Nlc3NfbWFkdCh2b2lkKQoreworI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwor CWludCBlcnJvcjsKKworCWlmICghYWNwaV90YWJsZV9wYXJzZShBQ1BJX1NJR19NQURULCBhY3Bp X3BhcnNlX21hZHQpKSB7CisKKwkJLyoKKwkJICogUGFyc2UgTUFEVCBMQVBJQyBlbnRyaWVzCisJ CSAqLworCQllcnJvciA9IGVhcmx5X2FjcGlfcGFyc2VfbWFkdF9sYXBpY19hZGRyX292cigpOwor CQlpZiAoIWVycm9yKSB7CisJCQlhY3BpX2xhcGljID0gMTsKKwkJCXNtcF9mb3VuZF9jb25maWcg PSAxOworCQl9CisJCWlmIChlcnJvciA9PSAtRUlOVkFMKSB7CisJCQkvKgorCQkJICogRGVsbCBQ cmVjaXNpb24gV29ya3N0YXRpb24gNDEwLCA2MTAgY29tZSBoZXJlLgorCQkJICovCisJCQlwcmlu dGsoS0VSTl9FUlIgUFJFRklYCisJCQkgICAgICAgIkludmFsaWQgQklPUyBNQURULCBkaXNhYmxp bmcgQUNQSVxuIik7CisJCQlkaXNhYmxlX2FjcGkoKTsKKwkJfQorCX0KKyNlbmRpZgorfQorCiBz dGF0aWMgdm9pZCBfX2luaXQgYWNwaV9wcm9jZXNzX21hZHQodm9pZCkKIHsKICNpZmRlZiBDT05G SUdfWDg2X0xPQ0FMX0FQSUMKQEAgLTExOTQsNiArMTI0NywyMyBAQCBpbnQgX19pbml0IGFjcGlf Ym9vdF90YWJsZV9pbml0KHZvaWQpCiAJcmV0dXJuIDA7CiB9CiAKK2ludCBfX2luaXQgZWFybHlf YWNwaV9ib290X2luaXQodm9pZCkKK3sKKwkvKgorCSAqIElmIGFjcGlfZGlzYWJsZWQsIGJhaWwg b3V0CisJICogT25lIGV4Y2VwdGlvbjogYWNwaT1odCBjb250aW51ZXMgZmFyIGVub3VnaCB0byBl bnVtZXJhdGUgTEFQSUNzCisJICovCisJaWYgKGFjcGlfZGlzYWJsZWQgJiYgIWFjcGlfaHQpCisJ CXJldHVybiAxOworCisJLyoKKwkgKiBQcm9jZXNzIHRoZSBNdWx0aXBsZSBBUElDIERlc2NyaXB0 aW9uIFRhYmxlIChNQURUKSwgaWYgcHJlc2VudAorCSAqLworCWVhcmx5X2FjcGlfcHJvY2Vzc19t YWR0KCk7CisKKwlyZXR1cm4gMDsKK30KKwogaW50IF9faW5pdCBhY3BpX2Jvb3RfaW5pdCh2b2lk KQogewogCS8qCmRpZmYgLS1naXQgYS9hcmNoL3g4Nl82NC9rZXJuZWwvYXBpYy5jIGIvYXJjaC94 ODZfNjQva2VybmVsL2FwaWMuYwppbmRleCA5MDBmZjM4Li43MGI5ZTJiIDEwMDY0NAotLS0gYS9h cmNoL3g4Nl82NC9rZXJuZWwvYXBpYy5jCisrKyBiL2FyY2gveDg2XzY0L2tlcm5lbC9hcGljLmMK QEAgLTY5MCw2ICs2ODksMzAgQEAgc3RhdGljIGludCBfX2luaXQgaW9hcGljX2luc2VydF9yZXNv dXJjZXModm9pZCkKIGxhdGVfaW5pdGNhbGwoaW9hcGljX2luc2VydF9yZXNvdXJjZXMpOwogI2Vu ZGlmCiAKK3ZvaWQgX19pbml0IGVhcmx5X2luaXRfbGFwaWNfbWFwcGluZyh2b2lkKQoreworCXVu c2lnbmVkIGxvbmcgYXBpY19waHlzOworCisJLyoKKwkgKiBJZiBubyBsb2NhbCBBUElDIGNhbiBi ZSBmb3VuZCB0aGVuIGdvIG91dAorCSAqIDogaXQgbWVhbnMgdGhlcmUgaXMgbm8gbXBhdGFibGUg YW5kIE1BRFQKKwkgKi8KKwlpZiAoIXNtcF9mb3VuZF9jb25maWcpCisJCXJldHVybjsKKworCWFw aWNfcGh5cyA9IG1wX2xhcGljX2FkZHI7CisKKwlzZXRfZml4bWFwX25vY2FjaGUoRklYX0FQSUNf QkFTRSwgYXBpY19waHlzKTsKKwlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICJtYXBwZWQgQVBJ QyB0byAlMTZseCAoJTE2bHgpXG4iLAorCQkJCSBBUElDX0JBU0UsIGFwaWNfcGh5cyk7CisKKwkv KgorCSAqIEZldGNoIHRoZSBBUElDIElEIG9mIHRoZSBCU1AgaW4gY2FzZSB3ZSBoYXZlIGEKKwkg KiBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gKG9yIHRoZSBNUCB0YWJsZSBpcyBicm9rZW4pLgorCSAq LworCWJvb3RfY3B1X2lkID0gR0VUX0FQSUNfSUQoYXBpY19yZWFkKEFQSUNfSUQpKTsKK30KKwog dm9pZCBfX2luaXQgaW5pdF9hcGljX21hcHBpbmdzKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBh cGljX3BoeXM7CmRpZmYgLS1naXQgYS9hcmNoL3g4Nl82NC9rZXJuZWwvbXBwYXJzZS5jIGIvYXJj aC94ODZfNjQva2VybmVsL21wcGFyc2UuYwppbmRleCA4YmYwY2EwLi5mMjA1YTRjIDEwMDY0NAot LS0gYS9hcmNoL3g4Nl82NC9rZXJuZWwvbXBwYXJzZS5jCisrKyBiL2FyY2gveDg2XzY0L2tlcm5l bC9tcHBhcnNlLmMKQEAgLTIwMiw4ICsyMDIsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgTVBfbGlu dHNyY19pbmZvIChzdHJ1Y3QgbXBjX2NvbmZpZ19saW50c3JjICptKQogLyoKICAqIFJlYWQvcGFy c2UgdGhlIE1QQwogICovCi0KLXN0YXRpYyBpbnQgX19pbml0IHNtcF9yZWFkX21wYyhzdHJ1Y3Qg bXBfY29uZmlnX3RhYmxlICptcGMpCitzdGF0aWMgaW50IF9faW5pdCBzbXBfcmVhZF9tcGMoc3Ry dWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCB1bnNpZ25lZCBlYXJseSkKIHsKIAljaGFyIHN0clsx Nl07CiAJaW50IGNvdW50PXNpemVvZigqbXBjKTsKQEAgLTI0NCw2ICsyNDMsOSBAQCBzdGF0aWMg aW50IF9faW5pdCBzbXBfcmVhZF9tcGMoc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjKQogCWlm ICghYWNwaV9sYXBpYykKIAkJbXBfbGFwaWNfYWRkciA9IG1wYy0+bXBjX2xhcGljOwogCisJaWYg KGVhcmx5KQorCQlyZXR1cm4gMTsKKwogCS8qCiAJICoJTm93IHByb2Nlc3MgdGhlIGNvbmZpZ3Vy YXRpb24gYmxvY2tzLgogCSAqLwpAQCAtNDU1LDI3ICs0NTcsMzggQEAgc3RhdGljIHN0cnVjdCBp bnRlbF9tcF9mbG9hdGluZyAqbXBmX2ZvdW5kOwogLyoKICAqIFNjYW4gdGhlIG1lbW9yeSBibG9j a3MgZm9yIGFuIFNNUCBjb25maWd1cmF0aW9uIGJsb2NrLgogICovCi12b2lkIF9faW5pdCBnZXRf c21wX2NvbmZpZyAodm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCBfX2dldF9zbXBfY29uZmlnKHVu c2lnbmVkIGVhcmx5KQogewogCXN0cnVjdCBpbnRlbF9tcF9mbG9hdGluZyAqbXBmID0gbXBmX2Zv dW5kOwogCisJaWYgKGFjcGlfbGFwaWMgJiYgZWFybHkpCisJCXJldHVybjsKIAkvKgotIAkgKiBB Q1BJIHN1cHBvcnRzIGJvdGggbG9naWNhbCAoZS5nLiBIeXBlci1UaHJlYWRpbmcpIGFuZCBwaHlz aWNhbCAKLSAJICogcHJvY2Vzc29ycywgd2hlcmUgTVBTIG9ubHkgc3VwcG9ydHMgcGh5c2ljYWwu Ci0gCSAqLwotIAlpZiAoYWNwaV9sYXBpYyAmJiBhY3BpX2lvYXBpYykgewotIAkJcHJpbnRrKEtF Uk5fSU5GTyAiVXNpbmcgQUNQSSAoTUFEVCkgZm9yIFNNUCBjb25maWd1cmF0aW9uIGluZm9ybWF0 aW9uXG4iKTsKLSAJCXJldHVybjsKLQl9Ci0gCWVsc2UgaWYgKGFjcGlfbGFwaWMpCi0gCQlwcmlu dGsoS0VSTl9JTkZPICJVc2luZyBBQ1BJIGZvciBwcm9jZXNzb3IgKExBUElDKSBjb25maWd1cmF0 aW9uIGluZm9ybWF0aW9uXG4iKTsKKwkgKiBBQ1BJIHN1cHBvcnRzIGJvdGggbG9naWNhbCAoZS5n LiBIeXBlci1UaHJlYWRpbmcpIGFuZCBwaHlzaWNhbAorCSAqIHByb2Nlc3NvcnMsIHdoZXJlIE1Q UyBvbmx5IHN1cHBvcnRzIHBoeXNpY2FsLgorCSAqLworCWlmIChhY3BpX2xhcGljICYmIGFjcGlf aW9hcGljKSB7CisJCXByaW50ayhLRVJOX0lORk8gIlVzaW5nIEFDUEkgKE1BRFQpIGZvciBTTVAg Y29uZmlndXJhdGlvbiAiCisJCQkiaW5mb3JtYXRpb25cbiIpOworCQlyZXR1cm47CisJfSBlbHNl IGlmIChhY3BpX2xhcGljKQorCQlwcmludGsoS0VSTl9JTkZPICJVc2luZyBBQ1BJIGZvciBwcm9j ZXNzb3IgKExBUElDKSAiCisJCQkiY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvblxuIik7CiAKLQlw cmludGsoIkludGVsIE11bHRpUHJvY2Vzc29yIFNwZWNpZmljYXRpb24gdjEuJWRcbiIsIG1wZi0+ bXBmX3NwZWNpZmljYXRpb24pOworCXByaW50ayhLRVJOX0lORk8gIkludGVsIE11bHRpUHJvY2Vz c29yIFNwZWNpZmljYXRpb24gdjEuJWRcbiIsCisJCW1wZi0+bXBmX3NwZWNpZmljYXRpb24pOwog CiAJLyoKIAkgKiBOb3cgc2VlIGlmIHdlIG5lZWQgdG8gcmVhZCBmdXJ0aGVyLgogCSAqLwogCWlm IChtcGYtPm1wZl9mZWF0dXJlMSAhPSAwKSB7CisJCWlmIChlYXJseSkgeworCQkJLyoKKwkJCSAq IGxvY2FsIEFQSUMgaGFzIGRlZmF1bHQgYWRkcmVzcworCQkJICovCisJCQltcF9sYXBpY19hZGRy ID0gQVBJQ19ERUZBVUxUX1BIWVNfQkFTRTsKKwkJCXJldHVybjsKKwkJfQogCiAJCXByaW50ayhL RVJOX0lORk8gIkRlZmF1bHQgTVAgY29uZmlndXJhdGlvbiAjJWRcbiIsIG1wZi0+bXBmX2ZlYXR1 cmUxKTsKIAkJY29uc3RydWN0X2RlZmF1bHRfSVNBX21wdGFibGUobXBmLT5tcGZfZmVhdHVyZTEp OwpAQCAtNDg2LDEyICs0OTksMTUgQEAgdm9pZCBfX2luaXQgZ2V0X3NtcF9jb25maWcgKHZvaWQp CiAJCSAqIFJlYWQgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIHRhYmxlLiAgQW55dGhpbmcgaGVyZSB3 aWxsCiAJCSAqIG92ZXJyaWRlIHRoZSBkZWZhdWx0cy4KIAkJICovCi0JCWlmICghc21wX3JlYWRf bXBjKHBoeXNfdG9fdmlydChtcGYtPm1wZl9waHlzcHRyKSkpIHsKKwkJaWYgKCFzbXBfcmVhZF9t cGMocGh5c190b192aXJ0KG1wZi0+bXBmX3BoeXNwdHIpLCBlYXJseSkpIHsKIAkJCXNtcF9mb3Vu ZF9jb25maWcgPSAwOwogCQkJcHJpbnRrKEtFUk5fRVJSICJCSU9TIGJ1ZywgTVAgdGFibGUgZXJy b3JzIGRldGVjdGVkIS4uLlxuIik7CiAJCQlwcmludGsoS0VSTl9FUlIgIi4uLiBkaXNhYmxpbmcg U01QIHN1cHBvcnQuICh0ZWxsIHlvdXIgaHcgdmVuZG9yKVxuIik7CiAJCQlyZXR1cm47CiAJCX0K KworCQlpZiAoZWFybHkpCisJCQlyZXR1cm47CiAJCS8qCiAJCSAqIElmIHRoZXJlIGFyZSBubyBl eHBsaWNpdCBNUCBJUlEgZW50cmllcywgdGhlbiB3ZSBhcmUKIAkJICogYnJva2VuLiAgV2Ugc2V0 IHVwIG1vc3Qgb2YgdGhlIGxvdyAxNiBJTy1BUElDIHBpbnMgdG8KQEAgLTUxMywxMyArNTI5LDI1 IEBAIHZvaWQgX19pbml0IGdldF9zbXBfY29uZmlnICh2b2lkKQogCX0gZWxzZQogCQlCVUcoKTsK IAotCXByaW50ayhLRVJOX0lORk8gIlByb2Nlc3NvcnM6ICVkXG4iLCBudW1fcHJvY2Vzc29ycyk7 CisJaWYgKCFlYXJseSkKKwkJcHJpbnRrKEtFUk5fSU5GTyAiUHJvY2Vzc29yczogJWRcbiIsIG51 bV9wcm9jZXNzb3JzKTsKIAkvKgogCSAqIE9ubHkgdXNlIHRoZSBmaXJzdCBjb25maWd1cmF0aW9u IGZvdW5kLgogCSAqLwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzbXBfc2Nhbl9jb25maWcgKHVu c2lnbmVkIGxvbmcgYmFzZSwgdW5zaWduZWQgbG9uZyBsZW5ndGgpCit2b2lkIF9faW5pdCBlYXJs eV9nZXRfc21wX2NvbmZpZyh2b2lkKQoreworCV9fZ2V0X3NtcF9jb25maWcoMSk7Cit9CisKK3Zv aWQgX19pbml0IGdldF9zbXBfY29uZmlnKHZvaWQpCit7CisJX19nZXRfc21wX2NvbmZpZygwKTsK K30KKworc3RhdGljIGludCBfX2luaXQgc21wX3NjYW5fY29uZmlnKHVuc2lnbmVkIGxvbmcgYmFz ZSwgdW5zaWduZWQgbG9uZyBsZW5ndGgsCisJCQkJICB1bnNpZ25lZCByZXNlcnZlKQogewogCWV4 dGVybiB2b2lkIF9fYmFkX21wZl9zaXplKHZvaWQpOyAKIAl1bnNpZ25lZCBpbnQgKmJwID0gcGh5 c190b192aXJ0KGJhc2UpOwpAQCAtNTM4LDEwICs1NjYsMTUgQEAgc3RhdGljIGludCBfX2luaXQg c21wX3NjYW5fY29uZmlnICh1bnNpZ25lZCBsb25nIGJhc2UsIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro KQogCQkJCXx8IChtcGYtPm1wZl9zcGVjaWZpY2F0aW9uID09IDQpKSApIHsKIAogCQkJc21wX2Zv dW5kX2NvbmZpZyA9IDE7CisJCQltcGZfZm91bmQgPSBtcGY7CisKKwkJCWlmICghcmVzZXJ2ZSkK KwkJCQlyZXR1cm4gMTsKKwogCQkJcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModmlydF90b19waHlz KG1wZiksIFBBR0VfU0laRSk7CiAJCQlpZiAobXBmLT5tcGZfcGh5c3B0cikKLQkJCQlyZXNlcnZl X2Jvb3RtZW1fZ2VuZXJpYyhtcGYtPm1wZl9waHlzcHRyLCBQQUdFX1NJWkUpOwotCQkJbXBmX2Zv dW5kID0gbXBmOworCQkJCXJlc2VydmVfYm9vdG1lbV9nZW5lcmljKG1wZi0+bXBmX3BoeXNwdHIs CisJCQkJCQkJUEFHRV9TSVpFKTsKIAkJCXJldHVybiAxOwogCQl9CiAJCWJwICs9IDQ7CkBAIC01 NTAsNyArNTgzLDcgQEAgc3RhdGljIGludCBfX2luaXQgc21wX3NjYW5fY29uZmlnICh1bnNpZ25l ZCBsb25nIGJhc2UsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKQogCXJldHVybiAwOwogfQogCi12b2lk IF9faW5pdCBmaW5kX3NtcF9jb25maWcodm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCBfX2ZpbmRf c21wX2NvbmZpZyh1bnNpZ25lZCByZXNlcnZlKQogewogCXVuc2lnbmVkIGludCBhZGRyZXNzOwog CkBAIC01NjIsOSArNTk1LDkgQEAgdm9pZCBfX2luaXQgZmluZF9zbXBfY29uZmlnKHZvaWQpCiAJ ICogMikgU2NhbiB0aGUgdG9wIDFLIG9mIGJhc2UgUkFNCiAJICogMykgU2NhbiB0aGUgNjRLIG9m IGJpb3MKIAkgKi8KLQlpZiAoc21wX3NjYW5fY29uZmlnKDB4MCwweDQwMCkgfHwKLQkJc21wX3Nj YW5fY29uZmlnKDYzOSoweDQwMCwweDQwMCkgfHwKLQkJCXNtcF9zY2FuX2NvbmZpZygweEYwMDAw LDB4MTAwMDApKQorCWlmIChzbXBfc2Nhbl9jb25maWcoMHgwLCAweDQwMCwgcmVzZXJ2ZSkgfHwK KwkJc21wX3NjYW5fY29uZmlnKDYzOSoweDQwMCwgMHg0MDAsIHJlc2VydmUpIHx8CisJCQlzbXBf c2Nhbl9jb25maWcoMHhGMDAwMCwgMHgxMDAwMCwgcmVzZXJ2ZSkpCiAJCXJldHVybjsKIAkvKgog CSAqIElmIGl0IGlzIGFuIFNNUCBtYWNoaW5lIHdlIHNob3VsZCBrbm93IG5vdy4KQEAgLTU4MSwx MyArNjE0LDIzIEBAIHZvaWQgX19pbml0IGZpbmRfc21wX2NvbmZpZyh2b2lkKQogCiAJYWRkcmVz cyA9ICoodW5zaWduZWQgc2hvcnQgKilwaHlzX3RvX3ZpcnQoMHg0MEUpOwogCWFkZHJlc3MgPDw9 IDQ7Ci0JaWYgKHNtcF9zY2FuX2NvbmZpZyhhZGRyZXNzLCAweDEwMDApKQorCWlmIChzbXBfc2Nh bl9jb25maWcoYWRkcmVzcywgMHgxMDAwLCByZXNlcnZlKSkKIAkJcmV0dXJuOwogCiAJLyogSWYg d2UgaGF2ZSBjb21lIHRoaXMgZmFyLCB3ZSBkaWQgbm90IGZpbmQgYW4gTVAgdGFibGUgICovCiAJ IHByaW50ayhLRVJOX0lORk8gIk5vIG1wdGFibGUgZm91bmQuXG4iKTsKIH0KIAordm9pZCBfX2lu aXQgZWFybHlfZmluZF9zbXBfY29uZmlnKHZvaWQpCit7CisJX19maW5kX3NtcF9jb25maWcoMCk7 Cit9CisKK3ZvaWQgX19pbml0IGZpbmRfc21wX2NvbmZpZyh2b2lkKQoreworCV9fZmluZF9zbXBf Y29uZmlnKDEpOworfQorCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFDUEktYmFzZWQgTVAgQ29uZmlndXJhdGlvbgogICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2XzY0L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC94ODZf NjQva2VybmVsL3NldHVwLmMKaW5kZXggYWY4MzhmNi4uYzA3YjMxNCAxMDA2NDQKLS0tIGEvYXJj aC94ODZfNjQva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC94ODZfNjQva2VybmVsL3NldHVwLmMK QEAgLTI5OSw2ICsyOTksMjcgQEAgdm9pZCBfX2luaXQgc2V0dXBfYXJjaChjaGFyICoqY21kbGlu ZV9wKQogCWFjcGlfbnVtYV9pbml0KCk7CiAjZW5kaWYKIAorCS8qCisJICogRmluZCBwb3NzaWJs ZSBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CisJICovCisJZWFybHlfZmluZF9zbXBfY29u ZmlnKCk7CisjaWZkZWYgQ09ORklHX0FDUEkKKwkvKgorCSAqIFJlYWQgQVBJQyBpbmZvcm1hdGlv biBmcm9tIEFDUEkgdGFibGVzLgorCSAqLworCWVhcmx5X2FjcGlfYm9vdF9pbml0KCk7CisjZW5k aWYKKwkvKgorCSAqIGdldCBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CisJICovCisJaWYg KHNtcF9mb3VuZF9jb25maWcpCisJCWVhcmx5X2dldF9zbXBfY29uZmlnKCk7CisJLyoKKwkgKiBu ZWVkIHRvIGdldCBib290X2NwdV9pZCBzbyBjYW4gdXNlIHRoYXQgdG8gY3JlYXRlIGFwaWNpZF90 b19ub2RlCisJICogaW4gazhfc2Nhbl9ub2RlcygpIGNhbGxlZCBieSBudW1hX2luaXRtZW1faW5p dAorCSAqLworCWVhcmx5X2luaXRfbGFwaWNfbWFwcGluZygpOworCiAjaWZkZWYgQ09ORklHX05V TUEKIAludW1hX2luaXRtZW1faW5pdCgwLCBlbmRfcGZuKTsgCiAjZWxzZQpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9hc20teDg2XzY0L2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Nl82NC9hcGljLmgKaW5k ZXggODUxMjVlZi4uYjkzMTVmOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2XzY0L2FwaWMu aAorKysgYi9pbmNsdWRlL2FzbS14ODZfNjQvYXBpYy5oCkBAIC03NCw2ICs3Myw3IEBAIGV4dGVy biB2b2lkIGNhY2hlX0FQSUNfcmVnaXN0ZXJzICh2b2lkKTsKIGV4dGVybiB2b2lkIHN5bmNfQXJi X0lEcyAodm9pZCk7CiBleHRlcm4gdm9pZCBpbml0X2JzcF9BUElDICh2b2lkKTsKIGV4dGVybiB2 b2lkIHNldHVwX2xvY2FsX0FQSUMgKHZvaWQpOworZXh0ZXJuIHZvaWQgZWFybHlfaW5pdF9sYXBp Y19tYXBwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQgaW5pdF9hcGljX21hcHBpbmdzICh2b2lkKTsK IGV4dGVybiB2b2lkIHNtcF9sb2NhbF90aW1lcl9pbnRlcnJ1cHQgKHZvaWQpOwogZXh0ZXJuIHZv aWQgc2V0dXBfYm9vdF9BUElDX2Nsb2NrICh2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNt LXg4Nl82NC9tcHNwZWMuaCBiL2luY2x1ZGUvYXNtLXg4Nl82NC9tcHNwZWMuaAppbmRleCAwMTdm ZGRiLi5mMjUzY2I3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODZfNjQvbXBzcGVjLmgKKysr IGIvaW5jbHVkZS9hc20teDg2XzY0L21wc3BlYy5oCkBAIC0xNjQsNiArMTY0LDggQEAgZXh0ZXJu IGludCBtcF9idXNfaWRfdG9fcGNpX2J1cyBbTUFYX01QX0JVU1NFU107CiAKIGV4dGVybiB1bnNp Z25lZCBpbnQgYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkOwogZXh0ZXJuIGludCBzbXBfZm91bmRf Y29uZmlnOworZXh0ZXJuIHZvaWQgZWFybHlfZmluZF9zbXBfY29uZmlnKHZvaWQpOworZXh0ZXJu IHZvaWQgZWFybHlfZ2V0X3NtcF9jb25maWcodm9pZCk7CiBleHRlcm4gdm9pZCBmaW5kX3NtcF9j b25maWcgKHZvaWQpOwogZXh0ZXJuIHZvaWQgZ2V0X3NtcF9jb25maWcgKHZvaWQpOwogZXh0ZXJu IGludCBucl9pb2FwaWNzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hY3BpLmggYi9pbmNs dWRlL2xpbnV4L2FjcGkuaAppbmRleCBkNTY4MGNkLi5lODc5YWFkIDEwMDY0NAotLS0gYS9pbmNs dWRlL2xpbnV4L2FjcGkuaAorKysgYi9pbmNsdWRlL2xpbnV4L2FjcGkuaApAQCAtNzksNiArNzks NyBAQCB0eXBlZGVmIGludCAoKmFjcGlfdGFibGVfZW50cnlfaGFuZGxlcikgKHN0cnVjdCBhY3Bp X3N1YnRhYmxlX2hlYWRlciAqaGVhZGVyLCBjbwogCiBjaGFyICogX19hY3BpX21hcF90YWJsZSAo dW5zaWduZWQgbG9uZyBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CiB1bnNpZ25lZCBs b25nIGFjcGlfZmluZF9yc2RwICh2b2lkKTsKK2ludCBlYXJseV9hY3BpX2Jvb3RfaW5pdCh2b2lk KTsKIGludCBhY3BpX2Jvb3RfaW5pdCAodm9pZCk7CiBpbnQgYWNwaV9ib290X3RhYmxlX2luaXQg KHZvaWQpOwogaW50IGFjcGlfbnVtYV9pbml0ICh2b2lkKTsKQEAgLTIzNiw2ICsyMzcsMTAgQEAg ZXh0ZXJuIGludCBwbnBhY3BpX2Rpc2FibGVkOwogCiAjZWxzZQkvKiBDT05GSUdfQUNQSSAqLwog CitzdGF0aWMgaW5saW5lIGludCBlYXJseV9hY3BpX2Jvb3RfaW5pdCh2b2lkKQoreworCXJldHVy biAwOworfQogc3RhdGljIGlubGluZSBpbnQgYWNwaV9ib290X2luaXQodm9pZCkKIHsKIAlyZXR1 cm4gMDsK ------=_Part_205844_9684281.1185480967684--