From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [RFC] mm: Replace all open encodings for NUMA_NO_NODE From: Anshuman Khandual Message-Id: <1541990515-11670-1-git-send-email-anshuman.khandual@arm.com> Date: Mon, 12 Nov 2018 08:11:55 +0530 To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: ocfs2-devel@oss.oracle.com, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-media@vger.kernel.org, iommu@lists.linux-foundation.org, linux-rdma@vger.kernel.org, dmaengine@vger.kernel.org, linux-block@vger.kernel.org, sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-ia64@vger.kernel.org, linux-alpha@vger.kernel.org List-ID: QXQgcHJlc2VudCB0aGVyZSBhcmUgbXVsdGlwbGUgcGxhY2VzIHdoZXJlIGludmFsaWQgbm9kZSBu dW1iZXIgaXMgZW5jb2RlZAphcyAtMS4gRXZlbiB0aG91Z2ggaW1wbGljaXRseSB1bmRlcnN0b29k IGl0IGlzIGFsd2F5cyBiZXR0ZXIgdG8gaGF2ZSBtYWNyb3MKaW4gdGhlcmUuIFJlcGxhY2UgdGhl c2Ugb3BlbiBlbmNvZGluZ3MgZm9yIGFuIGludmFsaWQgbm9kZSBudW1iZXIgd2l0aCB0aGUKZ2xv YmFsIG1hY3JvIE5VTUFfTk9fTk9ERS4gVGhpcyBoZWxwcyByZW1vdmUgTlVNQSByZWxhdGVkIGFz c3VtcHRpb25zIGxpa2UKJ2ludmFsaWQgbm9kZScgZnJvbSB2YXJpb3VzIHBsYWNlcyByZWRpcmVj dGluZyB0aGVtIHRvIGEgY29tbW9uIGRlZmluaXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbnNodW1h biBLaGFuZHVhbCA8YW5zaHVtYW4ua2hhbmR1YWxAYXJtLmNvbT4KLS0tCkJ1aWxkIHRlc3RlZCB0 aGlzIHdpdGggbXVsdGlwbGUgY3Jvc3MgY29tcGlsZXIgb3B0aW9ucyBsaWtlIGFscGhhLCBzcGFy YywKYXJtNjQsIHg4NiwgcG93ZXJwYzY0bGUgZXRjIHdpdGggdGhlaXIgZGVmYXVsdCBjb25maWcg d2hpY2ggbWlnaHQgbm90IGhhdmUKY29tcGlsZWQgdGVzdGVkIGFsbCBkcml2ZXIgcmVsYXRlZCBj aGFuZ2VzLiBJIHdpbGwgYXBwcmVjaWF0ZSBmb2xrcyBnaXZpbmcKdGhpcyBhIHRlc3QgaW4gdGhl aXIgcmVzcGVjdGl2ZSBidWlsZCBlbnZpcm9ubWVudC4KCkFsbCB0aGVzZSBwbGFjZXMgZm9yIHJl cGxhY2VtZW50IHdlcmUgZm91bmQgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGdyZXAKcGF0dGVy bnMgb24gdGhlIGVudGlyZSBrZXJuZWwgY29kZS4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHRoaXMg bWlnaHQgaGF2ZQptaXNzZWQgc29tZSBpbnN0YW5jZXMuIFRoaXMgbWlnaHQgYWxzbyBoYXZlIHJl cGxhY2VkIHNvbWUgZmFsc2UgcG9zaXRpdmVzLgpJIHdpbGwgYXBwcmVjaWF0ZSBzdWdnZXN0aW9u cywgaW5wdXRzIGFuZCByZXZpZXcuCgoxLiBnaXQgZ3JlcCAibmlkID09IC0xIgoyLiBnaXQgZ3Jl cCAibm9kZSA9PSAtMSIKMy4gZ2l0IGdyZXAgIm5pZCA9IC0xIgo0LiBnaXQgZ3JlcCAibm9kZSA9 IC0xIgoKIGFyY2gvYWxwaGEvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaCAgICAgICAgICAgICB8ICAy ICstCiBhcmNoL2lhNjQva2VybmVsL251bWEuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogYXJjaC9pYTY0L21tL2Rpc2NvbnRpZy5jICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysr LS0tCiBhcmNoL2lhNjQvc24va2VybmVsL2lvX2NvbW1vbi5jICAgICAgICAgICAgICAgfCAgMiAr LQogYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaCAgICAgICAgIHwgIDIgKy0K IGFyY2gvcG93ZXJwYy9rZXJuZWwvcGFjYS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBh cmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyAgICAgICAgICAgICAgfCAgMiArLQogYXJj aC9wb3dlcnBjL21tL251bWEuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKy0t LS0tLS0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9tZW10cmFjZS5jICAgICB8ICA0 ICsrLS0KIGFyY2gvc3BhcmMva2VybmVsL2F1eGlvXzMyLmMgICAgICAgICAgICAgICAgICB8ICAy ICstCiBhcmNoL3NwYXJjL2tlcm5lbC9wY2lfZmlyZS5jICAgICAgICAgICAgICAgICAgfCAgMiAr LQogYXJjaC9zcGFyYy9rZXJuZWwvcGNpX3NjaGl6by5jICAgICAgICAgICAgICAgIHwgIDIgKy0K IGFyY2gvc3BhcmMva2VybmVsL3BjaWMuYyAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0t LQogYXJjaC9zcGFyYy9rZXJuZWwvcHN5Y2hvX2NvbW1vbi5jICAgICAgICAgICAgIHwgIDIgKy0K IGFyY2gvc3BhcmMva2VybmVsL3NidXMuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBh cmNoL3NwYXJjL21tL2luaXRfNjQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0K IGFyY2gvc3BhcmMvcHJvbS9pbml0XzMyLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBh cmNoL3NwYXJjL3Byb20vaW5pdF82NC5jICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBh cmNoL3NwYXJjL3Byb20vdHJlZV8zMi5jICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKyst LS0tLS0KIGFyY2gvc3BhcmMvcHJvbS90cmVlXzY0LmMgICAgICAgICAgICAgICAgICAgICB8IDE4 ICsrKysrKysrKy0tLS0tLS0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmggICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9hcGljL3gyYXBpY191dl94LmMgICAg ICAgICAgICB8ICA2ICsrKy0tLQogYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYyAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L3BsYXRmb3JtL29scGMvb2xwY19kdC5jICAgICAg ICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvYmxvY2svbXRpcDMyeHgvbXRp cDMyeHguYyAgICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZG1hL2RtYWVuZ2luZS5jICAg ICAgICAgICAgICAgICAgICAgICB8ICAzICsrLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEv YWZmaW5pdHkuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2lu aXQuYyAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2lvbW11L2RtYXIuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2ZmIuYyAg ICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQt b3NkLmMgICAgICB8ICAyICstCiBkcml2ZXJzL21pc2Mvc2dpLXhwL3hwY191di5jICAgICAgICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVf bWFpbi5jIHwgIDQgKystLQogZHJpdmVycy92aWRlby9mYmRldi9tbXAvZmIvbW1wZmIuYyAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdmlkZW8vZmJkZXYvcHhhMTY4ZmIuYyAgICAgICAgICAg ICAgICB8ICAyICstCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZnMvb2NmczIvZGxtL2RsbWNvbW1vbi5oICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGZzL29jZnMyL2RsbS9kbG1kb21haW4uYyAgICAgICAgICAgICAgICAgICAgICB8 IDEwICsrKysrLS0tLS0KIGZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYyAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBmcy9vY2ZzMi9kbG0vZGxtcmVjb3ZlcnkuYyAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogZnMvb2NmczIvc3RhY2tfdXNlci5jICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDYgKysrLS0tCiBpbml0L2luaXRfdGFzay5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQoga2VybmVsL2t0aHJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGtlcm5lbC9zY2hlZC9mYWlyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDE1ICsrKysrKysrLS0tLS0tLQogbGliL2NwdW1hc2suYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIG1tL2h1Z2VfbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogbW0vaHVnZXRsYi5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIG1tL2tzbS5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBtbS9tZW1vcnkuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgNiArKystLS0KIG1tL21lbW9yeV9ob3RwbHVnLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogbW0vbWVtcG9saWN5LmMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG1tL3BhZ2VfYWxsb2MuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIG1tL3BhZ2VfZXh0LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvY29yZS9wa3RnZW4uYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3FydHIvcXJ0ci5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIHRvb2xzL3BlcmYvYmVuY2gvbnVtYS5jICAgICAgICAg ICAgICAgICAgICAgICB8ICA2ICsrKy0tLQogNTcgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlv bnMoKyksIDEyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2luY2x1ZGUv YXNtL3RvcG9sb2d5LmggYi9hcmNoL2FscGhhL2luY2x1ZGUvYXNtL3RvcG9sb2d5LmgKaW5kZXgg ZTZlMTNhOC4uZjZkYzg5YyAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9pbmNsdWRlL2FzbS90b3Bv bG9neS5oCisrKyBiL2FyY2gvYWxwaGEvaW5jbHVkZS9hc20vdG9wb2xvZ3kuaApAQCAtMjksNyAr MjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNwdW1hc2sgKmNwdW1hc2tfb2Zfbm9kZShpbnQg bm9kZSkKIHsKIAlpbnQgY3B1OwogCi0JaWYgKG5vZGUgPT0gLTEpCisJaWYgKG5vZGUgPT0gTlVN QV9OT19OT0RFKQogCQlyZXR1cm4gY3B1X2FsbF9tYXNrOwogCiAJY3B1bWFza19jbGVhcigmbm9k ZV90b19jcHVtYXNrX21hcFtub2RlXSk7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL251 bWEuYyBiL2FyY2gvaWE2NC9rZXJuZWwvbnVtYS5jCmluZGV4IDkyYzM3NjIuLjEzMTVkYTYgMTAw NjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvbnVtYS5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwv bnVtYS5jCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgX19pbml0IGJ1aWxkX2NwdV90b19ub2RlX21h cCh2b2lkKQogCQljcHVtYXNrX2NsZWFyKCZub2RlX3RvX2NwdV9tYXNrW25vZGVdKTsKIAogCWZv cl9lYWNoX3Bvc3NpYmxlX2Vhcmx5X2NwdShjcHUpIHsKLQkJbm9kZSA9IC0xOworCQlub2RlID0g TlVNQV9OT19OT0RFOwogCQlmb3IgKGkgPSAwOyBpIDwgTlJfQ1BVUzsgKytpKQogCQkJaWYgKGNw dV9waHlzaWNhbF9pZChjcHUpID09IG5vZGVfY3B1aWRbaV0ucGh5c19pZCkgewogCQkJCW5vZGUg PSBub2RlX2NwdWlkW2ldLm5pZDsKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9tbS9kaXNjb250aWcu YyBiL2FyY2gvaWE2NC9tbS9kaXNjb250aWcuYwppbmRleCA4YTk2NTc4Li5mOWMzNjc1IDEwMDY0 NAotLS0gYS9hcmNoL2lhNjQvbW0vZGlzY29udGlnLmMKKysrIGIvYXJjaC9pYTY0L21tL2Rpc2Nv bnRpZy5jCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBfX2luaXQgc2V0dXBfcGVyX2NwdV9hcmVh cyh2b2lkKQogCSAqIENQVXMgYXJlIHB1dCBpbnRvIGdyb3VwcyBhY2NvcmRpbmcgdG8gbm9kZS4g IFdhbGsgY3B1X21hcAogCSAqIGFuZCBjcmVhdGUgbmV3IGdyb3VwcyBhdCBub2RlIGJvdW5kYXJp ZXMuCiAJICovCi0JcHJldl9ub2RlID0gLTE7CisJcHJldl9ub2RlID0gTlVNQV9OT19OT0RFOwog CWFpLT5ucl9ncm91cHMgPSAwOwogCWZvciAodW5pdCA9IDA7IHVuaXQgPCBucl91bml0czsgdW5p dCsrKSB7CiAJCWNwdSA9IGNwdV9tYXBbdW5pdF07CkBAIC00MzUsNyArNDM1LDcgQEAgc3RhdGlj IHZvaWQgX19pbml0ICptZW1vcnlfbGVzc19ub2RlX2FsbG9jKGludCBuaWQsIHVuc2lnbmVkIGxv bmcgcGVybm9kZXNpemUpCiB7CiAJdm9pZCAqcHRyID0gTlVMTDsKIAl1OCBiZXN0ID0gMHhmZjsK LQlpbnQgYmVzdG5vZGUgPSAtMSwgbm9kZSwgYW55bm9kZSA9IDA7CisJaW50IGJlc3Rub2RlID0g TlVNQV9OT19OT0RFLCBub2RlLCBhbnlub2RlID0gMDsKIAogCWZvcl9lYWNoX29ubGluZV9ub2Rl KG5vZGUpIHsKIAkJaWYgKG5vZGVfaXNzZXQobm9kZSwgbWVtb3J5X2xlc3NfbWFzaykpCkBAIC00 NDcsNyArNDQ3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0ICptZW1vcnlfbGVzc19ub2RlX2FsbG9j KGludCBuaWQsIHVuc2lnbmVkIGxvbmcgcGVybm9kZXNpemUpCiAJCWFueW5vZGUgPSBub2RlOwog CX0KIAotCWlmIChiZXN0bm9kZSA9PSAtMSkKKwlpZiAoYmVzdG5vZGUgPT0gTlVNQV9OT19OT0RF KQogCQliZXN0bm9kZSA9IGFueW5vZGU7CiAKIAlwdHIgPSBtZW1ibG9ja19hbGxvY190cnlfbmlk KHBlcm5vZGVzaXplLCBQRVJDUFVfUEFHRV9TSVpFLApkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L3Nu L2tlcm5lbC9pb19jb21tb24uYyBiL2FyY2gvaWE2NC9zbi9rZXJuZWwvaW9fY29tbW9uLmMKaW5k ZXggOGRmMTNkMC4uODZiM2ZjYiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L3NuL2tlcm5lbC9pb19j b21tb24uYworKysgYi9hcmNoL2lhNjQvc24va2VybmVsL2lvX2NvbW1vbi5jCkBAIC0zNDQsNyAr MzQ0LDcgQEAgc25fY29tbW9uX2J1c19maXh1cChzdHJ1Y3QgcGNpX2J1cyAqYnVzLAogCQlwcmlu dGsoS0VSTl9XQVJOSU5HICJvbiBub2RlICVkIGJ1dCBvbmx5ICVkIG5vZGVzIG9ubGluZS4iCiAJ CSAgICAgICAiQXNzb2NpYXRpb24gc2V0IHRvIHVuZGV0ZXJtaW5lZC5cbiIsCiAJCSAgICAgICBj b250cm9sbGVyLT5ub2RlLCBudW1fb25saW5lX25vZGVzKCkpOwotCQljb250cm9sbGVyLT5ub2Rl ID0gLTE7CisJCWNvbnRyb2xsZXItPm5vZGUgPSBOVU1BX05PX05PREU7CiAJfQogfQogCmRpZmYg LS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGNpLWJyaWRnZS5oIGIvYXJjaC9wb3dl cnBjL2luY2x1ZGUvYXNtL3BjaS1icmlkZ2UuaAppbmRleCA5NGQ0NDkwLi4yNWE5ZTMzIDEwMDY0 NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGNpLWJyaWRnZS5oCisrKyBiL2FyY2gv cG93ZXJwYy9pbmNsdWRlL2FzbS9wY2ktYnJpZGdlLmgKQEAgLTI2NCw3ICsyNjQsNyBAQCBleHRl cm4gaW50IHBjaWJpb3NfbWFwX2lvX3NwYWNlKHN0cnVjdCBwY2lfYnVzICpidXMpOwogI2lmZGVm IENPTkZJR19OVU1BCiAjZGVmaW5lIFBIQl9TRVRfTk9ERShQSEIsIE5PREUpCQkoKFBIQiktPm5v ZGUgPSAoTk9ERSkpCiAjZWxzZQotI2RlZmluZSBQSEJfU0VUX05PREUoUEhCLCBOT0RFKQkJKChQ SEIpLT5ub2RlID0gLTEpCisjZGVmaW5lIFBIQl9TRVRfTk9ERShQSEIsIE5PREUpCQkoKFBIQikt Pm5vZGUgPSBOVU1BX05PX05PREUpCiAjZW5kaWYKIAogI2VuZGlmCS8qIENPTkZJR19QUEM2NCAq LwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wYWNhLmMgYi9hcmNoL3Bvd2VycGMv a2VybmVsL3BhY2EuYwppbmRleCA5MTNiZmNhLi42YTBiZDUxIDEwMDY0NAotLS0gYS9hcmNoL3Bv d2VycGMva2VybmVsL3BhY2EuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3BhY2EuYwpAQCAt MzYsNyArMzYsNyBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGFsbG9jX3BhY2FfZGF0YSh1bnNpZ25l ZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgYWxpZ24sCiAJICogd2hpY2ggd2lsbCBwdXQgaXRz IHBhY2EgaW4gdGhlIHJpZ2h0IHBsYWNlLgogCSAqLwogCWlmIChjcHUgPT0gYm9vdF9jcHVpZCkg ewotCQluaWQgPSAtMTsKKwkJbmlkID0gTlVNQV9OT19OT0RFOwogCQltZW1ibG9ja19zZXRfYm90 dG9tX3VwKHRydWUpOwogCX0gZWxzZSB7CiAJCW5pZCA9IGVhcmx5X2NwdV90b19ub2RlKGNwdSk7 CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyBiL2FyY2gvcG93 ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCmluZGV4IDg4ZTRmNjkuLjE0YzMzYTkgMTAwNjQ0Ci0t LSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCisrKyBiL2FyY2gvcG93ZXJwYy9r ZXJuZWwvcGNpLWNvbW1vbi5jCkBAIC0xMzIsNyArMTMyLDcgQEAgc3RydWN0IHBjaV9jb250cm9s bGVyICpwY2liaW9zX2FsbG9jX2NvbnRyb2xsZXIoc3RydWN0IGRldmljZV9ub2RlICpkZXYpCiAJ CWludCBuaWQgPSBvZl9ub2RlX3RvX25pZChkZXYpOwogCiAJCWlmIChuaWQgPCAwIHx8ICFub2Rl X29ubGluZShuaWQpKQotCQkJbmlkID0gLTE7CisJCQluaWQgPSBOVU1BX05PX05PREU7CiAKIAkJ UEhCX1NFVF9OT0RFKHBoYiwgbmlkKTsKIAl9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0v bnVtYS5jIGIvYXJjaC9wb3dlcnBjL21tL251bWEuYwppbmRleCAzYTA0OGU5Li43NzgwOGEyIDEw MDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vbnVtYS5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9u dW1hLmMKQEAgLTIxNSw3ICsyMTUsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplX2Rpc3RhbmNl X2xvb2t1cF90YWJsZShpbnQgbmlkLAogICovCiBzdGF0aWMgaW50IGFzc29jaWF0aXZpdHlfdG9f bmlkKGNvbnN0IF9fYmUzMiAqYXNzb2NpYXRpdml0eSkKIHsKLQlpbnQgbmlkID0gLTE7CisJaW50 IG5pZCA9IE5VTUFfTk9fTk9ERTsKIAogCWlmIChtaW5fY29tbW9uX2RlcHRoID09IC0xKQogCQln b3RvIG91dDsKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgaW50IGFzc29jaWF0aXZpdHlfdG9f bmlkKGNvbnN0IF9fYmUzMiAqYXNzb2NpYXRpdml0eSkKIAogCS8qIFBPV0VSNCBMUEFSIHVzZXMg MHhmZmZmIGFzIGludmFsaWQgbm9kZSAqLwogCWlmIChuaWQgPT0gMHhmZmZmIHx8IG5pZCA+PSBN QVhfTlVNTk9ERVMpCi0JCW5pZCA9IC0xOworCQluaWQgPSBOVU1BX05PX05PREU7CiAKIAlpZiAo bmlkID4gMCAmJgogCQlvZl9yZWFkX251bWJlcihhc3NvY2lhdGl2aXR5LCAxKSA+PSBkaXN0YW5j ZV9yZWZfcG9pbnRzX2RlcHRoKSB7CkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIGludCBhc3Nv Y2lhdGl2aXR5X3RvX25pZChjb25zdCBfX2JlMzIgKmFzc29jaWF0aXZpdHkpCiAgKi8KIHN0YXRp YyBpbnQgb2Zfbm9kZV90b19uaWRfc2luZ2xlKHN0cnVjdCBkZXZpY2Vfbm9kZSAqZGV2aWNlKQog ewotCWludCBuaWQgPSAtMTsKKwlpbnQgbmlkID0gTlVNQV9OT19OT0RFOwogCWNvbnN0IF9fYmUz MiAqdG1wOwogCiAJdG1wID0gb2ZfZ2V0X2Fzc29jaWF0aXZpdHkoZGV2aWNlKTsKQEAgLTI1Niw3 ICsyNTYsNyBAQCBzdGF0aWMgaW50IG9mX25vZGVfdG9fbmlkX3NpbmdsZShzdHJ1Y3QgZGV2aWNl X25vZGUgKmRldmljZSkKIC8qIFdhbGsgdGhlIGRldmljZSB0cmVlIHVwd2FyZHMsIGxvb2tpbmcg Zm9yIGFuIGFzc29jaWF0aXZpdHkgaWQgKi8KIGludCBvZl9ub2RlX3RvX25pZChzdHJ1Y3QgZGV2 aWNlX25vZGUgKmRldmljZSkKIHsKLQlpbnQgbmlkID0gLTE7CisJaW50IG5pZCA9IE5VTUFfTk9f Tk9ERTsKIAogCW9mX25vZGVfZ2V0KGRldmljZSk7CiAJd2hpbGUgKGRldmljZSkgewpAQCAtNDU0 LDcgKzQ1NCw3IEBAIHN0YXRpYyBpbnQgb2ZfZHJjb25mX3RvX25pZF9zaW5nbGUoc3RydWN0IGRy bWVtX2xtYiAqbG1iKQogICovCiBzdGF0aWMgaW50IG51bWFfc2V0dXBfY3B1KHVuc2lnbmVkIGxv bmcgbGNwdSkKIHsKLQlpbnQgbmlkID0gLTE7CisJaW50IG5pZCA9IE5VTUFfTk9fTk9ERTsKIAlz dHJ1Y3QgZGV2aWNlX25vZGUgKmNwdTsKIAogCS8qCkBAIC05MzAsNyArOTMwLDcgQEAgc3RhdGlj IGludCBob3RfYWRkX2RyY29uZl9zY25fdG9fbmlkKHVuc2lnbmVkIGxvbmcgc2NuX2FkZHIpCiB7 CiAJc3RydWN0IGRybWVtX2xtYiAqbG1iOwogCXVuc2lnbmVkIGxvbmcgbG1iX3NpemU7Ci0JaW50 IG5pZCA9IC0xOworCWludCBuaWQgPSBOVU1BX05PX05PREU7CiAKIAlsbWJfc2l6ZSA9IGRybWVt X2xtYl9zaXplKCk7CiAKQEAgLTk2MCw3ICs5NjAsNyBAQCBzdGF0aWMgaW50IGhvdF9hZGRfZHJj b25mX3Njbl90b19uaWQodW5zaWduZWQgbG9uZyBzY25fYWRkcikKIHN0YXRpYyBpbnQgaG90X2Fk ZF9ub2RlX3Njbl90b19uaWQodW5zaWduZWQgbG9uZyBzY25fYWRkcikKIHsKIAlzdHJ1Y3QgZGV2 aWNlX25vZGUgKm1lbW9yeTsKLQlpbnQgbmlkID0gLTE7CisJaW50IG5pZCA9IE5VTUFfTk9fTk9E RTsKIAogCWZvcl9lYWNoX25vZGVfYnlfdHlwZShtZW1vcnksICJtZW1vcnkiKSB7CiAJCXVuc2ln bmVkIGxvbmcgc3RhcnQsIHNpemU7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z L3Bvd2VybnYvbWVtdHJhY2UuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9tZW10 cmFjZS5jCmluZGV4IDg0ZDAzOGUuLjFjZTNiZmMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9w bGF0Zm9ybXMvcG93ZXJudi9tZW10cmFjZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMv cG93ZXJudi9tZW10cmFjZS5jCkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIGludCBtZW10cmFj ZV9vbmxpbmUodm9pZCkKIAkJZW50ID0gJm1lbXRyYWNlX2FycmF5W2ldOwogCiAJCS8qIFdlIGhh dmUgb25saW5lZCB0aGlzIGNodW5rIHByZXZpb3VzbHkgKi8KLQkJaWYgKGVudC0+bmlkID09IC0x KQorCQlpZiAoZW50LT5uaWQgPT0gTlVNQV9OT19OT0RFKQogCQkJY29udGludWU7CiAKIAkJLyog UmVtb3ZlIGZyb20gaW8gbWFwcGluZ3MgKi8KQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgaW50 IG1lbXRyYWNlX29ubGluZSh2b2lkKQogCQkgKi8KIAkJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZl KGVudC0+ZGlyKTsKIAkJcHJfaW5mbygiQWRkZWQgdHJhY2UgbWVtb3J5IGJhY2sgdG8gbm9kZSAl ZFxuIiwgZW50LT5uaWQpOwotCQllbnQtPnNpemUgPSBlbnQtPnN0YXJ0ID0gZW50LT5uaWQgPSAt MTsKKwkJZW50LT5zaXplID0gZW50LT5zdGFydCA9IGVudC0+bmlkID0gTlVNQV9OT19OT0RFOwog CX0KIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJu ZWwvYXV4aW9fMzIuYyBiL2FyY2gvc3BhcmMva2VybmVsL2F1eGlvXzMyLmMKaW5kZXggYTMyZDU4 OC4uMzlmNmM1OSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvYXV4aW9fMzIuYworKysg Yi9hcmNoL3NwYXJjL2tlcm5lbC9hdXhpb18zMi5jCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBf X2luaXQgYXV4aW9fcG93ZXJfcHJvYmUodm9pZCkKIAlub2RlID0gcHJvbV9zZWFyY2hzaWJsaW5n cyhub2RlLCAib2JpbyIpOwogCW5vZGUgPSBwcm9tX2dldGNoaWxkKG5vZGUpOwogCW5vZGUgPSBw cm9tX3NlYXJjaHNpYmxpbmdzKG5vZGUsICJwb3dlciIpOwotCWlmIChub2RlID09IDAgfHwgKHMz Milub2RlID09IC0xKQorCWlmIChub2RlID09IDAgfHwgKHMzMilub2RlID09IE5VTUFfTk9fTk9E RSkKIAkJcmV0dXJuOwogCiAJLyogTWFwIHRoZSBwb3dlciBjb250cm9sIHJlZ2lzdGVyLiAqLwpk aWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX2ZpcmUuYyBiL2FyY2gvc3BhcmMva2Vy bmVsL3BjaV9maXJlLmMKaW5kZXggYmU3MWFlMC4uNDc0ZDNiZSAxMDA2NDQKLS0tIGEvYXJjaC9z cGFyYy9rZXJuZWwvcGNpX2ZpcmUuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2lfZmlyZS5j CkBAIC00MTYsNyArNDE2LDcgQEAgc3RhdGljIGludCBwY2lfZmlyZV9wYm1faW5pdChzdHJ1Y3Qg cGNpX3BibV9pbmZvICpwYm0sCiAJc3RydWN0IGRldmljZV9ub2RlICpkcCA9IG9wLT5kZXYub2Zf bm9kZTsKIAlpbnQgZXJyOwogCi0JcGJtLT5udW1hX25vZGUgPSAtMTsKKwlwYm0tPm51bWFfbm9k ZSA9IE5VTUFfTk9fTk9ERTsKIAogCXBibS0+cGNpX29wcyA9ICZzdW40dV9wY2lfb3BzOwogCXBi bS0+Y29uZmlnX3NwYWNlX3JlZ19iaXRzID0gMTI7CmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tl cm5lbC9wY2lfc2NoaXpvLmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2lfc2NoaXpvLmMKaW5kZXgg OTM0Yjk3Yy4uODdiYjIzMSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvcGNpX3NjaGl6 by5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3BjaV9zY2hpem8uYwpAQCAtMTM0Nyw3ICsxMzQ3 LDcgQEAgc3RhdGljIGludCBzY2hpem9fcGJtX2luaXQoc3RydWN0IHBjaV9wYm1faW5mbyAqcGJt LAogCXBibS0+bmV4dCA9IHBjaV9wYm1fcm9vdDsKIAlwY2lfcGJtX3Jvb3QgPSBwYm07CiAKLQlw Ym0tPm51bWFfbm9kZSA9IC0xOworCXBibS0+bnVtYV9ub2RlID0gTlVNQV9OT19OT0RFOwogCiAJ cGJtLT5wY2lfb3BzID0gJnN1bjR1X3BjaV9vcHM7CiAJcGJtLT5jb25maWdfc3BhY2VfcmVnX2Jp dHMgPSA4OwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvcGNpYy5jIGIvYXJjaC9zcGFy Yy9rZXJuZWwvcGNpYy5jCmluZGV4IGVlNGM5YTkuLmQ1ZmU4OTggMTAwNjQ0Ci0tLSBhL2FyY2gv c3BhcmMva2VybmVsL3BjaWMuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2ljLmMKQEAgLTQ3 Niw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCBwY2ljX21hcF9wY2lfZGV2aWNlKHN0cnVjdCBsaW51 eF9wY2ljICpwY2ljLAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGo7CiAKLQlpZiAobm9k ZSA9PSAwIHx8IG5vZGUgPT0gLTEpIHsKKwlpZiAobm9kZSA9PSAwIHx8IG5vZGUgPT0gTlVNQV9O T19OT0RFKSB7CiAJCXN0cmNweShuYW1lYnVmLCAiPz8/Iik7CiAJfSBlbHNlIHsKIAkJcHJvbV9n ZXRzdHJpbmcobm9kZSwgIm5hbWUiLCBuYW1lYnVmLCA2Myk7IG5hbWVidWZbNjNdID0gMDsKQEAg LTUzNSw3ICs1MzUsNyBAQCBwY2ljX2ZpbGxfaXJxKHN0cnVjdCBsaW51eF9wY2ljICpwY2ljLCBz dHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgbm9kZSkKIAlpbnQgaSwgaXZlYzsKIAljaGFyIG5hbWVi dWZbNjRdOwogCi0JaWYgKG5vZGUgPT0gMCB8fCBub2RlID09IC0xKSB7CisJaWYgKG5vZGUgPT0g MCB8fCBub2RlID09IE5VTUFfTk9fTk9ERSkgewogCQlzdHJjcHkobmFtZWJ1ZiwgIj8/PyIpOwog CX0gZWxzZSB7CiAJCXByb21fZ2V0c3RyaW5nKG5vZGUsICJuYW1lIiwgbmFtZWJ1Ziwgc2l6ZW9m KG5hbWVidWYpKTsKQEAgLTYyNSw3ICs2MjUsNyBAQCB2b2lkIHBjaWJpb3NfZml4dXBfYnVzKHN0 cnVjdCBwY2lfYnVzICpidXMpCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsICZidXMtPmRldmlj ZXMsIGJ1c19saXN0KSB7CiAJCW5vZGUgPSBwZGV2X3RvX3Bub2RlKCZwY2ljLT5wYm0sIGRldik7 CiAJCWlmKG5vZGUgPT0gMCkKLQkJCW5vZGUgPSAtMTsKKwkJCW5vZGUgPSBOVU1BX05PX05PREU7 CiAKIAkJLyogY29va2llcyAqLwogCQlwY3AgPSBwY2lfZGV2Y29va2llX2FsbG9jKCk7CmRpZmYg LS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9wc3ljaG9fY29tbW9uLmMgYi9hcmNoL3NwYXJjL2tl cm5lbC9wc3ljaG9fY29tbW9uLmMKaW5kZXggODFhYTkxZS4uZGNiZjQ5MiAxMDA2NDQKLS0tIGEv YXJjaC9zcGFyYy9rZXJuZWwvcHN5Y2hvX2NvbW1vbi5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVs L3BzeWNob19jb21tb24uYwpAQCAtNDU0LDcgKzQ1NCw3IEBAIHZvaWQgcHN5Y2hvX3BibV9pbml0 X2NvbW1vbihzdHJ1Y3QgcGNpX3BibV9pbmZvICpwYm0sIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug Km9wCiAJc3RydWN0IGRldmljZV9ub2RlICpkcCA9IG9wLT5kZXYub2Zfbm9kZTsKIAogCXBibS0+ bmFtZSA9IGRwLT5mdWxsX25hbWU7Ci0JcGJtLT5udW1hX25vZGUgPSAtMTsKKwlwYm0tPm51bWFf bm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlwYm0tPmNoaXBfdHlwZSA9IGNoaXBfdHlwZTsKIAlwYm0t PmNoaXBfdmVyc2lvbiA9IG9mX2dldGludHByb3BfZGVmYXVsdChkcCwgInZlcnNpb24jIiwgMCk7 CiAJcGJtLT5jaGlwX3JldmlzaW9uID0gb2ZfZ2V0aW50cHJvcF9kZWZhdWx0KGRwLCAibW9kdWxl LXJldmlzaW9uIyIsIDApOwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvc2J1cy5jIGIv YXJjaC9zcGFyYy9rZXJuZWwvc2J1cy5jCmluZGV4IGMxMzNkZmMuLjI4YTRhYTkgMTAwNjQ0Ci0t LSBhL2FyY2gvc3BhcmMva2VybmVsL3NidXMuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9zYnVz LmMKQEAgLTU2MSw3ICs1NjEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgc2J1c19pb21tdV9pbml0 KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9wKQogCiAJb3AtPmRldi5hcmNoZGF0YS5pb21tdSA9 IGlvbW11OwogCW9wLT5kZXYuYXJjaGRhdGEuc3RjID0gc3RyYnVmOwotCW9wLT5kZXYuYXJjaGRh dGEubnVtYV9ub2RlID0gLTE7CisJb3AtPmRldi5hcmNoZGF0YS5udW1hX25vZGUgPSBOVU1BX05P X05PREU7CiAKIAlyZWdfYmFzZSA9IHJlZ3MgKyBTWVNJT19JT01NVVJFR19CQVNFOwogCWlvbW11 LT5pb21tdV9jb250cm9sID0gcmVnX2Jhc2UgKyBJT01NVV9DT05UUk9MOwpkaWZmIC0tZ2l0IGEv YXJjaC9zcGFyYy9tbS9pbml0XzY0LmMgYi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYwppbmRleCAz YzhhYWMyLi5jYjFiZWQxIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL21tL2luaXRfNjQuYworKysg Yi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYwpAQCAtOTc2LDEzICs5NzYsMTMgQEAgc3RhdGljIHU2 NCBfX2luaXQgbWVtYmxvY2tfbmlkX3JhbmdlX3N1bjR1KHU2NCBzdGFydCwgdTY0IGVuZCwgaW50 ICpuaWQpCiB7CiAJaW50IHByZXZfbmlkLCBuZXdfbmlkOwogCi0JcHJldl9uaWQgPSAtMTsKKwlw cmV2X25pZCA9IE5VTUFfTk9fTk9ERTsKIAlmb3IgKCA7IHN0YXJ0IDwgZW5kOyBzdGFydCArPSBQ QUdFX1NJWkUpIHsKIAkJZm9yIChuZXdfbmlkID0gMDsgbmV3X25pZCA8IG51bV9ub2RlX21hc2tz OyBuZXdfbmlkKyspIHsKIAkJCXN0cnVjdCBub2RlX21lbV9tYXNrICpwID0gJm5vZGVfbWFza3Nb bmV3X25pZF07CiAKIAkJCWlmICgoc3RhcnQgJiBwLT5tYXNrKSA9PSBwLT5tYXRjaCkgewotCQkJ CWlmIChwcmV2X25pZCA9PSAtMSkKKwkJCQlpZiAocHJldl9uaWQgPT0gTlVNQV9OT19OT0RFKQog CQkJCQlwcmV2X25pZCA9IG5ld19uaWQ7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0xMjA4LDcgKzEy MDgsNyBAQCBpbnQgb2Zfbm9kZV90b19uaWQoc3RydWN0IGRldmljZV9ub2RlICpkcCkKIAltZCA9 IG1kZXNjX2dyYWIoKTsKIAogCWNvdW50ID0gMDsKLQluaWQgPSAtMTsKKwluaWQgPSBOVU1BX05P X05PREU7CiAJbWRlc2NfZm9yX2VhY2hfbm9kZV9ieV9uYW1lKG1kLCBncnAsICJncm91cCIpIHsK IAkJaWYgKCFzY2FuX2FyY3NfZm9yX2NmZ19oYW5kbGUobWQsIGdycCwgY2ZnX2hhbmRsZSkpIHsK IAkJCW5pZCA9IGNvdW50OwpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9wcm9tL2luaXRfMzIuYyBi L2FyY2gvc3BhcmMvcHJvbS9pbml0XzMyLmMKaW5kZXggZDIwNDcwMS4uNGM2ZTU0MCAxMDA2NDQK LS0tIGEvYXJjaC9zcGFyYy9wcm9tL2luaXRfMzIuYworKysgYi9hcmNoL3NwYXJjL3Byb20vaW5p dF8zMi5jCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgX19pbml0IHByb21faW5pdChzdHJ1Y3QgbGlu dXhfcm9tdmVjICpycCkKIAlwcm9tX25vZGVvcHMgPSByb212ZWMtPnB2X25vZGVvcHM7CiAKIAlw cm9tX3Jvb3Rfbm9kZSA9IHByb21fZ2V0c2libGluZygwKTsKLQlpZiAoKHByb21fcm9vdF9ub2Rl ID09IDApIHx8ICgoczMyKXByb21fcm9vdF9ub2RlID09IC0xKSkKKwlpZiAoKHByb21fcm9vdF9u b2RlID09IDApIHx8ICgoczMyKXByb21fcm9vdF9ub2RlID09IE5VTUFfTk9fTk9ERSkpCiAJCXBy b21faGFsdCgpOwogCiAJaWYoKCgodW5zaWduZWQgbG9uZykgcHJvbV9ub2Rlb3BzKSA9PSAwKSB8 fCAKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvcHJvbS9pbml0XzY0LmMgYi9hcmNoL3NwYXJjL3By b20vaW5pdF82NC5jCmluZGV4IDEwM2FhOTEuLjg1NjY5YzAgMTAwNjQ0Ci0tLSBhL2FyY2gvc3Bh cmMvcHJvbS9pbml0XzY0LmMKKysrIGIvYXJjaC9zcGFyYy9wcm9tL2luaXRfNjQuYwpAQCAtMzYs MTMgKzM2LDEzIEBAIHZvaWQgX19pbml0IHByb21faW5pdCh2b2lkICpjaWZfaGFuZGxlcikKIAlw cm9tX2NpZl9pbml0KGNpZl9oYW5kbGVyKTsKIAogCXByb21fY2hvc2VuX25vZGUgPSBwcm9tX2Zp bmRkZXZpY2UocHJvbV9jaG9zZW5fcGF0aCk7Ci0JaWYgKCFwcm9tX2Nob3Nlbl9ub2RlIHx8IChz MzIpcHJvbV9jaG9zZW5fbm9kZSA9PSAtMSkKKwlpZiAoIXByb21fY2hvc2VuX25vZGUgfHwgKHMz Milwcm9tX2Nob3Nlbl9ub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcHJvbV9oYWx0KCk7CiAKIAlw cm9tX3N0ZG91dCA9IHByb21fZ2V0aW50KHByb21fY2hvc2VuX25vZGUsICJzdGRvdXQiKTsKIAog CW5vZGUgPSBwcm9tX2ZpbmRkZXZpY2UoIi9vcGVucHJvbSIpOwotCWlmICghbm9kZSB8fCAoczMy KW5vZGUgPT0gLTEpCisJaWYgKCFub2RlIHx8IChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJ CXByb21faGFsdCgpOwogCiAJcHJvbV9nZXRzdHJpbmcobm9kZSwgInZlcnNpb24iLCBwcm9tX3Zl cnNpb24sIHNpemVvZihwcm9tX3ZlcnNpb24pKTsKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvcHJv bS90cmVlXzMyLmMgYi9hcmNoL3NwYXJjL3Byb20vdHJlZV8zMi5jCmluZGV4IDBmZWQ4OTMuLjJk MGEyMDQgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvcHJvbS90cmVlXzMyLmMKKysrIGIvYXJjaC9z cGFyYy9wcm9tL3RyZWVfMzIuYwpAQCAtNDEsMTEgKzQxLDExIEBAIHBoYW5kbGUgcHJvbV9nZXRj aGlsZChwaGFuZGxlIG5vZGUpCiB7CiAJcGhhbmRsZSBjbm9kZTsKIAotCWlmICgoczMyKW5vZGUg PT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJ Y25vZGUgPSBfX3Byb21fZ2V0Y2hpbGQobm9kZSk7Ci0JaWYgKGNub2RlID09IDAgfHwgKHMzMilj bm9kZSA9PSAtMSkKKwlpZiAoY25vZGUgPT0gMCB8fCAoczMyKWNub2RlID09IE5VTUFfTk9fTk9E RSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4gY25vZGU7CkBAIC03MywxMSArNzMsMTEgQEAgcGhh bmRsZSBwcm9tX2dldHNpYmxpbmcocGhhbmRsZSBub2RlKQogewogCXBoYW5kbGUgc2libm9kZTsK IAotCWlmICgoczMyKW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUp CiAJCXJldHVybiAwOwogCiAJc2libm9kZSA9IF9fcHJvbV9nZXRzaWJsaW5nKG5vZGUpOwotCWlm IChzaWJub2RlID09IDAgfHwgKHMzMilzaWJub2RlID09IC0xKQorCWlmIChzaWJub2RlID09IDAg fHwgKHMzMilzaWJub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4g c2libm9kZTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgY2hhciAqX19wcm9tX25leHRwcm9w KHBoYW5kbGUgbm9kZSwgY2hhciAqIG9wcm9wKQogICovCiBjaGFyICpwcm9tX25leHRwcm9wKHBo YW5kbGUgbm9kZSwgY2hhciAqb3Byb3AsIGNoYXIgKmJ1ZmZlcikKIHsKLQlpZiAobm9kZSA9PSAw IHx8IChzMzIpbm9kZSA9PSAtMSkKKwlpZiAobm9kZSA9PSAwIHx8IChzMzIpbm9kZSA9PSBOVU1B X05PX05PREUpCiAJCXJldHVybiAiIjsKIAogCXJldHVybiBfX3Byb21fbmV4dHByb3Aobm9kZSwg b3Byb3ApOwpAQCAtMzA0LDcgKzMwNCw3IEBAIHBoYW5kbGUgcHJvbV9pbnN0MnBrZyhpbnQgaW5z dCkKIAlub2RlID0gKCpyb212ZWMtPnB2X3YyZGV2b3BzLnYyX2luc3QycGtnKShpbnN0KTsKIAly ZXN0b3JlX2N1cnJlbnQoKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcm9tX2xvY2ssIGZs YWdzKTsKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19O T0RFKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gbm9kZTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvc3Bh cmMvcHJvbS90cmVlXzY0LmMgYi9hcmNoL3NwYXJjL3Byb20vdHJlZV82NC5jCmluZGV4IDk4OWU3 OTkuLjJiNGM1MTUgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvcHJvbS90cmVlXzY0LmMKKysrIGIv YXJjaC9zcGFyYy9wcm9tL3RyZWVfNjQuYwpAQCAtNDQsMTAgKzQ0LDEwIEBAIHBoYW5kbGUgcHJv bV9nZXRjaGlsZChwaGFuZGxlIG5vZGUpCiB7CiAJcGhhbmRsZSBjbm9kZTsKIAotCWlmICgoczMy KW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAw OwogCWNub2RlID0gX19wcm9tX2dldGNoaWxkKG5vZGUpOwotCWlmICgoczMyKWNub2RlID09IC0x KQorCWlmICgoczMyKWNub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAJcmV0dXJu IGNub2RlOwogfQpAQCAtNTcsMTAgKzU3LDEwIEBAIGlubGluZSBwaGFuZGxlIHByb21fZ2V0cGFy ZW50KHBoYW5kbGUgbm9kZSkKIHsKIAlwaGFuZGxlIGNub2RlOwogCi0JaWYgKChzMzIpbm9kZSA9 PSAtMSkKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIDA7CiAJY25v ZGUgPSBwcm9tX25vZGVfdG9fbm9kZSgicGFyZW50Iiwgbm9kZSk7Ci0JaWYgKChzMzIpY25vZGUg PT0gLTEpCisJaWYgKChzMzIpY25vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAly ZXR1cm4gY25vZGU7CiB9CkBAIC03NywxMCArNzcsMTAgQEAgcGhhbmRsZSBwcm9tX2dldHNpYmxp bmcocGhhbmRsZSBub2RlKQogewogCXBoYW5kbGUgc2libm9kZTsKIAotCWlmICgoczMyKW5vZGUg PT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCXNp Ym5vZGUgPSBfX3Byb21fZ2V0c2libGluZyhub2RlKTsKLQlpZiAoKHMzMilzaWJub2RlID09IC0x KQorCWlmICgoczMyKXNpYm5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAogCXJl dHVybiBzaWJub2RlOwpAQCAtMjQxLDcgKzI0MSw3IEBAIGNoYXIgKnByb21fZmlyc3Rwcm9wKHBo YW5kbGUgbm9kZSwgY2hhciAqYnVmZmVyKQogCXVuc2lnbmVkIGxvbmcgYXJnc1s3XTsKIAogCSpi dWZmZXIgPSAwOwotCWlmICgoczMyKW5vZGUgPT0gLTEpCisJaWYgKChzMzIpbm9kZSA9PSBOVU1B X05PX05PREUpCiAJCXJldHVybiBidWZmZXI7CiAKIAlhcmdzWzBdID0gKHVuc2lnbmVkIGxvbmcp IHByb21fbmV4dHByb3BfbmFtZTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBjaGFyICpwcm9tX25leHRw cm9wKHBoYW5kbGUgbm9kZSwgY29uc3QgY2hhciAqb3Byb3AsIGNoYXIgKmJ1ZmZlcikKIAl1bnNp Z25lZCBsb25nIGFyZ3NbN107CiAJY2hhciBidWZbMzJdOwogCi0JaWYgKChzMzIpbm9kZSA9PSAt MSkgeworCWlmICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJCSpidWZmZXIgPSAwOwog CQlyZXR1cm4gYnVmZmVyOwogCX0KQEAgLTM3MCw3ICszNzAsNyBAQCBpbmxpbmUgcGhhbmRsZSBw cm9tX2luc3QycGtnKGludCBpbnN0KQogCXAxMjc1X2NtZF9kaXJlY3QoYXJncyk7CiAKIAlub2Rl ID0gKGludCkgYXJnc1s0XTsKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5vZGUg PT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gbm9kZTsKIH0KZGlmZiAtLWdp dCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BjaS5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNp LmgKaW5kZXggNjYyOTYzNi4uZGVlMmEzMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9h c20vcGNpLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgKQEAgLTE0MSw3ICsxNDEs NyBAQCBjcHVtYXNrX29mX3BjaWJ1cyhjb25zdCBzdHJ1Y3QgcGNpX2J1cyAqYnVzKQogCWludCBu b2RlOwogCiAJbm9kZSA9IF9fcGNpYnVzX3RvX25vZGUoYnVzKTsKLQlyZXR1cm4gKG5vZGUgPT0g LTEpID8gY3B1X29ubGluZV9tYXNrIDoKKwlyZXR1cm4gKG5vZGUgPT0gTlVNQV9OT19OT0RFKSA/ IGNwdV9vbmxpbmVfbWFzayA6CiAJCQkgICAgICBjcHVtYXNrX29mX25vZGUobm9kZSk7CiB9CiAj ZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcGljL3gyYXBpY191dl94LmMgYi9h cmNoL3g4Ni9rZXJuZWwvYXBpYy94MmFwaWNfdXZfeC5jCmluZGV4IDM5MWYzNTguLjNjMzM3OGEg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hcGljL3gyYXBpY191dl94LmMKKysrIGIvYXJj aC94ODYva2VybmVsL2FwaWMveDJhcGljX3V2X3guYwpAQCAtMTM5MCw3ICsxMzkwLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IGJ1aWxkX3NvY2tldF90YWJsZXModm9pZCkKIAl9CiAKIAkvKiBTZXQg c29ja2V0IC0+IG5vZGUgdmFsdWVzOiAqLwotCWxuaWQgPSAtMTsKKwlsbmlkID0gTlVNQV9OT19O T0RFOwogCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgewogCQlpbnQgbmlkID0gY3B1X3RvX25v ZGUoY3B1KTsKIAkJaW50IGFwaWNpZCwgc29ja2lkOwpAQCAtMTUyMSw3ICsxNTIxLDcgQEAgc3Rh dGljIHZvaWQgX19pbml0IHV2X3N5c3RlbV9pbml0X2h1Yih2b2lkKQogCQkJbmV3X2h1Yi0+cG5v ZGUgPSAweGZmZmY7CiAKIAkJbmV3X2h1Yi0+bnVtYV9ibGFkZV9pZCA9IHV2X25vZGVfdG9fYmxh ZGVfaWQobm9kZWlkKTsKLQkJbmV3X2h1Yi0+bWVtb3J5X25pZCA9IC0xOworCQluZXdfaHViLT5t ZW1vcnlfbmlkID0gTlVNQV9OT19OT0RFOwogCQluZXdfaHViLT5ucl9wb3NzaWJsZV9jcHVzID0g MDsKIAkJbmV3X2h1Yi0+bnJfb25saW5lX2NwdXMgPSAwOwogCX0KQEAgLTE1MzgsNyArMTUzOCw3 IEBAIHN0YXRpYyB2b2lkIF9faW5pdCB1dl9zeXN0ZW1faW5pdF9odWIodm9pZCkKIAogCQl1dl9j cHVfaW5mb19wZXIoY3B1KS0+cF91dl9odWJfaW5mbyA9IHV2X2h1Yl9pbmZvX2xpc3Qobm9kZWlk KTsKIAkJdXZfY3B1X2luZm9fcGVyKGNwdSktPmJsYWRlX2NwdV9pZCA9IHV2X2NwdV9odWJfaW5m byhjcHUpLT5ucl9wb3NzaWJsZV9jcHVzKys7Ci0JCWlmICh1dl9jcHVfaHViX2luZm8oY3B1KS0+ bWVtb3J5X25pZCA9PSAtMSkKKwkJaWYgKHV2X2NwdV9odWJfaW5mbyhjcHUpLT5tZW1vcnlfbmlk ID09IE5VTUFfTk9fTk9ERSkKIAkJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5tZW1vcnlfbmlkID0g Y3B1X3RvX25vZGUoY3B1KTsKIAogCQkvKiBJbml0IG1lbW9yeWxlc3Mgbm9kZTogKi8KZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc21wYm9v dC5jCmluZGV4IGE5MTM0ZDEuLmMxZDQ1ZGMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9z bXBib290LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYwpAQCAtODQxLDcgKzg0MSw3 IEBAIHdha2V1cF9zZWNvbmRhcnlfY3B1X3ZpYV9pbml0KGludCBwaHlzX2FwaWNpZCwgdW5zaWdu ZWQgbG9uZyBzdGFydF9laXApCiAvKiByZWR1Y2UgdGhlIG51bWJlciBvZiBsaW5lcyBwcmludGVk IHdoZW4gYm9vdGluZyBhIGxhcmdlIGNwdSBjb3VudCBzeXN0ZW0gKi8KIHN0YXRpYyB2b2lkIGFu bm91bmNlX2NwdShpbnQgY3B1LCBpbnQgYXBpY2lkKQogewotCXN0YXRpYyBpbnQgY3VycmVudF9u b2RlID0gLTE7CisJc3RhdGljIGludCBjdXJyZW50X25vZGUgPSBOVU1BX05PX05PREU7CiAJaW50 IG5vZGUgPSBlYXJseV9jcHVfdG9fbm9kZShjcHUpOwogCXN0YXRpYyBpbnQgd2lkdGgsIG5vZGVf d2lkdGg7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BsYXRmb3JtL29scGMvb2xwY19kdC5jIGIv YXJjaC94ODYvcGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKaW5kZXggMjRkMjE3NS4uNzA5ODEyNyAx MDA2NDQKLS0tIGEvYXJjaC94ODYvcGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKKysrIGIvYXJjaC94 ODYvcGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKQEAgLTI5LDEwICsyOSwxMCBAQCBzdGF0aWMgcGhh bmRsZSBfX2luaXQgb2xwY19kdF9nZXRzaWJsaW5nKHBoYW5kbGUgbm9kZSkKIAljb25zdCB2b2lk ICphcmdzW10gPSB7ICh2b2lkICopbm9kZSB9OwogCXZvaWQgKnJlc1tdID0geyAmbm9kZSB9Owog Ci0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2RlID09IE5VTUFfTk9fTk9ERSkK IAkJcmV0dXJuIDA7CiAKLQlpZiAob2xwY19vZncoInBlZXIiLCBhcmdzLCByZXMpIHx8IChzMzIp bm9kZSA9PSAtMSkKKwlpZiAob2xwY19vZncoInBlZXIiLCBhcmdzLCByZXMpIHx8IChzMzIpbm9k ZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIG5vZGU7CkBAIC00Mywx MCArNDMsMTAgQEAgc3RhdGljIHBoYW5kbGUgX19pbml0IG9scGNfZHRfZ2V0Y2hpbGQocGhhbmRs ZSBub2RlKQogCWNvbnN0IHZvaWQgKmFyZ3NbXSA9IHsgKHZvaWQgKilub2RlIH07CiAJdm9pZCAq cmVzW10gPSB7ICZub2RlIH07CiAKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlmICgoczMyKW5v ZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gMDsKIAotCWlmIChvbHBjX29mdygiY2hpbGQi LCBhcmdzLCByZXMpIHx8IChzMzIpbm9kZSA9PSAtMSkgeworCWlmIChvbHBjX29mdygiY2hpbGQi LCBhcmdzLCByZXMpIHx8IChzMzIpbm9kZSA9PSBOVU1BX05PX05PREUpIHsKIAkJcHJfZXJyKCJQ Uk9NOiAlczogZmV0Y2hpbmcgY2hpbGQgZmFpbGVkIVxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4g MDsKIAl9CkBAIC02MCw3ICs2MCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG9scGNfZHRfZ2V0cHJv cGxlbihwaGFuZGxlIG5vZGUsIGNvbnN0IGNoYXIgKnByb3ApCiAJaW50IGxlbjsKIAl2b2lkICpy ZXNbXSA9IHsgJmxlbiB9OwogCi0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2Rl ID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIC0xOwogCiAJaWYgKG9scGNfb2Z3KCJnZXRwcm9w bGVuIiwgYXJncywgcmVzKSkgewpAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBpbnQgX19pbml0 IG9scGNfZHRfbmV4dHByb3AocGhhbmRsZSBub2RlLCBjaGFyICpwcmV2LCBjaGFyICpidWYpCiAK IAlidWZbMF0gPSAnXDAnOwogCi0JaWYgKChzMzIpbm9kZSA9PSAtMSkKKwlpZiAoKHMzMilub2Rl ID09IE5VTUFfTk9fTk9ERSkKIAkJcmV0dXJuIC0xOwogCiAJaWYgKG9scGNfb2Z3KCJuZXh0cHJv cCIsIGFyZ3MsIHJlcykgfHwgc3VjY2VzcyAhPSAxKQpAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRp YyBpbnQgX19pbml0IG9scGNfZHRfcGtnMnBhdGgocGhhbmRsZSBub2RlLCBjaGFyICpidWYsCiAJ Y29uc3Qgdm9pZCAqYXJnc1tdID0geyAodm9pZCAqKW5vZGUsIGJ1ZiwgKHZvaWQgKilidWZsZW4g fTsKIAl2b2lkICpyZXNbXSA9IHsgbGVuIH07CiAKLQlpZiAoKHMzMilub2RlID09IC0xKQorCWlm ICgoczMyKW5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQlyZXR1cm4gLTE7CiAKIAlpZiAob2xwY19v ZncoInBhY2thZ2UtdG8tcGF0aCIsIGFyZ3MsIHJlcykgfHwgKmxlbiA8IDEpCkBAIC0xNzYsNyAr MTc2LDcgQEAgc3RhdGljIHBoYW5kbGUgX19pbml0IG9scGNfZHRfZmluZGRldmljZShjb25zdCBj aGFyICpwYXRoKQogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoKHMzMikgbm9kZSA9PSAtMSkKKwlp ZiAoKHMzMikgbm9kZSA9PSBOVU1BX05PX05PREUpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIG5v ZGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL210aXAzMnh4L210aXAzMnh4LmMgYi9kcml2 ZXJzL2Jsb2NrL210aXAzMnh4L210aXAzMnh4LmMKaW5kZXggYTdkYWE4YS4uYjg4OTQ1MiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ibG9jay9tdGlwMzJ4eC9tdGlwMzJ4eC5jCisrKyBiL2RyaXZlcnMv YmxvY2svbXRpcDMyeHgvbXRpcDMyeHguYwpAQCAtNDA4NCw5ICs0MDg0LDkgQEAgc3RhdGljIGlu dCBnZXRfbGVhc3RfdXNlZF9jcHVfb25fbm9kZShpbnQgbm9kZSkKIC8qIEhlbHBlciBmb3Igc2Vs ZWN0aW5nIGEgbm9kZSBpbiByb3VuZCByb2JpbiBtb2RlICovCiBzdGF0aWMgaW5saW5lIGludCBt dGlwX2dldF9uZXh0X3JyX25vZGUodm9pZCkKIHsKLQlzdGF0aWMgaW50IG5leHRfbm9kZSA9IC0x OworCXN0YXRpYyBpbnQgbmV4dF9ub2RlID0gTlVNQV9OT19OT0RFOwogCi0JaWYgKG5leHRfbm9k ZSA9PSAtMSkgeworCWlmIChuZXh0X25vZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJCW5leHRfbm9k ZSA9IGZpcnN0X29ubGluZV9ub2RlOwogCQlyZXR1cm4gbmV4dF9ub2RlOwogCX0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZG1hL2RtYWVuZ2luZS5jIGIvZHJpdmVycy9kbWEvZG1hZW5naW5lLmMKaW5k ZXggZjFhNDQxYWIuLjFhZWVmYzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL2RtYWVuZ2luZS5j CisrKyBiL2RyaXZlcnMvZG1hL2RtYWVuZ2luZS5jCkBAIC0zODYsNyArMzg2LDggQEAgRVhQT1JU X1NZTUJPTChkbWFfaXNzdWVfcGVuZGluZ19hbGwpOwogc3RhdGljIGJvb2wgZG1hX2NoYW5faXNf bG9jYWwoc3RydWN0IGRtYV9jaGFuICpjaGFuLCBpbnQgY3B1KQogewogCWludCBub2RlID0gZGV2 X3RvX25vZGUoY2hhbi0+ZGV2aWNlLT5kZXYpOwotCXJldHVybiBub2RlID09IC0xIHx8IGNwdW1h c2tfdGVzdF9jcHUoY3B1LCBjcHVtYXNrX29mX25vZGUobm9kZSkpOworCXJldHVybiBub2RlID09 IE5VTUFfTk9fTk9ERSB8fAorCQljcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3B1bWFza19vZl9ub2Rl KG5vZGUpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZp MS9hZmZpbml0eS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvYWZmaW5pdHkuYwppbmRl eCAyYmFmMzhjLi4zZThhY2I4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZp MS9hZmZpbml0eS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL2FmZmluaXR5LmMK QEAgLTc3Nyw3ICs3NzcsNyBAQCB2b2lkIGhmaTFfZGV2X2FmZmluaXR5X2NsZWFuX3VwKHN0cnVj dCBoZmkxX2RldmRhdGEgKmRkKQogCV9kZXZfY29tcF92ZWN0X2NwdV9tYXNrX2NsZWFuX3VwKGRk LCBlbnRyeSk7CiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZub2RlX2FmZmluaXR5LmxvY2spOwot CWRkLT5ub2RlID0gLTE7CisJZGQtPm5vZGUgPSBOVU1BX05PX05PREU7CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS9pbml0LmMgYi9kcml2ZXJzL2luZmlu aWJhbmQvaHcvaGZpMS9pbml0LmMKaW5kZXggMDkwNDQ5MC4uMGJmNDU3NyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvaW5pdC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFu ZC9ody9oZmkxL2luaXQuYwpAQCAtMTMwMyw3ICsxMzAzLDcgQEAgc3RhdGljIHN0cnVjdCBoZmkx X2RldmRhdGEgKmhmaTFfYWxsb2NfZGV2ZGF0YShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKIAkJZGQt PnVuaXQgPSByZXQ7CiAJCWxpc3RfYWRkKCZkZC0+bGlzdCwgJmhmaTFfZGV2X2xpc3QpOwogCX0K LQlkZC0+bm9kZSA9IC0xOworCWRkLT5ub2RlID0gTlVNQV9OT19OT0RFOwogCiAJc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmaGZpMV9kZXZzX2xvY2ssIGZsYWdzKTsKIAlpZHJfcHJlbG9hZF9lbmQo KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvZG1hci5jIGIvZHJpdmVycy9pb21tdS9kbWFy LmMKaW5kZXggZDljNzQ4Yi4uODZhOWMxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9kbWFy LmMKKysrIGIvZHJpdmVycy9pb21tdS9kbWFyLmMKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBzdGF0aWMg aW50IGRtYXJfcGFyc2Vfb25lX3Joc2Eoc3RydWN0IGFjcGlfZG1hcl9oZWFkZXIgKmhlYWRlciwg dm9pZCAqYXJnKQogCQkJaW50IG5vZGUgPSBhY3BpX21hcF9weG1fdG9fbm9kZShyaHNhLT5wcm94 aW1pdHlfZG9tYWluKTsKIAogCQkJaWYgKCFub2RlX29ubGluZShub2RlKSkKLQkJCQlub2RlID0g LTE7CisJCQkJbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAkJCWRyaGQtPmlvbW11LT5ub2RlID0gbm9k ZTsKIAkJCXJldHVybiAwOwogCQl9CkBAIC0xMDYyLDcgKzEwNjIsNyBAQCBzdGF0aWMgaW50IGFs bG9jX2lvbW11KHN0cnVjdCBkbWFyX2RyaGRfdW5pdCAqZHJoZCkKIAlpb21tdS0+bXNhZ2F3ID0g bXNhZ2F3OwogCWlvbW11LT5zZWdtZW50ID0gZHJoZC0+c2VnbWVudDsKIAotCWlvbW11LT5ub2Rl ID0gLTE7CisJaW9tbXUtPm5vZGUgPSBOVU1BX05PX05PREU7CiAKIAl2ZXIgPSByZWFkbChpb21t dS0+cmVnICsgRE1BUl9WRVJfUkVHKTsKIAlwcl9pbmZvKCIlczogcmVnX2Jhc2VfYWRkciAlbGx4 IHZlciAlZDolZCBjYXAgJWxseCBlY2FwICVsbHhcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lv bW11L2ludGVsLWlvbW11LmMgYi9kcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMKaW5kZXggZjNj Y2YwMi4uOWY2ZmIxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jCisr KyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYwpAQCAtMTc3Miw3ICsxNzcyLDcgQEAgc3Rh dGljIHN0cnVjdCBkbWFyX2RvbWFpbiAqYWxsb2NfZG9tYWluKGludCBmbGFncykKIAkJcmV0dXJu IE5VTEw7CiAKIAltZW1zZXQoZG9tYWluLCAwLCBzaXplb2YoKmRvbWFpbikpOwotCWRvbWFpbi0+ bmlkID0gLTE7CisJZG9tYWluLT5uaWQgPSBOVU1BX05PX05PREU7CiAJZG9tYWluLT5mbGFncyA9 IGZsYWdzOwogCWRvbWFpbi0+aGFzX2lvdGxiX2RldmljZSA9IGZhbHNlOwogCUlOSVRfTElTVF9I RUFEKCZkb21haW4tPmRldmljZXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wY2kvaXZ0 di9pdnR2ZmIuYyBiL2RyaXZlcnMvbWVkaWEvcGNpL2l2dHYvaXZ0dmZiLmMKaW5kZXggM2UwMmRl MC4uODFiZDQxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2ZmIuYwor KysgYi9kcml2ZXJzL21lZGlhL3BjaS9pdnR2L2l2dHZmYi5jCkBAIC0xMDU0LDcgKzEwNTQsNyBA QCBzdGF0aWMgaW50IGl2dHZmYl9pbml0X3ZpZG1vZGUoc3RydWN0IGl2dHYgKml0dikKIAogCS8q IEdlbmVyYXRlIHZhbGlkIGZiX2luZm8gKi8KIAotCW9pLT5pdnR2ZmJfaW5mby5ub2RlID0gLTE7 CisJb2ktPml2dHZmYl9pbmZvLm5vZGUgPSBOVU1BX05PX05PREU7CiAJb2ktPml2dHZmYl9pbmZv LmZsYWdzID0gRkJJTkZPX0ZMQUdfREVGQVVMVDsKIAlvaS0+aXZ0dmZiX2luZm8uZmJvcHMgPSAm aXZ0dmZiX29wczsKIAlvaS0+aXZ0dmZiX2luZm8ucGFyID0gaXR2OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS92aXZpZC92aXZpZC1vc2QuYyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vdml2aWQvdml2aWQtb3NkLmMKaW5kZXggMWE4OTU5My4uNTZhMmQ0MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92aXZpZC92aXZpZC1vc2QuYworKysgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL3ZpdmlkL3ZpdmlkLW9zZC5jCkBAIC0zMDksNyArMzA5LDcgQEAgc3Rh dGljIGludCB2aXZpZF9mYl9pbml0X3ZpZG1vZGUoc3RydWN0IHZpdmlkX2RldiAqZGV2KQogCiAJ LyogR2VuZXJhdGUgdmFsaWQgZmJfaW5mbyAqLwogCi0JZGV2LT5mYl9pbmZvLm5vZGUgPSAtMTsK KwlkZXYtPmZiX2luZm8ubm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlkZXYtPmZiX2luZm8uZmxhZ3Mg PSBGQklORk9fRkxBR19ERUZBVUxUOwogCWRldi0+ZmJfaW5mby5mYm9wcyA9ICZ2aXZpZF9mYl9v cHM7CiAJZGV2LT5mYl9pbmZvLnBhciA9IGRldjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9z Z2kteHAveHBjX3V2LmMgYi9kcml2ZXJzL21pc2Mvc2dpLXhwL3hwY191di5jCmluZGV4IDA0NDFh YmUuLmVlZjM2ZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9zZ2kteHAveHBjX3V2LmMKKysr IGIvZHJpdmVycy9taXNjL3NnaS14cC94cGNfdXYuYwpAQCAtNjEsNyArNjEsNyBAQCBzdGF0aWMg c3RydWN0IHhwY19oZWFydGJlYXRfdXYgKnhwY19oZWFydGJlYXRfdXY7CiAJCQkJCSBYUENfTk9U SUZZX01TR19TSVpFX1VWKQogI2RlZmluZSBYUENfTk9USUZZX0lSUV9OQU1FCQkieHBjX25vdGlm eSIKIAotc3RhdGljIGludCB4cGNfbXFfbm9kZSA9IC0xOworc3RhdGljIGludCB4cGNfbXFfbm9k ZSA9IE5VTUFfTk9fTk9ERTsKIAogc3RhdGljIHN0cnVjdCB4cGNfZ3J1X21xX3V2ICp4cGNfYWN0 aXZhdGVfbXFfdXY7CiBzdGF0aWMgc3RydWN0IHhwY19ncnVfbXFfdXYgKnhwY19ub3RpZnlfbXFf dXY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9t YWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9tYWluLmMKaW5k ZXggMTEzYjM4ZS4uNGZhZTg1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50 ZWwvaXhnYmUvaXhnYmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4 Z2JlL2l4Z2JlX21haW4uYwpAQCAtNjQxNCw3ICs2NDE0LDcgQEAgaW50IGl4Z2JlX3NldHVwX3R4 X3Jlc291cmNlcyhzdHJ1Y3QgaXhnYmVfcmluZyAqdHhfcmluZykKIHsKIAlzdHJ1Y3QgZGV2aWNl ICpkZXYgPSB0eF9yaW5nLT5kZXY7CiAJaW50IG9yaWdfbm9kZSA9IGRldl90b19ub2RlKGRldik7 Ci0JaW50IHJpbmdfbm9kZSA9IC0xOworCWludCByaW5nX25vZGUgPSBOVU1BX05PX05PREU7CiAJ aW50IHNpemU7CiAKIAlzaXplID0gc2l6ZW9mKHN0cnVjdCBpeGdiZV90eF9idWZmZXIpICogdHhf cmluZy0+Y291bnQ7CkBAIC02NTA4LDcgKzY1MDgsNyBAQCBpbnQgaXhnYmVfc2V0dXBfcnhfcmVz b3VyY2VzKHN0cnVjdCBpeGdiZV9hZGFwdGVyICphZGFwdGVyLAogewogCXN0cnVjdCBkZXZpY2Ug KmRldiA9IHJ4X3JpbmctPmRldjsKIAlpbnQgb3JpZ19ub2RlID0gZGV2X3RvX25vZGUoZGV2KTsK LQlpbnQgcmluZ19ub2RlID0gLTE7CisJaW50IHJpbmdfbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlp bnQgc2l6ZTsKIAogCXNpemUgPSBzaXplb2Yoc3RydWN0IGl4Z2JlX3J4X2J1ZmZlcikgKiByeF9y aW5nLT5jb3VudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvbW1wL2ZiL21tcGZi LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L21tcC9mYi9tbXBmYi5jCmluZGV4IGVlMjEyYmUuLjI5 OGJlOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvbW1wL2ZiL21tcGZiLmMKKysr IGIvZHJpdmVycy92aWRlby9mYmRldi9tbXAvZmIvbW1wZmIuYwpAQCAtNTE5LDcgKzUxOSw3IEBA IHN0YXRpYyBpbnQgZmJfaW5mb19zZXR1cChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywKIAkvKiBJbml0 aWFsaXNlIHN0YXRpYyBmYiBwYXJhbWV0ZXJzLiovCiAJaW5mby0+ZmxhZ3MgPSBGQklORk9fREVG QVVMVCB8IEZCSU5GT19QQVJUSUFMX1BBTl9PSyB8CiAJCUZCSU5GT19IV0FDQ0VMX1hQQU4gfCBG QklORk9fSFdBQ0NFTF9ZUEFOOwotCWluZm8tPm5vZGUgPSAtMTsKKwlpbmZvLT5ub2RlID0gTlVN QV9OT19OT0RFOwogCXN0cmNweShpbmZvLT5maXguaWQsIGZiaS0+bmFtZSk7CiAJaW5mby0+Zml4 LnR5cGUgPSBGQl9UWVBFX1BBQ0tFRF9QSVhFTFM7CiAJaW5mby0+Zml4LnR5cGVfYXV4ID0gMDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcHhhMTY4ZmIuYyBiL2RyaXZlcnMvdmlk ZW8vZmJkZXYvcHhhMTY4ZmIuYwppbmRleCBlMzEzNDBmLi43ZDc3NWRlIDEwMDY0NAotLS0gYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3B4YTE2OGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9w eGExNjhmYi5jCkBAIC02NDksNyArNjQ5LDcgQEAgc3RhdGljIGludCBweGExNjhmYl9wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCSAqLwogCWluZm8tPmZsYWdzID0gRkJJTkZP X0RFRkFVTFQgfCBGQklORk9fUEFSVElBTF9QQU5fT0sgfAogCQkgICAgICBGQklORk9fSFdBQ0NF TF9YUEFOIHwgRkJJTkZPX0hXQUNDRUxfWVBBTjsKLQlpbmZvLT5ub2RlID0gLTE7CisJaW5mby0+ bm9kZSA9IE5VTUFfTk9fTk9ERTsKIAlzdHJsY3B5KGluZm8tPmZpeC5pZCwgbWktPmlkLCAxNik7 CiAJaW5mby0+Zml4LnR5cGUgPSBGQl9UWVBFX1BBQ0tFRF9QSVhFTFM7CiAJaW5mby0+Zml4LnR5 cGVfYXV4ID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdzEwMGZiLmMgYi9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3cxMDBmYi5jCmluZGV4IDY5NjEwNmUuLjhiMGYyMGMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvdzEwMGZiLmMKKysrIGIvZHJpdmVycy92aWRlby9m YmRldi93MTAwZmIuYwpAQCAtNzAzLDcgKzcwMyw3IEBAIGludCB3MTAwZmJfcHJvYmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpbmZvLT5mYm9wcyA9ICZ3MTAwZmJfb3BzOwogCWlu Zm8tPmZsYWdzID0gRkJJTkZPX0RFRkFVTFQgfCBGQklORk9fSFdBQ0NFTF9DT1BZQVJFQSB8CiAJ CUZCSU5GT19IV0FDQ0VMX0ZJTExSRUNUOwotCWluZm8tPm5vZGUgPSAtMTsKKwlpbmZvLT5ub2Rl ID0gTlVNQV9OT19OT0RFOwogCWluZm8tPnNjcmVlbl9iYXNlID0gcmVtYXBwZWRfZmJ1ZiArIChX MTAwX0ZCX0JBU0UtTUVNX1dJTkRPV19CQVNFKTsKIAlpbmZvLT5zY3JlZW5fc2l6ZSA9IFJFTUFQ UEVEX0ZCX0xFTjsKIApkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbWNvbW1vbi5oIGIvZnMv b2NmczIvZGxtL2RsbWNvbW1vbi5oCmluZGV4IGQwNmUyN2UuLjExMTExZjYgMTAwNjQ0Ci0tLSBh L2ZzL29jZnMyL2RsbS9kbG1jb21tb24uaAorKysgYi9mcy9vY2ZzMi9kbG0vZGxtY29tbW9uLmgK QEAgLTExMjEsNyArMTEyMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkbG1fbm9kZV9pdGVyX2lu aXQodW5zaWduZWQgbG9uZyAqbWFwLAogCQkJCSAgICAgIHN0cnVjdCBkbG1fbm9kZV9pdGVyICpp dGVyKQogewogCW1lbWNweShpdGVyLT5ub2RlX21hcCwgbWFwLCBzaXplb2YoaXRlci0+bm9kZV9t YXApKTsKLQlpdGVyLT5jdXJub2RlID0gLTE7CisJaXRlci0+Y3Vybm9kZSA9IE5VTUFfTk9fTk9E RTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgZGxtX25vZGVfaXRlcl9uZXh0KHN0cnVjdCBkbG1f bm9kZV9pdGVyICppdGVyKQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbWRvbWFpbi5jIGIv ZnMvb2NmczIvZGxtL2RsbWRvbWFpbi5jCmluZGV4IDJhY2Q1OGIuLjM4MWEzMjMgMTAwNjQ0Ci0t LSBhL2ZzL29jZnMyL2RsbS9kbG1kb21haW4uYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtZG9tYWlu LmMKQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgdm9pZCBkbG1fbWFya19kb21haW5fbGVhdmlu ZyhzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKIAogc3RhdGljIHZvaWQgX19kbG1fcHJpbnRfbm9kZXMo c3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7Ci0JaW50IG5vZGUgPSAtMSwgbnVtID0gMDsKKwlpbnQg bm9kZSA9IE5VTUFfTk9fTk9ERSwgbnVtID0gMDsKIAogCWFzc2VydF9zcGluX2xvY2tlZCgmZGxt LT5zcGlubG9jayk7CiAKQEAgLTYxMyw3ICs2MTMsNyBAQCBzdGF0aWMgaW50IGRsbV9zZW5kX29u ZV9kb21haW5fZXhpdChzdHJ1Y3QgZGxtX2N0eHQgKmRsbSwgdTMyIG1zZ190eXBlLAogCiBzdGF0 aWMgdm9pZCBkbG1fYmVnaW5fZXhpdF9kb21haW4oc3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7Ci0J aW50IG5vZGUgPSAtMTsKKwlpbnQgbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCS8qIFN1cHBvcnQg Zm9yIGJlZ2luIGV4aXQgZG9tYWluIHdhcyBhZGRlZCBpbiAxLjIgKi8KIAlpZiAoZGxtLT5kbG1f bG9ja2luZ19wcm90by5wdl9tYWpvciA9PSAxICYmCkBAIC0xNDA3LDcgKzE0MDcsNyBAQCBzdGF0 aWMgaW50IGRsbV9zZW5kX2pvaW5fY2FuY2VscyhzdHJ1Y3QgZGxtX2N0eHQgKmRsbSwKIAl9CiAK IAlzdGF0dXMgPSAwOwotCW5vZGUgPSAtMTsKKwlub2RlID0gTlVNQV9OT19OT0RFOwogCXdoaWxl ICgobm9kZSA9IGZpbmRfbmV4dF9iaXQobm9kZV9tYXAsIE8yTk1fTUFYX05PREVTLAogCQkJCSAg ICAgbm9kZSArIDEpKSA8IE8yTk1fTUFYX05PREVTKSB7CiAJCWlmIChub2RlID09IGRsbS0+bm9k ZV9udW0pCkBAIC0xNTQ3LDcgKzE1NDcsNyBAQCBzdGF0aWMgdm9pZCBkbG1fc2VuZF9qb2luX2Fz c2VydHMoc3RydWN0IGRsbV9jdHh0ICpkbG0sCiAJaW50IHN0YXR1cywgbm9kZSwgbGl2ZTsKIAog CXN0YXR1cyA9IDA7Ci0Jbm9kZSA9IC0xOworCW5vZGUgPSBOVU1BX05PX05PREU7CiAJd2hpbGUg KChub2RlID0gZmluZF9uZXh0X2JpdChub2RlX21hcCwgTzJOTV9NQVhfTk9ERVMsCiAJCQkJICAg ICBub2RlICsgMSkpIDwgTzJOTV9NQVhfTk9ERVMpIHsKIAkJaWYgKG5vZGUgPT0gZGxtLT5ub2Rl X251bSkKQEAgLTE2MzEsNyArMTYzMSw3IEBAIHN0YXRpYyBpbnQgZGxtX3RyeV90b19qb2luX2Rv bWFpbihzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKIAogCXNwaW5fdW5sb2NrKCZkbG0tPnNwaW5sb2Nr KTsKIAotCW5vZGUgPSAtMTsKKwlub2RlID0gTlVNQV9OT19OT0RFOwogCXdoaWxlICgobm9kZSA9 IGZpbmRfbmV4dF9iaXQoY3R4dC0+bGl2ZV9tYXAsIE8yTk1fTUFYX05PREVTLAogCQkJCSAgICAg bm9kZSArIDEpKSA8IE8yTk1fTUFYX05PREVTKSB7CiAJCWlmIChub2RlID09IGRsbS0+bm9kZV9u dW0pCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMgYi9mcy9vY2ZzMi9kbG0v ZGxtbWFzdGVyLmMKaW5kZXggODI2ZjA1Ni4uZTU0YmJiYyAxMDA2NDQKLS0tIGEvZnMvb2NmczIv ZGxtL2RsbW1hc3Rlci5jCisrKyBiL2ZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYwpAQCAtMTE4Myw3 ICsxMTgzLDcgQEAgc3RhdGljIHZvaWQgZGxtX2JpdG1hcF9kaWZmX2l0ZXJfaW5pdChzdHJ1Y3Qg ZGxtX2JpdG1hcF9kaWZmX2l0ZXIgKml0ZXIsCiAJdW5zaWduZWQgbG9uZyBwMSwgcDI7CiAJaW50 IGk7CiAKLQlpdGVyLT5jdXJub2RlID0gLTE7CisJaXRlci0+Y3Vybm9kZSA9IE5VTUFfTk9fTk9E RTsKIAlpdGVyLT5vcmlnX2JtID0gb3JpZ19ibTsKIAlpdGVyLT5jdXJfYm0gPSBjdXJfYm07CiAK ZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2RsbS9kbG1yZWNvdmVyeS5jIGIvZnMvb2NmczIvZGxtL2Rs bXJlY292ZXJ5LmMKaW5kZXggODAyNjM2ZDUuLjcwNGZhOGIgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMy L2RsbS9kbG1yZWNvdmVyeS5jCisrKyBiL2ZzL29jZnMyL2RsbS9kbG1yZWNvdmVyeS5jCkBAIC0y OTAzLDcgKzI5MDMsNyBAQCBzdGF0aWMgaW50IGRsbV9zZW5kX2ZpbmFsaXplX3JlY29fbWVzc2Fn ZShzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKIAl9CiAJaWYgKHN0YWdlID09IDEpIHsKIAkJLyogcmVz ZXQgdGhlIG5vZGVfaXRlciBiYWNrIHRvIHRoZSB0b3AgYW5kIHNlbmQgZmluYWxpemUyICovCi0J CWl0ZXIuY3Vybm9kZSA9IC0xOworCQlpdGVyLmN1cm5vZGUgPSBOVU1BX05PX05PREU7CiAJCXN0 YWdlID0gMjsKIAkJZ290byBzdGFnZTI7CiAJfQpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvc3RhY2tf dXNlci5jIGIvZnMvb2NmczIvc3RhY2tfdXNlci5jCmluZGV4IGQyZmI5N2IuLmE2NzNlZmEgMTAw NjQ0Ci0tLSBhL2ZzL29jZnMyL3N0YWNrX3VzZXIuYworKysgYi9mcy9vY2ZzMi9zdGFja191c2Vy LmMKQEAgLTE3MSw3ICsxNzEsNyBAQCB1bmlvbiBvY2ZzMl9jb250cm9sX21lc3NhZ2Ugewogc3Rh dGljIHN0cnVjdCBvY2ZzMl9zdGFja19wbHVnaW4gb2NmczJfdXNlcl9wbHVnaW47CiAKIHN0YXRp YyBhdG9taWNfdCBvY2ZzMl9jb250cm9sX29wZW5lZDsKLXN0YXRpYyBpbnQgb2NmczJfY29udHJv bF90aGlzX25vZGUgPSAtMTsKK3N0YXRpYyBpbnQgb2NmczJfY29udHJvbF90aGlzX25vZGUgPSBO VU1BX05PX05PREU7CiBzdGF0aWMgc3RydWN0IG9jZnMyX3Byb3RvY29sX3ZlcnNpb24gcnVubmlu Z19wcm90bzsKIAogc3RhdGljIExJU1RfSEVBRChvY2ZzMl9saXZlX2Nvbm5lY3Rpb25fbGlzdCk7 CkBAIC01ODksNyArNTg5LDcgQEAgc3RhdGljIGludCBvY2ZzMl9jb250cm9sX3JlbGVhc2Uoc3Ry dWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiAJCSAqIExhc3QgdmFsaWQgY2xv c2UgY2xlYXJzIHRoZSBub2RlIG51bWJlciBhbmQgcmVzZXRzCiAJCSAqIHRoZSBsb2NraW5nIHBy b3RvY29sIHZlcnNpb24KIAkJICovCi0JCW9jZnMyX2NvbnRyb2xfdGhpc19ub2RlID0gLTE7CisJ CW9jZnMyX2NvbnRyb2xfdGhpc19ub2RlID0gTlVNQV9OT19OT0RFOwogCQlydW5uaW5nX3Byb3Rv LnB2X21ham9yID0gMDsKIAkJcnVubmluZ19wcm90by5wdl9taW5vciA9IDA7CiAJfQpAQCAtNjEy LDcgKzYxMiw3IEBAIHN0YXRpYyBpbnQgb2NmczJfY29udHJvbF9vcGVuKHN0cnVjdCBpbm9kZSAq aW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogCXAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgb2Nm czJfY29udHJvbF9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwKQogCQlyZXR1cm4gLUVO T01FTTsKLQlwLT5vcF90aGlzX25vZGUgPSAtMTsKKwlwLT5vcF90aGlzX25vZGUgPSBOVU1BX05P X05PREU7CiAKIAltdXRleF9sb2NrKCZvY2ZzMl9jb250cm9sX2xvY2spOwogCWZpbGUtPnByaXZh dGVfZGF0YSA9IHA7CmRpZmYgLS1naXQgYS9pbml0L2luaXRfdGFzay5jIGIvaW5pdC9pbml0X3Rh c2suYwppbmRleCA1YWViZTNiLi42NjQxODM2IDEwMDY0NAotLS0gYS9pbml0L2luaXRfdGFzay5j CisrKyBiL2luaXQvaW5pdF90YXNrLmMKQEAgLTE1NCw3ICsxNTQsNyBAQCBzdHJ1Y3QgdGFza19z dHJ1Y3QgaW5pdF90YXNrCiAJLnZ0aW1lLnN0YXRlCT0gVlRJTUVfU1lTLAogI2VuZGlmCiAjaWZk ZWYgQ09ORklHX05VTUFfQkFMQU5DSU5HCi0JLm51bWFfcHJlZmVycmVkX25pZCA9IC0xLAorCS5u dW1hX3ByZWZlcnJlZF9uaWQgPSBOVU1BX05PX05PREUsCiAJLm51bWFfZ3JvdXAJPSBOVUxMLAog CS5udW1hX2ZhdWx0cwk9IE5VTEwsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2tlcm5lbC9rdGhyZWFk LmMgYi9rZXJuZWwva3RocmVhZC5jCmluZGV4IDA4N2QxOGQuLjc3ZjNkOTQgMTAwNjQ0Ci0tLSBh L2tlcm5lbC9rdGhyZWFkLmMKKysrIGIva2VybmVsL2t0aHJlYWQuYwpAQCAtNjc1LDcgKzY3NSw3 IEBAIF9fa3RocmVhZF9jcmVhdGVfd29ya2VyKGludCBjcHUsIHVuc2lnbmVkIGludCBmbGFncywK IHsKIAlzdHJ1Y3Qga3RocmVhZF93b3JrZXIgKndvcmtlcjsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnRhc2s7Ci0JaW50IG5vZGUgPSAtMTsKKwlpbnQgbm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCXdv cmtlciA9IGt6YWxsb2Moc2l6ZW9mKCp3b3JrZXIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXdvcmtl cikKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9mYWlyLmMgYi9rZXJuZWwvc2NoZWQvZmFpci5j CmluZGV4IGVlMjcxYmIuLmQ4MzBmYTcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZC9mYWlyLmMK KysrIGIva2VybmVsL3NjaGVkL2ZhaXIuYwpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgdm9pZCBpbml0 X251bWFfYmFsYW5jaW5nKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHN0cnVjdCB0YXNrX3N0 cnVjdCAqcCkKIAogCS8qIE5ldyBhZGRyZXNzIHNwYWNlLCByZXNldCB0aGUgcHJlZmVycmVkIG5p ZCAqLwogCWlmICghKGNsb25lX2ZsYWdzICYgQ0xPTkVfVk0pKSB7Ci0JCXAtPm51bWFfcHJlZmVy cmVkX25pZCA9IC0xOworCQlwLT5udW1hX3ByZWZlcnJlZF9uaWQgPSBOVU1BX05PX05PREU7CiAJ CXJldHVybjsKIAl9CiAKQEAgLTExODEsMTMgKzExODEsMTMgQEAgdm9pZCBpbml0X251bWFfYmFs YW5jaW5nKHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkK IAogc3RhdGljIHZvaWQgYWNjb3VudF9udW1hX2VucXVldWUoc3RydWN0IHJxICpycSwgc3RydWN0 IHRhc2tfc3RydWN0ICpwKQogewotCXJxLT5ucl9udW1hX3J1bm5pbmcgKz0gKHAtPm51bWFfcHJl ZmVycmVkX25pZCAhPSAtMSk7CisJcnEtPm5yX251bWFfcnVubmluZyArPSAocC0+bnVtYV9wcmVm ZXJyZWRfbmlkICE9IE5VTUFfTk9fTk9ERSk7CiAJcnEtPm5yX3ByZWZlcnJlZF9ydW5uaW5nICs9 IChwLT5udW1hX3ByZWZlcnJlZF9uaWQgPT0gdGFza19ub2RlKHApKTsKIH0KIAogc3RhdGljIHZv aWQgYWNjb3VudF9udW1hX2RlcXVldWUoc3RydWN0IHJxICpycSwgc3RydWN0IHRhc2tfc3RydWN0 ICpwKQogewotCXJxLT5ucl9udW1hX3J1bm5pbmcgLT0gKHAtPm51bWFfcHJlZmVycmVkX25pZCAh PSAtMSk7CisJcnEtPm5yX251bWFfcnVubmluZyAtPSAocC0+bnVtYV9wcmVmZXJyZWRfbmlkICE9 IE5VTUFfTk9fTk9ERSk7CiAJcnEtPm5yX3ByZWZlcnJlZF9ydW5uaW5nIC09IChwLT5udW1hX3By ZWZlcnJlZF9uaWQgPT0gdGFza19ub2RlKHApKTsKIH0KIApAQCAtMTQwMSw3ICsxNDAxLDcgQEAg Ym9vbCBzaG91bGRfbnVtYV9taWdyYXRlX21lbW9yeShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHN0 cnVjdCBwYWdlICogcGFnZSwKIAkgKiB0d28gZnVsbCBwYXNzZXMgb2YgdGhlICJtdWx0aS1zdGFn ZSBub2RlIHNlbGVjdGlvbiIgdGVzdCB0aGF0IGlzCiAJICogZXhlY3V0ZWQgYmVsb3cuCiAJICov Ci0JaWYgKChwLT5udW1hX3ByZWZlcnJlZF9uaWQgPT0gLTEgfHwgcC0+bnVtYV9zY2FuX3NlcSA8 PSA0KSAmJgorCWlmICgocC0+bnVtYV9wcmVmZXJyZWRfbmlkID09IE5VTUFfTk9fTk9ERSB8fCBw LT5udW1hX3NjYW5fc2VxIDw9IDQpICYmCiAJICAgIChjcHVwaWRfcGlkX3Vuc2V0KGxhc3RfY3B1 cGlkKSB8fCBjcHVwaWRfbWF0Y2hfcGlkKHAsIGxhc3RfY3B1cGlkKSkpCiAJCXJldHVybiB0cnVl OwogCkBAIC0xODQ5LDcgKzE4NDksNyBAQCBzdGF0aWMgdm9pZCBudW1hX21pZ3JhdGVfcHJlZmVy cmVkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIAl1bnNpZ25lZCBsb25nIGludGVydmFsID0gSFo7 CiAKIAkvKiBUaGlzIHRhc2sgaGFzIG5vIE5VTUEgZmF1bHQgc3RhdGlzdGljcyB5ZXQgKi8KLQlp ZiAodW5saWtlbHkocC0+bnVtYV9wcmVmZXJyZWRfbmlkID09IC0xIHx8ICFwLT5udW1hX2ZhdWx0 cykpCisJaWYgKHVubGlrZWx5KHAtPm51bWFfcHJlZmVycmVkX25pZCA9PSBOVU1BX05PX05PREUg fHwgIXAtPm51bWFfZmF1bHRzKSkKIAkJcmV0dXJuOwogCiAJLyogUGVyaW9kaWNhbGx5IHJldHJ5 IG1pZ3JhdGluZyB0aGUgdGFzayB0byB0aGUgcHJlZmVycmVkIG5vZGUgKi8KQEAgLTIwOTYsNyAr MjA5Niw3IEBAIHN0YXRpYyBpbnQgcHJlZmVycmVkX2dyb3VwX25pZChzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnAsIGludCBuaWQpCiAKIHN0YXRpYyB2b2lkIHRhc2tfbnVtYV9wbGFjZW1lbnQoc3RydWN0 IHRhc2tfc3RydWN0ICpwKQogewotCWludCBzZXEsIG5pZCwgbWF4X25pZCA9IC0xOworCWludCBz ZXEsIG5pZCwgbWF4X25pZCA9IE5VTUFfTk9fTk9ERTsKIAl1bnNpZ25lZCBsb25nIG1heF9mYXVs dHMgPSAwOwogCXVuc2lnbmVkIGxvbmcgZmF1bHRfdHlwZXNbMl0gPSB7IDAsIDAgfTsKIAl1bnNp Z25lZCBsb25nIHRvdGFsX2ZhdWx0czsKQEAgLTI2MzksNyArMjYzOSw4IEBAIHN0YXRpYyB2b2lk IHVwZGF0ZV9zY2FuX3BlcmlvZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBuZXdfY3B1KQog CQkgKiB0aGUgcHJlZmVycmVkIG5vZGUuCiAJCSAqLwogCQlpZiAoZHN0X25pZCA9PSBwLT5udW1h X3ByZWZlcnJlZF9uaWQgfHwKLQkJICAgIChwLT5udW1hX3ByZWZlcnJlZF9uaWQgIT0gLTEgJiYg c3JjX25pZCAhPSBwLT5udW1hX3ByZWZlcnJlZF9uaWQpKQorCQkgICAgKHAtPm51bWFfcHJlZmVy cmVkX25pZCAhPSBOVU1BX05PX05PREUgJiYKKwkJCXNyY19uaWQgIT0gcC0+bnVtYV9wcmVmZXJy ZWRfbmlkKSkKIAkJCXJldHVybjsKIAl9CiAKZGlmZiAtLWdpdCBhL2xpYi9jcHVtYXNrLmMgYi9s aWIvY3B1bWFzay5jCmluZGV4IDhkNjY2YWIuLmEwODljM2YgMTAwNjQ0Ci0tLSBhL2xpYi9jcHVt YXNrLmMKKysrIGIvbGliL2NwdW1hc2suYwpAQCAtMjA2LDcgKzIwNiw3IEBAIHVuc2lnbmVkIGlu dCBjcHVtYXNrX2xvY2FsX3NwcmVhZCh1bnNpZ25lZCBpbnQgaSwgaW50IG5vZGUpCiAJLyogV3Jh cDogd2UgYWx3YXlzIHdhbnQgYSBjcHUuICovCiAJaSAlPSBudW1fb25saW5lX2NwdXMoKTsKIAot CWlmIChub2RlID09IC0xKSB7CisJaWYgKG5vZGUgPT0gTlVNQV9OT19OT0RFKSB7CiAJCWZvcl9l YWNoX2NwdShjcHUsIGNwdV9vbmxpbmVfbWFzaykKIAkJCWlmIChpLS0gPT0gMCkKIAkJCQlyZXR1 cm4gY3B1OwpkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1vcnkuYyBiL21tL2h1Z2VfbWVtb3J5LmMK aW5kZXggNTU0NzhhYi4uNWNjZjg5ZSAxMDA2NDQKLS0tIGEvbW0vaHVnZV9tZW1vcnkuYworKysg Yi9tbS9odWdlX21lbW9yeS5jCkBAIC0xNDgwLDcgKzE0ODAsNyBAQCB2bV9mYXVsdF90IGRvX2h1 Z2VfcG1kX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCXN0cnVj dCBhbm9uX3ZtYSAqYW5vbl92bWEgPSBOVUxMOwogCXN0cnVjdCBwYWdlICpwYWdlOwogCXVuc2ln bmVkIGxvbmcgaGFkZHIgPSB2bWYtPmFkZHJlc3MgJiBIUEFHRV9QTURfTUFTSzsKLQlpbnQgcGFn ZV9uaWQgPSAtMSwgdGhpc19uaWQgPSBudW1hX25vZGVfaWQoKTsKKwlpbnQgcGFnZV9uaWQgPSBO VU1BX05PX05PREUsIHRoaXNfbmlkID0gbnVtYV9ub2RlX2lkKCk7CiAJaW50IHRhcmdldF9uaWQs IGxhc3RfY3B1cGlkID0gLTE7CiAJYm9vbCBwYWdlX2xvY2tlZDsKIAlib29sIG1pZ3JhdGVkID0g ZmFsc2U7CkBAIC0xNTI2LDcgKzE1MjYsNyBAQCB2bV9mYXVsdF90IGRvX2h1Z2VfcG1kX251bWFf cGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCSAqLwogCXBhZ2VfbG9ja2Vk ID0gdHJ5bG9ja19wYWdlKHBhZ2UpOwogCXRhcmdldF9uaWQgPSBtcG9sX21pc3BsYWNlZChwYWdl LCB2bWEsIGhhZGRyKTsKLQlpZiAodGFyZ2V0X25pZCA9PSAtMSkgeworCWlmICh0YXJnZXRfbmlk ID09IE5VTUFfTk9fTk9ERSkgewogCQkvKiBJZiB0aGUgcGFnZSB3YXMgbG9ja2VkLCB0aGVyZSBh cmUgbm8gcGFyYWxsZWwgbWlncmF0aW9ucyAqLwogCQlpZiAocGFnZV9sb2NrZWQpCiAJCQlnb3Rv IGNsZWFyX3BtZG51bWE7CkBAIC0xNTM0LDcgKzE1MzQsNyBAQCB2bV9mYXVsdF90IGRvX2h1Z2Vf cG1kX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZiwgcG1kX3QgcG1kKQogCiAJLyogTWln cmF0aW9uIGNvdWxkIGhhdmUgc3RhcnRlZCBzaW5jZSB0aGUgcG1kX3RyYW5zX21pZ3JhdGluZyBj aGVjayAqLwogCWlmICghcGFnZV9sb2NrZWQpIHsKLQkJcGFnZV9uaWQgPSAtMTsKKwkJcGFnZV9u aWQgPSBOVU1BX05PX05PREU7CiAJCWlmICghZ2V0X3BhZ2VfdW5sZXNzX3plcm8ocGFnZSkpCiAJ CQlnb3RvIG91dF91bmxvY2s7CiAJCXNwaW5fdW5sb2NrKHZtZi0+cHRsKTsKQEAgLTE1NTYsMTQg KzE1NTYsMTQgQEAgdm1fZmF1bHRfdCBkb19odWdlX3BtZF9udW1hX3BhZ2Uoc3RydWN0IHZtX2Zh dWx0ICp2bWYsIHBtZF90IHBtZCkKIAlpZiAodW5saWtlbHkoIXBtZF9zYW1lKHBtZCwgKnZtZi0+ cG1kKSkpIHsKIAkJdW5sb2NrX3BhZ2UocGFnZSk7CiAJCXB1dF9wYWdlKHBhZ2UpOwotCQlwYWdl X25pZCA9IC0xOworCQlwYWdlX25pZCA9IE5VTUFfTk9fTk9ERTsKIAkJZ290byBvdXRfdW5sb2Nr OwogCX0KIAogCS8qIEJhaWwgaWYgd2UgZmFpbCB0byBwcm90ZWN0IGFnYWluc3QgVEhQIHNwbGl0 cyBmb3IgYW55IHJlYXNvbiAqLwogCWlmICh1bmxpa2VseSghYW5vbl92bWEpKSB7CiAJCXB1dF9w YWdlKHBhZ2UpOwotCQlwYWdlX25pZCA9IC0xOworCQlwYWdlX25pZCA9IE5VTUFfTk9fTk9ERTsK IAkJZ290byBjbGVhcl9wbWRudW1hOwogCX0KIApAQCAtMTYyNSw3ICsxNjI1LDcgQEAgdm1fZmF1 bHRfdCBkb19odWdlX3BtZF9udW1hX3BhZ2Uoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHBtZF90IHBt ZCkKIAlpZiAoYW5vbl92bWEpCiAJCXBhZ2VfdW5sb2NrX2Fub25fdm1hX3JlYWQoYW5vbl92bWEp OwogCi0JaWYgKHBhZ2VfbmlkICE9IC0xKQorCWlmIChwYWdlX25pZCAhPSBOVU1BX05PX05PREUp CiAJCXRhc2tfbnVtYV9mYXVsdChsYXN0X2NwdXBpZCwgcGFnZV9uaWQsIEhQQUdFX1BNRF9OUiwK IAkJCQlmbGFncyk7CiAKZGlmZiAtLWdpdCBhL21tL2h1Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwpp bmRleCBjMDA3ZmI1Li5iNzY5ZGI3IDEwMDY0NAotLS0gYS9tbS9odWdldGxiLmMKKysrIGIvbW0v aHVnZXRsYi5jCkBAIC04ODcsNyArODg3LDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlICpkZXF1ZXVl X2h1Z2VfcGFnZV9ub2RlbWFzayhzdHJ1Y3QgaHN0YXRlICpoLCBnZnBfdCBnZnBfbWFzaywKIAlz dHJ1Y3Qgem9uZWxpc3QgKnpvbmVsaXN0OwogCXN0cnVjdCB6b25lICp6b25lOwogCXN0cnVjdCB6 b25lcmVmICp6OwotCWludCBub2RlID0gLTE7CisJaW50IG5vZGUgPSBOVU1BX05PX05PREU7CiAK IAl6b25lbGlzdCA9IG5vZGVfem9uZWxpc3QobmlkLCBnZnBfbWFzayk7CiAKZGlmZiAtLWdpdCBh L21tL2tzbS5jIGIvbW0va3NtLmMKaW5kZXggNWIwODk0Yi4uZDVmODgzNCAxMDA2NDQKLS0tIGEv bW0va3NtLmMKKysrIGIvbW0va3NtLmMKQEAgLTU5Nyw3ICs1OTcsNyBAQCBzdGF0aWMgc3RydWN0 IHN0YWJsZV9ub2RlICphbGxvY19zdGFibGVfbm9kZV9jaGFpbihzdHJ1Y3Qgc3RhYmxlX25vZGUg KmR1cCwKIAkJY2hhaW4tPmNoYWluX3BydW5lX3RpbWUgPSBqaWZmaWVzOwogCQljaGFpbi0+cm1h cF9obGlzdF9sZW4gPSBTVEFCTEVfTk9ERV9DSEFJTjsKICNpZiBkZWZpbmVkIChDT05GSUdfREVC VUdfVk0pICYmIGRlZmluZWQoQ09ORklHX05VTUEpCi0JCWNoYWluLT5uaWQgPSAtMTsgLyogZGVi dWcgKi8KKwkJY2hhaW4tPm5pZCA9IE5VTUFfTk9fTk9ERTsgLyogZGVidWcgKi8KICNlbmRpZgog CQlrc21fc3RhYmxlX25vZGVfY2hhaW5zKys7CiAKZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIv bW0vbWVtb3J5LmMKaW5kZXggNGFkMmQyOS4uYzBlMDM0OCAxMDA2NDQKLS0tIGEvbW0vbWVtb3J5 LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTM1NjQsNyArMzU2NCw3IEBAIHN0YXRpYyB2bV9mYXVs dF90IGRvX251bWFfcGFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIHsKIAlzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSA9IHZtZi0+dm1hOwogCXN0cnVjdCBwYWdlICpwYWdlID0gTlVMTDsKLQlp bnQgcGFnZV9uaWQgPSAtMTsKKwlpbnQgcGFnZV9uaWQgPSBOVU1BX05PX05PREU7CiAJaW50IGxh c3RfY3B1cGlkOwogCWludCB0YXJnZXRfbmlkOwogCWJvb2wgbWlncmF0ZWQgPSBmYWxzZTsKQEAg LTM2MzEsNyArMzYzMSw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IGRvX251bWFfcGFnZShzdHJ1Y3Qg dm1fZmF1bHQgKnZtZikKIAl0YXJnZXRfbmlkID0gbnVtYV9taWdyYXRlX3ByZXAocGFnZSwgdm1h LCB2bWYtPmFkZHJlc3MsIHBhZ2VfbmlkLAogCQkJJmZsYWdzKTsKIAlwdGVfdW5tYXBfdW5sb2Nr KHZtZi0+cHRlLCB2bWYtPnB0bCk7Ci0JaWYgKHRhcmdldF9uaWQgPT0gLTEpIHsKKwlpZiAodGFy Z2V0X25pZCA9PSBOVU1BX05PX05PREUpIHsKIAkJcHV0X3BhZ2UocGFnZSk7CiAJCWdvdG8gb3V0 OwogCX0KQEAgLTM2NDUsNyArMzY0NSw3IEBAIHN0YXRpYyB2bV9mYXVsdF90IGRvX251bWFfcGFn ZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkJZmxhZ3MgfD0gVE5GX01JR1JBVEVfRkFJTDsKIAog b3V0OgotCWlmIChwYWdlX25pZCAhPSAtMSkKKwlpZiAocGFnZV9uaWQgIT0gTlVNQV9OT19OT0RF KQogCQl0YXNrX251bWFfZmF1bHQobGFzdF9jcHVwaWQsIHBhZ2VfbmlkLCAxLCBmbGFncyk7CiAJ cmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9tbS9tZW1vcnlfaG90cGx1Zy5jIGIvbW0vbWVtb3J5 X2hvdHBsdWcuYwppbmRleCAyYjJiM2NjLi43MGUwMmY4IDEwMDY0NAotLS0gYS9tbS9tZW1vcnlf aG90cGx1Zy5jCisrKyBiL21tL21lbW9yeV9ob3RwbHVnLmMKQEAgLTY4OCw5ICs2ODgsOSBAQCBz dGF0aWMgdm9pZCBub2RlX3N0YXRlc19jaGVja19jaGFuZ2VzX29ubGluZSh1bnNpZ25lZCBsb25n IG5yX3BhZ2VzLAogewogCWludCBuaWQgPSB6b25lX3RvX25pZCh6b25lKTsKIAotCWFyZy0+c3Rh dHVzX2NoYW5nZV9uaWQgPSAtMTsKLQlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX25vcm1hbCA9IC0x OwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfaGlnaCA9IC0xOworCWFyZy0+c3RhdHVzX2NoYW5n ZV9uaWQgPSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9ub3JtYWwgPSBO VU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9oaWdoID0gTlVNQV9OT19OT0RF OwogCiAJaWYgKCFub2RlX3N0YXRlKG5pZCwgTl9NRU1PUlkpKQogCQlhcmctPnN0YXR1c19jaGFu Z2VfbmlkID0gbmlkOwpAQCAtMTQ4NCw5ICsxNDg0LDkgQEAgc3RhdGljIHZvaWQgbm9kZV9zdGF0 ZXNfY2hlY2tfY2hhbmdlc19vZmZsaW5lKHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAJdW5zaWdu ZWQgbG9uZyBwcmVzZW50X3BhZ2VzID0gMDsKIAllbnVtIHpvbmVfdHlwZSB6dDsKIAotCWFyZy0+ c3RhdHVzX2NoYW5nZV9uaWQgPSAtMTsKLQlhcmctPnN0YXR1c19jaGFuZ2VfbmlkX25vcm1hbCA9 IC0xOwotCWFyZy0+c3RhdHVzX2NoYW5nZV9uaWRfaGlnaCA9IC0xOworCWFyZy0+c3RhdHVzX2No YW5nZV9uaWQgPSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9ub3JtYWwg PSBOVU1BX05PX05PREU7CisJYXJnLT5zdGF0dXNfY2hhbmdlX25pZF9oaWdoID0gTlVNQV9OT19O T0RFOwogCiAJLyoKIAkgKiBDaGVjayB3aGV0aGVyIG5vZGVfc3RhdGVzW05fTk9STUFMX01FTU9S WV0gd2lsbCBiZSBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvbW0vbWVtcG9saWN5LmMgYi9tbS9tZW1w b2xpY3kuYwppbmRleCA1ODM3YTA2Li5lNGY4MjQ4IDEwMDY0NAotLS0gYS9tbS9tZW1wb2xpY3ku YworKysgYi9tbS9tZW1wb2xpY3kuYwpAQCAtMjI3OCw3ICsyMjc4LDcgQEAgaW50IG1wb2xfbWlz cGxhY2VkKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5z aWduZWQgbG9uZwogCXVuc2lnbmVkIGxvbmcgcGdvZmY7CiAJaW50IHRoaXNjcHUgPSByYXdfc21w X3Byb2Nlc3Nvcl9pZCgpOwogCWludCB0aGlzbmlkID0gY3B1X3RvX25vZGUodGhpc2NwdSk7Ci0J aW50IHBvbG5pZCA9IC0xOworCWludCBwb2xuaWQgPSBOVU1BX05PX05PREU7CiAJaW50IHJldCA9 IC0xOwogCiAJcG9sID0gZ2V0X3ZtYV9wb2xpY3kodm1hLCBhZGRyKTsKZGlmZiAtLWdpdCBhL21t L3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2MuYwppbmRleCBhOTE5YmE1Li45ZDM4ZDljIDEw MDY0NAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIvbW0vcGFnZV9hbGxvYy5jCkBAIC01ODQ2 LDcgKzU4NDYsNyBAQCBpbnQgX19tZW1pbml0IF9fZWFybHlfcGZuX3RvX25pZCh1bnNpZ25lZCBs b25nIHBmbiwKIAkJcmV0dXJuIHN0YXRlLT5sYXN0X25pZDsKIAogCW5pZCA9IG1lbWJsb2NrX3Nl YXJjaF9wZm5fbmlkKHBmbiwgJnN0YXJ0X3BmbiwgJmVuZF9wZm4pOwotCWlmIChuaWQgIT0gLTEp IHsKKwlpZiAobmlkICE9IE5VTUFfTk9fTk9ERSkgewogCQlzdGF0ZS0+bGFzdF9zdGFydCA9IHN0 YXJ0X3BmbjsKIAkJc3RhdGUtPmxhc3RfZW5kID0gZW5kX3BmbjsKIAkJc3RhdGUtPmxhc3Rfbmlk ID0gbmlkOwpAQCAtNjYwNyw3ICs2NjA3LDcgQEAgdW5zaWduZWQgbG9uZyBfX2luaXQgbm9kZV9t YXBfcGZuX2FsaWdubWVudCh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgYWNjbF9tYXNrID0gMCwg bGFzdF9lbmQgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZCwgbWFzazsKLQlpbnQgbGFz dF9uaWQgPSAtMTsKKwlpbnQgbGFzdF9uaWQgPSBOVU1BX05PX05PREU7CiAJaW50IGksIG5pZDsK IAogCWZvcl9lYWNoX21lbV9wZm5fcmFuZ2UoaSwgTUFYX05VTU5PREVTLCAmc3RhcnQsICZlbmQs ICZuaWQpIHsKZGlmZiAtLWdpdCBhL21tL3BhZ2VfZXh0LmMgYi9tbS9wYWdlX2V4dC5jCmluZGV4 IGFlNDRmN2EuLmRmYjAyMDYgMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfZXh0LmMKKysrIGIvbW0vcGFn ZV9leHQuYwpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbnQgX19tZW1pbml0IG9ubGluZV9w YWdlX2V4dCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKIAlzdGFydCA9IFNFQ1RJT05fQUxJR05f RE9XTihzdGFydF9wZm4pOwogCWVuZCA9IFNFQ1RJT05fQUxJR05fVVAoc3RhcnRfcGZuICsgbnJf cGFnZXMpOwogCi0JaWYgKG5pZCA9PSAtMSkgeworCWlmIChuaWQgPT0gTlVNQV9OT19OT0RFKSB7 CiAJCS8qCiAJCSAqIEluIHRoaXMgY2FzZSwgIm5pZCIgYWxyZWFkeSBleGlzdHMgYW5kIGNvbnRh aW5zIHZhbGlkIG1lbW9yeS4KIAkJICogInN0YXJ0X3BmbiIgcGFzc2VkIHRvIHVzIGlzIGEgcGZu IHdoaWNoIGlzIGFuIGFyZyBmb3IKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3BrdGdlbi5jIGIvbmV0 L2NvcmUvcGt0Z2VuLmMKaW5kZXggNmFjOTE5OC4uYWYzYTc0NiAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvcGt0Z2VuLmMKKysrIGIvbmV0L2NvcmUvcGt0Z2VuLmMKQEAgLTM2MjUsNyArMzYyNSw3IEBA IHN0YXRpYyBpbnQgcGt0Z2VuX2FkZF9kZXZpY2Uoc3RydWN0IHBrdGdlbl90aHJlYWQgKnQsIGNv bnN0IGNoYXIgKmlmbmFtZSkKIAlwa3RfZGV2LT5zdmxhbl9jZmkgPSAwOwogCXBrdF9kZXYtPnN2 bGFuX2lkID0gMHhmZmZmOwogCXBrdF9kZXYtPmJ1cnN0ID0gMTsKLQlwa3RfZGV2LT5ub2RlID0g LTE7CisJcGt0X2Rldi0+bm9kZSA9IE5VTUFfTk9fTk9ERTsKIAogCWVyciA9IHBrdGdlbl9zZXR1 cF9kZXYodC0+bmV0LCBwa3RfZGV2LCBpZm5hbWUpOwogCWlmIChlcnIpCmRpZmYgLS1naXQgYS9u ZXQvcXJ0ci9xcnRyLmMgYi9uZXQvcXJ0ci9xcnRyLmMKaW5kZXggODZlMWUzNy4uMGM1NmFlMiAx MDA2NDQKLS0tIGEvbmV0L3FydHIvcXJ0ci5jCisrKyBiL25ldC9xcnRyL3FydHIuYwpAQCAtMTAx LDcgKzEwMSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHFydHJfc29jayAqcXJ0cl9zayhzdHJ1 Y3Qgc29jayAqc2spCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihzaywgc3RydWN0IHFydHJfc29jaywg c2spOwogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50IHFydHJfbG9jYWxfbmlkID0gLTE7CitzdGF0 aWMgdW5zaWduZWQgaW50IHFydHJfbG9jYWxfbmlkID0gTlVNQV9OT19OT0RFOwogCiAvKiBmb3Ig bm9kZSBpZHMgKi8KIHN0YXRpYyBSQURJWF9UUkVFKHFydHJfbm9kZXMsIEdGUF9LRVJORUwpOwpk aWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi9iZW5jaC9udW1hLmMgYi90b29scy9wZXJmL2JlbmNoL251 bWEuYwppbmRleCA0NDE5NTUxLi5lMGFkNWYxIDEwMDY0NAotLS0gYS90b29scy9wZXJmL2JlbmNo L251bWEuYworKysgYi90b29scy9wZXJmL2JlbmNoL251bWEuYwpAQCAtMjk4LDcgKzI5OCw3IEBA IHN0YXRpYyBjcHVfc2V0X3QgYmluZF90b19ub2RlKGludCB0YXJnZXRfbm9kZSkKIAogCUNQVV9a RVJPKCZtYXNrKTsKIAotCWlmICh0YXJnZXRfbm9kZSA9PSAtMSkgeworCWlmICh0YXJnZXRfbm9k ZSA9PSBOVU1BX05PX05PREUpIHsKIAkJZm9yIChjcHUgPSAwOyBjcHUgPCBnLT5wLm5yX2NwdXM7 IGNwdSsrKQogCQkJQ1BVX1NFVChjcHUsICZtYXNrKTsKIAl9IGVsc2UgewpAQCAtMzM5LDcgKzMz OSw3IEBAIHN0YXRpYyB2b2lkIGJpbmRfdG9fbWVtbm9kZShpbnQgbm9kZSkKIAl1bnNpZ25lZCBs b25nIG5vZGVtYXNrOwogCWludCByZXQ7CiAKLQlpZiAobm9kZSA9PSAtMSkKKwlpZiAobm9kZSA9 PSBOVU1BX05PX05PREUpCiAJCXJldHVybjsKIAogCUJVR19PTihnLT5wLm5yX25vZGVzID4gKGlu dClzaXplb2Yobm9kZW1hc2spKjgpOwpAQCAtMTM2Myw3ICsxMzYzLDcgQEAgc3RhdGljIHZvaWQg aW5pdF90aHJlYWRfZGF0YSh2b2lkKQogCQlpbnQgY3B1OwogCiAJCS8qIEFsbG93IGFsbCBub2Rl cyBieSBkZWZhdWx0OiAqLwotCQl0ZC0+YmluZF9ub2RlID0gLTE7CisJCXRkLT5iaW5kX25vZGUg PSBOVU1BX05PX05PREU7CiAKIAkJLyogQWxsb3cgYWxsIENQVXMgYnkgZGVmYXVsdDogKi8KIAkJ Q1BVX1pFUk8oJnRkLT5iaW5kX2NwdW1hc2spOwo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:57560 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729729AbeKLMdn (ORCPT ); Mon, 12 Nov 2018 07:33:43 -0500 From: Anshuman Khandual To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: ocfs2-devel@oss.oracle.com, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-media@vger.kernel.org, iommu@lists.linux-foundation.org, linux-rdma@vger.kernel.org, dmaengine@vger.kernel.org, linux-block@vger.kernel.org, sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-ia64@vger.kernel.org, linux-alpha@vger.kernel.org Subject: [RFC] mm: Replace all open encodings for NUMA_NO_NODE Date: Mon, 12 Nov 2018 08:11:55 +0530 Message-Id: <1541990515-11670-1-git-send-email-anshuman.khandual@arm.com> Sender: linux-block-owner@vger.kernel.org List-Id: linux-block@vger.kernel.org At present there are multiple places where invalid node number is encoded as -1. Even though implicitly understood it is always better to have macros in there. Replace these open encodings for an invalid node number with the global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like 'invalid node' from various places redirecting them to a common definition. Signed-off-by: Anshuman Khandual --- Build tested this with multiple cross compiler options like alpha, sparc, arm64, x86, powerpc64le etc with their default config which might not have compiled tested all driver related changes. I will appreciate folks giving this a test in their respective build environment. All these places for replacement were found by running the following grep patterns on the entire kernel code. Please let me know if this might have missed some instances. This might also have replaced some false positives. I will appreciate suggestions, inputs and review. 1. git grep "nid == -1" 2. git grep "node == -1" 3. git grep "nid = -1" 4. git grep "node = -1" arch/alpha/include/asm/topology.h | 2 +- arch/ia64/kernel/numa.c | 2 +- arch/ia64/mm/discontig.c | 6 +++--- arch/ia64/sn/kernel/io_common.c | 2 +- arch/powerpc/include/asm/pci-bridge.h | 2 +- arch/powerpc/kernel/paca.c | 2 +- arch/powerpc/kernel/pci-common.c | 2 +- arch/powerpc/mm/numa.c | 14 +++++++------- arch/powerpc/platforms/powernv/memtrace.c | 4 ++-- arch/sparc/kernel/auxio_32.c | 2 +- arch/sparc/kernel/pci_fire.c | 2 +- arch/sparc/kernel/pci_schizo.c | 2 +- arch/sparc/kernel/pcic.c | 6 +++--- arch/sparc/kernel/psycho_common.c | 2 +- arch/sparc/kernel/sbus.c | 2 +- arch/sparc/mm/init_64.c | 6 +++--- arch/sparc/prom/init_32.c | 2 +- arch/sparc/prom/init_64.c | 4 ++-- arch/sparc/prom/tree_32.c | 12 ++++++------ arch/sparc/prom/tree_64.c | 18 +++++++++--------- arch/x86/include/asm/pci.h | 2 +- arch/x86/kernel/apic/x2apic_uv_x.c | 6 +++--- arch/x86/kernel/smpboot.c | 2 +- arch/x86/platform/olpc/olpc_dt.c | 16 ++++++++-------- drivers/block/mtip32xx/mtip32xx.c | 4 ++-- drivers/dma/dmaengine.c | 3 ++- drivers/infiniband/hw/hfi1/affinity.c | 2 +- drivers/infiniband/hw/hfi1/init.c | 2 +- drivers/iommu/dmar.c | 4 ++-- drivers/iommu/intel-iommu.c | 2 +- drivers/media/pci/ivtv/ivtvfb.c | 2 +- drivers/media/platform/vivid/vivid-osd.c | 2 +- drivers/misc/sgi-xp/xpc_uv.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/video/fbdev/mmp/fb/mmpfb.c | 2 +- drivers/video/fbdev/pxa168fb.c | 2 +- drivers/video/fbdev/w100fb.c | 2 +- fs/ocfs2/dlm/dlmcommon.h | 2 +- fs/ocfs2/dlm/dlmdomain.c | 10 +++++----- fs/ocfs2/dlm/dlmmaster.c | 2 +- fs/ocfs2/dlm/dlmrecovery.c | 2 +- fs/ocfs2/stack_user.c | 6 +++--- init/init_task.c | 2 +- kernel/kthread.c | 2 +- kernel/sched/fair.c | 15 ++++++++------- lib/cpumask.c | 2 +- mm/huge_memory.c | 12 ++++++------ mm/hugetlb.c | 2 +- mm/ksm.c | 2 +- mm/memory.c | 6 +++--- mm/memory_hotplug.c | 12 ++++++------ mm/mempolicy.c | 2 +- mm/page_alloc.c | 4 ++-- mm/page_ext.c | 2 +- net/core/pktgen.c | 2 +- net/qrtr/qrtr.c | 2 +- tools/perf/bench/numa.c | 6 +++--- 57 files changed, 125 insertions(+), 123 deletions(-) diff --git a/arch/alpha/include/asm/topology.h b/arch/alpha/include/asm/topology.h index e6e13a8..f6dc89c 100644 --- a/arch/alpha/include/asm/topology.h +++ b/arch/alpha/include/asm/topology.h @@ -29,7 +29,7 @@ static const struct cpumask *cpumask_of_node(int node) { int cpu; - if (node == -1) + if (node == NUMA_NO_NODE) return cpu_all_mask; cpumask_clear(&node_to_cpumask_map[node]); diff --git a/arch/ia64/kernel/numa.c b/arch/ia64/kernel/numa.c index 92c3762..1315da6 100644 --- a/arch/ia64/kernel/numa.c +++ b/arch/ia64/kernel/numa.c @@ -74,7 +74,7 @@ void __init build_cpu_to_node_map(void) cpumask_clear(&node_to_cpu_mask[node]); for_each_possible_early_cpu(cpu) { - node = -1; + node = NUMA_NO_NODE; for (i = 0; i < NR_CPUS; ++i) if (cpu_physical_id(cpu) == node_cpuid[i].phys_id) { node = node_cpuid[i].nid; diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 8a96578..f9c3675 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c @@ -227,7 +227,7 @@ void __init setup_per_cpu_areas(void) * CPUs are put into groups according to node. Walk cpu_map * and create new groups at node boundaries. */ - prev_node = -1; + prev_node = NUMA_NO_NODE; ai->nr_groups = 0; for (unit = 0; unit < nr_units; unit++) { cpu = cpu_map[unit]; @@ -435,7 +435,7 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize) { void *ptr = NULL; u8 best = 0xff; - int bestnode = -1, node, anynode = 0; + int bestnode = NUMA_NO_NODE, node, anynode = 0; for_each_online_node(node) { if (node_isset(node, memory_less_mask)) @@ -447,7 +447,7 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize) anynode = node; } - if (bestnode == -1) + if (bestnode == NUMA_NO_NODE) bestnode = anynode; ptr = memblock_alloc_try_nid(pernodesize, PERCPU_PAGE_SIZE, diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index 8df13d0..86b3fcb 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c @@ -344,7 +344,7 @@ sn_common_bus_fixup(struct pci_bus *bus, printk(KERN_WARNING "on node %d but only %d nodes online." "Association set to undetermined.\n", controller->node, num_online_nodes()); - controller->node = -1; + controller->node = NUMA_NO_NODE; } } diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 94d4490..25a9e33 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -264,7 +264,7 @@ extern int pcibios_map_io_space(struct pci_bus *bus); #ifdef CONFIG_NUMA #define PHB_SET_NODE(PHB, NODE) ((PHB)->node = (NODE)) #else -#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = -1) +#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = NUMA_NO_NODE) #endif #endif /* CONFIG_PPC64 */ diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c index 913bfca..6a0bd51 100644 --- a/arch/powerpc/kernel/paca.c +++ b/arch/powerpc/kernel/paca.c @@ -36,7 +36,7 @@ static void *__init alloc_paca_data(unsigned long size, unsigned long align, * which will put its paca in the right place. */ if (cpu == boot_cpuid) { - nid = -1; + nid = NUMA_NO_NODE; memblock_set_bottom_up(true); } else { nid = early_cpu_to_node(cpu); diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 88e4f69..14c33a9 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c @@ -132,7 +132,7 @@ struct pci_controller *pcibios_alloc_controller(struct device_node *dev) int nid = of_node_to_nid(dev); if (nid < 0 || !node_online(nid)) - nid = -1; + nid = NUMA_NO_NODE; PHB_SET_NODE(phb, nid); } diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 3a048e9..77808a2 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -215,7 +215,7 @@ static void initialize_distance_lookup_table(int nid, */ static int associativity_to_nid(const __be32 *associativity) { - int nid = -1; + int nid = NUMA_NO_NODE; if (min_common_depth == -1) goto out; @@ -225,7 +225,7 @@ static int associativity_to_nid(const __be32 *associativity) /* POWER4 LPAR uses 0xffff as invalid node */ if (nid == 0xffff || nid >= MAX_NUMNODES) - nid = -1; + nid = NUMA_NO_NODE; if (nid > 0 && of_read_number(associativity, 1) >= distance_ref_points_depth) { @@ -244,7 +244,7 @@ static int associativity_to_nid(const __be32 *associativity) */ static int of_node_to_nid_single(struct device_node *device) { - int nid = -1; + int nid = NUMA_NO_NODE; const __be32 *tmp; tmp = of_get_associativity(device); @@ -256,7 +256,7 @@ static int of_node_to_nid_single(struct device_node *device) /* Walk the device tree upwards, looking for an associativity id */ int of_node_to_nid(struct device_node *device) { - int nid = -1; + int nid = NUMA_NO_NODE; of_node_get(device); while (device) { @@ -454,7 +454,7 @@ static int of_drconf_to_nid_single(struct drmem_lmb *lmb) */ static int numa_setup_cpu(unsigned long lcpu) { - int nid = -1; + int nid = NUMA_NO_NODE; struct device_node *cpu; /* @@ -930,7 +930,7 @@ static int hot_add_drconf_scn_to_nid(unsigned long scn_addr) { struct drmem_lmb *lmb; unsigned long lmb_size; - int nid = -1; + int nid = NUMA_NO_NODE; lmb_size = drmem_lmb_size(); @@ -960,7 +960,7 @@ static int hot_add_drconf_scn_to_nid(unsigned long scn_addr) static int hot_add_node_scn_to_nid(unsigned long scn_addr) { struct device_node *memory; - int nid = -1; + int nid = NUMA_NO_NODE; for_each_node_by_type(memory, "memory") { unsigned long start, size; diff --git a/arch/powerpc/platforms/powernv/memtrace.c b/arch/powerpc/platforms/powernv/memtrace.c index 84d038e..1ce3bfc 100644 --- a/arch/powerpc/platforms/powernv/memtrace.c +++ b/arch/powerpc/platforms/powernv/memtrace.c @@ -223,7 +223,7 @@ static int memtrace_online(void) ent = &memtrace_array[i]; /* We have onlined this chunk previously */ - if (ent->nid == -1) + if (ent->nid == NUMA_NO_NODE) continue; /* Remove from io mappings */ @@ -257,7 +257,7 @@ static int memtrace_online(void) */ debugfs_remove_recursive(ent->dir); pr_info("Added trace memory back to node %d\n", ent->nid); - ent->size = ent->start = ent->nid = -1; + ent->size = ent->start = ent->nid = NUMA_NO_NODE; } if (ret) return ret; diff --git a/arch/sparc/kernel/auxio_32.c b/arch/sparc/kernel/auxio_32.c index a32d588..39f6c59 100644 --- a/arch/sparc/kernel/auxio_32.c +++ b/arch/sparc/kernel/auxio_32.c @@ -120,7 +120,7 @@ void __init auxio_power_probe(void) node = prom_searchsiblings(node, "obio"); node = prom_getchild(node); node = prom_searchsiblings(node, "power"); - if (node == 0 || (s32)node == -1) + if (node == 0 || (s32)node == NUMA_NO_NODE) return; /* Map the power control register. */ diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c index be71ae0..474d3be 100644 --- a/arch/sparc/kernel/pci_fire.c +++ b/arch/sparc/kernel/pci_fire.c @@ -416,7 +416,7 @@ static int pci_fire_pbm_init(struct pci_pbm_info *pbm, struct device_node *dp = op->dev.of_node; int err; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->pci_ops = &sun4u_pci_ops; pbm->config_space_reg_bits = 12; diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c index 934b97c..87bb231 100644 --- a/arch/sparc/kernel/pci_schizo.c +++ b/arch/sparc/kernel/pci_schizo.c @@ -1347,7 +1347,7 @@ static int schizo_pbm_init(struct pci_pbm_info *pbm, pbm->next = pci_pbm_root; pci_pbm_root = pbm; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->pci_ops = &sun4u_pci_ops; pbm->config_space_reg_bits = 8; diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index ee4c9a9..d5fe898 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c @@ -476,7 +476,7 @@ static void pcic_map_pci_device(struct linux_pcic *pcic, unsigned long flags; int j; - if (node == 0 || node == -1) { + if (node == 0 || node == NUMA_NO_NODE) { strcpy(namebuf, "???"); } else { prom_getstring(node, "name", namebuf, 63); namebuf[63] = 0; @@ -535,7 +535,7 @@ pcic_fill_irq(struct linux_pcic *pcic, struct pci_dev *dev, int node) int i, ivec; char namebuf[64]; - if (node == 0 || node == -1) { + if (node == 0 || node == NUMA_NO_NODE) { strcpy(namebuf, "???"); } else { prom_getstring(node, "name", namebuf, sizeof(namebuf)); @@ -625,7 +625,7 @@ void pcibios_fixup_bus(struct pci_bus *bus) list_for_each_entry(dev, &bus->devices, bus_list) { node = pdev_to_pnode(&pcic->pbm, dev); if(node == 0) - node = -1; + node = NUMA_NO_NODE; /* cookies */ pcp = pci_devcookie_alloc(); diff --git a/arch/sparc/kernel/psycho_common.c b/arch/sparc/kernel/psycho_common.c index 81aa91e..dcbf492 100644 --- a/arch/sparc/kernel/psycho_common.c +++ b/arch/sparc/kernel/psycho_common.c @@ -454,7 +454,7 @@ void psycho_pbm_init_common(struct pci_pbm_info *pbm, struct platform_device *op struct device_node *dp = op->dev.of_node; pbm->name = dp->full_name; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->chip_type = chip_type; pbm->chip_version = of_getintprop_default(dp, "version#", 0); pbm->chip_revision = of_getintprop_default(dp, "module-revision#", 0); diff --git a/arch/sparc/kernel/sbus.c b/arch/sparc/kernel/sbus.c index c133dfc..28a4aa9 100644 --- a/arch/sparc/kernel/sbus.c +++ b/arch/sparc/kernel/sbus.c @@ -561,7 +561,7 @@ static void __init sbus_iommu_init(struct platform_device *op) op->dev.archdata.iommu = iommu; op->dev.archdata.stc = strbuf; - op->dev.archdata.numa_node = -1; + op->dev.archdata.numa_node = NUMA_NO_NODE; reg_base = regs + SYSIO_IOMMUREG_BASE; iommu->iommu_control = reg_base + IOMMU_CONTROL; diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index 3c8aac2..cb1bed1 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c @@ -976,13 +976,13 @@ static u64 __init memblock_nid_range_sun4u(u64 start, u64 end, int *nid) { int prev_nid, new_nid; - prev_nid = -1; + prev_nid = NUMA_NO_NODE; for ( ; start < end; start += PAGE_SIZE) { for (new_nid = 0; new_nid < num_node_masks; new_nid++) { struct node_mem_mask *p = &node_masks[new_nid]; if ((start & p->mask) == p->match) { - if (prev_nid == -1) + if (prev_nid == NUMA_NO_NODE) prev_nid = new_nid; break; } @@ -1208,7 +1208,7 @@ int of_node_to_nid(struct device_node *dp) md = mdesc_grab(); count = 0; - nid = -1; + nid = NUMA_NO_NODE; mdesc_for_each_node_by_name(md, grp, "group") { if (!scan_arcs_for_cfg_handle(md, grp, cfg_handle)) { nid = count; diff --git a/arch/sparc/prom/init_32.c b/arch/sparc/prom/init_32.c index d204701..4c6e540 100644 --- a/arch/sparc/prom/init_32.c +++ b/arch/sparc/prom/init_32.c @@ -58,7 +58,7 @@ void __init prom_init(struct linux_romvec *rp) prom_nodeops = romvec->pv_nodeops; prom_root_node = prom_getsibling(0); - if ((prom_root_node == 0) || ((s32)prom_root_node == -1)) + if ((prom_root_node == 0) || ((s32)prom_root_node == NUMA_NO_NODE)) prom_halt(); if((((unsigned long) prom_nodeops) == 0) || diff --git a/arch/sparc/prom/init_64.c b/arch/sparc/prom/init_64.c index 103aa91..85669c0 100644 --- a/arch/sparc/prom/init_64.c +++ b/arch/sparc/prom/init_64.c @@ -36,13 +36,13 @@ void __init prom_init(void *cif_handler) prom_cif_init(cif_handler); prom_chosen_node = prom_finddevice(prom_chosen_path); - if (!prom_chosen_node || (s32)prom_chosen_node == -1) + if (!prom_chosen_node || (s32)prom_chosen_node == NUMA_NO_NODE) prom_halt(); prom_stdout = prom_getint(prom_chosen_node, "stdout"); node = prom_finddevice("/openprom"); - if (!node || (s32)node == -1) + if (!node || (s32)node == NUMA_NO_NODE) prom_halt(); prom_getstring(node, "version", prom_version, sizeof(prom_version)); diff --git a/arch/sparc/prom/tree_32.c b/arch/sparc/prom/tree_32.c index 0fed893..2d0a204 100644 --- a/arch/sparc/prom/tree_32.c +++ b/arch/sparc/prom/tree_32.c @@ -41,11 +41,11 @@ phandle prom_getchild(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = __prom_getchild(node); - if (cnode == 0 || (s32)cnode == -1) + if (cnode == 0 || (s32)cnode == NUMA_NO_NODE) return 0; return cnode; @@ -73,11 +73,11 @@ phandle prom_getsibling(phandle node) { phandle sibnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; sibnode = __prom_getsibling(node); - if (sibnode == 0 || (s32)sibnode == -1) + if (sibnode == 0 || (s32)sibnode == NUMA_NO_NODE) return 0; return sibnode; @@ -220,7 +220,7 @@ static char *__prom_nextprop(phandle node, char * oprop) */ char *prom_nextprop(phandle node, char *oprop, char *buffer) { - if (node == 0 || (s32)node == -1) + if (node == 0 || (s32)node == NUMA_NO_NODE) return ""; return __prom_nextprop(node, oprop); @@ -304,7 +304,7 @@ phandle prom_inst2pkg(int inst) node = (*romvec->pv_v2devops.v2_inst2pkg)(inst); restore_current(); spin_unlock_irqrestore(&prom_lock, flags); - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; return node; } diff --git a/arch/sparc/prom/tree_64.c b/arch/sparc/prom/tree_64.c index 989e799..2b4c515 100644 --- a/arch/sparc/prom/tree_64.c +++ b/arch/sparc/prom/tree_64.c @@ -44,10 +44,10 @@ phandle prom_getchild(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = __prom_getchild(node); - if ((s32)cnode == -1) + if ((s32)cnode == NUMA_NO_NODE) return 0; return cnode; } @@ -57,10 +57,10 @@ inline phandle prom_getparent(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = prom_node_to_node("parent", node); - if ((s32)cnode == -1) + if ((s32)cnode == NUMA_NO_NODE) return 0; return cnode; } @@ -77,10 +77,10 @@ phandle prom_getsibling(phandle node) { phandle sibnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; sibnode = __prom_getsibling(node); - if ((s32)sibnode == -1) + if ((s32)sibnode == NUMA_NO_NODE) return 0; return sibnode; @@ -241,7 +241,7 @@ char *prom_firstprop(phandle node, char *buffer) unsigned long args[7]; *buffer = 0; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return buffer; args[0] = (unsigned long) prom_nextprop_name; @@ -267,7 +267,7 @@ char *prom_nextprop(phandle node, const char *oprop, char *buffer) unsigned long args[7]; char buf[32]; - if ((s32)node == -1) { + if ((s32)node == NUMA_NO_NODE) { *buffer = 0; return buffer; } @@ -370,7 +370,7 @@ inline phandle prom_inst2pkg(int inst) p1275_cmd_direct(args); node = (int) args[4]; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; return node; } diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index 6629636..dee2a31 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -141,7 +141,7 @@ cpumask_of_pcibus(const struct pci_bus *bus) int node; node = __pcibus_to_node(bus); - return (node == -1) ? cpu_online_mask : + return (node == NUMA_NO_NODE) ? cpu_online_mask : cpumask_of_node(node); } #endif diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index 391f358..3c3378a 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c @@ -1390,7 +1390,7 @@ static void __init build_socket_tables(void) } /* Set socket -> node values: */ - lnid = -1; + lnid = NUMA_NO_NODE; for_each_present_cpu(cpu) { int nid = cpu_to_node(cpu); int apicid, sockid; @@ -1521,7 +1521,7 @@ static void __init uv_system_init_hub(void) new_hub->pnode = 0xffff; new_hub->numa_blade_id = uv_node_to_blade_id(nodeid); - new_hub->memory_nid = -1; + new_hub->memory_nid = NUMA_NO_NODE; new_hub->nr_possible_cpus = 0; new_hub->nr_online_cpus = 0; } @@ -1538,7 +1538,7 @@ static void __init uv_system_init_hub(void) uv_cpu_info_per(cpu)->p_uv_hub_info = uv_hub_info_list(nodeid); uv_cpu_info_per(cpu)->blade_cpu_id = uv_cpu_hub_info(cpu)->nr_possible_cpus++; - if (uv_cpu_hub_info(cpu)->memory_nid == -1) + if (uv_cpu_hub_info(cpu)->memory_nid == NUMA_NO_NODE) uv_cpu_hub_info(cpu)->memory_nid = cpu_to_node(cpu); /* Init memoryless node: */ diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index a9134d1..c1d45dc 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -841,7 +841,7 @@ wakeup_secondary_cpu_via_init(int phys_apicid, unsigned long start_eip) /* reduce the number of lines printed when booting a large cpu count system */ static void announce_cpu(int cpu, int apicid) { - static int current_node = -1; + static int current_node = NUMA_NO_NODE; int node = early_cpu_to_node(cpu); static int width, node_width; diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c index 24d2175..7098127 100644 --- a/arch/x86/platform/olpc/olpc_dt.c +++ b/arch/x86/platform/olpc/olpc_dt.c @@ -29,10 +29,10 @@ static phandle __init olpc_dt_getsibling(phandle node) const void *args[] = { (void *)node }; void *res[] = { &node }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; - if (olpc_ofw("peer", args, res) || (s32)node == -1) + if (olpc_ofw("peer", args, res) || (s32)node == NUMA_NO_NODE) return 0; return node; @@ -43,10 +43,10 @@ static phandle __init olpc_dt_getchild(phandle node) const void *args[] = { (void *)node }; void *res[] = { &node }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; - if (olpc_ofw("child", args, res) || (s32)node == -1) { + if (olpc_ofw("child", args, res) || (s32)node == NUMA_NO_NODE) { pr_err("PROM: %s: fetching child failed!\n", __func__); return 0; } @@ -60,7 +60,7 @@ static int __init olpc_dt_getproplen(phandle node, const char *prop) int len; void *res[] = { &len }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("getproplen", args, res)) { @@ -100,7 +100,7 @@ static int __init olpc_dt_nextprop(phandle node, char *prev, char *buf) buf[0] = '\0'; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("nextprop", args, res) || success != 1) @@ -115,7 +115,7 @@ static int __init olpc_dt_pkg2path(phandle node, char *buf, const void *args[] = { (void *)node, buf, (void *)buflen }; void *res[] = { len }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("package-to-path", args, res) || *len < 1) @@ -176,7 +176,7 @@ static phandle __init olpc_dt_finddevice(const char *path) return 0; } - if ((s32) node == -1) + if ((s32) node == NUMA_NO_NODE) return 0; return node; diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c index a7daa8a..b889452 100644 --- a/drivers/block/mtip32xx/mtip32xx.c +++ b/drivers/block/mtip32xx/mtip32xx.c @@ -4084,9 +4084,9 @@ static int get_least_used_cpu_on_node(int node) /* Helper for selecting a node in round robin mode */ static inline int mtip_get_next_rr_node(void) { - static int next_node = -1; + static int next_node = NUMA_NO_NODE; - if (next_node == -1) { + if (next_node == NUMA_NO_NODE) { next_node = first_online_node; return next_node; } diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index f1a441ab..1aeefc7 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -386,7 +386,8 @@ EXPORT_SYMBOL(dma_issue_pending_all); static bool dma_chan_is_local(struct dma_chan *chan, int cpu) { int node = dev_to_node(chan->device->dev); - return node == -1 || cpumask_test_cpu(cpu, cpumask_of_node(node)); + return node == NUMA_NO_NODE || + cpumask_test_cpu(cpu, cpumask_of_node(node)); } /** diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c index 2baf38c..3e8acb8 100644 --- a/drivers/infiniband/hw/hfi1/affinity.c +++ b/drivers/infiniband/hw/hfi1/affinity.c @@ -777,7 +777,7 @@ void hfi1_dev_affinity_clean_up(struct hfi1_devdata *dd) _dev_comp_vect_cpu_mask_clean_up(dd, entry); unlock: mutex_unlock(&node_affinity.lock); - dd->node = -1; + dd->node = NUMA_NO_NODE; } /* diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c index 0904490..0bf4577 100644 --- a/drivers/infiniband/hw/hfi1/init.c +++ b/drivers/infiniband/hw/hfi1/init.c @@ -1303,7 +1303,7 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev, dd->unit = ret; list_add(&dd->list, &hfi1_dev_list); } - dd->node = -1; + dd->node = NUMA_NO_NODE; spin_unlock_irqrestore(&hfi1_devs_lock, flags); idr_preload_end(); diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c index d9c748b..86a9c19 100644 --- a/drivers/iommu/dmar.c +++ b/drivers/iommu/dmar.c @@ -477,7 +477,7 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg) int node = acpi_map_pxm_to_node(rhsa->proximity_domain); if (!node_online(node)) - node = -1; + node = NUMA_NO_NODE; drhd->iommu->node = node; return 0; } @@ -1062,7 +1062,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) iommu->msagaw = msagaw; iommu->segment = drhd->segment; - iommu->node = -1; + iommu->node = NUMA_NO_NODE; ver = readl(iommu->reg + DMAR_VER_REG); pr_info("%s: reg_base_addr %llx ver %d:%d cap %llx ecap %llx\n", diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index f3ccf02..9f6fb13 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -1772,7 +1772,7 @@ static struct dmar_domain *alloc_domain(int flags) return NULL; memset(domain, 0, sizeof(*domain)); - domain->nid = -1; + domain->nid = NUMA_NO_NODE; domain->flags = flags; domain->has_iotlb_device = false; INIT_LIST_HEAD(&domain->devices); diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c index 3e02de0..81bd41c 100644 --- a/drivers/media/pci/ivtv/ivtvfb.c +++ b/drivers/media/pci/ivtv/ivtvfb.c @@ -1054,7 +1054,7 @@ static int ivtvfb_init_vidmode(struct ivtv *itv) /* Generate valid fb_info */ - oi->ivtvfb_info.node = -1; + oi->ivtvfb_info.node = NUMA_NO_NODE; oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT; oi->ivtvfb_info.fbops = &ivtvfb_ops; oi->ivtvfb_info.par = itv; diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c index 1a89593..56a2d41 100644 --- a/drivers/media/platform/vivid/vivid-osd.c +++ b/drivers/media/platform/vivid/vivid-osd.c @@ -309,7 +309,7 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev) /* Generate valid fb_info */ - dev->fb_info.node = -1; + dev->fb_info.node = NUMA_NO_NODE; dev->fb_info.flags = FBINFO_FLAG_DEFAULT; dev->fb_info.fbops = &vivid_fb_ops; dev->fb_info.par = dev; diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c index 0441abe..eef36dd 100644 --- a/drivers/misc/sgi-xp/xpc_uv.c +++ b/drivers/misc/sgi-xp/xpc_uv.c @@ -61,7 +61,7 @@ static struct xpc_heartbeat_uv *xpc_heartbeat_uv; XPC_NOTIFY_MSG_SIZE_UV) #define XPC_NOTIFY_IRQ_NAME "xpc_notify" -static int xpc_mq_node = -1; +static int xpc_mq_node = NUMA_NO_NODE; static struct xpc_gru_mq_uv *xpc_activate_mq_uv; static struct xpc_gru_mq_uv *xpc_notify_mq_uv; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 113b38e..4fae85c 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -6414,7 +6414,7 @@ int ixgbe_setup_tx_resources(struct ixgbe_ring *tx_ring) { struct device *dev = tx_ring->dev; int orig_node = dev_to_node(dev); - int ring_node = -1; + int ring_node = NUMA_NO_NODE; int size; size = sizeof(struct ixgbe_tx_buffer) * tx_ring->count; @@ -6508,7 +6508,7 @@ int ixgbe_setup_rx_resources(struct ixgbe_adapter *adapter, { struct device *dev = rx_ring->dev; int orig_node = dev_to_node(dev); - int ring_node = -1; + int ring_node = NUMA_NO_NODE; int size; size = sizeof(struct ixgbe_rx_buffer) * rx_ring->count; diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c index ee212be..298be9b 100644 --- a/drivers/video/fbdev/mmp/fb/mmpfb.c +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c @@ -519,7 +519,7 @@ static int fb_info_setup(struct fb_info *info, /* Initialise static fb parameters.*/ info->flags = FBINFO_DEFAULT | FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_XPAN | FBINFO_HWACCEL_YPAN; - info->node = -1; + info->node = NUMA_NO_NODE; strcpy(info->fix.id, fbi->name); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.type_aux = 0; diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c index e31340f..7d775de 100644 --- a/drivers/video/fbdev/pxa168fb.c +++ b/drivers/video/fbdev/pxa168fb.c @@ -649,7 +649,7 @@ static int pxa168fb_probe(struct platform_device *pdev) */ info->flags = FBINFO_DEFAULT | FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_XPAN | FBINFO_HWACCEL_YPAN; - info->node = -1; + info->node = NUMA_NO_NODE; strlcpy(info->fix.id, mi->id, 16); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.type_aux = 0; diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c index 696106e..8b0f20c 100644 --- a/drivers/video/fbdev/w100fb.c +++ b/drivers/video/fbdev/w100fb.c @@ -703,7 +703,7 @@ int w100fb_probe(struct platform_device *pdev) info->fbops = &w100fb_ops; info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA | FBINFO_HWACCEL_FILLRECT; - info->node = -1; + info->node = NUMA_NO_NODE; info->screen_base = remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE); info->screen_size = REMAPPED_FB_LEN; diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h index d06e27e..11111f6 100644 --- a/fs/ocfs2/dlm/dlmcommon.h +++ b/fs/ocfs2/dlm/dlmcommon.h @@ -1121,7 +1121,7 @@ static inline void dlm_node_iter_init(unsigned long *map, struct dlm_node_iter *iter) { memcpy(iter->node_map, map, sizeof(iter->node_map)); - iter->curnode = -1; + iter->curnode = NUMA_NO_NODE; } static inline int dlm_node_iter_next(struct dlm_node_iter *iter) diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c index 2acd58b..381a323 100644 --- a/fs/ocfs2/dlm/dlmdomain.c +++ b/fs/ocfs2/dlm/dlmdomain.c @@ -546,7 +546,7 @@ static void dlm_mark_domain_leaving(struct dlm_ctxt *dlm) static void __dlm_print_nodes(struct dlm_ctxt *dlm) { - int node = -1, num = 0; + int node = NUMA_NO_NODE, num = 0; assert_spin_locked(&dlm->spinlock); @@ -613,7 +613,7 @@ static int dlm_send_one_domain_exit(struct dlm_ctxt *dlm, u32 msg_type, static void dlm_begin_exit_domain(struct dlm_ctxt *dlm) { - int node = -1; + int node = NUMA_NO_NODE; /* Support for begin exit domain was added in 1.2 */ if (dlm->dlm_locking_proto.pv_major == 1 && @@ -1407,7 +1407,7 @@ static int dlm_send_join_cancels(struct dlm_ctxt *dlm, } status = 0; - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(node_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) @@ -1547,7 +1547,7 @@ static void dlm_send_join_asserts(struct dlm_ctxt *dlm, int status, node, live; status = 0; - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(node_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) @@ -1631,7 +1631,7 @@ static int dlm_try_to_join_domain(struct dlm_ctxt *dlm) spin_unlock(&dlm->spinlock); - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(ctxt->live_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c index 826f056..e54bbbc 100644 --- a/fs/ocfs2/dlm/dlmmaster.c +++ b/fs/ocfs2/dlm/dlmmaster.c @@ -1183,7 +1183,7 @@ static void dlm_bitmap_diff_iter_init(struct dlm_bitmap_diff_iter *iter, unsigned long p1, p2; int i; - iter->curnode = -1; + iter->curnode = NUMA_NO_NODE; iter->orig_bm = orig_bm; iter->cur_bm = cur_bm; diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index 802636d5..704fa8b 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c @@ -2903,7 +2903,7 @@ static int dlm_send_finalize_reco_message(struct dlm_ctxt *dlm) } if (stage == 1) { /* reset the node_iter back to the top and send finalize2 */ - iter.curnode = -1; + iter.curnode = NUMA_NO_NODE; stage = 2; goto stage2; } diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c index d2fb97b..a673efa 100644 --- a/fs/ocfs2/stack_user.c +++ b/fs/ocfs2/stack_user.c @@ -171,7 +171,7 @@ union ocfs2_control_message { static struct ocfs2_stack_plugin ocfs2_user_plugin; static atomic_t ocfs2_control_opened; -static int ocfs2_control_this_node = -1; +static int ocfs2_control_this_node = NUMA_NO_NODE; static struct ocfs2_protocol_version running_proto; static LIST_HEAD(ocfs2_live_connection_list); @@ -589,7 +589,7 @@ static int ocfs2_control_release(struct inode *inode, struct file *file) * Last valid close clears the node number and resets * the locking protocol version */ - ocfs2_control_this_node = -1; + ocfs2_control_this_node = NUMA_NO_NODE; running_proto.pv_major = 0; running_proto.pv_minor = 0; } @@ -612,7 +612,7 @@ static int ocfs2_control_open(struct inode *inode, struct file *file) p = kzalloc(sizeof(struct ocfs2_control_private), GFP_KERNEL); if (!p) return -ENOMEM; - p->op_this_node = -1; + p->op_this_node = NUMA_NO_NODE; mutex_lock(&ocfs2_control_lock); file->private_data = p; diff --git a/init/init_task.c b/init/init_task.c index 5aebe3b..6641836 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -154,7 +154,7 @@ struct task_struct init_task .vtime.state = VTIME_SYS, #endif #ifdef CONFIG_NUMA_BALANCING - .numa_preferred_nid = -1, + .numa_preferred_nid = NUMA_NO_NODE, .numa_group = NULL, .numa_faults = NULL, #endif diff --git a/kernel/kthread.c b/kernel/kthread.c index 087d18d..77f3d94 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -675,7 +675,7 @@ __kthread_create_worker(int cpu, unsigned int flags, { struct kthread_worker *worker; struct task_struct *task; - int node = -1; + int node = NUMA_NO_NODE; worker = kzalloc(sizeof(*worker), GFP_KERNEL); if (!worker) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ee271bb..d830fa7 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1161,7 +1161,7 @@ void init_numa_balancing(unsigned long clone_flags, struct task_struct *p) /* New address space, reset the preferred nid */ if (!(clone_flags & CLONE_VM)) { - p->numa_preferred_nid = -1; + p->numa_preferred_nid = NUMA_NO_NODE; return; } @@ -1181,13 +1181,13 @@ void init_numa_balancing(unsigned long clone_flags, struct task_struct *p) static void account_numa_enqueue(struct rq *rq, struct task_struct *p) { - rq->nr_numa_running += (p->numa_preferred_nid != -1); + rq->nr_numa_running += (p->numa_preferred_nid != NUMA_NO_NODE); rq->nr_preferred_running += (p->numa_preferred_nid == task_node(p)); } static void account_numa_dequeue(struct rq *rq, struct task_struct *p) { - rq->nr_numa_running -= (p->numa_preferred_nid != -1); + rq->nr_numa_running -= (p->numa_preferred_nid != NUMA_NO_NODE); rq->nr_preferred_running -= (p->numa_preferred_nid == task_node(p)); } @@ -1401,7 +1401,7 @@ bool should_numa_migrate_memory(struct task_struct *p, struct page * page, * two full passes of the "multi-stage node selection" test that is * executed below. */ - if ((p->numa_preferred_nid == -1 || p->numa_scan_seq <= 4) && + if ((p->numa_preferred_nid == NUMA_NO_NODE || p->numa_scan_seq <= 4) && (cpupid_pid_unset(last_cpupid) || cpupid_match_pid(p, last_cpupid))) return true; @@ -1849,7 +1849,7 @@ static void numa_migrate_preferred(struct task_struct *p) unsigned long interval = HZ; /* This task has no NUMA fault statistics yet */ - if (unlikely(p->numa_preferred_nid == -1 || !p->numa_faults)) + if (unlikely(p->numa_preferred_nid == NUMA_NO_NODE || !p->numa_faults)) return; /* Periodically retry migrating the task to the preferred node */ @@ -2096,7 +2096,7 @@ static int preferred_group_nid(struct task_struct *p, int nid) static void task_numa_placement(struct task_struct *p) { - int seq, nid, max_nid = -1; + int seq, nid, max_nid = NUMA_NO_NODE; unsigned long max_faults = 0; unsigned long fault_types[2] = { 0, 0 }; unsigned long total_faults; @@ -2639,7 +2639,8 @@ static void update_scan_period(struct task_struct *p, int new_cpu) * the preferred node. */ if (dst_nid == p->numa_preferred_nid || - (p->numa_preferred_nid != -1 && src_nid != p->numa_preferred_nid)) + (p->numa_preferred_nid != NUMA_NO_NODE && + src_nid != p->numa_preferred_nid)) return; } diff --git a/lib/cpumask.c b/lib/cpumask.c index 8d666ab..a089c3f 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c @@ -206,7 +206,7 @@ unsigned int cpumask_local_spread(unsigned int i, int node) /* Wrap: we always want a cpu. */ i %= num_online_cpus(); - if (node == -1) { + if (node == NUMA_NO_NODE) { for_each_cpu(cpu, cpu_online_mask) if (i-- == 0) return cpu; diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 55478ab..5ccf89e 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1480,7 +1480,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) struct anon_vma *anon_vma = NULL; struct page *page; unsigned long haddr = vmf->address & HPAGE_PMD_MASK; - int page_nid = -1, this_nid = numa_node_id(); + int page_nid = NUMA_NO_NODE, this_nid = numa_node_id(); int target_nid, last_cpupid = -1; bool page_locked; bool migrated = false; @@ -1526,7 +1526,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) */ page_locked = trylock_page(page); target_nid = mpol_misplaced(page, vma, haddr); - if (target_nid == -1) { + if (target_nid == NUMA_NO_NODE) { /* If the page was locked, there are no parallel migrations */ if (page_locked) goto clear_pmdnuma; @@ -1534,7 +1534,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) /* Migration could have started since the pmd_trans_migrating check */ if (!page_locked) { - page_nid = -1; + page_nid = NUMA_NO_NODE; if (!get_page_unless_zero(page)) goto out_unlock; spin_unlock(vmf->ptl); @@ -1556,14 +1556,14 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) if (unlikely(!pmd_same(pmd, *vmf->pmd))) { unlock_page(page); put_page(page); - page_nid = -1; + page_nid = NUMA_NO_NODE; goto out_unlock; } /* Bail if we fail to protect against THP splits for any reason */ if (unlikely(!anon_vma)) { put_page(page); - page_nid = -1; + page_nid = NUMA_NO_NODE; goto clear_pmdnuma; } @@ -1625,7 +1625,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) if (anon_vma) page_unlock_anon_vma_read(anon_vma); - if (page_nid != -1) + if (page_nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, page_nid, HPAGE_PMD_NR, flags); diff --git a/mm/hugetlb.c b/mm/hugetlb.c index c007fb5..b769db7 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -887,7 +887,7 @@ static struct page *dequeue_huge_page_nodemask(struct hstate *h, gfp_t gfp_mask, struct zonelist *zonelist; struct zone *zone; struct zoneref *z; - int node = -1; + int node = NUMA_NO_NODE; zonelist = node_zonelist(nid, gfp_mask); diff --git a/mm/ksm.c b/mm/ksm.c index 5b0894b..d5f8834 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -597,7 +597,7 @@ static struct stable_node *alloc_stable_node_chain(struct stable_node *dup, chain->chain_prune_time = jiffies; chain->rmap_hlist_len = STABLE_NODE_CHAIN; #if defined (CONFIG_DEBUG_VM) && defined(CONFIG_NUMA) - chain->nid = -1; /* debug */ + chain->nid = NUMA_NO_NODE; /* debug */ #endif ksm_stable_node_chains++; diff --git a/mm/memory.c b/mm/memory.c index 4ad2d29..c0e0348 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3564,7 +3564,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) { struct vm_area_struct *vma = vmf->vma; struct page *page = NULL; - int page_nid = -1; + int page_nid = NUMA_NO_NODE; int last_cpupid; int target_nid; bool migrated = false; @@ -3631,7 +3631,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) target_nid = numa_migrate_prep(page, vma, vmf->address, page_nid, &flags); pte_unmap_unlock(vmf->pte, vmf->ptl); - if (target_nid == -1) { + if (target_nid == NUMA_NO_NODE) { put_page(page); goto out; } @@ -3645,7 +3645,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) flags |= TNF_MIGRATE_FAIL; out: - if (page_nid != -1) + if (page_nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, page_nid, 1, flags); return 0; } diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 2b2b3cc..70e02f8 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -688,9 +688,9 @@ static void node_states_check_changes_online(unsigned long nr_pages, { int nid = zone_to_nid(zone); - arg->status_change_nid = -1; - arg->status_change_nid_normal = -1; - arg->status_change_nid_high = -1; + arg->status_change_nid = NUMA_NO_NODE; + arg->status_change_nid_normal = NUMA_NO_NODE; + arg->status_change_nid_high = NUMA_NO_NODE; if (!node_state(nid, N_MEMORY)) arg->status_change_nid = nid; @@ -1484,9 +1484,9 @@ static void node_states_check_changes_offline(unsigned long nr_pages, unsigned long present_pages = 0; enum zone_type zt; - arg->status_change_nid = -1; - arg->status_change_nid_normal = -1; - arg->status_change_nid_high = -1; + arg->status_change_nid = NUMA_NO_NODE; + arg->status_change_nid_normal = NUMA_NO_NODE; + arg->status_change_nid_high = NUMA_NO_NODE; /* * Check whether node_states[N_NORMAL_MEMORY] will be changed. diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 5837a06..e4f8248 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2278,7 +2278,7 @@ int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long unsigned long pgoff; int thiscpu = raw_smp_processor_id(); int thisnid = cpu_to_node(thiscpu); - int polnid = -1; + int polnid = NUMA_NO_NODE; int ret = -1; pol = get_vma_policy(vma, addr); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a919ba5..9d38d9c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5846,7 +5846,7 @@ int __meminit __early_pfn_to_nid(unsigned long pfn, return state->last_nid; nid = memblock_search_pfn_nid(pfn, &start_pfn, &end_pfn); - if (nid != -1) { + if (nid != NUMA_NO_NODE) { state->last_start = start_pfn; state->last_end = end_pfn; state->last_nid = nid; @@ -6607,7 +6607,7 @@ unsigned long __init node_map_pfn_alignment(void) { unsigned long accl_mask = 0, last_end = 0; unsigned long start, end, mask; - int last_nid = -1; + int last_nid = NUMA_NO_NODE; int i, nid; for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, &nid) { diff --git a/mm/page_ext.c b/mm/page_ext.c index ae44f7a..dfb0206 100644 --- a/mm/page_ext.c +++ b/mm/page_ext.c @@ -300,7 +300,7 @@ static int __meminit online_page_ext(unsigned long start_pfn, start = SECTION_ALIGN_DOWN(start_pfn); end = SECTION_ALIGN_UP(start_pfn + nr_pages); - if (nid == -1) { + if (nid == NUMA_NO_NODE) { /* * In this case, "nid" already exists and contains valid memory. * "start_pfn" passed to us is a pfn which is an arg for diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 6ac9198..af3a746 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -3625,7 +3625,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) pkt_dev->svlan_cfi = 0; pkt_dev->svlan_id = 0xffff; pkt_dev->burst = 1; - pkt_dev->node = -1; + pkt_dev->node = NUMA_NO_NODE; err = pktgen_setup_dev(t->net, pkt_dev, ifname); if (err) diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c index 86e1e37..0c56ae2 100644 --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -101,7 +101,7 @@ static inline struct qrtr_sock *qrtr_sk(struct sock *sk) return container_of(sk, struct qrtr_sock, sk); } -static unsigned int qrtr_local_nid = -1; +static unsigned int qrtr_local_nid = NUMA_NO_NODE; /* for node ids */ static RADIX_TREE(qrtr_nodes, GFP_KERNEL); diff --git a/tools/perf/bench/numa.c b/tools/perf/bench/numa.c index 4419551..e0ad5f1 100644 --- a/tools/perf/bench/numa.c +++ b/tools/perf/bench/numa.c @@ -298,7 +298,7 @@ static cpu_set_t bind_to_node(int target_node) CPU_ZERO(&mask); - if (target_node == -1) { + if (target_node == NUMA_NO_NODE) { for (cpu = 0; cpu < g->p.nr_cpus; cpu++) CPU_SET(cpu, &mask); } else { @@ -339,7 +339,7 @@ static void bind_to_memnode(int node) unsigned long nodemask; int ret; - if (node == -1) + if (node == NUMA_NO_NODE) return; BUG_ON(g->p.nr_nodes > (int)sizeof(nodemask)*8); @@ -1363,7 +1363,7 @@ static void init_thread_data(void) int cpu; /* Allow all nodes by default: */ - td->bind_node = -1; + td->bind_node = NUMA_NO_NODE; /* Allow all CPUs by default: */ CPU_ZERO(&td->bind_cpumask); -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anshuman Khandual Date: Mon, 12 Nov 2018 02:53:55 +0000 Subject: [RFC] mm: Replace all open encodings for NUMA_NO_NODE Message-Id: <1541990515-11670-1-git-send-email-anshuman.khandual@arm.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: ocfs2-devel@oss.oracle.com, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-media@vger.kernel.org, iommu@lists.linux-foundation.org, linux-rdma@vger.kernel.org, dmaengine@vger.kernel.org, linux-block@vger.kernel.org, sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-ia64@vger.kernel.org, linux-alpha@vger.kernel.org At present there are multiple places where invalid node number is encoded as -1. Even though implicitly understood it is always better to have macros in there. Replace these open encodings for an invalid node number with the global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like 'invalid node' from various places redirecting them to a common definition. Signed-off-by: Anshuman Khandual --- Build tested this with multiple cross compiler options like alpha, sparc, arm64, x86, powerpc64le etc with their default config which might not have compiled tested all driver related changes. I will appreciate folks giving this a test in their respective build environment. All these places for replacement were found by running the following grep patterns on the entire kernel code. Please let me know if this might have missed some instances. This might also have replaced some false positives. I will appreciate suggestions, inputs and review. 1. git grep "nid = -1" 2. git grep "node = -1" 3. git grep "nid = -1" 4. git grep "node = -1" arch/alpha/include/asm/topology.h | 2 +- arch/ia64/kernel/numa.c | 2 +- arch/ia64/mm/discontig.c | 6 +++--- arch/ia64/sn/kernel/io_common.c | 2 +- arch/powerpc/include/asm/pci-bridge.h | 2 +- arch/powerpc/kernel/paca.c | 2 +- arch/powerpc/kernel/pci-common.c | 2 +- arch/powerpc/mm/numa.c | 14 +++++++------- arch/powerpc/platforms/powernv/memtrace.c | 4 ++-- arch/sparc/kernel/auxio_32.c | 2 +- arch/sparc/kernel/pci_fire.c | 2 +- arch/sparc/kernel/pci_schizo.c | 2 +- arch/sparc/kernel/pcic.c | 6 +++--- arch/sparc/kernel/psycho_common.c | 2 +- arch/sparc/kernel/sbus.c | 2 +- arch/sparc/mm/init_64.c | 6 +++--- arch/sparc/prom/init_32.c | 2 +- arch/sparc/prom/init_64.c | 4 ++-- arch/sparc/prom/tree_32.c | 12 ++++++------ arch/sparc/prom/tree_64.c | 18 +++++++++--------- arch/x86/include/asm/pci.h | 2 +- arch/x86/kernel/apic/x2apic_uv_x.c | 6 +++--- arch/x86/kernel/smpboot.c | 2 +- arch/x86/platform/olpc/olpc_dt.c | 16 ++++++++-------- drivers/block/mtip32xx/mtip32xx.c | 4 ++-- drivers/dma/dmaengine.c | 3 ++- drivers/infiniband/hw/hfi1/affinity.c | 2 +- drivers/infiniband/hw/hfi1/init.c | 2 +- drivers/iommu/dmar.c | 4 ++-- drivers/iommu/intel-iommu.c | 2 +- drivers/media/pci/ivtv/ivtvfb.c | 2 +- drivers/media/platform/vivid/vivid-osd.c | 2 +- drivers/misc/sgi-xp/xpc_uv.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/video/fbdev/mmp/fb/mmpfb.c | 2 +- drivers/video/fbdev/pxa168fb.c | 2 +- drivers/video/fbdev/w100fb.c | 2 +- fs/ocfs2/dlm/dlmcommon.h | 2 +- fs/ocfs2/dlm/dlmdomain.c | 10 +++++----- fs/ocfs2/dlm/dlmmaster.c | 2 +- fs/ocfs2/dlm/dlmrecovery.c | 2 +- fs/ocfs2/stack_user.c | 6 +++--- init/init_task.c | 2 +- kernel/kthread.c | 2 +- kernel/sched/fair.c | 15 ++++++++------- lib/cpumask.c | 2 +- mm/huge_memory.c | 12 ++++++------ mm/hugetlb.c | 2 +- mm/ksm.c | 2 +- mm/memory.c | 6 +++--- mm/memory_hotplug.c | 12 ++++++------ mm/mempolicy.c | 2 +- mm/page_alloc.c | 4 ++-- mm/page_ext.c | 2 +- net/core/pktgen.c | 2 +- net/qrtr/qrtr.c | 2 +- tools/perf/bench/numa.c | 6 +++--- 57 files changed, 125 insertions(+), 123 deletions(-) diff --git a/arch/alpha/include/asm/topology.h b/arch/alpha/include/asm/topology.h index e6e13a8..f6dc89c 100644 --- a/arch/alpha/include/asm/topology.h +++ b/arch/alpha/include/asm/topology.h @@ -29,7 +29,7 @@ static const struct cpumask *cpumask_of_node(int node) { int cpu; - if (node = -1) + if (node = NUMA_NO_NODE) return cpu_all_mask; cpumask_clear(&node_to_cpumask_map[node]); diff --git a/arch/ia64/kernel/numa.c b/arch/ia64/kernel/numa.c index 92c3762..1315da6 100644 --- a/arch/ia64/kernel/numa.c +++ b/arch/ia64/kernel/numa.c @@ -74,7 +74,7 @@ void __init build_cpu_to_node_map(void) cpumask_clear(&node_to_cpu_mask[node]); for_each_possible_early_cpu(cpu) { - node = -1; + node = NUMA_NO_NODE; for (i = 0; i < NR_CPUS; ++i) if (cpu_physical_id(cpu) = node_cpuid[i].phys_id) { node = node_cpuid[i].nid; diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 8a96578..f9c3675 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c @@ -227,7 +227,7 @@ void __init setup_per_cpu_areas(void) * CPUs are put into groups according to node. Walk cpu_map * and create new groups at node boundaries. */ - prev_node = -1; + prev_node = NUMA_NO_NODE; ai->nr_groups = 0; for (unit = 0; unit < nr_units; unit++) { cpu = cpu_map[unit]; @@ -435,7 +435,7 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize) { void *ptr = NULL; u8 best = 0xff; - int bestnode = -1, node, anynode = 0; + int bestnode = NUMA_NO_NODE, node, anynode = 0; for_each_online_node(node) { if (node_isset(node, memory_less_mask)) @@ -447,7 +447,7 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize) anynode = node; } - if (bestnode = -1) + if (bestnode = NUMA_NO_NODE) bestnode = anynode; ptr = memblock_alloc_try_nid(pernodesize, PERCPU_PAGE_SIZE, diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index 8df13d0..86b3fcb 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c @@ -344,7 +344,7 @@ sn_common_bus_fixup(struct pci_bus *bus, printk(KERN_WARNING "on node %d but only %d nodes online." "Association set to undetermined.\n", controller->node, num_online_nodes()); - controller->node = -1; + controller->node = NUMA_NO_NODE; } } diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 94d4490..25a9e33 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -264,7 +264,7 @@ extern int pcibios_map_io_space(struct pci_bus *bus); #ifdef CONFIG_NUMA #define PHB_SET_NODE(PHB, NODE) ((PHB)->node = (NODE)) #else -#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = -1) +#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = NUMA_NO_NODE) #endif #endif /* CONFIG_PPC64 */ diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c index 913bfca..6a0bd51 100644 --- a/arch/powerpc/kernel/paca.c +++ b/arch/powerpc/kernel/paca.c @@ -36,7 +36,7 @@ static void *__init alloc_paca_data(unsigned long size, unsigned long align, * which will put its paca in the right place. */ if (cpu = boot_cpuid) { - nid = -1; + nid = NUMA_NO_NODE; memblock_set_bottom_up(true); } else { nid = early_cpu_to_node(cpu); diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 88e4f69..14c33a9 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c @@ -132,7 +132,7 @@ struct pci_controller *pcibios_alloc_controller(struct device_node *dev) int nid = of_node_to_nid(dev); if (nid < 0 || !node_online(nid)) - nid = -1; + nid = NUMA_NO_NODE; PHB_SET_NODE(phb, nid); } diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 3a048e9..77808a2 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -215,7 +215,7 @@ static void initialize_distance_lookup_table(int nid, */ static int associativity_to_nid(const __be32 *associativity) { - int nid = -1; + int nid = NUMA_NO_NODE; if (min_common_depth = -1) goto out; @@ -225,7 +225,7 @@ static int associativity_to_nid(const __be32 *associativity) /* POWER4 LPAR uses 0xffff as invalid node */ if (nid = 0xffff || nid >= MAX_NUMNODES) - nid = -1; + nid = NUMA_NO_NODE; if (nid > 0 && of_read_number(associativity, 1) >= distance_ref_points_depth) { @@ -244,7 +244,7 @@ static int associativity_to_nid(const __be32 *associativity) */ static int of_node_to_nid_single(struct device_node *device) { - int nid = -1; + int nid = NUMA_NO_NODE; const __be32 *tmp; tmp = of_get_associativity(device); @@ -256,7 +256,7 @@ static int of_node_to_nid_single(struct device_node *device) /* Walk the device tree upwards, looking for an associativity id */ int of_node_to_nid(struct device_node *device) { - int nid = -1; + int nid = NUMA_NO_NODE; of_node_get(device); while (device) { @@ -454,7 +454,7 @@ static int of_drconf_to_nid_single(struct drmem_lmb *lmb) */ static int numa_setup_cpu(unsigned long lcpu) { - int nid = -1; + int nid = NUMA_NO_NODE; struct device_node *cpu; /* @@ -930,7 +930,7 @@ static int hot_add_drconf_scn_to_nid(unsigned long scn_addr) { struct drmem_lmb *lmb; unsigned long lmb_size; - int nid = -1; + int nid = NUMA_NO_NODE; lmb_size = drmem_lmb_size(); @@ -960,7 +960,7 @@ static int hot_add_drconf_scn_to_nid(unsigned long scn_addr) static int hot_add_node_scn_to_nid(unsigned long scn_addr) { struct device_node *memory; - int nid = -1; + int nid = NUMA_NO_NODE; for_each_node_by_type(memory, "memory") { unsigned long start, size; diff --git a/arch/powerpc/platforms/powernv/memtrace.c b/arch/powerpc/platforms/powernv/memtrace.c index 84d038e..1ce3bfc 100644 --- a/arch/powerpc/platforms/powernv/memtrace.c +++ b/arch/powerpc/platforms/powernv/memtrace.c @@ -223,7 +223,7 @@ static int memtrace_online(void) ent = &memtrace_array[i]; /* We have onlined this chunk previously */ - if (ent->nid = -1) + if (ent->nid = NUMA_NO_NODE) continue; /* Remove from io mappings */ @@ -257,7 +257,7 @@ static int memtrace_online(void) */ debugfs_remove_recursive(ent->dir); pr_info("Added trace memory back to node %d\n", ent->nid); - ent->size = ent->start = ent->nid = -1; + ent->size = ent->start = ent->nid = NUMA_NO_NODE; } if (ret) return ret; diff --git a/arch/sparc/kernel/auxio_32.c b/arch/sparc/kernel/auxio_32.c index a32d588..39f6c59 100644 --- a/arch/sparc/kernel/auxio_32.c +++ b/arch/sparc/kernel/auxio_32.c @@ -120,7 +120,7 @@ void __init auxio_power_probe(void) node = prom_searchsiblings(node, "obio"); node = prom_getchild(node); node = prom_searchsiblings(node, "power"); - if (node = 0 || (s32)node = -1) + if (node = 0 || (s32)node = NUMA_NO_NODE) return; /* Map the power control register. */ diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c index be71ae0..474d3be 100644 --- a/arch/sparc/kernel/pci_fire.c +++ b/arch/sparc/kernel/pci_fire.c @@ -416,7 +416,7 @@ static int pci_fire_pbm_init(struct pci_pbm_info *pbm, struct device_node *dp = op->dev.of_node; int err; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->pci_ops = &sun4u_pci_ops; pbm->config_space_reg_bits = 12; diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c index 934b97c..87bb231 100644 --- a/arch/sparc/kernel/pci_schizo.c +++ b/arch/sparc/kernel/pci_schizo.c @@ -1347,7 +1347,7 @@ static int schizo_pbm_init(struct pci_pbm_info *pbm, pbm->next = pci_pbm_root; pci_pbm_root = pbm; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->pci_ops = &sun4u_pci_ops; pbm->config_space_reg_bits = 8; diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index ee4c9a9..d5fe898 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c @@ -476,7 +476,7 @@ static void pcic_map_pci_device(struct linux_pcic *pcic, unsigned long flags; int j; - if (node = 0 || node = -1) { + if (node = 0 || node = NUMA_NO_NODE) { strcpy(namebuf, "???"); } else { prom_getstring(node, "name", namebuf, 63); namebuf[63] = 0; @@ -535,7 +535,7 @@ pcic_fill_irq(struct linux_pcic *pcic, struct pci_dev *dev, int node) int i, ivec; char namebuf[64]; - if (node = 0 || node = -1) { + if (node = 0 || node = NUMA_NO_NODE) { strcpy(namebuf, "???"); } else { prom_getstring(node, "name", namebuf, sizeof(namebuf)); @@ -625,7 +625,7 @@ void pcibios_fixup_bus(struct pci_bus *bus) list_for_each_entry(dev, &bus->devices, bus_list) { node = pdev_to_pnode(&pcic->pbm, dev); if(node = 0) - node = -1; + node = NUMA_NO_NODE; /* cookies */ pcp = pci_devcookie_alloc(); diff --git a/arch/sparc/kernel/psycho_common.c b/arch/sparc/kernel/psycho_common.c index 81aa91e..dcbf492 100644 --- a/arch/sparc/kernel/psycho_common.c +++ b/arch/sparc/kernel/psycho_common.c @@ -454,7 +454,7 @@ void psycho_pbm_init_common(struct pci_pbm_info *pbm, struct platform_device *op struct device_node *dp = op->dev.of_node; pbm->name = dp->full_name; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->chip_type = chip_type; pbm->chip_version = of_getintprop_default(dp, "version#", 0); pbm->chip_revision = of_getintprop_default(dp, "module-revision#", 0); diff --git a/arch/sparc/kernel/sbus.c b/arch/sparc/kernel/sbus.c index c133dfc..28a4aa9 100644 --- a/arch/sparc/kernel/sbus.c +++ b/arch/sparc/kernel/sbus.c @@ -561,7 +561,7 @@ static void __init sbus_iommu_init(struct platform_device *op) op->dev.archdata.iommu = iommu; op->dev.archdata.stc = strbuf; - op->dev.archdata.numa_node = -1; + op->dev.archdata.numa_node = NUMA_NO_NODE; reg_base = regs + SYSIO_IOMMUREG_BASE; iommu->iommu_control = reg_base + IOMMU_CONTROL; diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index 3c8aac2..cb1bed1 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c @@ -976,13 +976,13 @@ static u64 __init memblock_nid_range_sun4u(u64 start, u64 end, int *nid) { int prev_nid, new_nid; - prev_nid = -1; + prev_nid = NUMA_NO_NODE; for ( ; start < end; start += PAGE_SIZE) { for (new_nid = 0; new_nid < num_node_masks; new_nid++) { struct node_mem_mask *p = &node_masks[new_nid]; if ((start & p->mask) = p->match) { - if (prev_nid = -1) + if (prev_nid = NUMA_NO_NODE) prev_nid = new_nid; break; } @@ -1208,7 +1208,7 @@ int of_node_to_nid(struct device_node *dp) md = mdesc_grab(); count = 0; - nid = -1; + nid = NUMA_NO_NODE; mdesc_for_each_node_by_name(md, grp, "group") { if (!scan_arcs_for_cfg_handle(md, grp, cfg_handle)) { nid = count; diff --git a/arch/sparc/prom/init_32.c b/arch/sparc/prom/init_32.c index d204701..4c6e540 100644 --- a/arch/sparc/prom/init_32.c +++ b/arch/sparc/prom/init_32.c @@ -58,7 +58,7 @@ void __init prom_init(struct linux_romvec *rp) prom_nodeops = romvec->pv_nodeops; prom_root_node = prom_getsibling(0); - if ((prom_root_node = 0) || ((s32)prom_root_node = -1)) + if ((prom_root_node = 0) || ((s32)prom_root_node = NUMA_NO_NODE)) prom_halt(); if((((unsigned long) prom_nodeops) = 0) || diff --git a/arch/sparc/prom/init_64.c b/arch/sparc/prom/init_64.c index 103aa91..85669c0 100644 --- a/arch/sparc/prom/init_64.c +++ b/arch/sparc/prom/init_64.c @@ -36,13 +36,13 @@ void __init prom_init(void *cif_handler) prom_cif_init(cif_handler); prom_chosen_node = prom_finddevice(prom_chosen_path); - if (!prom_chosen_node || (s32)prom_chosen_node = -1) + if (!prom_chosen_node || (s32)prom_chosen_node = NUMA_NO_NODE) prom_halt(); prom_stdout = prom_getint(prom_chosen_node, "stdout"); node = prom_finddevice("/openprom"); - if (!node || (s32)node = -1) + if (!node || (s32)node = NUMA_NO_NODE) prom_halt(); prom_getstring(node, "version", prom_version, sizeof(prom_version)); diff --git a/arch/sparc/prom/tree_32.c b/arch/sparc/prom/tree_32.c index 0fed893..2d0a204 100644 --- a/arch/sparc/prom/tree_32.c +++ b/arch/sparc/prom/tree_32.c @@ -41,11 +41,11 @@ phandle prom_getchild(phandle node) { phandle cnode; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; cnode = __prom_getchild(node); - if (cnode = 0 || (s32)cnode = -1) + if (cnode = 0 || (s32)cnode = NUMA_NO_NODE) return 0; return cnode; @@ -73,11 +73,11 @@ phandle prom_getsibling(phandle node) { phandle sibnode; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; sibnode = __prom_getsibling(node); - if (sibnode = 0 || (s32)sibnode = -1) + if (sibnode = 0 || (s32)sibnode = NUMA_NO_NODE) return 0; return sibnode; @@ -220,7 +220,7 @@ static char *__prom_nextprop(phandle node, char * oprop) */ char *prom_nextprop(phandle node, char *oprop, char *buffer) { - if (node = 0 || (s32)node = -1) + if (node = 0 || (s32)node = NUMA_NO_NODE) return ""; return __prom_nextprop(node, oprop); @@ -304,7 +304,7 @@ phandle prom_inst2pkg(int inst) node = (*romvec->pv_v2devops.v2_inst2pkg)(inst); restore_current(); spin_unlock_irqrestore(&prom_lock, flags); - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; return node; } diff --git a/arch/sparc/prom/tree_64.c b/arch/sparc/prom/tree_64.c index 989e799..2b4c515 100644 --- a/arch/sparc/prom/tree_64.c +++ b/arch/sparc/prom/tree_64.c @@ -44,10 +44,10 @@ phandle prom_getchild(phandle node) { phandle cnode; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; cnode = __prom_getchild(node); - if ((s32)cnode = -1) + if ((s32)cnode = NUMA_NO_NODE) return 0; return cnode; } @@ -57,10 +57,10 @@ inline phandle prom_getparent(phandle node) { phandle cnode; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; cnode = prom_node_to_node("parent", node); - if ((s32)cnode = -1) + if ((s32)cnode = NUMA_NO_NODE) return 0; return cnode; } @@ -77,10 +77,10 @@ phandle prom_getsibling(phandle node) { phandle sibnode; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; sibnode = __prom_getsibling(node); - if ((s32)sibnode = -1) + if ((s32)sibnode = NUMA_NO_NODE) return 0; return sibnode; @@ -241,7 +241,7 @@ char *prom_firstprop(phandle node, char *buffer) unsigned long args[7]; *buffer = 0; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return buffer; args[0] = (unsigned long) prom_nextprop_name; @@ -267,7 +267,7 @@ char *prom_nextprop(phandle node, const char *oprop, char *buffer) unsigned long args[7]; char buf[32]; - if ((s32)node = -1) { + if ((s32)node = NUMA_NO_NODE) { *buffer = 0; return buffer; } @@ -370,7 +370,7 @@ inline phandle prom_inst2pkg(int inst) p1275_cmd_direct(args); node = (int) args[4]; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; return node; } diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index 6629636..dee2a31 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -141,7 +141,7 @@ cpumask_of_pcibus(const struct pci_bus *bus) int node; node = __pcibus_to_node(bus); - return (node = -1) ? cpu_online_mask : + return (node = NUMA_NO_NODE) ? cpu_online_mask : cpumask_of_node(node); } #endif diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index 391f358..3c3378a 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c @@ -1390,7 +1390,7 @@ static void __init build_socket_tables(void) } /* Set socket -> node values: */ - lnid = -1; + lnid = NUMA_NO_NODE; for_each_present_cpu(cpu) { int nid = cpu_to_node(cpu); int apicid, sockid; @@ -1521,7 +1521,7 @@ static void __init uv_system_init_hub(void) new_hub->pnode = 0xffff; new_hub->numa_blade_id = uv_node_to_blade_id(nodeid); - new_hub->memory_nid = -1; + new_hub->memory_nid = NUMA_NO_NODE; new_hub->nr_possible_cpus = 0; new_hub->nr_online_cpus = 0; } @@ -1538,7 +1538,7 @@ static void __init uv_system_init_hub(void) uv_cpu_info_per(cpu)->p_uv_hub_info = uv_hub_info_list(nodeid); uv_cpu_info_per(cpu)->blade_cpu_id = uv_cpu_hub_info(cpu)->nr_possible_cpus++; - if (uv_cpu_hub_info(cpu)->memory_nid = -1) + if (uv_cpu_hub_info(cpu)->memory_nid = NUMA_NO_NODE) uv_cpu_hub_info(cpu)->memory_nid = cpu_to_node(cpu); /* Init memoryless node: */ diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index a9134d1..c1d45dc 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -841,7 +841,7 @@ wakeup_secondary_cpu_via_init(int phys_apicid, unsigned long start_eip) /* reduce the number of lines printed when booting a large cpu count system */ static void announce_cpu(int cpu, int apicid) { - static int current_node = -1; + static int current_node = NUMA_NO_NODE; int node = early_cpu_to_node(cpu); static int width, node_width; diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c index 24d2175..7098127 100644 --- a/arch/x86/platform/olpc/olpc_dt.c +++ b/arch/x86/platform/olpc/olpc_dt.c @@ -29,10 +29,10 @@ static phandle __init olpc_dt_getsibling(phandle node) const void *args[] = { (void *)node }; void *res[] = { &node }; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; - if (olpc_ofw("peer", args, res) || (s32)node = -1) + if (olpc_ofw("peer", args, res) || (s32)node = NUMA_NO_NODE) return 0; return node; @@ -43,10 +43,10 @@ static phandle __init olpc_dt_getchild(phandle node) const void *args[] = { (void *)node }; void *res[] = { &node }; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return 0; - if (olpc_ofw("child", args, res) || (s32)node = -1) { + if (olpc_ofw("child", args, res) || (s32)node = NUMA_NO_NODE) { pr_err("PROM: %s: fetching child failed!\n", __func__); return 0; } @@ -60,7 +60,7 @@ static int __init olpc_dt_getproplen(phandle node, const char *prop) int len; void *res[] = { &len }; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return -1; if (olpc_ofw("getproplen", args, res)) { @@ -100,7 +100,7 @@ static int __init olpc_dt_nextprop(phandle node, char *prev, char *buf) buf[0] = '\0'; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return -1; if (olpc_ofw("nextprop", args, res) || success != 1) @@ -115,7 +115,7 @@ static int __init olpc_dt_pkg2path(phandle node, char *buf, const void *args[] = { (void *)node, buf, (void *)buflen }; void *res[] = { len }; - if ((s32)node = -1) + if ((s32)node = NUMA_NO_NODE) return -1; if (olpc_ofw("package-to-path", args, res) || *len < 1) @@ -176,7 +176,7 @@ static phandle __init olpc_dt_finddevice(const char *path) return 0; } - if ((s32) node = -1) + if ((s32) node = NUMA_NO_NODE) return 0; return node; diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c index a7daa8a..b889452 100644 --- a/drivers/block/mtip32xx/mtip32xx.c +++ b/drivers/block/mtip32xx/mtip32xx.c @@ -4084,9 +4084,9 @@ static int get_least_used_cpu_on_node(int node) /* Helper for selecting a node in round robin mode */ static inline int mtip_get_next_rr_node(void) { - static int next_node = -1; + static int next_node = NUMA_NO_NODE; - if (next_node = -1) { + if (next_node = NUMA_NO_NODE) { next_node = first_online_node; return next_node; } diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index f1a441ab..1aeefc7 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -386,7 +386,8 @@ EXPORT_SYMBOL(dma_issue_pending_all); static bool dma_chan_is_local(struct dma_chan *chan, int cpu) { int node = dev_to_node(chan->device->dev); - return node = -1 || cpumask_test_cpu(cpu, cpumask_of_node(node)); + return node = NUMA_NO_NODE || + cpumask_test_cpu(cpu, cpumask_of_node(node)); } /** diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c index 2baf38c..3e8acb8 100644 --- a/drivers/infiniband/hw/hfi1/affinity.c +++ b/drivers/infiniband/hw/hfi1/affinity.c @@ -777,7 +777,7 @@ void hfi1_dev_affinity_clean_up(struct hfi1_devdata *dd) _dev_comp_vect_cpu_mask_clean_up(dd, entry); unlock: mutex_unlock(&node_affinity.lock); - dd->node = -1; + dd->node = NUMA_NO_NODE; } /* diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c index 0904490..0bf4577 100644 --- a/drivers/infiniband/hw/hfi1/init.c +++ b/drivers/infiniband/hw/hfi1/init.c @@ -1303,7 +1303,7 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev, dd->unit = ret; list_add(&dd->list, &hfi1_dev_list); } - dd->node = -1; + dd->node = NUMA_NO_NODE; spin_unlock_irqrestore(&hfi1_devs_lock, flags); idr_preload_end(); diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c index d9c748b..86a9c19 100644 --- a/drivers/iommu/dmar.c +++ b/drivers/iommu/dmar.c @@ -477,7 +477,7 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg) int node = acpi_map_pxm_to_node(rhsa->proximity_domain); if (!node_online(node)) - node = -1; + node = NUMA_NO_NODE; drhd->iommu->node = node; return 0; } @@ -1062,7 +1062,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) iommu->msagaw = msagaw; iommu->segment = drhd->segment; - iommu->node = -1; + iommu->node = NUMA_NO_NODE; ver = readl(iommu->reg + DMAR_VER_REG); pr_info("%s: reg_base_addr %llx ver %d:%d cap %llx ecap %llx\n", diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index f3ccf02..9f6fb13 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -1772,7 +1772,7 @@ static struct dmar_domain *alloc_domain(int flags) return NULL; memset(domain, 0, sizeof(*domain)); - domain->nid = -1; + domain->nid = NUMA_NO_NODE; domain->flags = flags; domain->has_iotlb_device = false; INIT_LIST_HEAD(&domain->devices); diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c index 3e02de0..81bd41c 100644 --- a/drivers/media/pci/ivtv/ivtvfb.c +++ b/drivers/media/pci/ivtv/ivtvfb.c @@ -1054,7 +1054,7 @@ static int ivtvfb_init_vidmode(struct ivtv *itv) /* Generate valid fb_info */ - oi->ivtvfb_info.node = -1; + oi->ivtvfb_info.node = NUMA_NO_NODE; oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT; oi->ivtvfb_info.fbops = &ivtvfb_ops; oi->ivtvfb_info.par = itv; diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c index 1a89593..56a2d41 100644 --- a/drivers/media/platform/vivid/vivid-osd.c +++ b/drivers/media/platform/vivid/vivid-osd.c @@ -309,7 +309,7 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev) /* Generate valid fb_info */ - dev->fb_info.node = -1; + dev->fb_info.node = NUMA_NO_NODE; dev->fb_info.flags = FBINFO_FLAG_DEFAULT; dev->fb_info.fbops = &vivid_fb_ops; dev->fb_info.par = dev; diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c index 0441abe..eef36dd 100644 --- a/drivers/misc/sgi-xp/xpc_uv.c +++ b/drivers/misc/sgi-xp/xpc_uv.c @@ -61,7 +61,7 @@ static struct xpc_heartbeat_uv *xpc_heartbeat_uv; XPC_NOTIFY_MSG_SIZE_UV) #define XPC_NOTIFY_IRQ_NAME "xpc_notify" -static int xpc_mq_node = -1; +static int xpc_mq_node = NUMA_NO_NODE; static struct xpc_gru_mq_uv *xpc_activate_mq_uv; static struct xpc_gru_mq_uv *xpc_notify_mq_uv; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 113b38e..4fae85c 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -6414,7 +6414,7 @@ int ixgbe_setup_tx_resources(struct ixgbe_ring *tx_ring) { struct device *dev = tx_ring->dev; int orig_node = dev_to_node(dev); - int ring_node = -1; + int ring_node = NUMA_NO_NODE; int size; size = sizeof(struct ixgbe_tx_buffer) * tx_ring->count; @@ -6508,7 +6508,7 @@ int ixgbe_setup_rx_resources(struct ixgbe_adapter *adapter, { struct device *dev = rx_ring->dev; int orig_node = dev_to_node(dev); - int ring_node = -1; + int ring_node = NUMA_NO_NODE; int size; size = sizeof(struct ixgbe_rx_buffer) * rx_ring->count; diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c index ee212be..298be9b 100644 --- a/drivers/video/fbdev/mmp/fb/mmpfb.c +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c @@ -519,7 +519,7 @@ static int fb_info_setup(struct fb_info *info, /* Initialise static fb parameters.*/ info->flags = FBINFO_DEFAULT | FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_XPAN | FBINFO_HWACCEL_YPAN; - info->node = -1; + info->node = NUMA_NO_NODE; strcpy(info->fix.id, fbi->name); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.type_aux = 0; diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c index e31340f..7d775de 100644 --- a/drivers/video/fbdev/pxa168fb.c +++ b/drivers/video/fbdev/pxa168fb.c @@ -649,7 +649,7 @@ static int pxa168fb_probe(struct platform_device *pdev) */ info->flags = FBINFO_DEFAULT | FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_XPAN | FBINFO_HWACCEL_YPAN; - info->node = -1; + info->node = NUMA_NO_NODE; strlcpy(info->fix.id, mi->id, 16); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.type_aux = 0; diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c index 696106e..8b0f20c 100644 --- a/drivers/video/fbdev/w100fb.c +++ b/drivers/video/fbdev/w100fb.c @@ -703,7 +703,7 @@ int w100fb_probe(struct platform_device *pdev) info->fbops = &w100fb_ops; info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA | FBINFO_HWACCEL_FILLRECT; - info->node = -1; + info->node = NUMA_NO_NODE; info->screen_base = remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE); info->screen_size = REMAPPED_FB_LEN; diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h index d06e27e..11111f6 100644 --- a/fs/ocfs2/dlm/dlmcommon.h +++ b/fs/ocfs2/dlm/dlmcommon.h @@ -1121,7 +1121,7 @@ static inline void dlm_node_iter_init(unsigned long *map, struct dlm_node_iter *iter) { memcpy(iter->node_map, map, sizeof(iter->node_map)); - iter->curnode = -1; + iter->curnode = NUMA_NO_NODE; } static inline int dlm_node_iter_next(struct dlm_node_iter *iter) diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c index 2acd58b..381a323 100644 --- a/fs/ocfs2/dlm/dlmdomain.c +++ b/fs/ocfs2/dlm/dlmdomain.c @@ -546,7 +546,7 @@ static void dlm_mark_domain_leaving(struct dlm_ctxt *dlm) static void __dlm_print_nodes(struct dlm_ctxt *dlm) { - int node = -1, num = 0; + int node = NUMA_NO_NODE, num = 0; assert_spin_locked(&dlm->spinlock); @@ -613,7 +613,7 @@ static int dlm_send_one_domain_exit(struct dlm_ctxt *dlm, u32 msg_type, static void dlm_begin_exit_domain(struct dlm_ctxt *dlm) { - int node = -1; + int node = NUMA_NO_NODE; /* Support for begin exit domain was added in 1.2 */ if (dlm->dlm_locking_proto.pv_major = 1 && @@ -1407,7 +1407,7 @@ static int dlm_send_join_cancels(struct dlm_ctxt *dlm, } status = 0; - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(node_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node = dlm->node_num) @@ -1547,7 +1547,7 @@ static void dlm_send_join_asserts(struct dlm_ctxt *dlm, int status, node, live; status = 0; - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(node_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node = dlm->node_num) @@ -1631,7 +1631,7 @@ static int dlm_try_to_join_domain(struct dlm_ctxt *dlm) spin_unlock(&dlm->spinlock); - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(ctxt->live_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node = dlm->node_num) diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c index 826f056..e54bbbc 100644 --- a/fs/ocfs2/dlm/dlmmaster.c +++ b/fs/ocfs2/dlm/dlmmaster.c @@ -1183,7 +1183,7 @@ static void dlm_bitmap_diff_iter_init(struct dlm_bitmap_diff_iter *iter, unsigned long p1, p2; int i; - iter->curnode = -1; + iter->curnode = NUMA_NO_NODE; iter->orig_bm = orig_bm; iter->cur_bm = cur_bm; diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index 802636d5..704fa8b 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c @@ -2903,7 +2903,7 @@ static int dlm_send_finalize_reco_message(struct dlm_ctxt *dlm) } if (stage = 1) { /* reset the node_iter back to the top and send finalize2 */ - iter.curnode = -1; + iter.curnode = NUMA_NO_NODE; stage = 2; goto stage2; } diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c index d2fb97b..a673efa 100644 --- a/fs/ocfs2/stack_user.c +++ b/fs/ocfs2/stack_user.c @@ -171,7 +171,7 @@ union ocfs2_control_message { static struct ocfs2_stack_plugin ocfs2_user_plugin; static atomic_t ocfs2_control_opened; -static int ocfs2_control_this_node = -1; +static int ocfs2_control_this_node = NUMA_NO_NODE; static struct ocfs2_protocol_version running_proto; static LIST_HEAD(ocfs2_live_connection_list); @@ -589,7 +589,7 @@ static int ocfs2_control_release(struct inode *inode, struct file *file) * Last valid close clears the node number and resets * the locking protocol version */ - ocfs2_control_this_node = -1; + ocfs2_control_this_node = NUMA_NO_NODE; running_proto.pv_major = 0; running_proto.pv_minor = 0; } @@ -612,7 +612,7 @@ static int ocfs2_control_open(struct inode *inode, struct file *file) p = kzalloc(sizeof(struct ocfs2_control_private), GFP_KERNEL); if (!p) return -ENOMEM; - p->op_this_node = -1; + p->op_this_node = NUMA_NO_NODE; mutex_lock(&ocfs2_control_lock); file->private_data = p; diff --git a/init/init_task.c b/init/init_task.c index 5aebe3b..6641836 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -154,7 +154,7 @@ struct task_struct init_task .vtime.state = VTIME_SYS, #endif #ifdef CONFIG_NUMA_BALANCING - .numa_preferred_nid = -1, + .numa_preferred_nid = NUMA_NO_NODE, .numa_group = NULL, .numa_faults = NULL, #endif diff --git a/kernel/kthread.c b/kernel/kthread.c index 087d18d..77f3d94 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -675,7 +675,7 @@ __kthread_create_worker(int cpu, unsigned int flags, { struct kthread_worker *worker; struct task_struct *task; - int node = -1; + int node = NUMA_NO_NODE; worker = kzalloc(sizeof(*worker), GFP_KERNEL); if (!worker) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ee271bb..d830fa7 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1161,7 +1161,7 @@ void init_numa_balancing(unsigned long clone_flags, struct task_struct *p) /* New address space, reset the preferred nid */ if (!(clone_flags & CLONE_VM)) { - p->numa_preferred_nid = -1; + p->numa_preferred_nid = NUMA_NO_NODE; return; } @@ -1181,13 +1181,13 @@ void init_numa_balancing(unsigned long clone_flags, struct task_struct *p) static void account_numa_enqueue(struct rq *rq, struct task_struct *p) { - rq->nr_numa_running += (p->numa_preferred_nid != -1); + rq->nr_numa_running += (p->numa_preferred_nid != NUMA_NO_NODE); rq->nr_preferred_running += (p->numa_preferred_nid = task_node(p)); } static void account_numa_dequeue(struct rq *rq, struct task_struct *p) { - rq->nr_numa_running -= (p->numa_preferred_nid != -1); + rq->nr_numa_running -= (p->numa_preferred_nid != NUMA_NO_NODE); rq->nr_preferred_running -= (p->numa_preferred_nid = task_node(p)); } @@ -1401,7 +1401,7 @@ bool should_numa_migrate_memory(struct task_struct *p, struct page * page, * two full passes of the "multi-stage node selection" test that is * executed below. */ - if ((p->numa_preferred_nid = -1 || p->numa_scan_seq <= 4) && + if ((p->numa_preferred_nid = NUMA_NO_NODE || p->numa_scan_seq <= 4) && (cpupid_pid_unset(last_cpupid) || cpupid_match_pid(p, last_cpupid))) return true; @@ -1849,7 +1849,7 @@ static void numa_migrate_preferred(struct task_struct *p) unsigned long interval = HZ; /* This task has no NUMA fault statistics yet */ - if (unlikely(p->numa_preferred_nid = -1 || !p->numa_faults)) + if (unlikely(p->numa_preferred_nid = NUMA_NO_NODE || !p->numa_faults)) return; /* Periodically retry migrating the task to the preferred node */ @@ -2096,7 +2096,7 @@ static int preferred_group_nid(struct task_struct *p, int nid) static void task_numa_placement(struct task_struct *p) { - int seq, nid, max_nid = -1; + int seq, nid, max_nid = NUMA_NO_NODE; unsigned long max_faults = 0; unsigned long fault_types[2] = { 0, 0 }; unsigned long total_faults; @@ -2639,7 +2639,8 @@ static void update_scan_period(struct task_struct *p, int new_cpu) * the preferred node. */ if (dst_nid = p->numa_preferred_nid || - (p->numa_preferred_nid != -1 && src_nid != p->numa_preferred_nid)) + (p->numa_preferred_nid != NUMA_NO_NODE && + src_nid != p->numa_preferred_nid)) return; } diff --git a/lib/cpumask.c b/lib/cpumask.c index 8d666ab..a089c3f 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c @@ -206,7 +206,7 @@ unsigned int cpumask_local_spread(unsigned int i, int node) /* Wrap: we always want a cpu. */ i %= num_online_cpus(); - if (node = -1) { + if (node = NUMA_NO_NODE) { for_each_cpu(cpu, cpu_online_mask) if (i-- = 0) return cpu; diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 55478ab..5ccf89e 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1480,7 +1480,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) struct anon_vma *anon_vma = NULL; struct page *page; unsigned long haddr = vmf->address & HPAGE_PMD_MASK; - int page_nid = -1, this_nid = numa_node_id(); + int page_nid = NUMA_NO_NODE, this_nid = numa_node_id(); int target_nid, last_cpupid = -1; bool page_locked; bool migrated = false; @@ -1526,7 +1526,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) */ page_locked = trylock_page(page); target_nid = mpol_misplaced(page, vma, haddr); - if (target_nid = -1) { + if (target_nid = NUMA_NO_NODE) { /* If the page was locked, there are no parallel migrations */ if (page_locked) goto clear_pmdnuma; @@ -1534,7 +1534,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) /* Migration could have started since the pmd_trans_migrating check */ if (!page_locked) { - page_nid = -1; + page_nid = NUMA_NO_NODE; if (!get_page_unless_zero(page)) goto out_unlock; spin_unlock(vmf->ptl); @@ -1556,14 +1556,14 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) if (unlikely(!pmd_same(pmd, *vmf->pmd))) { unlock_page(page); put_page(page); - page_nid = -1; + page_nid = NUMA_NO_NODE; goto out_unlock; } /* Bail if we fail to protect against THP splits for any reason */ if (unlikely(!anon_vma)) { put_page(page); - page_nid = -1; + page_nid = NUMA_NO_NODE; goto clear_pmdnuma; } @@ -1625,7 +1625,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) if (anon_vma) page_unlock_anon_vma_read(anon_vma); - if (page_nid != -1) + if (page_nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, page_nid, HPAGE_PMD_NR, flags); diff --git a/mm/hugetlb.c b/mm/hugetlb.c index c007fb5..b769db7 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -887,7 +887,7 @@ static struct page *dequeue_huge_page_nodemask(struct hstate *h, gfp_t gfp_mask, struct zonelist *zonelist; struct zone *zone; struct zoneref *z; - int node = -1; + int node = NUMA_NO_NODE; zonelist = node_zonelist(nid, gfp_mask); diff --git a/mm/ksm.c b/mm/ksm.c index 5b0894b..d5f8834 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -597,7 +597,7 @@ static struct stable_node *alloc_stable_node_chain(struct stable_node *dup, chain->chain_prune_time = jiffies; chain->rmap_hlist_len = STABLE_NODE_CHAIN; #if defined (CONFIG_DEBUG_VM) && defined(CONFIG_NUMA) - chain->nid = -1; /* debug */ + chain->nid = NUMA_NO_NODE; /* debug */ #endif ksm_stable_node_chains++; diff --git a/mm/memory.c b/mm/memory.c index 4ad2d29..c0e0348 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3564,7 +3564,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) { struct vm_area_struct *vma = vmf->vma; struct page *page = NULL; - int page_nid = -1; + int page_nid = NUMA_NO_NODE; int last_cpupid; int target_nid; bool migrated = false; @@ -3631,7 +3631,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) target_nid = numa_migrate_prep(page, vma, vmf->address, page_nid, &flags); pte_unmap_unlock(vmf->pte, vmf->ptl); - if (target_nid = -1) { + if (target_nid = NUMA_NO_NODE) { put_page(page); goto out; } @@ -3645,7 +3645,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) flags |= TNF_MIGRATE_FAIL; out: - if (page_nid != -1) + if (page_nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, page_nid, 1, flags); return 0; } diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 2b2b3cc..70e02f8 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -688,9 +688,9 @@ static void node_states_check_changes_online(unsigned long nr_pages, { int nid = zone_to_nid(zone); - arg->status_change_nid = -1; - arg->status_change_nid_normal = -1; - arg->status_change_nid_high = -1; + arg->status_change_nid = NUMA_NO_NODE; + arg->status_change_nid_normal = NUMA_NO_NODE; + arg->status_change_nid_high = NUMA_NO_NODE; if (!node_state(nid, N_MEMORY)) arg->status_change_nid = nid; @@ -1484,9 +1484,9 @@ static void node_states_check_changes_offline(unsigned long nr_pages, unsigned long present_pages = 0; enum zone_type zt; - arg->status_change_nid = -1; - arg->status_change_nid_normal = -1; - arg->status_change_nid_high = -1; + arg->status_change_nid = NUMA_NO_NODE; + arg->status_change_nid_normal = NUMA_NO_NODE; + arg->status_change_nid_high = NUMA_NO_NODE; /* * Check whether node_states[N_NORMAL_MEMORY] will be changed. diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 5837a06..e4f8248 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2278,7 +2278,7 @@ int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long unsigned long pgoff; int thiscpu = raw_smp_processor_id(); int thisnid = cpu_to_node(thiscpu); - int polnid = -1; + int polnid = NUMA_NO_NODE; int ret = -1; pol = get_vma_policy(vma, addr); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a919ba5..9d38d9c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5846,7 +5846,7 @@ int __meminit __early_pfn_to_nid(unsigned long pfn, return state->last_nid; nid = memblock_search_pfn_nid(pfn, &start_pfn, &end_pfn); - if (nid != -1) { + if (nid != NUMA_NO_NODE) { state->last_start = start_pfn; state->last_end = end_pfn; state->last_nid = nid; @@ -6607,7 +6607,7 @@ unsigned long __init node_map_pfn_alignment(void) { unsigned long accl_mask = 0, last_end = 0; unsigned long start, end, mask; - int last_nid = -1; + int last_nid = NUMA_NO_NODE; int i, nid; for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, &nid) { diff --git a/mm/page_ext.c b/mm/page_ext.c index ae44f7a..dfb0206 100644 --- a/mm/page_ext.c +++ b/mm/page_ext.c @@ -300,7 +300,7 @@ static int __meminit online_page_ext(unsigned long start_pfn, start = SECTION_ALIGN_DOWN(start_pfn); end = SECTION_ALIGN_UP(start_pfn + nr_pages); - if (nid = -1) { + if (nid = NUMA_NO_NODE) { /* * In this case, "nid" already exists and contains valid memory. * "start_pfn" passed to us is a pfn which is an arg for diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 6ac9198..af3a746 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -3625,7 +3625,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) pkt_dev->svlan_cfi = 0; pkt_dev->svlan_id = 0xffff; pkt_dev->burst = 1; - pkt_dev->node = -1; + pkt_dev->node = NUMA_NO_NODE; err = pktgen_setup_dev(t->net, pkt_dev, ifname); if (err) diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c index 86e1e37..0c56ae2 100644 --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -101,7 +101,7 @@ static inline struct qrtr_sock *qrtr_sk(struct sock *sk) return container_of(sk, struct qrtr_sock, sk); } -static unsigned int qrtr_local_nid = -1; +static unsigned int qrtr_local_nid = NUMA_NO_NODE; /* for node ids */ static RADIX_TREE(qrtr_nodes, GFP_KERNEL); diff --git a/tools/perf/bench/numa.c b/tools/perf/bench/numa.c index 4419551..e0ad5f1 100644 --- a/tools/perf/bench/numa.c +++ b/tools/perf/bench/numa.c @@ -298,7 +298,7 @@ static cpu_set_t bind_to_node(int target_node) CPU_ZERO(&mask); - if (target_node = -1) { + if (target_node = NUMA_NO_NODE) { for (cpu = 0; cpu < g->p.nr_cpus; cpu++) CPU_SET(cpu, &mask); } else { @@ -339,7 +339,7 @@ static void bind_to_memnode(int node) unsigned long nodemask; int ret; - if (node = -1) + if (node = NUMA_NO_NODE) return; BUG_ON(g->p.nr_nodes > (int)sizeof(nodemask)*8); @@ -1363,7 +1363,7 @@ static void init_thread_data(void) int cpu; /* Allow all nodes by default: */ - td->bind_node = -1; + td->bind_node = NUMA_NO_NODE; /* Allow all CPUs by default: */ CPU_ZERO(&td->bind_cpumask); -- 2.7.4 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=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=unavailable 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 D8CD8C43441 for ; Mon, 12 Nov 2018 02:57:18 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (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 0987B208A3 for ; Mon, 12 Nov 2018 02:57:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0987B208A3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 42tb5R5PczzF3Fg for ; Mon, 12 Nov 2018 13:57:15 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: lists.ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=arm.com (client-ip=217.140.101.70; helo=foss.arm.com; envelope-from=anshuman.khandual@arm.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=arm.com Received: from foss.arm.com (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by lists.ozlabs.org (Postfix) with ESMTP id 42tZml5PDhzF3Ld for ; Mon, 12 Nov 2018 13:42:43 +1100 (AEDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5EB7480D; Sun, 11 Nov 2018 18:42:41 -0800 (PST) Received: from p8cg001049571a15.blr.arm.com (p8cg001049571a15.blr.arm.com [10.162.0.72]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 643963F5BD; Sun, 11 Nov 2018 18:42:36 -0800 (PST) From: Anshuman Khandual To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC] mm: Replace all open encodings for NUMA_NO_NODE Date: Mon, 12 Nov 2018 08:11:55 +0530 Message-Id: <1541990515-11670-1-git-send-email-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.7.4 X-Mailman-Approved-At: Mon, 12 Nov 2018 13:54:56 +1100 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-fbdev@vger.kernel.org, linux-ia64@vger.kernel.org, linux-rdma@vger.kernel.org, netdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-block@vger.kernel.org, sparclinux@vger.kernel.org, iommu@lists.linux-foundation.org, intel-wired-lan@lists.osuosl.org, linux-alpha@vger.kernel.org, dmaengine@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, ocfs2-devel@oss.oracle.com, linux-media@vger.kernel.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" At present there are multiple places where invalid node number is encoded as -1. Even though implicitly understood it is always better to have macros in there. Replace these open encodings for an invalid node number with the global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like 'invalid node' from various places redirecting them to a common definition. Signed-off-by: Anshuman Khandual --- Build tested this with multiple cross compiler options like alpha, sparc, arm64, x86, powerpc64le etc with their default config which might not have compiled tested all driver related changes. I will appreciate folks giving this a test in their respective build environment. All these places for replacement were found by running the following grep patterns on the entire kernel code. Please let me know if this might have missed some instances. This might also have replaced some false positives. I will appreciate suggestions, inputs and review. 1. git grep "nid == -1" 2. git grep "node == -1" 3. git grep "nid = -1" 4. git grep "node = -1" arch/alpha/include/asm/topology.h | 2 +- arch/ia64/kernel/numa.c | 2 +- arch/ia64/mm/discontig.c | 6 +++--- arch/ia64/sn/kernel/io_common.c | 2 +- arch/powerpc/include/asm/pci-bridge.h | 2 +- arch/powerpc/kernel/paca.c | 2 +- arch/powerpc/kernel/pci-common.c | 2 +- arch/powerpc/mm/numa.c | 14 +++++++------- arch/powerpc/platforms/powernv/memtrace.c | 4 ++-- arch/sparc/kernel/auxio_32.c | 2 +- arch/sparc/kernel/pci_fire.c | 2 +- arch/sparc/kernel/pci_schizo.c | 2 +- arch/sparc/kernel/pcic.c | 6 +++--- arch/sparc/kernel/psycho_common.c | 2 +- arch/sparc/kernel/sbus.c | 2 +- arch/sparc/mm/init_64.c | 6 +++--- arch/sparc/prom/init_32.c | 2 +- arch/sparc/prom/init_64.c | 4 ++-- arch/sparc/prom/tree_32.c | 12 ++++++------ arch/sparc/prom/tree_64.c | 18 +++++++++--------- arch/x86/include/asm/pci.h | 2 +- arch/x86/kernel/apic/x2apic_uv_x.c | 6 +++--- arch/x86/kernel/smpboot.c | 2 +- arch/x86/platform/olpc/olpc_dt.c | 16 ++++++++-------- drivers/block/mtip32xx/mtip32xx.c | 4 ++-- drivers/dma/dmaengine.c | 3 ++- drivers/infiniband/hw/hfi1/affinity.c | 2 +- drivers/infiniband/hw/hfi1/init.c | 2 +- drivers/iommu/dmar.c | 4 ++-- drivers/iommu/intel-iommu.c | 2 +- drivers/media/pci/ivtv/ivtvfb.c | 2 +- drivers/media/platform/vivid/vivid-osd.c | 2 +- drivers/misc/sgi-xp/xpc_uv.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/video/fbdev/mmp/fb/mmpfb.c | 2 +- drivers/video/fbdev/pxa168fb.c | 2 +- drivers/video/fbdev/w100fb.c | 2 +- fs/ocfs2/dlm/dlmcommon.h | 2 +- fs/ocfs2/dlm/dlmdomain.c | 10 +++++----- fs/ocfs2/dlm/dlmmaster.c | 2 +- fs/ocfs2/dlm/dlmrecovery.c | 2 +- fs/ocfs2/stack_user.c | 6 +++--- init/init_task.c | 2 +- kernel/kthread.c | 2 +- kernel/sched/fair.c | 15 ++++++++------- lib/cpumask.c | 2 +- mm/huge_memory.c | 12 ++++++------ mm/hugetlb.c | 2 +- mm/ksm.c | 2 +- mm/memory.c | 6 +++--- mm/memory_hotplug.c | 12 ++++++------ mm/mempolicy.c | 2 +- mm/page_alloc.c | 4 ++-- mm/page_ext.c | 2 +- net/core/pktgen.c | 2 +- net/qrtr/qrtr.c | 2 +- tools/perf/bench/numa.c | 6 +++--- 57 files changed, 125 insertions(+), 123 deletions(-) diff --git a/arch/alpha/include/asm/topology.h b/arch/alpha/include/asm/topology.h index e6e13a8..f6dc89c 100644 --- a/arch/alpha/include/asm/topology.h +++ b/arch/alpha/include/asm/topology.h @@ -29,7 +29,7 @@ static const struct cpumask *cpumask_of_node(int node) { int cpu; - if (node == -1) + if (node == NUMA_NO_NODE) return cpu_all_mask; cpumask_clear(&node_to_cpumask_map[node]); diff --git a/arch/ia64/kernel/numa.c b/arch/ia64/kernel/numa.c index 92c3762..1315da6 100644 --- a/arch/ia64/kernel/numa.c +++ b/arch/ia64/kernel/numa.c @@ -74,7 +74,7 @@ void __init build_cpu_to_node_map(void) cpumask_clear(&node_to_cpu_mask[node]); for_each_possible_early_cpu(cpu) { - node = -1; + node = NUMA_NO_NODE; for (i = 0; i < NR_CPUS; ++i) if (cpu_physical_id(cpu) == node_cpuid[i].phys_id) { node = node_cpuid[i].nid; diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 8a96578..f9c3675 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c @@ -227,7 +227,7 @@ void __init setup_per_cpu_areas(void) * CPUs are put into groups according to node. Walk cpu_map * and create new groups at node boundaries. */ - prev_node = -1; + prev_node = NUMA_NO_NODE; ai->nr_groups = 0; for (unit = 0; unit < nr_units; unit++) { cpu = cpu_map[unit]; @@ -435,7 +435,7 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize) { void *ptr = NULL; u8 best = 0xff; - int bestnode = -1, node, anynode = 0; + int bestnode = NUMA_NO_NODE, node, anynode = 0; for_each_online_node(node) { if (node_isset(node, memory_less_mask)) @@ -447,7 +447,7 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize) anynode = node; } - if (bestnode == -1) + if (bestnode == NUMA_NO_NODE) bestnode = anynode; ptr = memblock_alloc_try_nid(pernodesize, PERCPU_PAGE_SIZE, diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index 8df13d0..86b3fcb 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c @@ -344,7 +344,7 @@ sn_common_bus_fixup(struct pci_bus *bus, printk(KERN_WARNING "on node %d but only %d nodes online." "Association set to undetermined.\n", controller->node, num_online_nodes()); - controller->node = -1; + controller->node = NUMA_NO_NODE; } } diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 94d4490..25a9e33 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -264,7 +264,7 @@ extern int pcibios_map_io_space(struct pci_bus *bus); #ifdef CONFIG_NUMA #define PHB_SET_NODE(PHB, NODE) ((PHB)->node = (NODE)) #else -#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = -1) +#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = NUMA_NO_NODE) #endif #endif /* CONFIG_PPC64 */ diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c index 913bfca..6a0bd51 100644 --- a/arch/powerpc/kernel/paca.c +++ b/arch/powerpc/kernel/paca.c @@ -36,7 +36,7 @@ static void *__init alloc_paca_data(unsigned long size, unsigned long align, * which will put its paca in the right place. */ if (cpu == boot_cpuid) { - nid = -1; + nid = NUMA_NO_NODE; memblock_set_bottom_up(true); } else { nid = early_cpu_to_node(cpu); diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 88e4f69..14c33a9 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c @@ -132,7 +132,7 @@ struct pci_controller *pcibios_alloc_controller(struct device_node *dev) int nid = of_node_to_nid(dev); if (nid < 0 || !node_online(nid)) - nid = -1; + nid = NUMA_NO_NODE; PHB_SET_NODE(phb, nid); } diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 3a048e9..77808a2 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -215,7 +215,7 @@ static void initialize_distance_lookup_table(int nid, */ static int associativity_to_nid(const __be32 *associativity) { - int nid = -1; + int nid = NUMA_NO_NODE; if (min_common_depth == -1) goto out; @@ -225,7 +225,7 @@ static int associativity_to_nid(const __be32 *associativity) /* POWER4 LPAR uses 0xffff as invalid node */ if (nid == 0xffff || nid >= MAX_NUMNODES) - nid = -1; + nid = NUMA_NO_NODE; if (nid > 0 && of_read_number(associativity, 1) >= distance_ref_points_depth) { @@ -244,7 +244,7 @@ static int associativity_to_nid(const __be32 *associativity) */ static int of_node_to_nid_single(struct device_node *device) { - int nid = -1; + int nid = NUMA_NO_NODE; const __be32 *tmp; tmp = of_get_associativity(device); @@ -256,7 +256,7 @@ static int of_node_to_nid_single(struct device_node *device) /* Walk the device tree upwards, looking for an associativity id */ int of_node_to_nid(struct device_node *device) { - int nid = -1; + int nid = NUMA_NO_NODE; of_node_get(device); while (device) { @@ -454,7 +454,7 @@ static int of_drconf_to_nid_single(struct drmem_lmb *lmb) */ static int numa_setup_cpu(unsigned long lcpu) { - int nid = -1; + int nid = NUMA_NO_NODE; struct device_node *cpu; /* @@ -930,7 +930,7 @@ static int hot_add_drconf_scn_to_nid(unsigned long scn_addr) { struct drmem_lmb *lmb; unsigned long lmb_size; - int nid = -1; + int nid = NUMA_NO_NODE; lmb_size = drmem_lmb_size(); @@ -960,7 +960,7 @@ static int hot_add_drconf_scn_to_nid(unsigned long scn_addr) static int hot_add_node_scn_to_nid(unsigned long scn_addr) { struct device_node *memory; - int nid = -1; + int nid = NUMA_NO_NODE; for_each_node_by_type(memory, "memory") { unsigned long start, size; diff --git a/arch/powerpc/platforms/powernv/memtrace.c b/arch/powerpc/platforms/powernv/memtrace.c index 84d038e..1ce3bfc 100644 --- a/arch/powerpc/platforms/powernv/memtrace.c +++ b/arch/powerpc/platforms/powernv/memtrace.c @@ -223,7 +223,7 @@ static int memtrace_online(void) ent = &memtrace_array[i]; /* We have onlined this chunk previously */ - if (ent->nid == -1) + if (ent->nid == NUMA_NO_NODE) continue; /* Remove from io mappings */ @@ -257,7 +257,7 @@ static int memtrace_online(void) */ debugfs_remove_recursive(ent->dir); pr_info("Added trace memory back to node %d\n", ent->nid); - ent->size = ent->start = ent->nid = -1; + ent->size = ent->start = ent->nid = NUMA_NO_NODE; } if (ret) return ret; diff --git a/arch/sparc/kernel/auxio_32.c b/arch/sparc/kernel/auxio_32.c index a32d588..39f6c59 100644 --- a/arch/sparc/kernel/auxio_32.c +++ b/arch/sparc/kernel/auxio_32.c @@ -120,7 +120,7 @@ void __init auxio_power_probe(void) node = prom_searchsiblings(node, "obio"); node = prom_getchild(node); node = prom_searchsiblings(node, "power"); - if (node == 0 || (s32)node == -1) + if (node == 0 || (s32)node == NUMA_NO_NODE) return; /* Map the power control register. */ diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c index be71ae0..474d3be 100644 --- a/arch/sparc/kernel/pci_fire.c +++ b/arch/sparc/kernel/pci_fire.c @@ -416,7 +416,7 @@ static int pci_fire_pbm_init(struct pci_pbm_info *pbm, struct device_node *dp = op->dev.of_node; int err; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->pci_ops = &sun4u_pci_ops; pbm->config_space_reg_bits = 12; diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c index 934b97c..87bb231 100644 --- a/arch/sparc/kernel/pci_schizo.c +++ b/arch/sparc/kernel/pci_schizo.c @@ -1347,7 +1347,7 @@ static int schizo_pbm_init(struct pci_pbm_info *pbm, pbm->next = pci_pbm_root; pci_pbm_root = pbm; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->pci_ops = &sun4u_pci_ops; pbm->config_space_reg_bits = 8; diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index ee4c9a9..d5fe898 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c @@ -476,7 +476,7 @@ static void pcic_map_pci_device(struct linux_pcic *pcic, unsigned long flags; int j; - if (node == 0 || node == -1) { + if (node == 0 || node == NUMA_NO_NODE) { strcpy(namebuf, "???"); } else { prom_getstring(node, "name", namebuf, 63); namebuf[63] = 0; @@ -535,7 +535,7 @@ pcic_fill_irq(struct linux_pcic *pcic, struct pci_dev *dev, int node) int i, ivec; char namebuf[64]; - if (node == 0 || node == -1) { + if (node == 0 || node == NUMA_NO_NODE) { strcpy(namebuf, "???"); } else { prom_getstring(node, "name", namebuf, sizeof(namebuf)); @@ -625,7 +625,7 @@ void pcibios_fixup_bus(struct pci_bus *bus) list_for_each_entry(dev, &bus->devices, bus_list) { node = pdev_to_pnode(&pcic->pbm, dev); if(node == 0) - node = -1; + node = NUMA_NO_NODE; /* cookies */ pcp = pci_devcookie_alloc(); diff --git a/arch/sparc/kernel/psycho_common.c b/arch/sparc/kernel/psycho_common.c index 81aa91e..dcbf492 100644 --- a/arch/sparc/kernel/psycho_common.c +++ b/arch/sparc/kernel/psycho_common.c @@ -454,7 +454,7 @@ void psycho_pbm_init_common(struct pci_pbm_info *pbm, struct platform_device *op struct device_node *dp = op->dev.of_node; pbm->name = dp->full_name; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->chip_type = chip_type; pbm->chip_version = of_getintprop_default(dp, "version#", 0); pbm->chip_revision = of_getintprop_default(dp, "module-revision#", 0); diff --git a/arch/sparc/kernel/sbus.c b/arch/sparc/kernel/sbus.c index c133dfc..28a4aa9 100644 --- a/arch/sparc/kernel/sbus.c +++ b/arch/sparc/kernel/sbus.c @@ -561,7 +561,7 @@ static void __init sbus_iommu_init(struct platform_device *op) op->dev.archdata.iommu = iommu; op->dev.archdata.stc = strbuf; - op->dev.archdata.numa_node = -1; + op->dev.archdata.numa_node = NUMA_NO_NODE; reg_base = regs + SYSIO_IOMMUREG_BASE; iommu->iommu_control = reg_base + IOMMU_CONTROL; diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index 3c8aac2..cb1bed1 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c @@ -976,13 +976,13 @@ static u64 __init memblock_nid_range_sun4u(u64 start, u64 end, int *nid) { int prev_nid, new_nid; - prev_nid = -1; + prev_nid = NUMA_NO_NODE; for ( ; start < end; start += PAGE_SIZE) { for (new_nid = 0; new_nid < num_node_masks; new_nid++) { struct node_mem_mask *p = &node_masks[new_nid]; if ((start & p->mask) == p->match) { - if (prev_nid == -1) + if (prev_nid == NUMA_NO_NODE) prev_nid = new_nid; break; } @@ -1208,7 +1208,7 @@ int of_node_to_nid(struct device_node *dp) md = mdesc_grab(); count = 0; - nid = -1; + nid = NUMA_NO_NODE; mdesc_for_each_node_by_name(md, grp, "group") { if (!scan_arcs_for_cfg_handle(md, grp, cfg_handle)) { nid = count; diff --git a/arch/sparc/prom/init_32.c b/arch/sparc/prom/init_32.c index d204701..4c6e540 100644 --- a/arch/sparc/prom/init_32.c +++ b/arch/sparc/prom/init_32.c @@ -58,7 +58,7 @@ void __init prom_init(struct linux_romvec *rp) prom_nodeops = romvec->pv_nodeops; prom_root_node = prom_getsibling(0); - if ((prom_root_node == 0) || ((s32)prom_root_node == -1)) + if ((prom_root_node == 0) || ((s32)prom_root_node == NUMA_NO_NODE)) prom_halt(); if((((unsigned long) prom_nodeops) == 0) || diff --git a/arch/sparc/prom/init_64.c b/arch/sparc/prom/init_64.c index 103aa91..85669c0 100644 --- a/arch/sparc/prom/init_64.c +++ b/arch/sparc/prom/init_64.c @@ -36,13 +36,13 @@ void __init prom_init(void *cif_handler) prom_cif_init(cif_handler); prom_chosen_node = prom_finddevice(prom_chosen_path); - if (!prom_chosen_node || (s32)prom_chosen_node == -1) + if (!prom_chosen_node || (s32)prom_chosen_node == NUMA_NO_NODE) prom_halt(); prom_stdout = prom_getint(prom_chosen_node, "stdout"); node = prom_finddevice("/openprom"); - if (!node || (s32)node == -1) + if (!node || (s32)node == NUMA_NO_NODE) prom_halt(); prom_getstring(node, "version", prom_version, sizeof(prom_version)); diff --git a/arch/sparc/prom/tree_32.c b/arch/sparc/prom/tree_32.c index 0fed893..2d0a204 100644 --- a/arch/sparc/prom/tree_32.c +++ b/arch/sparc/prom/tree_32.c @@ -41,11 +41,11 @@ phandle prom_getchild(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = __prom_getchild(node); - if (cnode == 0 || (s32)cnode == -1) + if (cnode == 0 || (s32)cnode == NUMA_NO_NODE) return 0; return cnode; @@ -73,11 +73,11 @@ phandle prom_getsibling(phandle node) { phandle sibnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; sibnode = __prom_getsibling(node); - if (sibnode == 0 || (s32)sibnode == -1) + if (sibnode == 0 || (s32)sibnode == NUMA_NO_NODE) return 0; return sibnode; @@ -220,7 +220,7 @@ static char *__prom_nextprop(phandle node, char * oprop) */ char *prom_nextprop(phandle node, char *oprop, char *buffer) { - if (node == 0 || (s32)node == -1) + if (node == 0 || (s32)node == NUMA_NO_NODE) return ""; return __prom_nextprop(node, oprop); @@ -304,7 +304,7 @@ phandle prom_inst2pkg(int inst) node = (*romvec->pv_v2devops.v2_inst2pkg)(inst); restore_current(); spin_unlock_irqrestore(&prom_lock, flags); - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; return node; } diff --git a/arch/sparc/prom/tree_64.c b/arch/sparc/prom/tree_64.c index 989e799..2b4c515 100644 --- a/arch/sparc/prom/tree_64.c +++ b/arch/sparc/prom/tree_64.c @@ -44,10 +44,10 @@ phandle prom_getchild(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = __prom_getchild(node); - if ((s32)cnode == -1) + if ((s32)cnode == NUMA_NO_NODE) return 0; return cnode; } @@ -57,10 +57,10 @@ inline phandle prom_getparent(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = prom_node_to_node("parent", node); - if ((s32)cnode == -1) + if ((s32)cnode == NUMA_NO_NODE) return 0; return cnode; } @@ -77,10 +77,10 @@ phandle prom_getsibling(phandle node) { phandle sibnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; sibnode = __prom_getsibling(node); - if ((s32)sibnode == -1) + if ((s32)sibnode == NUMA_NO_NODE) return 0; return sibnode; @@ -241,7 +241,7 @@ char *prom_firstprop(phandle node, char *buffer) unsigned long args[7]; *buffer = 0; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return buffer; args[0] = (unsigned long) prom_nextprop_name; @@ -267,7 +267,7 @@ char *prom_nextprop(phandle node, const char *oprop, char *buffer) unsigned long args[7]; char buf[32]; - if ((s32)node == -1) { + if ((s32)node == NUMA_NO_NODE) { *buffer = 0; return buffer; } @@ -370,7 +370,7 @@ inline phandle prom_inst2pkg(int inst) p1275_cmd_direct(args); node = (int) args[4]; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; return node; } diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index 6629636..dee2a31 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -141,7 +141,7 @@ cpumask_of_pcibus(const struct pci_bus *bus) int node; node = __pcibus_to_node(bus); - return (node == -1) ? cpu_online_mask : + return (node == NUMA_NO_NODE) ? cpu_online_mask : cpumask_of_node(node); } #endif diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index 391f358..3c3378a 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c @@ -1390,7 +1390,7 @@ static void __init build_socket_tables(void) } /* Set socket -> node values: */ - lnid = -1; + lnid = NUMA_NO_NODE; for_each_present_cpu(cpu) { int nid = cpu_to_node(cpu); int apicid, sockid; @@ -1521,7 +1521,7 @@ static void __init uv_system_init_hub(void) new_hub->pnode = 0xffff; new_hub->numa_blade_id = uv_node_to_blade_id(nodeid); - new_hub->memory_nid = -1; + new_hub->memory_nid = NUMA_NO_NODE; new_hub->nr_possible_cpus = 0; new_hub->nr_online_cpus = 0; } @@ -1538,7 +1538,7 @@ static void __init uv_system_init_hub(void) uv_cpu_info_per(cpu)->p_uv_hub_info = uv_hub_info_list(nodeid); uv_cpu_info_per(cpu)->blade_cpu_id = uv_cpu_hub_info(cpu)->nr_possible_cpus++; - if (uv_cpu_hub_info(cpu)->memory_nid == -1) + if (uv_cpu_hub_info(cpu)->memory_nid == NUMA_NO_NODE) uv_cpu_hub_info(cpu)->memory_nid = cpu_to_node(cpu); /* Init memoryless node: */ diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index a9134d1..c1d45dc 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -841,7 +841,7 @@ wakeup_secondary_cpu_via_init(int phys_apicid, unsigned long start_eip) /* reduce the number of lines printed when booting a large cpu count system */ static void announce_cpu(int cpu, int apicid) { - static int current_node = -1; + static int current_node = NUMA_NO_NODE; int node = early_cpu_to_node(cpu); static int width, node_width; diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c index 24d2175..7098127 100644 --- a/arch/x86/platform/olpc/olpc_dt.c +++ b/arch/x86/platform/olpc/olpc_dt.c @@ -29,10 +29,10 @@ static phandle __init olpc_dt_getsibling(phandle node) const void *args[] = { (void *)node }; void *res[] = { &node }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; - if (olpc_ofw("peer", args, res) || (s32)node == -1) + if (olpc_ofw("peer", args, res) || (s32)node == NUMA_NO_NODE) return 0; return node; @@ -43,10 +43,10 @@ static phandle __init olpc_dt_getchild(phandle node) const void *args[] = { (void *)node }; void *res[] = { &node }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; - if (olpc_ofw("child", args, res) || (s32)node == -1) { + if (olpc_ofw("child", args, res) || (s32)node == NUMA_NO_NODE) { pr_err("PROM: %s: fetching child failed!\n", __func__); return 0; } @@ -60,7 +60,7 @@ static int __init olpc_dt_getproplen(phandle node, const char *prop) int len; void *res[] = { &len }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("getproplen", args, res)) { @@ -100,7 +100,7 @@ static int __init olpc_dt_nextprop(phandle node, char *prev, char *buf) buf[0] = '\0'; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("nextprop", args, res) || success != 1) @@ -115,7 +115,7 @@ static int __init olpc_dt_pkg2path(phandle node, char *buf, const void *args[] = { (void *)node, buf, (void *)buflen }; void *res[] = { len }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("package-to-path", args, res) || *len < 1) @@ -176,7 +176,7 @@ static phandle __init olpc_dt_finddevice(const char *path) return 0; } - if ((s32) node == -1) + if ((s32) node == NUMA_NO_NODE) return 0; return node; diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c index a7daa8a..b889452 100644 --- a/drivers/block/mtip32xx/mtip32xx.c +++ b/drivers/block/mtip32xx/mtip32xx.c @@ -4084,9 +4084,9 @@ static int get_least_used_cpu_on_node(int node) /* Helper for selecting a node in round robin mode */ static inline int mtip_get_next_rr_node(void) { - static int next_node = -1; + static int next_node = NUMA_NO_NODE; - if (next_node == -1) { + if (next_node == NUMA_NO_NODE) { next_node = first_online_node; return next_node; } diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index f1a441ab..1aeefc7 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -386,7 +386,8 @@ EXPORT_SYMBOL(dma_issue_pending_all); static bool dma_chan_is_local(struct dma_chan *chan, int cpu) { int node = dev_to_node(chan->device->dev); - return node == -1 || cpumask_test_cpu(cpu, cpumask_of_node(node)); + return node == NUMA_NO_NODE || + cpumask_test_cpu(cpu, cpumask_of_node(node)); } /** diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c index 2baf38c..3e8acb8 100644 --- a/drivers/infiniband/hw/hfi1/affinity.c +++ b/drivers/infiniband/hw/hfi1/affinity.c @@ -777,7 +777,7 @@ void hfi1_dev_affinity_clean_up(struct hfi1_devdata *dd) _dev_comp_vect_cpu_mask_clean_up(dd, entry); unlock: mutex_unlock(&node_affinity.lock); - dd->node = -1; + dd->node = NUMA_NO_NODE; } /* diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c index 0904490..0bf4577 100644 --- a/drivers/infiniband/hw/hfi1/init.c +++ b/drivers/infiniband/hw/hfi1/init.c @@ -1303,7 +1303,7 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev, dd->unit = ret; list_add(&dd->list, &hfi1_dev_list); } - dd->node = -1; + dd->node = NUMA_NO_NODE; spin_unlock_irqrestore(&hfi1_devs_lock, flags); idr_preload_end(); diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c index d9c748b..86a9c19 100644 --- a/drivers/iommu/dmar.c +++ b/drivers/iommu/dmar.c @@ -477,7 +477,7 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg) int node = acpi_map_pxm_to_node(rhsa->proximity_domain); if (!node_online(node)) - node = -1; + node = NUMA_NO_NODE; drhd->iommu->node = node; return 0; } @@ -1062,7 +1062,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) iommu->msagaw = msagaw; iommu->segment = drhd->segment; - iommu->node = -1; + iommu->node = NUMA_NO_NODE; ver = readl(iommu->reg + DMAR_VER_REG); pr_info("%s: reg_base_addr %llx ver %d:%d cap %llx ecap %llx\n", diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index f3ccf02..9f6fb13 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -1772,7 +1772,7 @@ static struct dmar_domain *alloc_domain(int flags) return NULL; memset(domain, 0, sizeof(*domain)); - domain->nid = -1; + domain->nid = NUMA_NO_NODE; domain->flags = flags; domain->has_iotlb_device = false; INIT_LIST_HEAD(&domain->devices); diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c index 3e02de0..81bd41c 100644 --- a/drivers/media/pci/ivtv/ivtvfb.c +++ b/drivers/media/pci/ivtv/ivtvfb.c @@ -1054,7 +1054,7 @@ static int ivtvfb_init_vidmode(struct ivtv *itv) /* Generate valid fb_info */ - oi->ivtvfb_info.node = -1; + oi->ivtvfb_info.node = NUMA_NO_NODE; oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT; oi->ivtvfb_info.fbops = &ivtvfb_ops; oi->ivtvfb_info.par = itv; diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c index 1a89593..56a2d41 100644 --- a/drivers/media/platform/vivid/vivid-osd.c +++ b/drivers/media/platform/vivid/vivid-osd.c @@ -309,7 +309,7 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev) /* Generate valid fb_info */ - dev->fb_info.node = -1; + dev->fb_info.node = NUMA_NO_NODE; dev->fb_info.flags = FBINFO_FLAG_DEFAULT; dev->fb_info.fbops = &vivid_fb_ops; dev->fb_info.par = dev; diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c index 0441abe..eef36dd 100644 --- a/drivers/misc/sgi-xp/xpc_uv.c +++ b/drivers/misc/sgi-xp/xpc_uv.c @@ -61,7 +61,7 @@ static struct xpc_heartbeat_uv *xpc_heartbeat_uv; XPC_NOTIFY_MSG_SIZE_UV) #define XPC_NOTIFY_IRQ_NAME "xpc_notify" -static int xpc_mq_node = -1; +static int xpc_mq_node = NUMA_NO_NODE; static struct xpc_gru_mq_uv *xpc_activate_mq_uv; static struct xpc_gru_mq_uv *xpc_notify_mq_uv; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 113b38e..4fae85c 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -6414,7 +6414,7 @@ int ixgbe_setup_tx_resources(struct ixgbe_ring *tx_ring) { struct device *dev = tx_ring->dev; int orig_node = dev_to_node(dev); - int ring_node = -1; + int ring_node = NUMA_NO_NODE; int size; size = sizeof(struct ixgbe_tx_buffer) * tx_ring->count; @@ -6508,7 +6508,7 @@ int ixgbe_setup_rx_resources(struct ixgbe_adapter *adapter, { struct device *dev = rx_ring->dev; int orig_node = dev_to_node(dev); - int ring_node = -1; + int ring_node = NUMA_NO_NODE; int size; size = sizeof(struct ixgbe_rx_buffer) * rx_ring->count; diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c index ee212be..298be9b 100644 --- a/drivers/video/fbdev/mmp/fb/mmpfb.c +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c @@ -519,7 +519,7 @@ static int fb_info_setup(struct fb_info *info, /* Initialise static fb parameters.*/ info->flags = FBINFO_DEFAULT | FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_XPAN | FBINFO_HWACCEL_YPAN; - info->node = -1; + info->node = NUMA_NO_NODE; strcpy(info->fix.id, fbi->name); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.type_aux = 0; diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c index e31340f..7d775de 100644 --- a/drivers/video/fbdev/pxa168fb.c +++ b/drivers/video/fbdev/pxa168fb.c @@ -649,7 +649,7 @@ static int pxa168fb_probe(struct platform_device *pdev) */ info->flags = FBINFO_DEFAULT | FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_XPAN | FBINFO_HWACCEL_YPAN; - info->node = -1; + info->node = NUMA_NO_NODE; strlcpy(info->fix.id, mi->id, 16); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.type_aux = 0; diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c index 696106e..8b0f20c 100644 --- a/drivers/video/fbdev/w100fb.c +++ b/drivers/video/fbdev/w100fb.c @@ -703,7 +703,7 @@ int w100fb_probe(struct platform_device *pdev) info->fbops = &w100fb_ops; info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA | FBINFO_HWACCEL_FILLRECT; - info->node = -1; + info->node = NUMA_NO_NODE; info->screen_base = remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE); info->screen_size = REMAPPED_FB_LEN; diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h index d06e27e..11111f6 100644 --- a/fs/ocfs2/dlm/dlmcommon.h +++ b/fs/ocfs2/dlm/dlmcommon.h @@ -1121,7 +1121,7 @@ static inline void dlm_node_iter_init(unsigned long *map, struct dlm_node_iter *iter) { memcpy(iter->node_map, map, sizeof(iter->node_map)); - iter->curnode = -1; + iter->curnode = NUMA_NO_NODE; } static inline int dlm_node_iter_next(struct dlm_node_iter *iter) diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c index 2acd58b..381a323 100644 --- a/fs/ocfs2/dlm/dlmdomain.c +++ b/fs/ocfs2/dlm/dlmdomain.c @@ -546,7 +546,7 @@ static void dlm_mark_domain_leaving(struct dlm_ctxt *dlm) static void __dlm_print_nodes(struct dlm_ctxt *dlm) { - int node = -1, num = 0; + int node = NUMA_NO_NODE, num = 0; assert_spin_locked(&dlm->spinlock); @@ -613,7 +613,7 @@ static int dlm_send_one_domain_exit(struct dlm_ctxt *dlm, u32 msg_type, static void dlm_begin_exit_domain(struct dlm_ctxt *dlm) { - int node = -1; + int node = NUMA_NO_NODE; /* Support for begin exit domain was added in 1.2 */ if (dlm->dlm_locking_proto.pv_major == 1 && @@ -1407,7 +1407,7 @@ static int dlm_send_join_cancels(struct dlm_ctxt *dlm, } status = 0; - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(node_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) @@ -1547,7 +1547,7 @@ static void dlm_send_join_asserts(struct dlm_ctxt *dlm, int status, node, live; status = 0; - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(node_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) @@ -1631,7 +1631,7 @@ static int dlm_try_to_join_domain(struct dlm_ctxt *dlm) spin_unlock(&dlm->spinlock); - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(ctxt->live_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c index 826f056..e54bbbc 100644 --- a/fs/ocfs2/dlm/dlmmaster.c +++ b/fs/ocfs2/dlm/dlmmaster.c @@ -1183,7 +1183,7 @@ static void dlm_bitmap_diff_iter_init(struct dlm_bitmap_diff_iter *iter, unsigned long p1, p2; int i; - iter->curnode = -1; + iter->curnode = NUMA_NO_NODE; iter->orig_bm = orig_bm; iter->cur_bm = cur_bm; diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index 802636d5..704fa8b 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c @@ -2903,7 +2903,7 @@ static int dlm_send_finalize_reco_message(struct dlm_ctxt *dlm) } if (stage == 1) { /* reset the node_iter back to the top and send finalize2 */ - iter.curnode = -1; + iter.curnode = NUMA_NO_NODE; stage = 2; goto stage2; } diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c index d2fb97b..a673efa 100644 --- a/fs/ocfs2/stack_user.c +++ b/fs/ocfs2/stack_user.c @@ -171,7 +171,7 @@ union ocfs2_control_message { static struct ocfs2_stack_plugin ocfs2_user_plugin; static atomic_t ocfs2_control_opened; -static int ocfs2_control_this_node = -1; +static int ocfs2_control_this_node = NUMA_NO_NODE; static struct ocfs2_protocol_version running_proto; static LIST_HEAD(ocfs2_live_connection_list); @@ -589,7 +589,7 @@ static int ocfs2_control_release(struct inode *inode, struct file *file) * Last valid close clears the node number and resets * the locking protocol version */ - ocfs2_control_this_node = -1; + ocfs2_control_this_node = NUMA_NO_NODE; running_proto.pv_major = 0; running_proto.pv_minor = 0; } @@ -612,7 +612,7 @@ static int ocfs2_control_open(struct inode *inode, struct file *file) p = kzalloc(sizeof(struct ocfs2_control_private), GFP_KERNEL); if (!p) return -ENOMEM; - p->op_this_node = -1; + p->op_this_node = NUMA_NO_NODE; mutex_lock(&ocfs2_control_lock); file->private_data = p; diff --git a/init/init_task.c b/init/init_task.c index 5aebe3b..6641836 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -154,7 +154,7 @@ struct task_struct init_task .vtime.state = VTIME_SYS, #endif #ifdef CONFIG_NUMA_BALANCING - .numa_preferred_nid = -1, + .numa_preferred_nid = NUMA_NO_NODE, .numa_group = NULL, .numa_faults = NULL, #endif diff --git a/kernel/kthread.c b/kernel/kthread.c index 087d18d..77f3d94 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -675,7 +675,7 @@ __kthread_create_worker(int cpu, unsigned int flags, { struct kthread_worker *worker; struct task_struct *task; - int node = -1; + int node = NUMA_NO_NODE; worker = kzalloc(sizeof(*worker), GFP_KERNEL); if (!worker) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ee271bb..d830fa7 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1161,7 +1161,7 @@ void init_numa_balancing(unsigned long clone_flags, struct task_struct *p) /* New address space, reset the preferred nid */ if (!(clone_flags & CLONE_VM)) { - p->numa_preferred_nid = -1; + p->numa_preferred_nid = NUMA_NO_NODE; return; } @@ -1181,13 +1181,13 @@ void init_numa_balancing(unsigned long clone_flags, struct task_struct *p) static void account_numa_enqueue(struct rq *rq, struct task_struct *p) { - rq->nr_numa_running += (p->numa_preferred_nid != -1); + rq->nr_numa_running += (p->numa_preferred_nid != NUMA_NO_NODE); rq->nr_preferred_running += (p->numa_preferred_nid == task_node(p)); } static void account_numa_dequeue(struct rq *rq, struct task_struct *p) { - rq->nr_numa_running -= (p->numa_preferred_nid != -1); + rq->nr_numa_running -= (p->numa_preferred_nid != NUMA_NO_NODE); rq->nr_preferred_running -= (p->numa_preferred_nid == task_node(p)); } @@ -1401,7 +1401,7 @@ bool should_numa_migrate_memory(struct task_struct *p, struct page * page, * two full passes of the "multi-stage node selection" test that is * executed below. */ - if ((p->numa_preferred_nid == -1 || p->numa_scan_seq <= 4) && + if ((p->numa_preferred_nid == NUMA_NO_NODE || p->numa_scan_seq <= 4) && (cpupid_pid_unset(last_cpupid) || cpupid_match_pid(p, last_cpupid))) return true; @@ -1849,7 +1849,7 @@ static void numa_migrate_preferred(struct task_struct *p) unsigned long interval = HZ; /* This task has no NUMA fault statistics yet */ - if (unlikely(p->numa_preferred_nid == -1 || !p->numa_faults)) + if (unlikely(p->numa_preferred_nid == NUMA_NO_NODE || !p->numa_faults)) return; /* Periodically retry migrating the task to the preferred node */ @@ -2096,7 +2096,7 @@ static int preferred_group_nid(struct task_struct *p, int nid) static void task_numa_placement(struct task_struct *p) { - int seq, nid, max_nid = -1; + int seq, nid, max_nid = NUMA_NO_NODE; unsigned long max_faults = 0; unsigned long fault_types[2] = { 0, 0 }; unsigned long total_faults; @@ -2639,7 +2639,8 @@ static void update_scan_period(struct task_struct *p, int new_cpu) * the preferred node. */ if (dst_nid == p->numa_preferred_nid || - (p->numa_preferred_nid != -1 && src_nid != p->numa_preferred_nid)) + (p->numa_preferred_nid != NUMA_NO_NODE && + src_nid != p->numa_preferred_nid)) return; } diff --git a/lib/cpumask.c b/lib/cpumask.c index 8d666ab..a089c3f 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c @@ -206,7 +206,7 @@ unsigned int cpumask_local_spread(unsigned int i, int node) /* Wrap: we always want a cpu. */ i %= num_online_cpus(); - if (node == -1) { + if (node == NUMA_NO_NODE) { for_each_cpu(cpu, cpu_online_mask) if (i-- == 0) return cpu; diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 55478ab..5ccf89e 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1480,7 +1480,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) struct anon_vma *anon_vma = NULL; struct page *page; unsigned long haddr = vmf->address & HPAGE_PMD_MASK; - int page_nid = -1, this_nid = numa_node_id(); + int page_nid = NUMA_NO_NODE, this_nid = numa_node_id(); int target_nid, last_cpupid = -1; bool page_locked; bool migrated = false; @@ -1526,7 +1526,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) */ page_locked = trylock_page(page); target_nid = mpol_misplaced(page, vma, haddr); - if (target_nid == -1) { + if (target_nid == NUMA_NO_NODE) { /* If the page was locked, there are no parallel migrations */ if (page_locked) goto clear_pmdnuma; @@ -1534,7 +1534,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) /* Migration could have started since the pmd_trans_migrating check */ if (!page_locked) { - page_nid = -1; + page_nid = NUMA_NO_NODE; if (!get_page_unless_zero(page)) goto out_unlock; spin_unlock(vmf->ptl); @@ -1556,14 +1556,14 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) if (unlikely(!pmd_same(pmd, *vmf->pmd))) { unlock_page(page); put_page(page); - page_nid = -1; + page_nid = NUMA_NO_NODE; goto out_unlock; } /* Bail if we fail to protect against THP splits for any reason */ if (unlikely(!anon_vma)) { put_page(page); - page_nid = -1; + page_nid = NUMA_NO_NODE; goto clear_pmdnuma; } @@ -1625,7 +1625,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) if (anon_vma) page_unlock_anon_vma_read(anon_vma); - if (page_nid != -1) + if (page_nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, page_nid, HPAGE_PMD_NR, flags); diff --git a/mm/hugetlb.c b/mm/hugetlb.c index c007fb5..b769db7 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -887,7 +887,7 @@ static struct page *dequeue_huge_page_nodemask(struct hstate *h, gfp_t gfp_mask, struct zonelist *zonelist; struct zone *zone; struct zoneref *z; - int node = -1; + int node = NUMA_NO_NODE; zonelist = node_zonelist(nid, gfp_mask); diff --git a/mm/ksm.c b/mm/ksm.c index 5b0894b..d5f8834 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -597,7 +597,7 @@ static struct stable_node *alloc_stable_node_chain(struct stable_node *dup, chain->chain_prune_time = jiffies; chain->rmap_hlist_len = STABLE_NODE_CHAIN; #if defined (CONFIG_DEBUG_VM) && defined(CONFIG_NUMA) - chain->nid = -1; /* debug */ + chain->nid = NUMA_NO_NODE; /* debug */ #endif ksm_stable_node_chains++; diff --git a/mm/memory.c b/mm/memory.c index 4ad2d29..c0e0348 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3564,7 +3564,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) { struct vm_area_struct *vma = vmf->vma; struct page *page = NULL; - int page_nid = -1; + int page_nid = NUMA_NO_NODE; int last_cpupid; int target_nid; bool migrated = false; @@ -3631,7 +3631,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) target_nid = numa_migrate_prep(page, vma, vmf->address, page_nid, &flags); pte_unmap_unlock(vmf->pte, vmf->ptl); - if (target_nid == -1) { + if (target_nid == NUMA_NO_NODE) { put_page(page); goto out; } @@ -3645,7 +3645,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) flags |= TNF_MIGRATE_FAIL; out: - if (page_nid != -1) + if (page_nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, page_nid, 1, flags); return 0; } diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 2b2b3cc..70e02f8 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -688,9 +688,9 @@ static void node_states_check_changes_online(unsigned long nr_pages, { int nid = zone_to_nid(zone); - arg->status_change_nid = -1; - arg->status_change_nid_normal = -1; - arg->status_change_nid_high = -1; + arg->status_change_nid = NUMA_NO_NODE; + arg->status_change_nid_normal = NUMA_NO_NODE; + arg->status_change_nid_high = NUMA_NO_NODE; if (!node_state(nid, N_MEMORY)) arg->status_change_nid = nid; @@ -1484,9 +1484,9 @@ static void node_states_check_changes_offline(unsigned long nr_pages, unsigned long present_pages = 0; enum zone_type zt; - arg->status_change_nid = -1; - arg->status_change_nid_normal = -1; - arg->status_change_nid_high = -1; + arg->status_change_nid = NUMA_NO_NODE; + arg->status_change_nid_normal = NUMA_NO_NODE; + arg->status_change_nid_high = NUMA_NO_NODE; /* * Check whether node_states[N_NORMAL_MEMORY] will be changed. diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 5837a06..e4f8248 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2278,7 +2278,7 @@ int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long unsigned long pgoff; int thiscpu = raw_smp_processor_id(); int thisnid = cpu_to_node(thiscpu); - int polnid = -1; + int polnid = NUMA_NO_NODE; int ret = -1; pol = get_vma_policy(vma, addr); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a919ba5..9d38d9c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5846,7 +5846,7 @@ int __meminit __early_pfn_to_nid(unsigned long pfn, return state->last_nid; nid = memblock_search_pfn_nid(pfn, &start_pfn, &end_pfn); - if (nid != -1) { + if (nid != NUMA_NO_NODE) { state->last_start = start_pfn; state->last_end = end_pfn; state->last_nid = nid; @@ -6607,7 +6607,7 @@ unsigned long __init node_map_pfn_alignment(void) { unsigned long accl_mask = 0, last_end = 0; unsigned long start, end, mask; - int last_nid = -1; + int last_nid = NUMA_NO_NODE; int i, nid; for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, &nid) { diff --git a/mm/page_ext.c b/mm/page_ext.c index ae44f7a..dfb0206 100644 --- a/mm/page_ext.c +++ b/mm/page_ext.c @@ -300,7 +300,7 @@ static int __meminit online_page_ext(unsigned long start_pfn, start = SECTION_ALIGN_DOWN(start_pfn); end = SECTION_ALIGN_UP(start_pfn + nr_pages); - if (nid == -1) { + if (nid == NUMA_NO_NODE) { /* * In this case, "nid" already exists and contains valid memory. * "start_pfn" passed to us is a pfn which is an arg for diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 6ac9198..af3a746 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -3625,7 +3625,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) pkt_dev->svlan_cfi = 0; pkt_dev->svlan_id = 0xffff; pkt_dev->burst = 1; - pkt_dev->node = -1; + pkt_dev->node = NUMA_NO_NODE; err = pktgen_setup_dev(t->net, pkt_dev, ifname); if (err) diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c index 86e1e37..0c56ae2 100644 --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -101,7 +101,7 @@ static inline struct qrtr_sock *qrtr_sk(struct sock *sk) return container_of(sk, struct qrtr_sock, sk); } -static unsigned int qrtr_local_nid = -1; +static unsigned int qrtr_local_nid = NUMA_NO_NODE; /* for node ids */ static RADIX_TREE(qrtr_nodes, GFP_KERNEL); diff --git a/tools/perf/bench/numa.c b/tools/perf/bench/numa.c index 4419551..e0ad5f1 100644 --- a/tools/perf/bench/numa.c +++ b/tools/perf/bench/numa.c @@ -298,7 +298,7 @@ static cpu_set_t bind_to_node(int target_node) CPU_ZERO(&mask); - if (target_node == -1) { + if (target_node == NUMA_NO_NODE) { for (cpu = 0; cpu < g->p.nr_cpus; cpu++) CPU_SET(cpu, &mask); } else { @@ -339,7 +339,7 @@ static void bind_to_memnode(int node) unsigned long nodemask; int ret; - if (node == -1) + if (node == NUMA_NO_NODE) return; BUG_ON(g->p.nr_nodes > (int)sizeof(nodemask)*8); @@ -1363,7 +1363,7 @@ static void init_thread_data(void) int cpu; /* Allow all nodes by default: */ - td->bind_node = -1; + td->bind_node = NUMA_NO_NODE; /* Allow all CPUs by default: */ CPU_ZERO(&td->bind_cpumask); -- 2.7.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anshuman Khandual Date: Mon, 12 Nov 2018 08:11:55 +0530 Subject: [Intel-wired-lan] [RFC] mm: Replace all open encodings for NUMA_NO_NODE Message-ID: <1541990515-11670-1-git-send-email-anshuman.khandual@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: intel-wired-lan@osuosl.org List-ID: At present there are multiple places where invalid node number is encoded as -1. Even though implicitly understood it is always better to have macros in there. Replace these open encodings for an invalid node number with the global macro NUMA_NO_NODE. This helps remove NUMA related assumptions like 'invalid node' from various places redirecting them to a common definition. Signed-off-by: Anshuman Khandual --- Build tested this with multiple cross compiler options like alpha, sparc, arm64, x86, powerpc64le etc with their default config which might not have compiled tested all driver related changes. I will appreciate folks giving this a test in their respective build environment. All these places for replacement were found by running the following grep patterns on the entire kernel code. Please let me know if this might have missed some instances. This might also have replaced some false positives. I will appreciate suggestions, inputs and review. 1. git grep "nid == -1" 2. git grep "node == -1" 3. git grep "nid = -1" 4. git grep "node = -1" arch/alpha/include/asm/topology.h | 2 +- arch/ia64/kernel/numa.c | 2 +- arch/ia64/mm/discontig.c | 6 +++--- arch/ia64/sn/kernel/io_common.c | 2 +- arch/powerpc/include/asm/pci-bridge.h | 2 +- arch/powerpc/kernel/paca.c | 2 +- arch/powerpc/kernel/pci-common.c | 2 +- arch/powerpc/mm/numa.c | 14 +++++++------- arch/powerpc/platforms/powernv/memtrace.c | 4 ++-- arch/sparc/kernel/auxio_32.c | 2 +- arch/sparc/kernel/pci_fire.c | 2 +- arch/sparc/kernel/pci_schizo.c | 2 +- arch/sparc/kernel/pcic.c | 6 +++--- arch/sparc/kernel/psycho_common.c | 2 +- arch/sparc/kernel/sbus.c | 2 +- arch/sparc/mm/init_64.c | 6 +++--- arch/sparc/prom/init_32.c | 2 +- arch/sparc/prom/init_64.c | 4 ++-- arch/sparc/prom/tree_32.c | 12 ++++++------ arch/sparc/prom/tree_64.c | 18 +++++++++--------- arch/x86/include/asm/pci.h | 2 +- arch/x86/kernel/apic/x2apic_uv_x.c | 6 +++--- arch/x86/kernel/smpboot.c | 2 +- arch/x86/platform/olpc/olpc_dt.c | 16 ++++++++-------- drivers/block/mtip32xx/mtip32xx.c | 4 ++-- drivers/dma/dmaengine.c | 3 ++- drivers/infiniband/hw/hfi1/affinity.c | 2 +- drivers/infiniband/hw/hfi1/init.c | 2 +- drivers/iommu/dmar.c | 4 ++-- drivers/iommu/intel-iommu.c | 2 +- drivers/media/pci/ivtv/ivtvfb.c | 2 +- drivers/media/platform/vivid/vivid-osd.c | 2 +- drivers/misc/sgi-xp/xpc_uv.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 4 ++-- drivers/video/fbdev/mmp/fb/mmpfb.c | 2 +- drivers/video/fbdev/pxa168fb.c | 2 +- drivers/video/fbdev/w100fb.c | 2 +- fs/ocfs2/dlm/dlmcommon.h | 2 +- fs/ocfs2/dlm/dlmdomain.c | 10 +++++----- fs/ocfs2/dlm/dlmmaster.c | 2 +- fs/ocfs2/dlm/dlmrecovery.c | 2 +- fs/ocfs2/stack_user.c | 6 +++--- init/init_task.c | 2 +- kernel/kthread.c | 2 +- kernel/sched/fair.c | 15 ++++++++------- lib/cpumask.c | 2 +- mm/huge_memory.c | 12 ++++++------ mm/hugetlb.c | 2 +- mm/ksm.c | 2 +- mm/memory.c | 6 +++--- mm/memory_hotplug.c | 12 ++++++------ mm/mempolicy.c | 2 +- mm/page_alloc.c | 4 ++-- mm/page_ext.c | 2 +- net/core/pktgen.c | 2 +- net/qrtr/qrtr.c | 2 +- tools/perf/bench/numa.c | 6 +++--- 57 files changed, 125 insertions(+), 123 deletions(-) diff --git a/arch/alpha/include/asm/topology.h b/arch/alpha/include/asm/topology.h index e6e13a8..f6dc89c 100644 --- a/arch/alpha/include/asm/topology.h +++ b/arch/alpha/include/asm/topology.h @@ -29,7 +29,7 @@ static const struct cpumask *cpumask_of_node(int node) { int cpu; - if (node == -1) + if (node == NUMA_NO_NODE) return cpu_all_mask; cpumask_clear(&node_to_cpumask_map[node]); diff --git a/arch/ia64/kernel/numa.c b/arch/ia64/kernel/numa.c index 92c3762..1315da6 100644 --- a/arch/ia64/kernel/numa.c +++ b/arch/ia64/kernel/numa.c @@ -74,7 +74,7 @@ void __init build_cpu_to_node_map(void) cpumask_clear(&node_to_cpu_mask[node]); for_each_possible_early_cpu(cpu) { - node = -1; + node = NUMA_NO_NODE; for (i = 0; i < NR_CPUS; ++i) if (cpu_physical_id(cpu) == node_cpuid[i].phys_id) { node = node_cpuid[i].nid; diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 8a96578..f9c3675 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c @@ -227,7 +227,7 @@ void __init setup_per_cpu_areas(void) * CPUs are put into groups according to node. Walk cpu_map * and create new groups@node boundaries. */ - prev_node = -1; + prev_node = NUMA_NO_NODE; ai->nr_groups = 0; for (unit = 0; unit < nr_units; unit++) { cpu = cpu_map[unit]; @@ -435,7 +435,7 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize) { void *ptr = NULL; u8 best = 0xff; - int bestnode = -1, node, anynode = 0; + int bestnode = NUMA_NO_NODE, node, anynode = 0; for_each_online_node(node) { if (node_isset(node, memory_less_mask)) @@ -447,7 +447,7 @@ static void __init *memory_less_node_alloc(int nid, unsigned long pernodesize) anynode = node; } - if (bestnode == -1) + if (bestnode == NUMA_NO_NODE) bestnode = anynode; ptr = memblock_alloc_try_nid(pernodesize, PERCPU_PAGE_SIZE, diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index 8df13d0..86b3fcb 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c @@ -344,7 +344,7 @@ sn_common_bus_fixup(struct pci_bus *bus, printk(KERN_WARNING "on node %d but only %d nodes online." "Association set to undetermined.\n", controller->node, num_online_nodes()); - controller->node = -1; + controller->node = NUMA_NO_NODE; } } diff --git a/arch/powerpc/include/asm/pci-bridge.h b/arch/powerpc/include/asm/pci-bridge.h index 94d4490..25a9e33 100644 --- a/arch/powerpc/include/asm/pci-bridge.h +++ b/arch/powerpc/include/asm/pci-bridge.h @@ -264,7 +264,7 @@ extern int pcibios_map_io_space(struct pci_bus *bus); #ifdef CONFIG_NUMA #define PHB_SET_NODE(PHB, NODE) ((PHB)->node = (NODE)) #else -#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = -1) +#define PHB_SET_NODE(PHB, NODE) ((PHB)->node = NUMA_NO_NODE) #endif #endif /* CONFIG_PPC64 */ diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c index 913bfca..6a0bd51 100644 --- a/arch/powerpc/kernel/paca.c +++ b/arch/powerpc/kernel/paca.c @@ -36,7 +36,7 @@ static void *__init alloc_paca_data(unsigned long size, unsigned long align, * which will put its paca in the right place. */ if (cpu == boot_cpuid) { - nid = -1; + nid = NUMA_NO_NODE; memblock_set_bottom_up(true); } else { nid = early_cpu_to_node(cpu); diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 88e4f69..14c33a9 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c @@ -132,7 +132,7 @@ struct pci_controller *pcibios_alloc_controller(struct device_node *dev) int nid = of_node_to_nid(dev); if (nid < 0 || !node_online(nid)) - nid = -1; + nid = NUMA_NO_NODE; PHB_SET_NODE(phb, nid); } diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 3a048e9..77808a2 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -215,7 +215,7 @@ static void initialize_distance_lookup_table(int nid, */ static int associativity_to_nid(const __be32 *associativity) { - int nid = -1; + int nid = NUMA_NO_NODE; if (min_common_depth == -1) goto out; @@ -225,7 +225,7 @@ static int associativity_to_nid(const __be32 *associativity) /* POWER4 LPAR uses 0xffff as invalid node */ if (nid == 0xffff || nid >= MAX_NUMNODES) - nid = -1; + nid = NUMA_NO_NODE; if (nid > 0 && of_read_number(associativity, 1) >= distance_ref_points_depth) { @@ -244,7 +244,7 @@ static int associativity_to_nid(const __be32 *associativity) */ static int of_node_to_nid_single(struct device_node *device) { - int nid = -1; + int nid = NUMA_NO_NODE; const __be32 *tmp; tmp = of_get_associativity(device); @@ -256,7 +256,7 @@ static int of_node_to_nid_single(struct device_node *device) /* Walk the device tree upwards, looking for an associativity id */ int of_node_to_nid(struct device_node *device) { - int nid = -1; + int nid = NUMA_NO_NODE; of_node_get(device); while (device) { @@ -454,7 +454,7 @@ static int of_drconf_to_nid_single(struct drmem_lmb *lmb) */ static int numa_setup_cpu(unsigned long lcpu) { - int nid = -1; + int nid = NUMA_NO_NODE; struct device_node *cpu; /* @@ -930,7 +930,7 @@ static int hot_add_drconf_scn_to_nid(unsigned long scn_addr) { struct drmem_lmb *lmb; unsigned long lmb_size; - int nid = -1; + int nid = NUMA_NO_NODE; lmb_size = drmem_lmb_size(); @@ -960,7 +960,7 @@ static int hot_add_drconf_scn_to_nid(unsigned long scn_addr) static int hot_add_node_scn_to_nid(unsigned long scn_addr) { struct device_node *memory; - int nid = -1; + int nid = NUMA_NO_NODE; for_each_node_by_type(memory, "memory") { unsigned long start, size; diff --git a/arch/powerpc/platforms/powernv/memtrace.c b/arch/powerpc/platforms/powernv/memtrace.c index 84d038e..1ce3bfc 100644 --- a/arch/powerpc/platforms/powernv/memtrace.c +++ b/arch/powerpc/platforms/powernv/memtrace.c @@ -223,7 +223,7 @@ static int memtrace_online(void) ent = &memtrace_array[i]; /* We have onlined this chunk previously */ - if (ent->nid == -1) + if (ent->nid == NUMA_NO_NODE) continue; /* Remove from io mappings */ @@ -257,7 +257,7 @@ static int memtrace_online(void) */ debugfs_remove_recursive(ent->dir); pr_info("Added trace memory back to node %d\n", ent->nid); - ent->size = ent->start = ent->nid = -1; + ent->size = ent->start = ent->nid = NUMA_NO_NODE; } if (ret) return ret; diff --git a/arch/sparc/kernel/auxio_32.c b/arch/sparc/kernel/auxio_32.c index a32d588..39f6c59 100644 --- a/arch/sparc/kernel/auxio_32.c +++ b/arch/sparc/kernel/auxio_32.c @@ -120,7 +120,7 @@ void __init auxio_power_probe(void) node = prom_searchsiblings(node, "obio"); node = prom_getchild(node); node = prom_searchsiblings(node, "power"); - if (node == 0 || (s32)node == -1) + if (node == 0 || (s32)node == NUMA_NO_NODE) return; /* Map the power control register. */ diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c index be71ae0..474d3be 100644 --- a/arch/sparc/kernel/pci_fire.c +++ b/arch/sparc/kernel/pci_fire.c @@ -416,7 +416,7 @@ static int pci_fire_pbm_init(struct pci_pbm_info *pbm, struct device_node *dp = op->dev.of_node; int err; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->pci_ops = &sun4u_pci_ops; pbm->config_space_reg_bits = 12; diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c index 934b97c..87bb231 100644 --- a/arch/sparc/kernel/pci_schizo.c +++ b/arch/sparc/kernel/pci_schizo.c @@ -1347,7 +1347,7 @@ static int schizo_pbm_init(struct pci_pbm_info *pbm, pbm->next = pci_pbm_root; pci_pbm_root = pbm; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->pci_ops = &sun4u_pci_ops; pbm->config_space_reg_bits = 8; diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index ee4c9a9..d5fe898 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c @@ -476,7 +476,7 @@ static void pcic_map_pci_device(struct linux_pcic *pcic, unsigned long flags; int j; - if (node == 0 || node == -1) { + if (node == 0 || node == NUMA_NO_NODE) { strcpy(namebuf, "???"); } else { prom_getstring(node, "name", namebuf, 63); namebuf[63] = 0; @@ -535,7 +535,7 @@ pcic_fill_irq(struct linux_pcic *pcic, struct pci_dev *dev, int node) int i, ivec; char namebuf[64]; - if (node == 0 || node == -1) { + if (node == 0 || node == NUMA_NO_NODE) { strcpy(namebuf, "???"); } else { prom_getstring(node, "name", namebuf, sizeof(namebuf)); @@ -625,7 +625,7 @@ void pcibios_fixup_bus(struct pci_bus *bus) list_for_each_entry(dev, &bus->devices, bus_list) { node = pdev_to_pnode(&pcic->pbm, dev); if(node == 0) - node = -1; + node = NUMA_NO_NODE; /* cookies */ pcp = pci_devcookie_alloc(); diff --git a/arch/sparc/kernel/psycho_common.c b/arch/sparc/kernel/psycho_common.c index 81aa91e..dcbf492 100644 --- a/arch/sparc/kernel/psycho_common.c +++ b/arch/sparc/kernel/psycho_common.c @@ -454,7 +454,7 @@ void psycho_pbm_init_common(struct pci_pbm_info *pbm, struct platform_device *op struct device_node *dp = op->dev.of_node; pbm->name = dp->full_name; - pbm->numa_node = -1; + pbm->numa_node = NUMA_NO_NODE; pbm->chip_type = chip_type; pbm->chip_version = of_getintprop_default(dp, "version#", 0); pbm->chip_revision = of_getintprop_default(dp, "module-revision#", 0); diff --git a/arch/sparc/kernel/sbus.c b/arch/sparc/kernel/sbus.c index c133dfc..28a4aa9 100644 --- a/arch/sparc/kernel/sbus.c +++ b/arch/sparc/kernel/sbus.c @@ -561,7 +561,7 @@ static void __init sbus_iommu_init(struct platform_device *op) op->dev.archdata.iommu = iommu; op->dev.archdata.stc = strbuf; - op->dev.archdata.numa_node = -1; + op->dev.archdata.numa_node = NUMA_NO_NODE; reg_base = regs + SYSIO_IOMMUREG_BASE; iommu->iommu_control = reg_base + IOMMU_CONTROL; diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index 3c8aac2..cb1bed1 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c @@ -976,13 +976,13 @@ static u64 __init memblock_nid_range_sun4u(u64 start, u64 end, int *nid) { int prev_nid, new_nid; - prev_nid = -1; + prev_nid = NUMA_NO_NODE; for ( ; start < end; start += PAGE_SIZE) { for (new_nid = 0; new_nid < num_node_masks; new_nid++) { struct node_mem_mask *p = &node_masks[new_nid]; if ((start & p->mask) == p->match) { - if (prev_nid == -1) + if (prev_nid == NUMA_NO_NODE) prev_nid = new_nid; break; } @@ -1208,7 +1208,7 @@ int of_node_to_nid(struct device_node *dp) md = mdesc_grab(); count = 0; - nid = -1; + nid = NUMA_NO_NODE; mdesc_for_each_node_by_name(md, grp, "group") { if (!scan_arcs_for_cfg_handle(md, grp, cfg_handle)) { nid = count; diff --git a/arch/sparc/prom/init_32.c b/arch/sparc/prom/init_32.c index d204701..4c6e540 100644 --- a/arch/sparc/prom/init_32.c +++ b/arch/sparc/prom/init_32.c @@ -58,7 +58,7 @@ void __init prom_init(struct linux_romvec *rp) prom_nodeops = romvec->pv_nodeops; prom_root_node = prom_getsibling(0); - if ((prom_root_node == 0) || ((s32)prom_root_node == -1)) + if ((prom_root_node == 0) || ((s32)prom_root_node == NUMA_NO_NODE)) prom_halt(); if((((unsigned long) prom_nodeops) == 0) || diff --git a/arch/sparc/prom/init_64.c b/arch/sparc/prom/init_64.c index 103aa91..85669c0 100644 --- a/arch/sparc/prom/init_64.c +++ b/arch/sparc/prom/init_64.c @@ -36,13 +36,13 @@ void __init prom_init(void *cif_handler) prom_cif_init(cif_handler); prom_chosen_node = prom_finddevice(prom_chosen_path); - if (!prom_chosen_node || (s32)prom_chosen_node == -1) + if (!prom_chosen_node || (s32)prom_chosen_node == NUMA_NO_NODE) prom_halt(); prom_stdout = prom_getint(prom_chosen_node, "stdout"); node = prom_finddevice("/openprom"); - if (!node || (s32)node == -1) + if (!node || (s32)node == NUMA_NO_NODE) prom_halt(); prom_getstring(node, "version", prom_version, sizeof(prom_version)); diff --git a/arch/sparc/prom/tree_32.c b/arch/sparc/prom/tree_32.c index 0fed893..2d0a204 100644 --- a/arch/sparc/prom/tree_32.c +++ b/arch/sparc/prom/tree_32.c @@ -41,11 +41,11 @@ phandle prom_getchild(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = __prom_getchild(node); - if (cnode == 0 || (s32)cnode == -1) + if (cnode == 0 || (s32)cnode == NUMA_NO_NODE) return 0; return cnode; @@ -73,11 +73,11 @@ phandle prom_getsibling(phandle node) { phandle sibnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; sibnode = __prom_getsibling(node); - if (sibnode == 0 || (s32)sibnode == -1) + if (sibnode == 0 || (s32)sibnode == NUMA_NO_NODE) return 0; return sibnode; @@ -220,7 +220,7 @@ static char *__prom_nextprop(phandle node, char * oprop) */ char *prom_nextprop(phandle node, char *oprop, char *buffer) { - if (node == 0 || (s32)node == -1) + if (node == 0 || (s32)node == NUMA_NO_NODE) return ""; return __prom_nextprop(node, oprop); @@ -304,7 +304,7 @@ phandle prom_inst2pkg(int inst) node = (*romvec->pv_v2devops.v2_inst2pkg)(inst); restore_current(); spin_unlock_irqrestore(&prom_lock, flags); - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; return node; } diff --git a/arch/sparc/prom/tree_64.c b/arch/sparc/prom/tree_64.c index 989e799..2b4c515 100644 --- a/arch/sparc/prom/tree_64.c +++ b/arch/sparc/prom/tree_64.c @@ -44,10 +44,10 @@ phandle prom_getchild(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = __prom_getchild(node); - if ((s32)cnode == -1) + if ((s32)cnode == NUMA_NO_NODE) return 0; return cnode; } @@ -57,10 +57,10 @@ inline phandle prom_getparent(phandle node) { phandle cnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; cnode = prom_node_to_node("parent", node); - if ((s32)cnode == -1) + if ((s32)cnode == NUMA_NO_NODE) return 0; return cnode; } @@ -77,10 +77,10 @@ phandle prom_getsibling(phandle node) { phandle sibnode; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; sibnode = __prom_getsibling(node); - if ((s32)sibnode == -1) + if ((s32)sibnode == NUMA_NO_NODE) return 0; return sibnode; @@ -241,7 +241,7 @@ char *prom_firstprop(phandle node, char *buffer) unsigned long args[7]; *buffer = 0; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return buffer; args[0] = (unsigned long) prom_nextprop_name; @@ -267,7 +267,7 @@ char *prom_nextprop(phandle node, const char *oprop, char *buffer) unsigned long args[7]; char buf[32]; - if ((s32)node == -1) { + if ((s32)node == NUMA_NO_NODE) { *buffer = 0; return buffer; } @@ -370,7 +370,7 @@ inline phandle prom_inst2pkg(int inst) p1275_cmd_direct(args); node = (int) args[4]; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; return node; } diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h index 6629636..dee2a31 100644 --- a/arch/x86/include/asm/pci.h +++ b/arch/x86/include/asm/pci.h @@ -141,7 +141,7 @@ cpumask_of_pcibus(const struct pci_bus *bus) int node; node = __pcibus_to_node(bus); - return (node == -1) ? cpu_online_mask : + return (node == NUMA_NO_NODE) ? cpu_online_mask : cpumask_of_node(node); } #endif diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index 391f358..3c3378a 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c @@ -1390,7 +1390,7 @@ static void __init build_socket_tables(void) } /* Set socket -> node values: */ - lnid = -1; + lnid = NUMA_NO_NODE; for_each_present_cpu(cpu) { int nid = cpu_to_node(cpu); int apicid, sockid; @@ -1521,7 +1521,7 @@ static void __init uv_system_init_hub(void) new_hub->pnode = 0xffff; new_hub->numa_blade_id = uv_node_to_blade_id(nodeid); - new_hub->memory_nid = -1; + new_hub->memory_nid = NUMA_NO_NODE; new_hub->nr_possible_cpus = 0; new_hub->nr_online_cpus = 0; } @@ -1538,7 +1538,7 @@ static void __init uv_system_init_hub(void) uv_cpu_info_per(cpu)->p_uv_hub_info = uv_hub_info_list(nodeid); uv_cpu_info_per(cpu)->blade_cpu_id = uv_cpu_hub_info(cpu)->nr_possible_cpus++; - if (uv_cpu_hub_info(cpu)->memory_nid == -1) + if (uv_cpu_hub_info(cpu)->memory_nid == NUMA_NO_NODE) uv_cpu_hub_info(cpu)->memory_nid = cpu_to_node(cpu); /* Init memoryless node: */ diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index a9134d1..c1d45dc 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -841,7 +841,7 @@ wakeup_secondary_cpu_via_init(int phys_apicid, unsigned long start_eip) /* reduce the number of lines printed when booting a large cpu count system */ static void announce_cpu(int cpu, int apicid) { - static int current_node = -1; + static int current_node = NUMA_NO_NODE; int node = early_cpu_to_node(cpu); static int width, node_width; diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c index 24d2175..7098127 100644 --- a/arch/x86/platform/olpc/olpc_dt.c +++ b/arch/x86/platform/olpc/olpc_dt.c @@ -29,10 +29,10 @@ static phandle __init olpc_dt_getsibling(phandle node) const void *args[] = { (void *)node }; void *res[] = { &node }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; - if (olpc_ofw("peer", args, res) || (s32)node == -1) + if (olpc_ofw("peer", args, res) || (s32)node == NUMA_NO_NODE) return 0; return node; @@ -43,10 +43,10 @@ static phandle __init olpc_dt_getchild(phandle node) const void *args[] = { (void *)node }; void *res[] = { &node }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return 0; - if (olpc_ofw("child", args, res) || (s32)node == -1) { + if (olpc_ofw("child", args, res) || (s32)node == NUMA_NO_NODE) { pr_err("PROM: %s: fetching child failed!\n", __func__); return 0; } @@ -60,7 +60,7 @@ static int __init olpc_dt_getproplen(phandle node, const char *prop) int len; void *res[] = { &len }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("getproplen", args, res)) { @@ -100,7 +100,7 @@ static int __init olpc_dt_nextprop(phandle node, char *prev, char *buf) buf[0] = '\0'; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("nextprop", args, res) || success != 1) @@ -115,7 +115,7 @@ static int __init olpc_dt_pkg2path(phandle node, char *buf, const void *args[] = { (void *)node, buf, (void *)buflen }; void *res[] = { len }; - if ((s32)node == -1) + if ((s32)node == NUMA_NO_NODE) return -1; if (olpc_ofw("package-to-path", args, res) || *len < 1) @@ -176,7 +176,7 @@ static phandle __init olpc_dt_finddevice(const char *path) return 0; } - if ((s32) node == -1) + if ((s32) node == NUMA_NO_NODE) return 0; return node; diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c index a7daa8a..b889452 100644 --- a/drivers/block/mtip32xx/mtip32xx.c +++ b/drivers/block/mtip32xx/mtip32xx.c @@ -4084,9 +4084,9 @@ static int get_least_used_cpu_on_node(int node) /* Helper for selecting a node in round robin mode */ static inline int mtip_get_next_rr_node(void) { - static int next_node = -1; + static int next_node = NUMA_NO_NODE; - if (next_node == -1) { + if (next_node == NUMA_NO_NODE) { next_node = first_online_node; return next_node; } diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index f1a441ab..1aeefc7 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -386,7 +386,8 @@ EXPORT_SYMBOL(dma_issue_pending_all); static bool dma_chan_is_local(struct dma_chan *chan, int cpu) { int node = dev_to_node(chan->device->dev); - return node == -1 || cpumask_test_cpu(cpu, cpumask_of_node(node)); + return node == NUMA_NO_NODE || + cpumask_test_cpu(cpu, cpumask_of_node(node)); } /** diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c index 2baf38c..3e8acb8 100644 --- a/drivers/infiniband/hw/hfi1/affinity.c +++ b/drivers/infiniband/hw/hfi1/affinity.c @@ -777,7 +777,7 @@ void hfi1_dev_affinity_clean_up(struct hfi1_devdata *dd) _dev_comp_vect_cpu_mask_clean_up(dd, entry); unlock: mutex_unlock(&node_affinity.lock); - dd->node = -1; + dd->node = NUMA_NO_NODE; } /* diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c index 0904490..0bf4577 100644 --- a/drivers/infiniband/hw/hfi1/init.c +++ b/drivers/infiniband/hw/hfi1/init.c @@ -1303,7 +1303,7 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev, dd->unit = ret; list_add(&dd->list, &hfi1_dev_list); } - dd->node = -1; + dd->node = NUMA_NO_NODE; spin_unlock_irqrestore(&hfi1_devs_lock, flags); idr_preload_end(); diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c index d9c748b..86a9c19 100644 --- a/drivers/iommu/dmar.c +++ b/drivers/iommu/dmar.c @@ -477,7 +477,7 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg) int node = acpi_map_pxm_to_node(rhsa->proximity_domain); if (!node_online(node)) - node = -1; + node = NUMA_NO_NODE; drhd->iommu->node = node; return 0; } @@ -1062,7 +1062,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd) iommu->msagaw = msagaw; iommu->segment = drhd->segment; - iommu->node = -1; + iommu->node = NUMA_NO_NODE; ver = readl(iommu->reg + DMAR_VER_REG); pr_info("%s: reg_base_addr %llx ver %d:%d cap %llx ecap %llx\n", diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index f3ccf02..9f6fb13 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -1772,7 +1772,7 @@ static struct dmar_domain *alloc_domain(int flags) return NULL; memset(domain, 0, sizeof(*domain)); - domain->nid = -1; + domain->nid = NUMA_NO_NODE; domain->flags = flags; domain->has_iotlb_device = false; INIT_LIST_HEAD(&domain->devices); diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c index 3e02de0..81bd41c 100644 --- a/drivers/media/pci/ivtv/ivtvfb.c +++ b/drivers/media/pci/ivtv/ivtvfb.c @@ -1054,7 +1054,7 @@ static int ivtvfb_init_vidmode(struct ivtv *itv) /* Generate valid fb_info */ - oi->ivtvfb_info.node = -1; + oi->ivtvfb_info.node = NUMA_NO_NODE; oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT; oi->ivtvfb_info.fbops = &ivtvfb_ops; oi->ivtvfb_info.par = itv; diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c index 1a89593..56a2d41 100644 --- a/drivers/media/platform/vivid/vivid-osd.c +++ b/drivers/media/platform/vivid/vivid-osd.c @@ -309,7 +309,7 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev) /* Generate valid fb_info */ - dev->fb_info.node = -1; + dev->fb_info.node = NUMA_NO_NODE; dev->fb_info.flags = FBINFO_FLAG_DEFAULT; dev->fb_info.fbops = &vivid_fb_ops; dev->fb_info.par = dev; diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c index 0441abe..eef36dd 100644 --- a/drivers/misc/sgi-xp/xpc_uv.c +++ b/drivers/misc/sgi-xp/xpc_uv.c @@ -61,7 +61,7 @@ static struct xpc_heartbeat_uv *xpc_heartbeat_uv; XPC_NOTIFY_MSG_SIZE_UV) #define XPC_NOTIFY_IRQ_NAME "xpc_notify" -static int xpc_mq_node = -1; +static int xpc_mq_node = NUMA_NO_NODE; static struct xpc_gru_mq_uv *xpc_activate_mq_uv; static struct xpc_gru_mq_uv *xpc_notify_mq_uv; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 113b38e..4fae85c 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -6414,7 +6414,7 @@ int ixgbe_setup_tx_resources(struct ixgbe_ring *tx_ring) { struct device *dev = tx_ring->dev; int orig_node = dev_to_node(dev); - int ring_node = -1; + int ring_node = NUMA_NO_NODE; int size; size = sizeof(struct ixgbe_tx_buffer) * tx_ring->count; @@ -6508,7 +6508,7 @@ int ixgbe_setup_rx_resources(struct ixgbe_adapter *adapter, { struct device *dev = rx_ring->dev; int orig_node = dev_to_node(dev); - int ring_node = -1; + int ring_node = NUMA_NO_NODE; int size; size = sizeof(struct ixgbe_rx_buffer) * rx_ring->count; diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c index ee212be..298be9b 100644 --- a/drivers/video/fbdev/mmp/fb/mmpfb.c +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c @@ -519,7 +519,7 @@ static int fb_info_setup(struct fb_info *info, /* Initialise static fb parameters.*/ info->flags = FBINFO_DEFAULT | FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_XPAN | FBINFO_HWACCEL_YPAN; - info->node = -1; + info->node = NUMA_NO_NODE; strcpy(info->fix.id, fbi->name); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.type_aux = 0; diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c index e31340f..7d775de 100644 --- a/drivers/video/fbdev/pxa168fb.c +++ b/drivers/video/fbdev/pxa168fb.c @@ -649,7 +649,7 @@ static int pxa168fb_probe(struct platform_device *pdev) */ info->flags = FBINFO_DEFAULT | FBINFO_PARTIAL_PAN_OK | FBINFO_HWACCEL_XPAN | FBINFO_HWACCEL_YPAN; - info->node = -1; + info->node = NUMA_NO_NODE; strlcpy(info->fix.id, mi->id, 16); info->fix.type = FB_TYPE_PACKED_PIXELS; info->fix.type_aux = 0; diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c index 696106e..8b0f20c 100644 --- a/drivers/video/fbdev/w100fb.c +++ b/drivers/video/fbdev/w100fb.c @@ -703,7 +703,7 @@ int w100fb_probe(struct platform_device *pdev) info->fbops = &w100fb_ops; info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA | FBINFO_HWACCEL_FILLRECT; - info->node = -1; + info->node = NUMA_NO_NODE; info->screen_base = remapped_fbuf + (W100_FB_BASE-MEM_WINDOW_BASE); info->screen_size = REMAPPED_FB_LEN; diff --git a/fs/ocfs2/dlm/dlmcommon.h b/fs/ocfs2/dlm/dlmcommon.h index d06e27e..11111f6 100644 --- a/fs/ocfs2/dlm/dlmcommon.h +++ b/fs/ocfs2/dlm/dlmcommon.h @@ -1121,7 +1121,7 @@ static inline void dlm_node_iter_init(unsigned long *map, struct dlm_node_iter *iter) { memcpy(iter->node_map, map, sizeof(iter->node_map)); - iter->curnode = -1; + iter->curnode = NUMA_NO_NODE; } static inline int dlm_node_iter_next(struct dlm_node_iter *iter) diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c index 2acd58b..381a323 100644 --- a/fs/ocfs2/dlm/dlmdomain.c +++ b/fs/ocfs2/dlm/dlmdomain.c @@ -546,7 +546,7 @@ static void dlm_mark_domain_leaving(struct dlm_ctxt *dlm) static void __dlm_print_nodes(struct dlm_ctxt *dlm) { - int node = -1, num = 0; + int node = NUMA_NO_NODE, num = 0; assert_spin_locked(&dlm->spinlock); @@ -613,7 +613,7 @@ static int dlm_send_one_domain_exit(struct dlm_ctxt *dlm, u32 msg_type, static void dlm_begin_exit_domain(struct dlm_ctxt *dlm) { - int node = -1; + int node = NUMA_NO_NODE; /* Support for begin exit domain was added in 1.2 */ if (dlm->dlm_locking_proto.pv_major == 1 && @@ -1407,7 +1407,7 @@ static int dlm_send_join_cancels(struct dlm_ctxt *dlm, } status = 0; - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(node_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) @@ -1547,7 +1547,7 @@ static void dlm_send_join_asserts(struct dlm_ctxt *dlm, int status, node, live; status = 0; - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(node_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) @@ -1631,7 +1631,7 @@ static int dlm_try_to_join_domain(struct dlm_ctxt *dlm) spin_unlock(&dlm->spinlock); - node = -1; + node = NUMA_NO_NODE; while ((node = find_next_bit(ctxt->live_map, O2NM_MAX_NODES, node + 1)) < O2NM_MAX_NODES) { if (node == dlm->node_num) diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c index 826f056..e54bbbc 100644 --- a/fs/ocfs2/dlm/dlmmaster.c +++ b/fs/ocfs2/dlm/dlmmaster.c @@ -1183,7 +1183,7 @@ static void dlm_bitmap_diff_iter_init(struct dlm_bitmap_diff_iter *iter, unsigned long p1, p2; int i; - iter->curnode = -1; + iter->curnode = NUMA_NO_NODE; iter->orig_bm = orig_bm; iter->cur_bm = cur_bm; diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index 802636d5..704fa8b 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c @@ -2903,7 +2903,7 @@ static int dlm_send_finalize_reco_message(struct dlm_ctxt *dlm) } if (stage == 1) { /* reset the node_iter back to the top and send finalize2 */ - iter.curnode = -1; + iter.curnode = NUMA_NO_NODE; stage = 2; goto stage2; } diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c index d2fb97b..a673efa 100644 --- a/fs/ocfs2/stack_user.c +++ b/fs/ocfs2/stack_user.c @@ -171,7 +171,7 @@ union ocfs2_control_message { static struct ocfs2_stack_plugin ocfs2_user_plugin; static atomic_t ocfs2_control_opened; -static int ocfs2_control_this_node = -1; +static int ocfs2_control_this_node = NUMA_NO_NODE; static struct ocfs2_protocol_version running_proto; static LIST_HEAD(ocfs2_live_connection_list); @@ -589,7 +589,7 @@ static int ocfs2_control_release(struct inode *inode, struct file *file) * Last valid close clears the node number and resets * the locking protocol version */ - ocfs2_control_this_node = -1; + ocfs2_control_this_node = NUMA_NO_NODE; running_proto.pv_major = 0; running_proto.pv_minor = 0; } @@ -612,7 +612,7 @@ static int ocfs2_control_open(struct inode *inode, struct file *file) p = kzalloc(sizeof(struct ocfs2_control_private), GFP_KERNEL); if (!p) return -ENOMEM; - p->op_this_node = -1; + p->op_this_node = NUMA_NO_NODE; mutex_lock(&ocfs2_control_lock); file->private_data = p; diff --git a/init/init_task.c b/init/init_task.c index 5aebe3b..6641836 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -154,7 +154,7 @@ struct task_struct init_task .vtime.state = VTIME_SYS, #endif #ifdef CONFIG_NUMA_BALANCING - .numa_preferred_nid = -1, + .numa_preferred_nid = NUMA_NO_NODE, .numa_group = NULL, .numa_faults = NULL, #endif diff --git a/kernel/kthread.c b/kernel/kthread.c index 087d18d..77f3d94 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -675,7 +675,7 @@ __kthread_create_worker(int cpu, unsigned int flags, { struct kthread_worker *worker; struct task_struct *task; - int node = -1; + int node = NUMA_NO_NODE; worker = kzalloc(sizeof(*worker), GFP_KERNEL); if (!worker) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ee271bb..d830fa7 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1161,7 +1161,7 @@ void init_numa_balancing(unsigned long clone_flags, struct task_struct *p) /* New address space, reset the preferred nid */ if (!(clone_flags & CLONE_VM)) { - p->numa_preferred_nid = -1; + p->numa_preferred_nid = NUMA_NO_NODE; return; } @@ -1181,13 +1181,13 @@ void init_numa_balancing(unsigned long clone_flags, struct task_struct *p) static void account_numa_enqueue(struct rq *rq, struct task_struct *p) { - rq->nr_numa_running += (p->numa_preferred_nid != -1); + rq->nr_numa_running += (p->numa_preferred_nid != NUMA_NO_NODE); rq->nr_preferred_running += (p->numa_preferred_nid == task_node(p)); } static void account_numa_dequeue(struct rq *rq, struct task_struct *p) { - rq->nr_numa_running -= (p->numa_preferred_nid != -1); + rq->nr_numa_running -= (p->numa_preferred_nid != NUMA_NO_NODE); rq->nr_preferred_running -= (p->numa_preferred_nid == task_node(p)); } @@ -1401,7 +1401,7 @@ bool should_numa_migrate_memory(struct task_struct *p, struct page * page, * two full passes of the "multi-stage node selection" test that is * executed below. */ - if ((p->numa_preferred_nid == -1 || p->numa_scan_seq <= 4) && + if ((p->numa_preferred_nid == NUMA_NO_NODE || p->numa_scan_seq <= 4) && (cpupid_pid_unset(last_cpupid) || cpupid_match_pid(p, last_cpupid))) return true; @@ -1849,7 +1849,7 @@ static void numa_migrate_preferred(struct task_struct *p) unsigned long interval = HZ; /* This task has no NUMA fault statistics yet */ - if (unlikely(p->numa_preferred_nid == -1 || !p->numa_faults)) + if (unlikely(p->numa_preferred_nid == NUMA_NO_NODE || !p->numa_faults)) return; /* Periodically retry migrating the task to the preferred node */ @@ -2096,7 +2096,7 @@ static int preferred_group_nid(struct task_struct *p, int nid) static void task_numa_placement(struct task_struct *p) { - int seq, nid, max_nid = -1; + int seq, nid, max_nid = NUMA_NO_NODE; unsigned long max_faults = 0; unsigned long fault_types[2] = { 0, 0 }; unsigned long total_faults; @@ -2639,7 +2639,8 @@ static void update_scan_period(struct task_struct *p, int new_cpu) * the preferred node. */ if (dst_nid == p->numa_preferred_nid || - (p->numa_preferred_nid != -1 && src_nid != p->numa_preferred_nid)) + (p->numa_preferred_nid != NUMA_NO_NODE && + src_nid != p->numa_preferred_nid)) return; } diff --git a/lib/cpumask.c b/lib/cpumask.c index 8d666ab..a089c3f 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c @@ -206,7 +206,7 @@ unsigned int cpumask_local_spread(unsigned int i, int node) /* Wrap: we always want a cpu. */ i %= num_online_cpus(); - if (node == -1) { + if (node == NUMA_NO_NODE) { for_each_cpu(cpu, cpu_online_mask) if (i-- == 0) return cpu; diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 55478ab..5ccf89e 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1480,7 +1480,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) struct anon_vma *anon_vma = NULL; struct page *page; unsigned long haddr = vmf->address & HPAGE_PMD_MASK; - int page_nid = -1, this_nid = numa_node_id(); + int page_nid = NUMA_NO_NODE, this_nid = numa_node_id(); int target_nid, last_cpupid = -1; bool page_locked; bool migrated = false; @@ -1526,7 +1526,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) */ page_locked = trylock_page(page); target_nid = mpol_misplaced(page, vma, haddr); - if (target_nid == -1) { + if (target_nid == NUMA_NO_NODE) { /* If the page was locked, there are no parallel migrations */ if (page_locked) goto clear_pmdnuma; @@ -1534,7 +1534,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) /* Migration could have started since the pmd_trans_migrating check */ if (!page_locked) { - page_nid = -1; + page_nid = NUMA_NO_NODE; if (!get_page_unless_zero(page)) goto out_unlock; spin_unlock(vmf->ptl); @@ -1556,14 +1556,14 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) if (unlikely(!pmd_same(pmd, *vmf->pmd))) { unlock_page(page); put_page(page); - page_nid = -1; + page_nid = NUMA_NO_NODE; goto out_unlock; } /* Bail if we fail to protect against THP splits for any reason */ if (unlikely(!anon_vma)) { put_page(page); - page_nid = -1; + page_nid = NUMA_NO_NODE; goto clear_pmdnuma; } @@ -1625,7 +1625,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd) if (anon_vma) page_unlock_anon_vma_read(anon_vma); - if (page_nid != -1) + if (page_nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, page_nid, HPAGE_PMD_NR, flags); diff --git a/mm/hugetlb.c b/mm/hugetlb.c index c007fb5..b769db7 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -887,7 +887,7 @@ static struct page *dequeue_huge_page_nodemask(struct hstate *h, gfp_t gfp_mask, struct zonelist *zonelist; struct zone *zone; struct zoneref *z; - int node = -1; + int node = NUMA_NO_NODE; zonelist = node_zonelist(nid, gfp_mask); diff --git a/mm/ksm.c b/mm/ksm.c index 5b0894b..d5f8834 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -597,7 +597,7 @@ static struct stable_node *alloc_stable_node_chain(struct stable_node *dup, chain->chain_prune_time = jiffies; chain->rmap_hlist_len = STABLE_NODE_CHAIN; #if defined (CONFIG_DEBUG_VM) && defined(CONFIG_NUMA) - chain->nid = -1; /* debug */ + chain->nid = NUMA_NO_NODE; /* debug */ #endif ksm_stable_node_chains++; diff --git a/mm/memory.c b/mm/memory.c index 4ad2d29..c0e0348 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3564,7 +3564,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) { struct vm_area_struct *vma = vmf->vma; struct page *page = NULL; - int page_nid = -1; + int page_nid = NUMA_NO_NODE; int last_cpupid; int target_nid; bool migrated = false; @@ -3631,7 +3631,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) target_nid = numa_migrate_prep(page, vma, vmf->address, page_nid, &flags); pte_unmap_unlock(vmf->pte, vmf->ptl); - if (target_nid == -1) { + if (target_nid == NUMA_NO_NODE) { put_page(page); goto out; } @@ -3645,7 +3645,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) flags |= TNF_MIGRATE_FAIL; out: - if (page_nid != -1) + if (page_nid != NUMA_NO_NODE) task_numa_fault(last_cpupid, page_nid, 1, flags); return 0; } diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 2b2b3cc..70e02f8 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -688,9 +688,9 @@ static void node_states_check_changes_online(unsigned long nr_pages, { int nid = zone_to_nid(zone); - arg->status_change_nid = -1; - arg->status_change_nid_normal = -1; - arg->status_change_nid_high = -1; + arg->status_change_nid = NUMA_NO_NODE; + arg->status_change_nid_normal = NUMA_NO_NODE; + arg->status_change_nid_high = NUMA_NO_NODE; if (!node_state(nid, N_MEMORY)) arg->status_change_nid = nid; @@ -1484,9 +1484,9 @@ static void node_states_check_changes_offline(unsigned long nr_pages, unsigned long present_pages = 0; enum zone_type zt; - arg->status_change_nid = -1; - arg->status_change_nid_normal = -1; - arg->status_change_nid_high = -1; + arg->status_change_nid = NUMA_NO_NODE; + arg->status_change_nid_normal = NUMA_NO_NODE; + arg->status_change_nid_high = NUMA_NO_NODE; /* * Check whether node_states[N_NORMAL_MEMORY] will be changed. diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 5837a06..e4f8248 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2278,7 +2278,7 @@ int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long unsigned long pgoff; int thiscpu = raw_smp_processor_id(); int thisnid = cpu_to_node(thiscpu); - int polnid = -1; + int polnid = NUMA_NO_NODE; int ret = -1; pol = get_vma_policy(vma, addr); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a919ba5..9d38d9c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -5846,7 +5846,7 @@ int __meminit __early_pfn_to_nid(unsigned long pfn, return state->last_nid; nid = memblock_search_pfn_nid(pfn, &start_pfn, &end_pfn); - if (nid != -1) { + if (nid != NUMA_NO_NODE) { state->last_start = start_pfn; state->last_end = end_pfn; state->last_nid = nid; @@ -6607,7 +6607,7 @@ unsigned long __init node_map_pfn_alignment(void) { unsigned long accl_mask = 0, last_end = 0; unsigned long start, end, mask; - int last_nid = -1; + int last_nid = NUMA_NO_NODE; int i, nid; for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, &nid) { diff --git a/mm/page_ext.c b/mm/page_ext.c index ae44f7a..dfb0206 100644 --- a/mm/page_ext.c +++ b/mm/page_ext.c @@ -300,7 +300,7 @@ static int __meminit online_page_ext(unsigned long start_pfn, start = SECTION_ALIGN_DOWN(start_pfn); end = SECTION_ALIGN_UP(start_pfn + nr_pages); - if (nid == -1) { + if (nid == NUMA_NO_NODE) { /* * In this case, "nid" already exists and contains valid memory. * "start_pfn" passed to us is a pfn which is an arg for diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 6ac9198..af3a746 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -3625,7 +3625,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname) pkt_dev->svlan_cfi = 0; pkt_dev->svlan_id = 0xffff; pkt_dev->burst = 1; - pkt_dev->node = -1; + pkt_dev->node = NUMA_NO_NODE; err = pktgen_setup_dev(t->net, pkt_dev, ifname); if (err) diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c index 86e1e37..0c56ae2 100644 --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -101,7 +101,7 @@ static inline struct qrtr_sock *qrtr_sk(struct sock *sk) return container_of(sk, struct qrtr_sock, sk); } -static unsigned int qrtr_local_nid = -1; +static unsigned int qrtr_local_nid = NUMA_NO_NODE; /* for node ids */ static RADIX_TREE(qrtr_nodes, GFP_KERNEL); diff --git a/tools/perf/bench/numa.c b/tools/perf/bench/numa.c index 4419551..e0ad5f1 100644 --- a/tools/perf/bench/numa.c +++ b/tools/perf/bench/numa.c @@ -298,7 +298,7 @@ static cpu_set_t bind_to_node(int target_node) CPU_ZERO(&mask); - if (target_node == -1) { + if (target_node == NUMA_NO_NODE) { for (cpu = 0; cpu < g->p.nr_cpus; cpu++) CPU_SET(cpu, &mask); } else { @@ -339,7 +339,7 @@ static void bind_to_memnode(int node) unsigned long nodemask; int ret; - if (node == -1) + if (node == NUMA_NO_NODE) return; BUG_ON(g->p.nr_nodes > (int)sizeof(nodemask)*8); @@ -1363,7 +1363,7 @@ static void init_thread_data(void) int cpu; /* Allow all nodes by default: */ - td->bind_node = -1; + td->bind_node = NUMA_NO_NODE; /* Allow all CPUs by default: */ CPU_ZERO(&td->bind_cpumask); -- 2.7.4