From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755954AbcAZGde (ORCPT ); Tue, 26 Jan 2016 01:33:34 -0500 Received: from mail-db3on0085.outbound.protection.outlook.com ([157.55.234.85]:41969 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755444AbcAZGdb (ORCPT ); Tue, 26 Jan 2016 01:33:31 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=mika.penttila@nextfour.com; From: To: CC: , Subject: [PATCH 0/2 v2] set_memory_xx fixes Date: Tue, 26 Jan 2016 08:33:07 +0200 Message-ID: <1453789989-13260-1-git-send-email-mika.penttila@nextfour.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [194.157.170.34] X-ClientProxiedBy: AM3PR07CA0046.eurprd07.prod.outlook.com (10.141.45.174) To DB5PR07MB0903.eurprd07.prod.outlook.com (25.161.196.19) X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB0903;2:a7Yij40Cdt9eOCcnv1IEwsXhHXsDs36OlJ+IlJsHN4uc5MIE5sPYSgsX84XRyDTih5NBzG3NMoxQGH9SwcAYwQw47kw/vV3WoyIxM6jh0m4Dn0NFjMYxHmD1FVQosIR034JQxX8xBa+c+HwXhFlQjw==;3:fAxFRnJJdCDu75w0IfMdf9B1nFhmUVFhAcUGMba5pV74PnFSrcIa2tBMv3KZaixtyup4V5VmMSZfF8Gd3s3hgw/5kV51skSvEjcs5hrCD7s2vBUuFi9XRWvgYeZ/4Y/b;25:8rDBbjGlkjXFWwoyaiJ7hvMU0A4EaKDtZewe8Cklftb+ZBq27JDdM910JlYsmlKc+0/YZ9vfigXUArjnst37iodbKg1KR1S6S5Eco2E0/e1zwiNaZ5jeacj4WZZPDC26V1bTbTtPR8aurGEYogF6hmXPKNnmPo4IUx7uPklj4X8c6+H7bC9RxNrXmRaWmO2ALyp1ru/czlQbbgu1O8pDKDbGH/bKl+4lDI8u/YMRM2VegPbK/U087jK5L153npok;4:3gJWiGusGIHt3CID4J7WF+DPN6+nPZgsjoeiMjNj+oFbYL+euW0Ep4XygOr0HRdD2NJBdqTsYJdAdsaE5n0OSlDiG1e60IZ14QGdECV5/8lhDGpI2e0ZbYGrVN/Xv8UhGX/rEvTf4sLEHBF/nPFkrmJcRjvxOFl0baMHvHTgtTZp4jJTdz+T24Szgf0G9BAaTYDveyogkDQMyMkW6JQxJtbyc0LVff/Mg/ytXbUpiaW1tK1bGU0a1nwbZWRb8UCX16LNFKLCb0EdOAp5b19qVTrGMtj5fPFZtvEFTCmxmdbJa7uY4ZJNrRtJtNprY5e6tYp5/khK+9I38TvBh55Lm3tc6N4l6SeBMY8mZ/BT/NPZLY7Kl0MdTKRDw1FLxl2s5hb/LOrOMww9isrQfqIocQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB5PR07MB0903; X-MS-Office365-Filtering-Correlation-Id: 66816b99-c65f-4251-4365-08d3261a993e X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(123027)(601004)(2401047)(8121501046)(5005006)(520078)(3002001)(10201501046);SRVR:DB5PR07MB0903;BCL:0;PCL:0;RULEID:;SRVR:DB5PR07MB0903; X-Forefront-PRVS: 08331F819E X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(189002)(199003)(4326007)(2876002)(86152002)(53416004)(122386002)(2906002)(50466002)(42186005)(575784001)(86362001)(92566002)(69596002)(40100003)(33646002)(36756003)(87976001)(5003940100001)(5004730100002)(50226001)(110136002)(77096005)(1096002)(2351001)(229853001)(5001960100002)(3846002)(48376002)(66066001)(81156007)(19580395003)(101416001)(5008740100001)(6116002)(97736004)(47776003)(106356001)(105586002)(50986999)(586003)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:DB5PR07MB0903;H:mjp-ThinkCentre-M92p.nextfour.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB5PR07MB0903;23:ibAj6pBkXUDJkh6OXewSXbcKUuuOJACnAay2Xnb2w?= =?us-ascii?Q?H2fZPm8uX/O6YOlZTupoJC6evT90KfmQRsqVkyHLeQOoQ+ppqforyFMTq++1?= =?us-ascii?Q?U/bufn6+NTZLBlIs9IzTBHrCLU3LZzqxCD32L9GCpviGOG+wB2rJJuf2mnwi?= =?us-ascii?Q?4oCiKEBkJaJK53ldPORySoCke8g+jiBLhy7zd2KIMO7HOxWM8USUPeuAQuSQ?= =?us-ascii?Q?76jvoODoR9aYaVkY3u8Df1jrcj1xA768vGnX7JXJpECJNsgJSq3+BHRP46dE?= =?us-ascii?Q?NWdV2A0wHIzsMqqCESj/q+K29DZNEQVIoBc8WjdPWA4si7k39FDzqnEAB5X9?= =?us-ascii?Q?HT7Ch2Yg6cJvmZsOWNGcj1Ib27mdxQnELNE6wy/jcqcRviE67vSoYoqbUsRC?= =?us-ascii?Q?U0SFhp9/uno+bGo84jaDbRHvpzjgGBDeycNNLGKBmmrBmYx851cOdrZylGTR?= =?us-ascii?Q?VJecrVyLbAXKK4fawzVoKUI/Ei1sIliRekSn3iilvenq2IZ8196aP8Ylix2r?= =?us-ascii?Q?njOQFbIgIbZOjiFk4xY2syK9twcEzAh29tNU3AuaPL5ITBYDa3I/FKxdowhg?= =?us-ascii?Q?+w0dMqlL44D938ICKWk38oqEHNrPNH7GSYCrCXADfgfvunAn/UF2UbKJTYr8?= =?us-ascii?Q?/pHlTcUaVljOd1uCB1lJ9mu9fwKckbV3xJvQsTdcNUBdlj8KTSAeddTf5eMJ?= =?us-ascii?Q?NBfPa1h3CpeeEh+LlzGNVLFfMkDZCNJ9B+kGuKE+rrtOWF+cCpVbtDwGntEO?= =?us-ascii?Q?t/YvsHQTtlDgL7/CItF2CcKiWMgHf00BFbQmPXtT/8JdUnEUV7Zo1HuVFLuw?= =?us-ascii?Q?vCOfG093Q9mHedCYs0/haQQraxoG5/gSuhhDzmcu01r4hgZBbqoLL9zGNdB1?= =?us-ascii?Q?dyTl0J4GH6XIeb/ynFRu7cdaNrh+BPz8Yx+f7luXiq9SJCst93RbCaUNVE4K?= =?us-ascii?Q?v8dHecmgpy/x8l/67PuyEyrsr88Tul+Dgpif44ytrRh1gQ4OxswN16EoscnB?= =?us-ascii?Q?6fc/754McOb59MK7P+Q9v+2MQYZrgTan5I756QP4fjIZw1SKDwbfQpxVid9M?= =?us-ascii?Q?koSrPNpZAUkloLX1G/Ng1+5j0PzXlN/5Esh/rN5n5Mz6QK9sUCHcM1JFxvYg?= =?us-ascii?Q?/7ygYcMEck=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB5PR07MB0903;5:teXHC8feqXp03a1L7DmxMhSAKAE+dtobqc8RewYpxFuxiABiMo2UI6sg3PmRGiurmjM6U1jlIMquk9bv3hW8U28h0hqLRVU+r71Hq1Qbr2teDUGi8FAMaGqmWaXfkj7QmlqcfsMIdsrJDBksjK2VwQ==;24:tnb9S5p2nR+Jl52q9lPV6luFcbSHqq+gWjjdlB0n8SUafFZn44077WZLiiNS8P98xyzyvhpRQ1JEXgYea3DOim7OlNCo8dk4L/gc4CgpCmA= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nextfour.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jan 2016 06:33:26.8715 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB0903 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. The module in question is in-tree module : drivers/misc/ti-st/st_drv.ko The BUG is here : [ 53.638335] ------------[ cut here ]------------ [ 53.642967] kernel BUG at mm/memory.c:1878! [ 53.647153] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM [ 53.652987] Modules linked in: [ 53.656061] CPU: 0 PID: 483 Comm: insmod Not tainted 4.4.0 #3 [ 53.661808] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) [ 53.668338] task: a989d400 ti: 9e6a2000 task.ti: 9e6a2000 [ 53.673751] PC is at apply_to_page_range+0x204/0x224 [ 53.678723] LR is at change_memory_common+0x90/0xdc [ 53.683604] pc : [<800ca0ec>] lr : [<8001d668>] psr: 600b0013 [ 53.683604] sp : 9e6a3e38 ip : 8001d6b4 fp : 7f0042fc [ 53.695082] r10: 00000000 r9 : 9e6a3e90 r8 : 00000080 [ 53.700309] r7 : 00000000 r6 : 7f008000 r5 : 7f008000 r4 : 7f008000 [ 53.706837] r3 : 8001d5a4 r2 : 7f008000 r1 : 7f008000 r0 : 80b8d3c0 [ 53.713368] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user [ 53.720504] Control: 10c5387d Table: 2e6b804a DAC: 00000055 [ 53.726252] Process insmod (pid: 483, stack limit = 0x9e6a2210) [ 53.732173] Stack: (0x9e6a3e38 to 0x9e6a4000) [ 53.736532] 3e20: 7f007fff 7f008000 [ 53.744714] 3e40: 80b8d3c0 80b8d3c0 00000000 7f007000 7f00426c 7f008000 00000000 7f008000 [ 53.752895] 3e60: 7f004140 7f008000 00000000 00000080 00000000 00000000 7f0042fc 8001d668 [ 53.761076] 3e80: 9e6a3e90 00000000 8001d6b4 7f00426c 00000080 00000000 9e6a3f58 7f004140 [ 53.769257] 3ea0: 7f004240 7f00414c 00000000 8008bbe0 00000000 7f000000 00000000 00000000 [ 53.777438] 3ec0: a8b12f00 0001cfd4 7f004250 7f004240 80b8159c 00000000 000000e0 7f0042fc [ 53.785619] 3ee0: c183d000 000074f8 000018fd 00000000 0b30000c 00000000 00000000 7f002024 [ 53.793800] 3f00: 00000002 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 53.801980] 3f20: 00000000 00000000 00000000 00000000 00000040 00000000 00000003 0001cfd4 [ 53.810161] 3f40: 0000017b 8000f7e4 9e6a2000 00000000 00000002 8008c498 c183d000 000074f8 [ 53.818342] 3f60: c1841588 c1841409 c1842950 00005000 000052a0 00000000 00000000 00000000 [ 53.826523] 3f80: 00000023 00000024 0000001a 0000001e 00000016 00000000 00000000 00000000 [ 53.834703] 3fa0: 003e3d60 8000f640 00000000 00000000 00000003 0001cfd4 00000000 003e3d60 [ 53.842884] 3fc0: 00000000 00000000 003e3d60 0000017b 003e3d20 7eabc9d4 76f2c000 00000002 [ 53.851065] 3fe0: 7eabc990 7eabc980 00016320 76e81d00 600b0010 00000003 00000000 00000000 [ 53.859256] [<800ca0ec>] (apply_to_page_range) from [<8001d668>] (change_memory_common+0x90/0xdc) [ 53.868139] [<8001d668>] (change_memory_common) from [<8008bbe0>] (load_module+0x194c/0x2068) [ 53.876671] [<8008bbe0>] (load_module) from [<8008c498>] (SyS_finit_module+0x64/0x74) [ 53.884512] [<8008c498>] (SyS_finit_module) from [<8000f640>] (ret_fast_syscall+0x0/0x34) [ 53.892694] Code: e0834104 eaffffbc e51a1008 eaffffac (e7f001f2) [ 53.898792] ---[ end trace fe43fc78ebde29a3 ]--- apply_to_page_range gets zero length resulting in triggering : BUG_ON(addr >= end) This is regression and a consequence of changes in module section handling. Fix by making arm and arm64 check for zero size update in change_memory_common(), letting set_memory_xx(addr, 0); succeed. This makes behavior similar to x86. Also, BUG_ON() in apply_to_page_range is too strong, make it WARN_ON() and return -EINVAL instead. There may be other caller expecting !size to succeed. v2: - drop patch 1/4 for the bounds check, it has been submitted before - merge arm/arm64 changes into one patch --Mika [PATCH 1/2] arm, arm64: change_memory_common with numpages == 0 should be no-op. [PATCH 2/2] make apply_to_page_range() more robust. arch/arm/mm/pageattr.c | 3 +++ arch/arm64/mm/pageattr.c | 3 +++ mm/memory.c | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-)