Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752172AbdFUHJ6 (ORCPT ); Wed, 21 Jun 2017 03:09:58 -0400 Received: from mail-sn1nam02on0046.outbound.protection.outlook.com ([104.47.36.46]:15680 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751082AbdFUHJz (ORCPT ); Wed, 21 Jun 2017 03:09:55 -0400 Authentication-Results: cavium.com; dkim=none (message not signed) header.d=none;cavium.com; dmarc=none action=none header.from=caviumnetworks.com; Date: Wed, 21 Jun 2017 07:09:42 +0000 From: Jayachandran C To: Ganapatrao Kulkarni Cc: linux-acpi@vger.kernel.org, devel@acpica.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, lv.zheng@intel.com, robert.moore@intel.com, marc.zyngier@arm.com, catalin.marinas@arm.com, will.deacon@arm.com, lorenzo.pieralisi@arm.com, hanjun.guo@linaro.org, tglx@linutronix.de, jason@lakedaemon.net, gpkulkarni@gmail.com Subject: Re: [PATCH v3 2/2] acpi, gicv3-its, numa: Adding numa node mapping for gic-its units Message-ID: <20170621070941.GA6124@localhost> References: <1498025743-6340-1-git-send-email-ganapatrao.kulkarni@cavium.com> <1498025743-6340-3-git-send-email-ganapatrao.kulkarni@cavium.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1498025743-6340-3-git-send-email-ganapatrao.kulkarni@cavium.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: MWHPR10CA0058.namprd10.prod.outlook.com (2603:10b6:300:2c::20) To DM2PR0701MB1068.namprd07.prod.outlook.com (2a01:111:e400:2472::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ea13df0e-0f4e-484a-1e57-08d4b8748313 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500055)(300135000095)(300000501055)(300135300095)(22001)(300000502055)(300135100095)(300000503055)(300135400095)(201703131423075)(201703031133081)(300000504055)(300135200095)(300000505055)(300135600095);SRVR:DM2PR0701MB1068; X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1068;3:PNaBujxbvChxwluhvWYQB34OATQSh756KB9LHYmza0nuNyNwzdlBrNuAzbbHKOYm9fxMzhy8SxJPmlTmaeH7Pn+ezokwBKbgEdgwuV5+fZjLu0bcwiEAVxyPo5oFaz181sFMhOtA4+RC4fznOcCOFR1+r0Qu8i1R6xtkSB3L97Q4I0FsbcxzVRS454mtmC1UH0rwVYsnEviz4TwQlG6t1pGft+rOpIDlFZ9BQRffztNLyKhBv4VQ34LZ3//5ukGLVwPfjqXbLvcd8j4YIB4ZdI/KVsLtUhjL2mONLjzwE6I1b9SlRON/u4rG2nTi/Hy29HBmobQRs87C766kIC9be73jV4+L+a9HsYXiC7fvs/iAocHftNtSygcOIe7T0FsGOngSeydnPhGAgztjbH/F8poqLwa/eg5Vkingrn18TCcB/8PofqSwse0n37b23E1IsucbsQuCRKw/EuNViDo8dPLhkyXY/QJSF+YyKzld/O6IcH+7YvCxpk6/QjUpcsxddbuXm0tU1dzo++ZHzqCqfiC4MqPqpa1G3gdiDkVY/vWs/JH5z33Tvy75Zx8/j3P0i7/F5cO/cIK5JjgO6qHl1ex9fpQckQECQwgTeLLKMq3gXsr/IuEhODLn8AW43jrGKBOCJii0RKkh3bUlxxmQL9rzpiTSlLmx24+mfksVyuUx5UjUIna5dAO0hw+TZRwx X-MS-TrafficTypeDiagnostic: DM2PR0701MB1068: X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1068;25:/XfuUbD2kYwdmhogLk0SAlTkz3gvzp+bslaV/aVlh3XuxNh00NFcZm7bVSc0FvNK5pYrLzFAhJ4aUXnN26Ba7IYXrkxBL7zKIjph1oR4DoLIymqh0yER82xs9WULvpGi7C3PWPPCrgsFi5GW/7pC48lx8asFj+/jA2g6rFQv5XzxXxQXNCM/vXSfD8BLLwt/TSIU8+81BZJSELAR45Na6AXjxrcmHeGv4Wvm/hHdKbbZeWsBXR51WBtd52StaedBfKhb01or7vZ99Sd/4C8V971ifvg3PQMojR91IHOxfhAgs9Ftpxtvu3YHRT8GIwvVx6p+hh9jJfHy49ldU/TMjDrXba3KnuAqcL0/F5n8HtR9Fh3lNeMoKQXiJN2ArJh6yrdA+yfjRalmpht1Jg5C9T/JEp1oLOg/Pn/a5hp7Sn1/yLEVkJcRAzDR9sKPgFxmBFQuoWO4ToOxRSYD3llV/zzXWJzIjmcenn+VbzYBL4yhC565GWe33QK+QieWgW8JoxDXeWfYDvIlsY2trWhrJPXqqJeuIOFau584me65INKRX/xC+hqr/MjZdtFM2zwEu8usxsxYfzYysWHUGPEWhFx6ExA9ch1ySYkjIf0Eyld94gHntSCEkwWLvu2auAhBNKkl2yRONQLndhmQRzcaS6a+3CIs4ciJoHobWW2ShGjP7qtCWoCxoi/RIyOpkuAWbn99apy6/4jyfCsg4Pk/ZEuno58HzmqVvSeBcKKR9XwdkNo2caAkkO4o/OfRFLKplJ/62lS1VLEVqMgkr2nmveVBEKcV+7RP5h72SJQni8KfYU/6V/mxXOh2uaAuqRlzCw2iTqBBPxWFjek8pNudczq8+xncwA1SiUw8oRbB4n6ivXoXExxgqBNQ2/Bx9/ixgHXq4UCUpsakaJcCbwX+9S71uXB7uhS/YtChc5PEk0w= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1068;31:GOwRs7u+c7Zovvp2+Mg6sF0+LqudvZG2JNueE9gANqgCnhr3EUyx9LLDt0ybefCSNHictQwOw3w1IJku5PbN4uysERZBnpq7n3P7o7Wk7LxJzLi9P2G4inZkmZED33hVluBrRGBwXFO4wtew80thMEVEVQw4b1Q4Erzo87yipcs4TxmFVl/pjpn1hbTRHnnehRjBA7x8ZIfSA2JEiWP11pkkMtaFXKRB0PJlIh/2pi2NKj/ppkmLSruEKiujPD3KoTVvEljadSkkOWG5CNXGC/gvZTTalGdiZcttmzEbJ1QY9zJvZP/0HudVF7yfDZs4ZxvGYLRqphMNZFZe0YcSTSY1DVjy6KSjuioFulK9ydG0SpndbivshB/u8n5ODBan1Z6RxH572wh0Te1W5QYmt2/AuUH/2tsuodk7Fn242HQrzHDanOnh61CfAZosVfMoICbs7ks3POBMrsqT8iF84pKLUPD0IKwJrVs0JskIw8/GerOS7ynyyLHQqb9A2w33/AK35t1kBOW6VtslHQxsZzzbzaLT36VpNsEEdJuqvXB+qjoyUwG10kh9j9eQ9upqUxgNe6NfrtM1LGXQoS0NDqiSGT8bVHBnplrWDeRE+fmpW/DcSB+TDgkMiD5JPZC6qN+q9wvvD4LjhnxEOuNW/QuDQiTVxx//KfbDp6suQQU= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1068;20:FLSmqPmlo7eSmfkr7URL0JkkA6ulh3gMdl81cXEldU4iSfyPpqIe6FBLTQGsXt06fqT16AxgsQxBoOX3o+7Ej/lS+vSWklBfCwGmg4HRaU1vgegBJ6W1e3zM2bJHydftV99txClLq28wWWSfk2V1sSvWFU9hLHhxUV/e9MEQkCPbnv03bht90VmiENRq4gEqWsWtUwEAuDAi2GmKMlvNZX2/kUxI5Yp3KoTbYo/DB9Me5q66clUKAhwyFL0fAKC3hoeJPNecVT/6cYRc9VrzbgWlDPO6lLz9qpYoqRrmUXIIFItcFxZGW3HzYjdCLZHlgWWHHEY8SnN/QVwN58OvLdUtB/A6753O1PpYsBnz1NEJJLtZSvN+Wt61dav8MAYiFwutILovaZHrOQnnQm85VV0NX1EGdEZBkF4th8+W0YveV23qVMC1ry3N+IngwJ9ThXBZ7lWWx9R4MKNYuh4LzmCE6w2rBGkIjHx9zfEq8gULv4FjcNKEIVjiasszUvF0x0aMc69ZePfh0574+uVd3Oh8Z4YWQ0L1AepT/4xryyFAsGFbBgLsWPhY4ZmEU2KYTNPQrFqA4Wv/duzz2TTeNOzGElhUcRCR3vZZmT8lwc8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM2PR0701MB1068;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM2PR0701MB1068; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0701MB1068;4:TPyfJNcV0zJIVzxOidrFUzMDTVFvZgyRanZ1UesR?= =?us-ascii?Q?MtyQMMoxJ6yKg0TPHH1YCvH1UEoaKJH2pzUkPR65Z/luQnIJpBA7xbtrYwI1?= =?us-ascii?Q?241qz74BRPLEJxQ4KxPDZZKNGIgHkuHRDUiWW6C3ZaRJtq4E1Cwqd7zS5wf1?= =?us-ascii?Q?uqN654nKIQL+1JFifE48D+CEwTGREqjvBiNYlyBpPxRIzahXXYjH4DhokCK/?= =?us-ascii?Q?AknWhnzfatF1O7I0cpTDRXG1Xnh6HVOI2XZFidvL+235DS5PkAPetdqXpId9?= =?us-ascii?Q?sj0nhKTu056ODzRho1IkNLDCP4Ts2rRFuCASe/KNkuUqAc4XxHecrnthRB63?= =?us-ascii?Q?vLY0BwUVJYMW0+bjpVvSWmSvPSv0rfnmv5D9ltzMmttytDa6obSbraIChF+i?= =?us-ascii?Q?GcCA9pMOV8a9wJpSLoXHfz36zb7wm2QRFN8EfI59ETIs+jPU6pK48QkCKqY3?= =?us-ascii?Q?x/dsmTNMVOtNK6cnoi4m07mnOMKcVi9I+OGHP3cul4+SnR4vqgQN5m+iEn2v?= =?us-ascii?Q?MVji4FOtsLWXmjwRrOqSQGZEsoYeCipw1eP3Ztl4KGWIGtli3P/ctk1HrtG8?= =?us-ascii?Q?7avz0/mQT9NerxTEAnp4UgvzLKWTV7UX0j/USceaT3zniG4sBMZ70vMzgBop?= =?us-ascii?Q?JjLu2vdQi2rNlp1Q1FpADuVRSEQ8ntfokNN8NsjaEk4hdv2mmvk5rHZgBoov?= =?us-ascii?Q?dzFtL/tu39EC1/F7kFzotAJL3r+bnopfQztEGzSK1tLGrs1XBhT6+2tNDybK?= =?us-ascii?Q?u4G5wMe6Pnxc4OQzeN9SO0Il5Dz+7oMDDXD1bZCx0uCiqaEW5Hf232yBoevY?= =?us-ascii?Q?jOV3phkpn/KcA1g7ADxrl0Zo5lxhZY+rbJpIFqjC9ySKU2hwhrDecj7MUgCE?= =?us-ascii?Q?5silenO2ET3WQqFxm0jBlbHePgi9Xir+pLEFg9Us4RW1cbwzmxjkLNUCQlwB?= =?us-ascii?Q?hmFlwIwx/B6Y5EBuuJRxznkUhpLenBbsXN3JK0EatX0Q3209IMzx7xj8md1H?= =?us-ascii?Q?S8LYapUCJn+ckXhHq6bQIfHEkBG8ei7D4eDAdZF58LkyaBbx8dVg3m6AcaHn?= =?us-ascii?Q?dP3hU9PDfSx4Iv2AR7RD3xe++6ItkJ9qwjbJWO+S0vdIU68RpOLtq9lrxWqG?= =?us-ascii?Q?KGIPDsQijko=3D?= X-Forefront-PRVS: 0345CFD558 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6069001)(39840400002)(39450400003)(39400400002)(39410400002)(39850400002)(24454002)(72206003)(42882006)(478600001)(2950100002)(9686003)(23726003)(189998001)(8676002)(42186005)(33656002)(4001350100001)(50466002)(55016002)(81166006)(6666003)(6116002)(83506001)(1076002)(47776003)(66066001)(7736002)(110136004)(3846002)(54356999)(50986999)(76176999)(305945005)(25786009)(53936002)(6862004)(5660300001)(33716001)(6496005)(4326008)(2906002)(76506005)(38730400002)(229853002)(7416002)(18370500001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR0701MB1068;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0701MB1068;23:dlQcOOsUmXpGleUT1duz9rG0r3W8+2BGU4BlOGS?= =?us-ascii?Q?bmxZFmf3Qv4wlyl7afD2cLRXEMWn1Gm2/e/OQHkMOZvYNqExzZxQe/KE+UUJ?= =?us-ascii?Q?b2vXoHGHqLmtk3Q+bFVI7a87j2LGXaeawxKaJyWk8VLRWkcSVay0CxWyzwzj?= =?us-ascii?Q?+/TqwJmXT8tZirapoJbNodN5lChRDJp9b+CJBZZ3Nnyhdu5zDjTmt6nJZd7/?= =?us-ascii?Q?oP5rwqNscL47xusJ4OY2cUbLyZaQU/O5zIhNcG+lKSyxSkB6JOGo1MGTfnF/?= =?us-ascii?Q?09veYFJ9zU7+Ii9NcdfRo9Rv5c5vfaZsoh9FsyfoOKxaM/1QpFRAstlq6nXA?= =?us-ascii?Q?cShKFd7Uv9S3FtIkXJe3hKGzH4Ic7HVFEgpk7y6jL6v0lVbOXeHFoXE138KJ?= =?us-ascii?Q?b5VxbHtVxOt4WcTkKkd63wjF5nVE7fIZ9LPFhmsdPOalPaVAbvoUDiENxEMx?= =?us-ascii?Q?sVH8bT7EpKSqUa6YLjHA7kmHf0EFVLA2riCXTmbWcrLxyGeAPQuSrpP4QQ/X?= =?us-ascii?Q?VNXnCGKT9tnEVupFDgxWIMiDaPiuGgj0Rcc3RUmvmCcTRPOj/ZdR4Sx/Z8cs?= =?us-ascii?Q?RzfpBdMU5paOcepHJsiuCcCxRTSkBW9/lAMo3r0HmVEl2pM+rKK6E76odwZr?= =?us-ascii?Q?sbseQCUv15ETOY8xJKAkp4VI7LeENnDH6JA1fdliWNFWexIedurN8yU+T8h5?= =?us-ascii?Q?6JLttkjShTPW/6srfMea2YHZgXCrUV9e0NDl4iCKLFV4jhO5KvnqVAXuqo5b?= =?us-ascii?Q?2F6JWzQ2QPFRxthHZrZeGkL0X5z67beF3sdlB0BDKxEAAynuQKEOo4WGLP8D?= =?us-ascii?Q?whbPPuWT2CitlR+06wjf/fDyGaqH1cXRFxFh20If8ZyhAuFmVamVtIApZjn9?= =?us-ascii?Q?AIrgQLBrrC1gOEbzhFF57nmvH39EcD55A8VWtx9vDxZRzxWmAIQlPmRpQkvK?= =?us-ascii?Q?e/kU5VsQHAG6OqemoFGE3vVdgcJVOWxj86qe0FdwocTm2AKvRiWEQnoSiqG4?= =?us-ascii?Q?9yOYCWh+P+Gy6+yyzXkGOoY37YQqaIs717zihw4rtknwUtWcj+SLK6UrXAme?= =?us-ascii?Q?f/+l2SetsGlx/CUeEpN1juEIm2ALNO+wQ4irFGJwsKDBAeLz1pp1PsI/Wnsa?= =?us-ascii?Q?+ej+mP1eCLV0OxiFvn+HiiaZxb3fvU3HS2pcxoL6le9K/OYStAjPUWXC1x2R?= =?us-ascii?Q?nbHAHBqsyKxyRKIltfq8l/FdFrXuO/8MiiZCosnHRhxUz/ljeI4l7wIf9uw?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR0701MB1068;6:Nluxbr3b2WqRJ7iR3szwRRsBOUVr9xYK7RWVVgtu?= =?us-ascii?Q?MdbXP33QM9evkogzEN8f/fBpdeysBPoLKaqu/E6N6BnS8IA9S6zptfmiqUgW?= =?us-ascii?Q?ZT9K1CjINbW1dndh019L/SD5a03d6f84WxbymkwGcaeLkVRI9SQV5BI0OJTB?= =?us-ascii?Q?Uq3o5qzvPUuYY2DZvqQ7oxbhUlgFcYOdJtf+3HRw4x2eTYuWRbRuFvnbTlLF?= =?us-ascii?Q?fAy+s31XEyDjtuToawgOLOYVzKJQwQLJywHilAkrojwgE6QKd+rCNIVnH8m3?= =?us-ascii?Q?pDqrDgyGXcaWqUnNh+VcAHtP/aPGPRa5bD1/obBJ1MtGEhId+T+g8Hu3rjDK?= =?us-ascii?Q?1ddb+fbx1mI0q1Um62POjb6z2jMt3QhrwU8wJnvCPw4s7+V1cEIbK8HsQbYV?= =?us-ascii?Q?IpZ5QFqOnntwCZbCdcAfKqdKO9AlhM+X4o5MptwZW21ecQvS9L/FESwl0HnL?= =?us-ascii?Q?l/u35mU5KkpDMz5izd2z9Gu3VR1QlIQdn6KMQNuKVS4UXgoDobgcP7xL5dkv?= =?us-ascii?Q?O8y8KtYKuwo5sfUvYhni69n1TVb7PY7OylFC21wIuPE9kP/HVhhFADFjycw5?= =?us-ascii?Q?0GqPIhHZvP6RtJnVvmjFu3ooNOsnENRi4I//5OXUxFqjTx9J3z0RZ5vzAlkv?= =?us-ascii?Q?UGLF35i+s7MkhjOHQt3JVlpn9qW4F0AQsouy6twlm7c9Pz8a2TrWFLPnXij2?= =?us-ascii?Q?qtuvSgVqyVZYQuKkcHfrTSWMn4k1u+W09kR6pyji1F2RUNhLYGEnz1G/sh86?= =?us-ascii?Q?OE75XcmOQbVXP+ISP97Y0ZptK1ieOUJcJeF6b7fQy4MhphPAzxmpXohteBt7?= =?us-ascii?Q?pEQeApoz1LuMJMp/iPUqJKrrbSQ22hNe78CUzOX1lDtVz27J3Y+OOmSfkMaG?= =?us-ascii?Q?lji9fAGpVghSRf/8mnM6eiGCJL/fhengmUH/0bfTZGX7BbJhQ1AYzW/95QjQ?= =?us-ascii?Q?ZsNNE6G5JDcmcGIxm3rTq20llY4w70QdP2lYBYshtak3U05NeOxDvh3UAFIl?= =?us-ascii?Q?LWI=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1068;5:CvBjZVJCMz6K+U0JQ/l4aWU9DlX1EOmWDGb3cPYXBNMfRHGUf6S5rQ3xg5brR1Fj3lkN8YCBCamvvDJ4qoaAXe0Onpf4Uhd+wMb+9EfY5xMjDF7uUmRaYToLewlpcsEvakPdYuKjqa/NizjBBtv0Q5LClH8wDZEu0I/g12n9cesFkXyWFCh9mdKsaSURoRjmuc9PDdDl23VXRp1e+cNjEysipokCsM6L6W08jEuYmMJNu3a0U3OfbL1HEC1uSFdAe4Vnne74Ij+kJG7ZC5ObJdjIbhfDEIoTLhIMdroAoOHoJrtXBarYoBIQkUXCglAPz3HvwdGvu4qza8KX5RrX6vBlCLl+83J4RTFJAxnar2QkoJZ7o4sIJq0kih2P4sDBu/80aRffAO045C9BkoYEJ3wnc2vJdnmT2V9TS9SEmSqqpmG4npotnswMswF3Q+9GgH+YJLCMbdz2OhKKXePkSkl1gpaEqPFG3x0hydTK+JWJe0iaKF+jCrVZDQCzRS8S;24:zby6A3MXbaWLOqLKj3WHWYHLZXMwQjOztO4jLp6u/8NQFd/p8TLOPfs2UJgMTVKFiXc787AegmSX5j9zcMij9jun7cdisRqaVRwFi+gysB8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM2PR0701MB1068;7:A+i1tG7xWMunCU6psaCknsmMRvqWX7rKfE2Cw8dYaAX2Aliw2+44tE5f2LLf7PuAKJSQtpSuRfvN9w3usy5TTgntpa85QHgSLsTzFqIJ1U5fumqPD1kQxPVvj50suvC8Ph0cJUFIBMffrxQWlFelayQa/WMJift+GFHyJuoC7MZ8Xz0uHdztXfcHx2jE414zY7ZK951QngjRSIM9wACJxwj/o0SQGkMEkCNwVuV+NVYd4Iuw3yhQPUpUWXL5VCfV2X4RZzlNRl0AcRoArIneEYZT8feS4cBow4eDt+9y368M4oYyldPlPa9Oung/SrgV4zKEl6ib269btYIB+Jy8Mx0dK7u/PRfxWc7qG4Uyr+Lk2ML0HhJuWB64WWYT51utYvMSm3LYLpsLz76GzpP6YoZKXiCahN6rVuQm329KuQJXpj66f+tGOIisZXzifvOyp6Md024Q96zhSt2Q9hiFR08DtUCpGcchaKV6C8ZkRSnXVct+fxfjIMuqGMGnnSSEgCnT0DhBKCw4/rTXs1c89P/19B4dBVYquOw4BLsR6OOEB6rDlu3IgRO91ll8lcn3lhU1C3+YPbYSDgEpLsRTIQkz3soEWy8APswxEKQJlgE1GvFObMvF/A6w0oekFz9B8f0rFhDrB04I7QK3QqYmdDLF4YJGBshjVg9kWrzqcAev7MXD5YQdLUX53YJ4i63blWpVR/ja+ggVbpUPHu4l+UYf4JpJvR2idJjFlPqxyZxRuGh3v7PWhNfFGJQxMh1l6FU28X6ONQsBy5OxQmehhRxg+TLmmAP2k4gUPUa44/8= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2017 07:09:50.9930 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0701MB1068 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3867 Lines: 131 On Wed, Jun 21, 2017 at 11:45:43AM +0530, Ganapatrao Kulkarni wrote: > Add code to parse SRAT ITS Affinity sub table as defined in ACPI 6.2 > Later in per device probe, ITS devices are mapped to > numa node using ITS id to proximity domain mapping. > > Signed-off-by: Ganapatrao Kulkarni > --- > drivers/irqchip/irq-gic-v3-its.c | 80 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 79 insertions(+), 1 deletion(-) > > diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c > index 45ea1933..88cfb32 100644 > --- a/drivers/irqchip/irq-gic-v3-its.c > +++ b/drivers/irqchip/irq-gic-v3-its.c > @@ -1833,6 +1833,82 @@ static int __init its_of_probe(struct device_node *node) > > #define ACPI_GICV3_ITS_MEM_SIZE (SZ_128K) > > +#ifdef CONFIG_ACPI_NUMA > +struct its_srat_map { > + u32 numa_node; /* numa node id */ > + u32 its_id; /* GIC ITS ID */ > +}; > + > +static struct its_srat_map its_srat_maps[MAX_NUMNODES] __initdata = { > + [0 ... MAX_NUMNODES - 1] = {NUMA_NO_NODE, UINT_MAX} }; > + > +static int its_in_srat __initdata; > + > +static int __init > +acpi_get_its_numa_node(u32 its_id) > +{ > + int i; > + > + for (i = 0; i < its_in_srat; i++) { > + if (its_id == its_srat_maps[i].its_id) > + return its_srat_maps[i].numa_node; > + } > + return NUMA_NO_NODE; > +} > + > +static int __init > +gic_acpi_parse_srat_its(struct acpi_subtable_header *header, > + const unsigned long end) > +{ > + int pxm, node; > + struct acpi_srat_its_affinity *its_affinity; > + > + its_affinity = (struct acpi_srat_its_affinity *)header; > + if (!its_affinity) > + return -EINVAL; > + > + if (its_affinity->header.length < > + sizeof(struct acpi_srat_its_affinity)) { > + pr_err("SRAT:ITS: Invalid SRAT header length: %d\n", > + its_affinity->header.length); The original driver does not use pr_fmt properly, it may be worth fixing that up rather than having prefixes, here... > + return -EINVAL; > + } > + > + if (its_in_srat >= MAX_NUMNODES) { > + pr_err("SRAT:ITS: ITS devices exceeding max count[%d]\n", > + MAX_NUMNODES); > + return -EINVAL; > + } > + > + pxm = its_affinity->proximity_domain; > + node = acpi_map_pxm_to_node(pxm); > + > + if (node == NUMA_NO_NODE || node >= MAX_NUMNODES) { > + pr_err("SRAT:ITS: Invalid numa node %d\n", node); here. > + return -EINVAL; > + } > + > + its_srat_maps[its_in_srat].numa_node = node; > + its_srat_maps[its_in_srat].its_id = its_affinity->its_id; > + its_in_srat++; > + pr_info("ACPI: NUMA: SRAT: ITS: PXM %d -> ITS_ID %d -> NODE %d\n", > + pxm, its_affinity->its_id, node); also here. > + > + return 0; > +} > + > +static int __init acpi_table_parse_srat_its(void) > +{ > + return acpi_table_parse_entries(ACPI_SIG_SRAT, > + sizeof(struct acpi_table_srat), > + ACPI_SRAT_TYPE_GIC_ITS_AFFINITY, > + gic_acpi_parse_srat_its, 0); > +} > +#else > +#define acpi_table_parse_srat_its() do { } while (0) The function implementation returns a value, but this does not, it is better to be consistent here. > +#define acpi_get_its_numa_node(its_id) NUMA_NO_NODE > +#endif > + > static int __init gic_acpi_parse_madt_its(struct acpi_subtable_header *header, > const unsigned long end) > { > @@ -1861,7 +1937,8 @@ static int __init gic_acpi_parse_madt_its(struct acpi_subtable_header *header, > goto dom_err; > } > > - err = its_probe_one(&res, dom_handle, NUMA_NO_NODE); > + err = its_probe_one(&res, dom_handle, > + acpi_get_its_numa_node(its_entry->translation_id)); > if (!err) > return 0; > > @@ -1873,6 +1950,7 @@ static int __init gic_acpi_parse_madt_its(struct acpi_subtable_header *header, > > static void __init its_acpi_probe(void) > { > + acpi_table_parse_srat_its(); > acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_TRANSLATOR, > gic_acpi_parse_madt_its, 0); > } JC.