From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751796AbdEBJdP (ORCPT ); Tue, 2 May 2017 05:33:15 -0400 Received: from szxga03-in.huawei.com ([45.249.212.189]:5912 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750995AbdEBJdH (ORCPT ); Tue, 2 May 2017 05:33:07 -0400 Message-ID: <590851CC.2070402@huawei.com> Date: Tue, 2 May 2017 17:30:52 +0800 From: Xishi Qiu User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 MIME-Version: 1.0 To: Michal Hocko CC: Andrew Morton , Mel Gorman , Vlastimil Babka , Joonsoo Kim , "Johannes Weiner" , Rik van Riel , Shakeel Butt , Linux MM , LKML , zhong jiang Subject: Re: [RFC] dev/mem: "memtester -p 0x6c80000000000 10G" cause crash References: <59083C5B.5080204@huawei.com> <20170502084323.GG14593@dhcp22.suse.cz> <590848B0.2000801@huawei.com> <20170502091630.GH14593@dhcp22.suse.cz> In-Reply-To: <20170502091630.GH14593@dhcp22.suse.cz> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.25.179] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020206.59085241.00E5,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0, ip=0.0.0.0, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 1255e3d209ba8929be63aadbb1b03c05 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017/5/2 17:16, Michal Hocko wrote: > On Tue 02-05-17 16:52:00, Xishi Qiu wrote: >> On 2017/5/2 16:43, Michal Hocko wrote: >> >>> On Tue 02-05-17 15:59:23, Xishi Qiu wrote: >>>> Hi, I use "memtester -p 0x6c80000000000 10G" to test physical address 0x6c80000000000 >>>> Because this physical address is invalid, and valid_mmap_phys_addr_range() >>>> always return 1, so it causes crash. >>>> >>>> My question is that should the user assure the physical address is valid? >>> >>> We already seem to be checking range_is_allowed(). What is your >>> CONFIG_STRICT_DEVMEM setting? The code seems to be rather confusing but >>> my assumption is that you better know what you are doing when mapping >>> this file. >>> >> >> HI Michal, >> >> CONFIG_STRICT_DEVMEM=y, and range_is_allowed() will skip memory, but >> 0x6c80000000000 is not memory, it is just a invalid address, so it cause >> crash. > > OK, I only now looked at the value. It is beyond addressable limit > (for 47b address space). None of the checks seems to stop this because > range_is_allowed() resp. its devmem_is_allowed() will allow it as a > non RAM (!page_is_ram check). I am not really sure how to fix this or > whether even we should try to fix this particular problem. As I've said > /dev/mem is dangerous and you should better know what you are doing when > accessing it. > OK, I know, thank you! Thanks, Xishi Qiu