From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933879AbcATFt6 (ORCPT ); Wed, 20 Jan 2016 00:49:58 -0500 Received: from mail-db3on0091.outbound.protection.outlook.com ([157.55.234.91]:63020 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751583AbcATFtu (ORCPT ); Wed, 20 Jan 2016 00:49:50 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=mika.penttila@nextfour.com; To: LKML CC: , David Rientjes , Pekka Enberg , Rusty Russell From: =?UTF-8?Q?Mika_Penttil=c3=a4?= X-Enigmail-Draft-Status: N1110 Subject: [PATCH v2] mm: make apply_to_page_range more robust Message-ID: <569F184D.8020602@nextfour.com> Date: Wed, 20 Jan 2016 07:17:01 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [194.157.170.34] X-ClientProxiedBy: AM2PR09CA0008.eurprd09.prod.outlook.com (25.161.22.146) To AM2PR07MB0900.eurprd07.prod.outlook.com (25.161.71.21) X-Microsoft-Exchange-Diagnostics: 1;AM2PR07MB0900;2:25K49oYbJreWxe8vrZ2S3Vkoeaw4kUKJ4Bb5NFUW/1wADai/G0jHD+mb4vtXh/82qeZnxlQtU5JBbluSNLHppapjWBGcp9cpQo4DwWvucng+VJzkfmmK+YScwxaqoiyVnKtXNmZtELVGR22EAXexKA==;3:bMwL8iC9ngYq+SrDTu9ijC31+h/vg7qAeDmooSPn1hxWnXnHfCyz2SLa8yYFWGcgcUowi5Jyp1SWCfJgLtrFKRF4KtiLayj4Phn2ats84tCMWQcEVzFlzLPrzlw28+mQ;25:J4hnJiE5sYDe1exJBWuC34vKN0u7UIcPdJ2ou03UmWAzndXMtgITDTd4++sqScCPkj5V3nXl/be7WP6kSp1y2jkK7vFH5b4GbyfyGP1XXqNz1jKJqbunXy8uKIh92asJGNDrtuSlRIUaA98HGsH0Qy12SVZzHFis3s5H65ury5zk7yses+DQ+3XGoYSv0gT4onH8g88OAt4d3JUA6MGFYHn4B/bq6xwib9gKMk1Ozn11NgMKiHOKFyCr22hxqLYh;4:W7xwCoSExXZ3+45tYEbxe0e6SviWh9ZOvoIn21uNepQtpn3cCOC81ULArG0uQokbtfI+mQMpMi5l39/C7grDWE1IiimZnne4mc0252bCMHO2Kqd7BiWEZtLxpUynUZUa8dXTRw5urx/s4TY1ZTlHG7Fd2BETCk6RfF6Sgg+3xhzuucpW++pdiYLVX0dlaQ5/P0K6aYg46Zj0H4JAZdxvwU8B8OUVqWiKxadrxGnJOMCzgf2fnbWt3Xd7QH5E7AWPqel/lgg7r20toLVPzVj0tGWotGN4P+rKqt84N0ppMuXRR6fhPYv/6p8vzB4kRPlx9upzB396YAPFPtUPtFJ8/eJowpBvIaUxt5v//0B/Bwk8F1br6lxfaVVx9mBnmNBS X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM2PR07MB0900; X-MS-Office365-Filtering-Correlation-Id: c880eb10-c5e8-497e-eb21-08d32158ef60 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(3002001)(10201501046);SRVR:AM2PR07MB0900;BCL:0;PCL:0;RULEID:;SRVR:AM2PR07MB0900; X-Forefront-PRVS: 0827D7ACB9 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(979002)(6049001)(6009001)(199003)(189002)(47776003)(2870700001)(23676002)(66066001)(36756003)(65806001)(65956001)(77096005)(64126003)(189998001)(19580405001)(5008740100001)(19580395003)(86362001)(2906002)(92566002)(106356001)(105586002)(33656002)(50986999)(97736004)(101416001)(87266999)(54356999)(59896002)(6116002)(80316001)(110136002)(5001960100002)(83506001)(229853001)(87976001)(50466002)(1096002)(586003)(3846002)(42186005)(4326007)(5004730100002)(4001350100001)(122386002)(40100003)(81156007)(65816999)(3076002)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM2PR07MB0900;H:[10.10.10.110];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTJQUjA3TUIwOTAwOzIzOmt6WXJQZlFxdSs1RkdIQW15Z05pSi83T3o5?= =?utf-8?B?bXJzai9xeE1FbS9LeFhDNUN5UzF5TjJHRUE0SlRLVzJKZUk3Q2NacWc2Wkwv?= =?utf-8?B?aWoybWtIZVg2MVpFZmxRTjBOSEc4RnJUdlpjV0xjRi8xNWdkVzlSWmFQelNP?= =?utf-8?B?eVZ5U1ZUTGdqb2F1Uy8vamNmMnhJNHozbjRlcXNjdUY4dFZOczlWaFNZOWJE?= =?utf-8?B?TGlKQys4Q2VqUTBMbGV5R3VJUEVDaHJQeTducnpqZUhwY2VrejZVR3MvZlUx?= =?utf-8?B?MDgzdE4vdndtbFNCUkhDMTBNZzhFbHpkVFNHeWpoY3hpVmNpcVl3K2hQczU2?= =?utf-8?B?ZXBKTGlaYUw5MGFRaHEwSlhYSmcxdlNaSWVadTV0Ym1WekRIQzl0bDZZTUp6?= =?utf-8?B?cUlDdTBBTk40d01HNFpaUlpGdmVRMXY5Z2djQjc1bHRBZmVtUHA4UkhVWWZ3?= =?utf-8?B?YUE4dlczZVJPcW9FYlVFOWRBNjJENURkQXo1VUUwb3RTRW9sM3lLYUx0dlA3?= =?utf-8?B?U0luWm4yZ3VvUGxVYVRoS091OXVaSENETE8rR0lYa2xyWm5NbzhLQ2RBMGNQ?= =?utf-8?B?QTJ4Y1d2UTZZa2tCeExtd3FQUEFud25Ga2Z3WEVHSHlzQ0tYOW5DMGRiRjd6?= =?utf-8?B?VUpsQWFKbjBtdm5tMXJwdnU4Z1k0Q1U1bS9Pb3UwU2tDYktwVjRwUDl0eXBk?= =?utf-8?B?VEFOcnBnTGpqSmpnT3ExbWVrMWpxazFRYlI3TW1ITDc3ZlVhOXUrc0dOUXlO?= =?utf-8?B?NjJHRHVuQUV4RWszSzlmNnRLVjUvaW1zRDBGVTBvRkRvejR2ZWVjTXp2YTV5?= =?utf-8?B?SkxybzN2blVIVmVQb2IvMVFKU2E4NHhjWmRObFhVVWdId0N5OXkzM3RQS2lL?= =?utf-8?B?YjI4d3UvR01BYU9OTUJLVmZrMkIwcU9ubFYwWE01VnlnSFZwaUFya2U4RUtm?= =?utf-8?B?Q3F5eEtXcGN0a2ZOai8xdm02VlVMd0NncS9rMVlvZHl3cGR3MUVPWEVSMStv?= =?utf-8?B?dk1VL1JETEpISmhST3k4NTc2ZFJBNzZJUWVtWmxZdzc0OTdoa2E2Z2RmTS9p?= =?utf-8?B?anF5UjdzbXAxL28rU0JjWS9HRlpidlZKQ0Z1Tk1IOWx2MXlOSlhVb1FzY3JF?= =?utf-8?B?TjFxN3RQMmRKektBWHdMQW53WHBPNXNibFBQODE4clVnSWNlZ1p2MVlUSld4?= =?utf-8?B?TElaelI2Qkc5bkN5V3JHWGdNci90SXVyUlM5K2lvVTVJQjJVcjBmV3htcmND?= =?utf-8?B?Y3MwQ3l3c0RXM09aNktnSmMwdmhoOEpoTzViMjJicXBrWmRZdHNxRStmY1VE?= =?utf-8?B?MHBuSTBwNU1SSTI1WVBsS1ljRjh4VFViNHBTd2pxejZyeFRxc1dDM3Eyd3VR?= =?utf-8?B?VVM5VHNjUVRKcWorTFFlRFRvT0JFUjVmQTRwYUNQc0FFOE1PVkhoUFVkNUVE?= =?utf-8?B?WWF2RzgxZUFQYWlTVG5PaDRwM09rMFRMSXBFdlRub3M4d2NXQU9NTWZSV3BD?= =?utf-8?B?bnFHZjBnZ0Y4MEdWbVE2cGVzMXhuK0hqdFludHJrN3JQeTdtYWFOMWtnUHc1?= =?utf-8?B?dFpyTGhkU3VKdmlnbTJEUjRnRnlKNCtyS0MxaTNaZlFWTjc1RmMza200OU5z?= =?utf-8?B?RlVZaVFBRG12OGNKSU10VHJpamhFU3QyRnFzaWVnc2U1RDN0clFpdEVhNkxL?= =?utf-8?B?YlhaV1VLNmVDSVhIYWh3QjRja1BObjBONXFGV1MwQUVIU29wMVBjMzNqcGx4?= =?utf-8?B?OG1SK1htMDhXNEdpQzk1OXpkZElFLzg0OGJlTm11c1J2RjlUMmpVNE52Y0tB?= =?utf-8?Q?r+WVxsHQzY7Gm?= X-Microsoft-Exchange-Diagnostics: 1;AM2PR07MB0900;5:Pxg0QgEP6oUJhrvGV+0IXIu7HFfQ9p0vL544l4QJpXLQLK8Rz7G2Hp8rggcgIhwWYUICgg9uokvHAXhIBGKElwHB1AiNDOepbAWktBeptzrVThf4pRSHbZfY3DqJYRUXNC/wQAS/Krbk8tR6gPNaxg==;24:s5BkN4ESXdvgaTvaj4avSUC3BJKm1VTCpy4cFWlcH9HKQrBRSaIYC3Yw6/RzGmvoicTxki1k2qFcQ1bpS6SuLG+/Rvq/0IInhC/wMMRV0N0= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nextfour.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2016 05:17:04.3973 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR07MB0900 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Recent changes (4.4.0+) in module loader triggered oops on ARM. can be 0 triggering the bug BUG_ON(addr >= end);. The call path is SyS_init_module()->set_memory_xx()->apply_to_page_range(), and apply_to_page_range gets zero length resulting in triggering : BUG_ON(addr >= end) This is a consequence of changes in module section handling (Rusty CC:ed). This may be triggable only with certain modules and/or gcc versions. Plus, I think the spirit of the BUG_ON is to catch overflows, not to bug on zero length legitimate callers. So whatever the reason for this triggering, some day we have another caller with zero length. Fix by letting call with zero size succeed. v2: add more explanation Signed-off-by: Mika Penttilä mika.penttila@nextfour.com Reviewed-by: Pekka Enberg --- diff --git a/mm/memory.c b/mm/memory.c index c387430..c3d1a2e 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1884,6 +1884,9 @@ int apply_to_page_range(struct mm_struct *mm, unsigned long addr, unsigned long end = addr + size; int err; + if (!size) + return 0; + BUG_ON(addr >= end); pgd = pgd_offset(mm, addr); do {