From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ob0-f178.google.com (mail-ob0-f178.google.com [209.85.214.178]) by kanga.kvack.org (Postfix) with ESMTP id 0BDA1828DF for ; Fri, 15 Jan 2016 00:41:13 -0500 (EST) Received: by mail-ob0-f178.google.com with SMTP id ba1so512809596obb.3 for ; Thu, 14 Jan 2016 21:41:13 -0800 (PST) Received: from emea01-db3-obe.outbound.protection.outlook.com (mail-db3on0060.outbound.protection.outlook.com. [157.55.234.60]) by mx.google.com with ESMTPS id f132si11297157oig.72.2016.01.14.21.41.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 14 Jan 2016 21:41:12 -0800 (PST) From: =?UTF-8?Q?Mika_Penttil=c3=a4?= Subject: [PATCH] mm: make apply_to_page_range more robust Message-ID: <5698866F.1070802@nextfour.com> Date: Fri, 15 Jan 2016 07:41:03 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: LKML , linux-mm@kvack.org Recent changes (4.4.0+) in module loader triggered oops on ARM. While loading a module, size in : apply_to_page_range(struct mm_struct *mm, unsigned long addr, unsigned long size, pte_fn_t fn, void *data); can be 0 triggering the bug BUG_ON(addr >= end);. Fix by letting call with zero size succeed. --Mika Signed-off-by: mika.penttila@nextfour.com --- 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 { -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753837AbcAOFlO (ORCPT ); Fri, 15 Jan 2016 00:41:14 -0500 Received: from mail-db3on0064.outbound.protection.outlook.com ([157.55.234.64]:31904 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752052AbcAOFlM (ORCPT ); Fri, 15 Jan 2016 00:41:12 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=mika.penttila@nextfour.com; To: LKML , From: =?UTF-8?Q?Mika_Penttil=c3=a4?= Subject: [PATCH] mm: make apply_to_page_range more robust X-Enigmail-Draft-Status: N1110 Message-ID: <5698866F.1070802@nextfour.com> Date: Fri, 15 Jan 2016 07:41:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [194.157.170.34] X-ClientProxiedBy: VI1PR05CA0015.eurprd05.prod.outlook.com (25.162.33.153) To AM2PR07MB0900.eurprd07.prod.outlook.com (25.161.71.21) X-Microsoft-Exchange-Diagnostics: 1;AM2PR07MB0900;2:1XdcLMXTVZIOOumMyJkK8hCRhyb5NMInLftBmVRUUfYOErhS2maZf1U8KBGL4jIpAug8duInFUTbzhnTgPdwpV+1tlWv4hTMQrWLuOxfIHa1Zkne8z5jPvuVsiSJVtqjACnPm31CAHIvr+d8aaV9qQ==;3:JPvCZc4YCn117e8tVWsAQW20S7tmgqpY2LldJFA/6oo7P0W/VoUbg7XsTR9Odt6YsxAzTi2E9DQ/FJLpii6x60JiWw3RoODZERAbWnSEbGkTNMhVuYPoOqm3GA5mMcmK;25:a7rN7EATb/eKIO0BkwXG/vi/au8z4X9sfwg39mOxTJwwBWXGVffc3RqwVl4rsGv7meCxP5vWp/WVjTi9Uu14iomp7GB0GMqcrwbtWwSvQsJNXl8vJKOev74IaDPNIXJpgbiL8aKCWmLviTzqzQi/DkAsjTRSWgr2O5MsiRINqnMqVhuQGHcw80J5EMQsANXd5njN4OW+bdd3ujz0cEpMPsZ1NQmDl1nlO9frTyCkX8EIMhW2P99O+CnKhdA6XrV/;4:mJ1tGeJX7sej1Xcl2qpTAhcsXqqOszzbcpDEbNwBBKQtjUjzD8pHFoCnWsHSppmPxc1MtmDgJMptvTjCoLYzIln+TeAzyuQKW2Av0FbEPCXK4hRRH+9B2Wqupw5mEadVukO88+KJ711ATxNM15McM5ckrWELsI6PzePQogiGeLjmiWqfqNe3QkgZMI0/lNxslAnyyeNU0T1G4gl69Z0q4SUh//zQ6511fhDI//s64+/pWf6KZPih1dOKPS7ng8xmjpIsyeKvMqpON5qKlR1DTBzZSXNQhQJY1xeGVq2glBxfCVVRPaOOn46zzBrAG5eJreB1QgrikfJALbWD5taKrcmIBtk7KnsZ5tJi+HQFLeFyZYei8KXjlp/F6FayFNqj X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM2PR07MB0900; X-MS-Office365-Filtering-Correlation-Id: 851c3fca-b118-4a12-38ec-08d31d6e789d 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)(10201501046)(3002001);SRVR:AM2PR07MB0900;BCL:0;PCL:0;RULEID:;SRVR:AM2PR07MB0900; X-Forefront-PRVS: 08220FA8D6 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(6009001)(199003)(189002)(59896002)(77096005)(5001770100001)(87976001)(4001350100001)(81156007)(2906002)(101416001)(97736004)(33656002)(83506001)(5001960100002)(107886002)(122386002)(65956001)(189998001)(106356001)(65806001)(66066001)(229853001)(105586002)(42186005)(19580405001)(64126003)(87266999)(47776003)(99136001)(86362001)(40100003)(23676002)(54356999)(50466002)(5004730100002)(65816999)(5008740100001)(50986999)(36756003)(230700001)(80316001)(19580395003)(1096002)(92566002)(3846002)(586003)(6116002)(2101003);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?MTtBTTJQUjA3TUIwOTAwOzIzOnhPVml3T25XcUNCVThGdEFCaWJ3TXh2aVcy?= =?utf-8?B?eWlkemV4aWswSkp2VENtVEJESzRTZkM1TWlwM2tTNlQ4Y0NhSENOSm9JTnlx?= =?utf-8?B?R0NvcnVCVEZFckV6S0M1MndBdGR4SEJycEtkSXdGNngybHlRekl4WHRURU52?= =?utf-8?B?a0dzMFFDaEJPUlUrRE56emhIZGxsU2YyYWhjZ0hsWldMYWtlczJpZ1lzN0c5?= =?utf-8?B?QkIxT1hiTm5BNXAwajJPVC9vRUlLdFpLMU01NXFFNzJhQzJ6NkZUQTN2eEly?= =?utf-8?B?R2N2VVpCdWJkYXE2aHE0bGZBdStENnpwZVdDYVJJSk4yeVQvcFBCcWV5RG5n?= =?utf-8?B?VUZiWk1mMXMzdTlwWVRTYU1lMFpYSDROei9KcTcrR3J1TnFoVlVkQW5TNVZT?= =?utf-8?B?M1MyQURacExmM1JyUEF5dzUvU0xOaDlmN01ydXFJOHVnSWxMYU1VRzZ0NGZM?= =?utf-8?B?NUJvOWJWaFlZQnZqVVlINTFJa0hPY3NuZmd3SDlrZWl4ZUVFR1lsZ2UvN3Ev?= =?utf-8?B?Y2UxWnpmbGNaeFg2Z08rZDFNUjhSWlhJRzJYZWNDZ1JoTFRpRVhhczlSVHNr?= =?utf-8?B?T1VLeWwvKzJTN291eWRPTW96QzNCMkRqSGhoTVJ3dTF5bXRlSU9NQTBXVjV1?= =?utf-8?B?Z0hvQlY3VEI4Z2t5OHhKZ0hYUWJ5aVl1czJkRExEZjRHcEZTdlplWUNucjRD?= =?utf-8?B?SFRaMjQ2a2s1TDhldTdISnVyTlNYbU9WTW1PRnV3Z3ZKcUNxSXJaOHFTUHp1?= =?utf-8?B?ZENDaXFaY1dSSG1sb2svR1dBTmNaemx6R0ZnZ3BEb0xVMG45N3BxZVZlQlp3?= =?utf-8?B?VFhvODM2NHZRd3g1dmREVStGaGlZZlpkVDduV096bnNJS0hZTXkyTm9sZUFv?= =?utf-8?B?YWJiaWhYSG9WSjZWejJwNXJvT3NnQ0R0b204NEF2Y3RWOUN2OUNFUUJVY3l4?= =?utf-8?B?dWhRWEIyZFNWeWdOQmVaemR0N2hUT0VDbEpMZ0QyS0ZKM3J2emJBYVRTOFZv?= =?utf-8?B?ZVJWVEx3MG5pZEpPSTQwS1VUT1g3ZHJDYUc5V0lacDlYK0IwNTRZU0ZNOG13?= =?utf-8?B?Z3BRSFB5MUFBMHJhV3BVUlBZUUFrRzVsamQvQjRqcmwyc1liOVFrS25oZE9O?= =?utf-8?B?cVpOTXdvRHE2RkhPR2ErVklEQjZnSTVGdkJrMGhHWG1qR3dGSjdEMm1vN1NY?= =?utf-8?B?dHI3VDJOVVBtZHN3WXdGY05HTG1CVGc5enp1L1RVKzJaZGY1VVRjckZVZGVP?= =?utf-8?B?aEhIbGJ4eXh2VmxOU0JHOFpCdHM5SFd2ZnhoNk5nMEYra2xzTzRNbjRRQmNs?= =?utf-8?B?YWx3eDgrM3puY1R6eTUxNDlocWpUZW1HU0FyYW1VZEJPTWFnWkZ3ZzZlVWVt?= =?utf-8?B?R0tPQm9LeEoyMUZwaHprRzA4U1NNQWNBU1oxRU4rL3pZTE9pcTc5M0Y2emFq?= =?utf-8?B?L2p3VGJicHZBKzdjNldMZWhFWllFdlhiMC9VSXpGNVI5cnYrQm8rQzRKYzAr?= =?utf-8?B?U3BoYTA2Nm1nb1UxWXlKUVk2U2dCd09lWlVvZFZPbTYvb29FV1pmRVRVTDRs?= =?utf-8?B?bFhJOGtRTGRybVBwQVhCaGNGUWZraC8xQ1lqaWl5RldEeEtQbWlFTUJMbi9v?= =?utf-8?B?TjRmVmdnbWtTajFKSmZ4eGxNOXdSbEZzL3gwTzc0MXg1SlU4dFVJQzh3OVFD?= =?utf-8?Q?VMNNc9Yog1TNQut+b7iA4SMssp864KOcHnOC0So?= X-Microsoft-Exchange-Diagnostics: 1;AM2PR07MB0900;5:/kOhGTJTXbNfeHMcxh783WHHxDNJluHs9W2In0Ey8AtwvfR37cc83dCLFsLsUQujFJ7rrwJq5VH53u8TVrQfSKBPAzMWK7UD5Uk+PMFAjr1mVePUnVUP3pRuRu6OvcduTHldDTwuD7ogKulovjXK5A==;24:h3LTmxhorNj2cuTnR8MRhChbH3dZeWeQcIy5a2Jxp9sepFiDT189JgPd2nALv68LWt7uX5K86ZcHPUZNv7P5U5p40GJJYz8iQpRty8I6P0U= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nextfour.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2016 05:41:09.3737 (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. While loading a module, size in : apply_to_page_range(struct mm_struct *mm, unsigned long addr, unsigned long size, pte_fn_t fn, void *data); can be 0 triggering the bug BUG_ON(addr >= end);. Fix by letting call with zero size succeed. --Mika Signed-off-by: mika.penttila@nextfour.com --- 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 {