From patchwork Wed Oct 26 08:04:31 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Noam Camus X-Patchwork-Id: 686931 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3t3jJ12vT4z9svs for ; Wed, 26 Oct 2016 19:05:37 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b=hR3ftWVj; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bzJDL-00063B-PW; Wed, 26 Oct 2016 08:05:35 +0000 Received: from mail-ve1eur01on0052.outbound.protection.outlook.com ([104.47.1.52] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bzJDJ-0004h2-59 for linux-snps-arc@lists.infradead.org; Wed, 26 Oct 2016 08:05:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=MsgQPnSg+C/9RWbNJ6S8as4Fbtucsuwrs3zIjyQQJhs=; b=hR3ftWVjn6sqDzl7KZ3fdCIIPa8yvtVHL7RsqHF9D5GMO5soWVesyxImJt5gr7SvsBeocaXYnjBAtIdkn1HfWed8rWwUmFv9dUHP0zGMLl18fN9SHYFvjya40epyKvNLZ/eqMR8CjLAzXVpV5TPKdRSbbpX75bj0j4ZwuJq4c9A= Received: from AM3PR05CA010.eurprd05.prod.outlook.com (10.141.192.20) by DB6PR0501MB2120.eurprd05.prod.outlook.com (10.168.9.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.16; Wed, 26 Oct 2016 08:04:58 +0000 Received: from AM1FFO11FD040.protection.gbl (2a01:111:f400:7e00::126) by AM3PR05CA010.outlook.office365.com (2a01:111:e400:882a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.679.12 via Frontend Transport; Wed, 26 Oct 2016 08:04:58 +0000 Authentication-Results: spf=pass (sender IP is 193.47.165.134) smtp.mailfrom=mellanox.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=pass action=none header.from=mellanox.com; Received-SPF: Pass (protection.outlook.com: domain of mellanox.com designates 193.47.165.134 as permitted sender) receiver=protection.outlook.com; client-ip=193.47.165.134; helo=mtlcas13.mtl.com; Received: from mtlcas13.mtl.com (193.47.165.134) by AM1FFO11FD040.mail.protection.outlook.com (10.174.64.229) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.679.5 via Frontend Transport; Wed, 26 Oct 2016 08:04:57 +0000 Received: from MTLCAS13.mtl.com (10.0.8.78) by mtlcas13.mtl.com (10.0.8.78) with Microsoft SMTP Server (TLS) id 15.0.1178.4; Wed, 26 Oct 2016 11:04:56 +0300 Received: from MTLCAS02.mtl.com (10.0.8.72) by MTLCAS13.mtl.com (10.0.8.78) with Microsoft SMTP Server (TLS) id 15.0.1178.4 via Frontend Transport; Wed, 26 Oct 2016 11:04:56 +0300 Received: from ezex10.ezchip.com (10.0.13.1) by MTLCAS02.MTL.COM (10.0.8.72) with Microsoft SMTP Server (TLS) id 14.3.301.0; Wed, 26 Oct 2016 11:04:56 +0300 Received: from localhost.localdomain (10.1.3.58) by ezex10.ezchip.com (10.1.1.4) with Microsoft SMTP Server (TLS) id 14.3.224.2; Wed, 26 Oct 2016 11:04:54 +0300 From: Noam Camus To: Subject: [PATCH] ARC: [SMP] get CPUs mask from DT Date: Wed, 26 Oct 2016 11:04:31 +0300 Message-ID: <1477469071-2282-1-git-send-email-noamca@mellanox.com> X-Mailer: git-send-email 1.7.1 MIME-Version: 1.0 X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-22520.000 X-TM-AS-Result: No--1.527100-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No Received-SPF: None (MTLCAS02.mtl.com: noamca@mellanox.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:193.47.165.134; IPV:NLI; CTRY:IL; EFV:NLI; SFV:NSPM; SFS:(10009020)(979002)(6009001)(7916002)(2980300002)(438002)(189002)(199003)(19580405001)(2906002)(36756003)(5003940100001)(626004)(8936002)(4326007)(106466001)(356003)(77096005)(50226002)(4001430100002)(50986999)(229853001)(33646002)(86362001)(189998001)(2351001)(11100500001)(81166006)(305945005)(50466002)(586003)(49486002)(7846002)(81156014)(87936001)(19580395003)(92566002)(6666003)(107886002)(48376002)(110136003)(6916009)(8676002)(5660300001)(47776003)(21314002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0501MB2120; H:mtlcas13.mtl.com; FPR:; SPF:Pass; PTR:mail13.mellanox.com; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM1FFO11FD040; 1:kjQyTjNptuHwuXr9pSXgVhhYrO0tzOL98WbDPhH5LKN0DQcCP9ffVAXlCResgfBXRt4NxVTfM7cmlsGiUQqThbZEJX5ebHqLVBVrzOaewf0YYqdJ/SrkJRhTnyXy5bzxkGt0e8bkJVtAIYJsc+jafdw1rzx12yxeXFySRkBEwkM98uYUtdgRSXgaZpVq2q79A8CPDxUGW02wVB4J/8rPQ3OkG4UWT40jBA1TOfHNVN1nitaF4DS0d2pasbt+/e68XJfyUz061Cj8sKPgW0NYutQ5mvs/Na5mNDMkkCj2TnK3gt3sG7zmoi97MFqSJmiRb2AnooQ/fVtNBfMpurRCYnZ06YhabFbeENtU94uW5HcvZ+HNpXvLiq6vOTg3+g40q7WFyJPZP1vBLaZTsvqIZMvMGCC+IwNTnj/TF4ugjZqLKVmhielVPtz5L98bWWuSS4F3uREIZLO3hrGQnXYcRQAbmtwa5gsd+3NkHlKm7Ba45nA5UdK3FIiTHVrFzXE3XrOlIE9UQ14gdxJZZPByk303PXeXb/Po1tnTh2dV0pULFyUNqTqnjQJR7uncwciP X-MS-Office365-Filtering-Correlation-Id: 868de0ea-929e-4f88-a2cb-08d3fd76c733 X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2120; 2:4KIuKiP5xUef8XfmX0Hrbz+I9Vo2V2a9+VnLTXxkBEZm/nv4U/Uoek3Hiaw0vgSMok5oaaWYfAkd73n7OfHF2BUCumLhjZ47eoSz5FML3Te7ZsEgGWMt4mLW27mAxK+t+1aETf2Ri096P7pk0zMSCfF7jiGpdOm5f98lmiBEJ1oPwcfp5mIKYZ92NpDv11pPnBLYBSPd4Y63y8L5XuSNig==; 3:LTeOwyj1Gstlpef9RFzEYeOUD71KeWEAvJNUoQIyfZwD8tLKpDFlvEfkf2s6rFeQ6C0OT8ps/SqzOhQ5yGEa6foaDmeJozRlRDXUT+0KbhBKc+vplCjC7ocMAYy/Gjl6LEeoKEuCgu91vzMNMdvDzF0TzJqwFRolrKzZN4vRZBuzIhGz5n38J4lUcUtvVGfyw69tnCshfGe0FY7KiytMW+ZIdmFOyjcyzwjeios7B9qUI3p72Hiz/CYavMqjLnkEX6Tvs35OZFami89tpdejhoCe7l/FCWj5E71fqmF8Ir4= X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:DB6PR0501MB2120; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2120; 25:R6IA8QHE1JLwl47tbRQDOz1Iw3P36QEnYhYvphPbOT8T9Hdoj6yk7w//a9//Q9hSWpf+BUEAYtvZSlhyxHsM2Jho6RYTbIR49ASRJIInPCcA141dE0hDijjdaNYchUidsct6MWbuWdOTG9vXm8/pjnTAi53Ns4su3MC3q/QJXh/5gI6nDuyqGUvrwR+YrrIslsK1gvCDr54hApqP1nwAIgt7EzaW2Et45Kst6pnOecRGiG2Z0AdTjJmerq6er1VFOaIjRFTNj7MkTBIfgYno+t86mLakA5GJ9/dsS2udTgwrwnQvzTgWwlBLiY9SBBNXiAU9bzJVWKtamFo/bNeHIusOshZc6dZvk7ttyeo8ktR6k8ks2VB+tStmCGovDnituyKb+UHDEH9rPemaFetc26g4DWP/VkChbUHOoV+9gQx0ifVgXlIo992I6l/VNuBIlubvGrT0AHlhNb9sinhKE0JG1iA5kwa0Op6WNUhepkAyntSvCmBhS3WMtMCZ9OZXwikOB89bJtjiznLJB8PCg3VC5wAjsdIruDlqWwyQGZ7UMwKRXnH6V67guYl97TzxIjssBTYdsueAZTKNmPEbhbiS4BbleiUrDNkIwYj/veKgr1CE/OoV0IIfNJp7wqRFIc6Ymav5jfWm9UtvV9e8RbZ2rRm9Ilg2obXSMbQtNXhF+QyI2nat4uLRpRIMae3Jb6OYyAQfnyAlBE7C4RYa8JqCD4e+hYBq0B3VpBOEsPdRojTuPRYLwy65R0IJjJ+FQJHlgJi8JBo6BTedkAZ03A== X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2120; 31:7C5xyhZ9/AsmQFGPzvwMFp51NQEy30TnT3v9YBP0PQKDwGnZyGPLZ0LDAuMFFVtWHd1KLFWClVMHEW/LTbL2aKXEL2iQZIOi9T9x+fH2M1wn31Y5D4KCNaIq6VC++Uwaf01cMe4EyVicPq2SWeVQkLZdawXgqq1lB2O5hHUq7RWJXIiIZ7OjP7uniIdFWr9IuhpkBw8Q7D7QiXG2N4C1Za4vPdeTWTOzvdsMp9LSg2u3w8YoC1IYGXby5v3vE9us; 20:HKIUBvq4kYxLFv3TYM21vLyNt5+UNB0iAKxKtFdDKQfTngPkmU9UVmYam2FHCxI+8LumgpX3Swx1HOW1gKQbH1dN3sUMaE7upXK2rjI/4f+nTCStH57Kf1UPEXYnVpF1f0moGbkcqricZQTlA7Pf89mwUyhROjH7md9clXyhFuLX+1emJ9Hz9Fe8Grm95LOmA6G1f2PaeTmLUK22am2HpzxLNnKeXfF+rDpgpbhX5iWFZZ6vn5XGQGa71kKuQ7mPZCv0wK23jihrb0aa5Hx8iVEmQOruajxbi86xOSoAftQfvj8wJ9141lAfxrawubbXCztlk8AYMtVMAyZ0i5n9Nt0J0OYSNZEgCr+MAEjQOyHViY0vX0MAtFh26y8HHaYxtpMQzpQ2T0YfVWf+lCIxZFruDKObQtacMaQyYierBZWq+3ZAWk8aJVb7e8d2aQqf1KB6g4XhEsnqMjngvfQoI76M05dSvy7E8G1m0VIDkiKDVKKW9E4kuqd7EZWtKMtj X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13016025)(8121501046)(13018025)(5005006)(10201501046)(3002001)(6055026); SRVR:DB6PR0501MB2120; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0501MB2120; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2120; 4:mJziMz5NZ6C16UUMKys6Pqx2YcgTgo5dYkSKnPR6gXo4YoEg31hILQOj56wiTHl5GnrPUIFEpVG28g0Y399bsgcnrOH3HkkVxO/zS02cky7lkn3VhM4Tjy6W+AfNztRONuc0lI+bCHGSU4r0pB5wVtdhIZVZhFFfAWj/J2Qv1jttdBKUHKS0aMlbs8ktsu97apYHEJbjtZCeTOP2vzCscWPULNFbUzFd9No0U8p5jtEgiOTJeLXZJEc9QkaoYLOxDZyXkvVpQv0yUrObFRTJYFRFYshVw8v5sfUSAfM9S6UkKU91LlxcVOBzWHbvZowoLya7VHxhTGW7skjM8EFAnPG0ouJYLuAfo4lAFo8y/pA3ocySkjd0ZBimh9bflwPoQj04xHpvUILbx5TNFYkfLwD1/bWO5yu0DsloeUYAxNVziK5+DHrxJjMdEReKBEvWS7VEk/MFf7RkYjByZZ4EwA== X-Forefront-PRVS: 0107098B6C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0501MB2120; 23:USuJtvXQxckbiCKTJdgX0pjUaIOji/nsDtXC5Ap?= =?us-ascii?Q?XCxcLHwW8uW4FD5SJqfBAbDplE3Wtv2DfLjV1NuqyXi7MNKeUllLDbCLO9Jp?= =?us-ascii?Q?al5M1iI7TSsrpiDV+wNyEEjjyPlbXXy9GEjs99SD291nVbg6wmjbSmr6g9eg?= =?us-ascii?Q?dMMDSgnS4DgS+/in1D7jkeSasPELIqUYxp0qFQzse+YgL/qEjyDP91Y4t7Yn?= =?us-ascii?Q?A4E/44g7Vpc6TBvJW/FeAz/xUkqq6XjWqmW6CeaRZSNw6tsWCdUvK1nsX68z?= =?us-ascii?Q?NtddhnTHtqrZKQHx5gZYh91FMFZo99UJtBghXXort0mH5GKQ4DWBOWQ0z43+?= =?us-ascii?Q?WVIi2E8si9Fd00FwOxd214d6pQB1F8FxE9dXJpGGLZJHklmKT8oVA88fUwma?= =?us-ascii?Q?eEfHEzd5Fh5huAXXrQqLRGmNw3+hQMb0wq3jDPF3aoXoEZz1WCt64fSJLAyN?= =?us-ascii?Q?1U9TZDmjkpH9dR1P7Wfbi2vUPU2Me7ZMgNsiDwMpVMKgxrhpUHJ15kJTu148?= =?us-ascii?Q?fLWxtd7hW6kA/EIcyyB8TX+jO8MojIKdhmo8VRPP9wBEj44P9B4ZLOLnQNpN?= =?us-ascii?Q?Lol+g8sDAfBgQpgwnj6jfOXh0RbP5lQo+p1scoxYTwHpf7L9FDgtfgvyT7Vn?= =?us-ascii?Q?3aKkd3rZA0lAWKhTIEkbfg1OaO4gmS2eUqQeOqtT9wnzdfiKejt4l4HDqKkA?= =?us-ascii?Q?M88b62pZ1ZC379biFxiB/Squoul1bGwUFaoy27HKn00mg3WPZ9WH80F5EoAM?= =?us-ascii?Q?oXQN4KyOVCCn11no8mEm8/MtwEtIlc7n/1AWqQQq2yPkgsGWXiEoYIskm7hv?= =?us-ascii?Q?EH4ei7opa63BJZ7bsOrGT12e5aPPj989emWEZCohqNNpPaUVvIFWRQoT4ibB?= =?us-ascii?Q?qOkilvxi4aVW50BxP5t8nAl9heK9bv6+Lw7DT1K0Hj3kmQ81tRxBf9wUNVKU?= =?us-ascii?Q?lt7nFPLqtYw+tOCY4IsI3OIPkBxTf5Blo0998MmcvgrlnrPZLnn26SIX+Fn9?= =?us-ascii?Q?TbbP61rG6PYn4Ddx2QproeGazzxUhGdHXzcbKvP8j2p9CnJ+XD5L5nxAaQOI?= =?us-ascii?Q?JGGWjGqrbzVVW7HV8sHGFP8c4kCo8pzZ6eoBYUP299u/VIfR7PNbjlOTuF2O?= =?us-ascii?Q?GeJ00Q+8wAzfTggy5ln7nKyhvmXNLgUgWX6lnJ6OnMRTAaJ2VvaGsi2k/q5R?= =?us-ascii?Q?LY+Gcli16jt0QYmmrPwRYwfApJqvvlzRbfkXH?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2120; 6:VUbmXYe2Rg8wEjsfD3ZOJl3YEZSuwXz53pGV1VhhOMTOCYur3MDJW2xdWz2q2zu6LhFzxVLtfY5dOJjN98PoffQjYiHJwfvVsHbC2zXLT21jOsx7UtZDxwTMa1iXtl5/W2etjB42J4CXunUW64AP88GPlKimnWvTlvil0ALQ59F+PTXSeyAORTzARvUZ5z0ws9Nx62IYYODNAsl6mhAz7rplodGjpy/nhepQMg25K8/0sKt6HC+aRUeGjHydwV+CsuX2J7Ns64+VPLwXbATt1LbEdctM4AtcBQbseBWPzpWkHgkJq0GjzlGO8cdyR6eJ/kl7lliFawH4wKVZq6ksmEkjtPavsC8UusCOtgne7pg=; 5:zvlM+QElUXJbLdF8UmFAOcfg5PIYtByN6EP0XhsJAUGee8ePxmJjapvh1sDeY8EXYdEZ7DFs+fW8l7y/f49KXOXOwYDa7ZVdcqgAOkTMnZc9Ty8aIIF71fSsyHjt9KYyzpBVoS2/VY5B5HWpXmV5dR/sTF92x2y0nNpWMxywl/I=; 24:lywYIDSFzETYcrv0t9C96tDsey0vfw9hKs1WQEIThajZnzPjWkxeA4DpWzdXRgZOeJKJaACMmFZD1OGtR3amZCmSP/+D1g+6mzJDYPSojTU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2120; 7:FHXSSNDG/2GfyHLURYyUfw+43bc5ZeqVfStiYmlDpCOkOyhr5DeJyR1PQuQOvDEsh6qSx1K/hiBPZS5RM0EB1NVSrpU2DE2WTEmrkrf5gSHQ+6iCOKXKIahqhx5fj+Lv39rQkEOiXZ/QKhwVt09VkPxpaShOGRxSP9k88AjRWPeATfXctaTOgdGbsTEiaZMT7MmRFEVLUVebCgLlv6eriSdrQKLhxZjrsxF8ATwfGA+B8ueX22m3Sjsfh7dZbG0DRz8UXGr3n+ZgNdK1mxFPi9REHCqIx1G/maot0JIUkj3ivyBRe4Gc+lNc66PNHkwSavocwIkW2Bdnb4kNcB7FJhrdEriCmA8zCfAbN5jqmrg= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2016 08:04:57.7674 (UTC) X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a652971c-7d2e-4d9b-a6a4-d149256f461b; Ip=[193.47.165.134]; Helo=[mtlcas13.mtl.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0501MB2120 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161026_010533_630146_37DA05B2 X-CRM114-Status: GOOD ( 12.39 ) X-Spam-Score: -3.0 (---) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-3.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [104.47.1.52 listed in list.dnswl.org] -1.0 RCVD_IN_MSPIKE_H5 RBL: Excellent reputation (+5) [104.47.1.52 listed in wl.mailspike.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Noam Camus , linux-snps-arc@lists.infradead.org Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Noam Camus Today we use smp_init_cpus() to set cpu possible mask and we use smp_prepare_cpus() to set cpu present mask. For possible mask we use all CPUs at range [0-NR_CPUS] and for present mask we use all CPUs at range [0-max_cpus] which is actually the same as possible mask (no hutplug). For platform like eznps we wish to have more configurable range then being statically defined by NR_CPUS (actuall derived from CONFIG_NR_CPUS). For this purpose we added two new entries at our device tree root level: possible-cpus present-cpus The format of this new entries is same like for all similar kernel parameters which provide cpu list (see Documentation/kernel-parameters.txt) example of use would be (assume CONFIG_NR_CPUS=8): present-cpus = "0-1,6-7"; possible-cpus = "0-7"; Now if we provide such list in our DT then we won't use the statically range. In our example above only CPUs 0,1,6,7 will be up after boot. Signed-off-by: Noam Camus --- arch/arc/kernel/smp.c | 32 ++++++++++++++++++++++++++++---- 1 files changed, 28 insertions(+), 4 deletions(-) diff --git a/arch/arc/kernel/smp.c b/arch/arc/kernel/smp.c index 03d5151..5855403 100644 --- a/arch/arc/kernel/smp.c +++ b/arch/arc/kernel/smp.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -34,6 +35,21 @@ arch_spinlock_t smp_bitops_lock = __ARCH_SPIN_LOCK_UNLOCKED; struct plat_smp_ops __weak plat_smp_ops; +/* Get CPUs mask from device tree */ +static int __init smp_get_cpumask(const char *name, struct cpumask *cpumask) +{ + unsigned long dt_root = of_get_flat_dt_root(); + const char *buf; + + buf = of_get_flat_dt_prop(dt_root, name, NULL); + if (!buf) + return 0; + + cpulist_parse(buf, cpumask); + + return 1; +} + /* XXX: per cpu ? Only needed once in early seconday boot */ struct task_struct *secondary_idle_tsk; @@ -54,9 +70,13 @@ void __init smp_prepare_boot_cpu(void) void __init smp_init_cpus(void) { unsigned int i; + struct cpumask cpumask; - for (i = 0; i < NR_CPUS; i++) - set_cpu_possible(i, true); + if (smp_get_cpumask("possible-cpus", &cpumask)) + init_cpu_possible(&cpumask); + else + for (i = 0; i < NR_CPUS; i++) + set_cpu_possible(i, true); if (plat_smp_ops.init_early_smp) plat_smp_ops.init_early_smp(); @@ -66,13 +86,17 @@ void __init smp_init_cpus(void) void __init smp_prepare_cpus(unsigned int max_cpus) { int i; + struct cpumask cpumask; /* * Initialise the present map, which describes the set of CPUs * actually populated at the present time. */ - for (i = 0; i < max_cpus; i++) - set_cpu_present(i, true); + if (smp_get_cpumask("present-cpus", &cpumask)) + init_cpu_present(&cpumask); + else + for (i = 0; i < max_cpus; i++) + set_cpu_present(i, true); } void __init smp_cpus_done(unsigned int max_cpus)