From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.4 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D1C1C433DB for ; Fri, 26 Feb 2021 16:16:46 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 671CD64EF0 for ; Fri, 26 Feb 2021 16:16:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 671CD64EF0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id D63C78D0002; Fri, 26 Feb 2021 11:16:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CED948D0001; Fri, 26 Feb 2021 11:16:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B41E48D0002; Fri, 26 Feb 2021 11:16:44 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0041.hostedemail.com [216.40.44.41]) by kanga.kvack.org (Postfix) with ESMTP id 929638D0001 for ; Fri, 26 Feb 2021 11:16:44 -0500 (EST) Received: from smtpin02.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 58B1F180F76B2 for ; Fri, 26 Feb 2021 16:16:44 +0000 (UTC) X-FDA: 77860922328.02.8EAB739 Received: from aserp2120.oracle.com (aserp2120.oracle.com [141.146.126.78]) by imf16.hostedemail.com (Postfix) with ESMTP id 0BEB480192FA for ; Fri, 26 Feb 2021 16:16:39 +0000 (UTC) Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 11QGASm5058543; Fri, 26 Feb 2021 16:16:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2020-01-29; bh=Ytf7G45iE6sxoo7dwT+4e9DlgHaCOdX1M6yCeo1GVEo=; b=zdRF4AwQbmyjAle+vB5VTW4tI0eyvhQJJatsMkYHfTomYDT9oABPdzmCor/n1fiCdryn J/U8yc6b87o84nkBW7xOAgkdCVFJuRWyG8NkfS5oiIffijOANLonLFXUMyn46yDpO5v9 3rOHkDv9pvNrtAG5ZXWOZttJKEcI5sJqccC8Fov6GbaUDqGw8I6mPBTETAYaZXLKePIN o8jn/Uduz5blAE141LJD8D6AkNu3HGXQT5ec3r2c44g4QHaixxQJ9bHFO7m1QhIEPO8z rPatJ3DlFZxPcuX+u/lrEbXlB6PCPXi7xnpIn04f1bRSFxipsU+9a4/LuImODwT6XAB5 Zg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 36xqkfa1s9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 26 Feb 2021 16:16:15 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 11QGAkCc129740; Fri, 26 Feb 2021 16:16:14 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2043.outbound.protection.outlook.com [104.47.66.43]) by aserp3020.oracle.com with ESMTP id 36ucb3kggd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 26 Feb 2021 16:16:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IgABS4BnLQxr8gTonILQuSPBg3E90F0fG7ywbVG89QuI7LHMN4MTJl0/cvC/ZzfnX6cPIdzOE+aUFfGYtRp+A3RnFekPtZdIX7cmQPgL3u63HrS+A4Mj0UVLspiEZCP46w0uQ/sAy9MH2szqxPG4e4B537EkbI29QUTSz8iq+ws+Sz9o0CO2NKyQAX+SHynx4eEKt484eAyXZgtYPu9PTbRT5xzyVCUP/Mo0YZPzjdyWez2K9IUo/taXJ+hszvvqXGvCtOmGTIfEl473qpD68PFjpuHmqLsOebQ+LKFOkvtJ4A7GHASfPfMO5KXx07fodllNIqom0vkBTJjYTG5yjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ytf7G45iE6sxoo7dwT+4e9DlgHaCOdX1M6yCeo1GVEo=; b=alXobR5KwBgyz+UlEAq+oPfh7R1T+L/cnM+qcJyQ1svB7LRqDBNjW3jBMhIoaqfF3BjUVvdiqYvNhgoaqPwHPn1I3VxjQdj2i1qUwa14rakJqYC8OYAvxrPwE67YyH5eMPaToER/gs9lP1SKmL44D0wm1LZAJ1Cuy+lsHbgsj6kfWPxXrJGX2J+vWjrZztUkiIh6TCATJ0hDlyBAehnMTObugjwb2LJc0VpfR3uElQHa+ju0kUT6KBrP6ieuzS5LeNcaTUMd5wsEy4GPfWB74IaeyvVzw8cBm68okQDjoRNsclu/8d23R4vNAG+siAWDCTvsi4gPhRnWNJD/dT/rZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ytf7G45iE6sxoo7dwT+4e9DlgHaCOdX1M6yCeo1GVEo=; b=uoy5zmjFa/zIxisx+pmFawkibFWMBcLU4pQrZrJYA3grwX4r86NS48oZi32nD75TS0q5kXElA/zygAHlzhYsS9jgyKEw693X4DeYwW/pbeSvA1HiSomTbYoajL9wfa7H1U4g/8jJv49mNO5MzH4GpLr0krvachP0UZp8IFrQ7Xg= Received: from DM6PR10MB3851.namprd10.prod.outlook.com (2603:10b6:5:1fb::17) by DS7PR10MB5087.namprd10.prod.outlook.com (2603:10b6:5:3b0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.19; Fri, 26 Feb 2021 16:16:12 +0000 Received: from DM6PR10MB3851.namprd10.prod.outlook.com ([fe80::5c53:869:7452:46da]) by DM6PR10MB3851.namprd10.prod.outlook.com ([fe80::5c53:869:7452:46da%3]) with mapi id 15.20.3890.023; Fri, 26 Feb 2021 16:16:12 +0000 Subject: Re: [PATCH] mm, kasan: don't poison boot memory To: Mike Rapoport Cc: David Hildenbrand , Andrey Konovalov , Andrew Morton , Catalin Marinas , Vincenzo Frascino , Dmitry Vyukov , Konrad Rzeszutek Wilk , Will Deacon , Andrey Ryabinin , Alexander Potapenko , Marco Elver , Peter Collingbourne , Evgenii Stepanov , Branislav Rankov , Kevin Brodsky , Christoph Hellwig , kasan-dev , Linux ARM , Linux Memory Management List , LKML , Dhaval Giani References: <450a9895-a2b4-d11b-97ca-1bd33d5308d4@oracle.com> <20210224103754.GA1854360@linux.ibm.com> <9b7251d1-7b90-db4f-fa5e-80165e1cbb4b@oracle.com> <20210225085300.GB1854360@linux.ibm.com> <9973d0e2-e28b-3f8a-5f5d-9d142080d141@oracle.com> <20210225145700.GC1854360@linux.ibm.com> <20210225160706.GD1854360@linux.ibm.com> <6000e7fd-bf8b-b9b0-066d-23661da8a51d@oracle.com> <20210226111730.GL1854360@linux.ibm.com> From: George Kennedy Organization: Oracle Corporation Message-ID: Date: Fri, 26 Feb 2021 11:16:06 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 In-Reply-To: <20210226111730.GL1854360@linux.ibm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US X-Originating-IP: [108.20.187.119] X-ClientProxiedBy: BYAPR07CA0010.namprd07.prod.outlook.com (2603:10b6:a02:bc::23) To DM6PR10MB3851.namprd10.prod.outlook.com (2603:10b6:5:1fb::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.222] (108.20.187.119) by BYAPR07CA0010.namprd07.prod.outlook.com (2603:10b6:a02:bc::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.19 via Frontend Transport; Fri, 26 Feb 2021 16:16:08 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 64ad95ca-dd20-47b0-23a7-08d8da71d57f X-MS-TrafficTypeDiagnostic: DS7PR10MB5087: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1923; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JAbwhjO0HPMCqOsv/9NL07qjE82pjwWC/cLxc3K+bx5/bJE3vZM/wipzV3albqOzK/Q/l3/Ekzq5aMp7gh4nSc/IyTZdrHl/kJyO/pg6Jr5ULGDv7H7/syqVGKuXLKMLREoeHbdAdnDLse7fHrwZJP2lPtqH6M59LCPcl/kBVt8Tmxvnnj6C7Go0ujE6zwyUhLMqSjVm3rLtApAF22PHYgXoBSq+nnC6gXN9EGAov6vr+P7tblmkDrD4Z5FCVQxYWnfjUsgZDCQMxFM9M++zEITCKLcMMcWUWFkqzCp+4blrdzsdqZC9CLqgfBboU2w+nSc3Tf3G0wERsQWjsqRL0WvWXUTIwgYlDzEFA6AX28VgsP7U99EnnK/huoe4TRjlBJ1LnYegCrM+ka7qd/DA3/XsTtwo+hj6gV62/VPxYxjgr/cwgUWJ2aiA2JLZ0VszEZqzWokQjJY3nfX9+VvQaow/CKyzyGP7qwMMw66mHCb9SGilgQVYRnNdrGR3NQt4Xa84MwYBpbum0/5fLjjCZtAE4cW6qCqL1Na5mR2pGHHN1Zw6pj0DYIDIgb5dhJxa5fsJv0T+TZoJOxNi2V58J4P81Wp81+lkNVJcjGlb7xEAMHk0weEW+xmr7YqUS1E+ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR10MB3851.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(39860400002)(396003)(136003)(346002)(366004)(376002)(8676002)(54906003)(6916009)(44832011)(66476007)(26005)(316002)(478600001)(36756003)(107886003)(7416002)(6486002)(66946007)(53546011)(66556008)(186003)(2616005)(16526019)(86362001)(2906002)(36916002)(8936002)(4326008)(16576012)(31686004)(83380400001)(5660300002)(31696002)(956004)(21314003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?L0wvTm9TaWFvTFJQRFRxNm5rKzBwd1BIUWNWdzFGYmVRbW0vTzdXU2JsYkJv?= =?utf-8?B?YUZXSHdKblVUYnVLWmhaMENNWmIwOEdVMDlMR1RLaG9QeHNHaUh1dEp0STNy?= =?utf-8?B?U3g3UTNUd0VXZkZRNzlMMzdJS0JxV1IzbEVMbndvS3Rmam9Ib2IvNlg5d0Iy?= =?utf-8?B?bGVob0VBZVlNcVpDSEh0K2lZQjhLUlZqd1ZIdTBLdVBxdzJxbTBMSnlxdlZP?= =?utf-8?B?dWZ5SUtyZEZVRHJRZVBUSFIzVjNleTZWNXZtR3hUOG5MU1cxM0lPUHIzL3ZZ?= =?utf-8?B?WW9MRGJ5amR5Y2VYU1AwNGl5V1NiQnNwRHlOZFVESmRHekJVdmJmSTM5bWVC?= =?utf-8?B?bkJ4US9LQnIzNDF3Vk43QUd6Y1pCbytnT3h4NnRaS296WnZEQVdCRmhzMjZG?= =?utf-8?B?NlNlVW1KYXY1Nm10dnBtUVJCSnM3TnUzcE0wRnNvZUVjUG5oaVpmaVE3MXFK?= =?utf-8?B?YnJHdEpTZFNLcjY5aUxRMWE3MVJrdUJDR05zRWoyL3RWRHQ3UkYxVE5IZmFM?= =?utf-8?B?c1lXQUIrRjdFbDhNb20rdUhHb2UyQ25CWWFNUE1NOElwZmNTbklCZHlibGV5?= =?utf-8?B?OU1zTnlUVTNhejE3eG5BR1NZbnlLM21sRVRUYUZHMTVsR3hOeXJ2SDJOZU8z?= =?utf-8?B?NUxmbzl2VU1Ta1BFbnR0MHM0bGN3b3dHSzBKOUJSQ2hWb3Y2dlJOa3R2MjNx?= =?utf-8?B?Y25xcnBZSU1xMElsaEVWUzFaTWMvaE40TkFvd1liWTc3U0ZQNmdvdTQ2bjZJ?= =?utf-8?B?UCt0RTF5L0o3WWg2dnNHVUNVQ05nMkh4ODcxcmI1Ly8zSXdKYWU3WVIweERL?= =?utf-8?B?U2dmS1ljd0FrNjBuMTBGbDdNd3FaOGtIb0E1MkwxaWI2Sy9oTUM1ZGhTejhW?= =?utf-8?B?T2JJaC9FK3ZDZjc5dnhoamdEMXF2YzdwQmY4WUtpTE5qOEdCZERtNGx3S2hJ?= =?utf-8?B?MzlqRkhFZ1BVdVd5eUJ1dTlNQTFKMTI4Tm9uRDlISUQ2eFlEWUk2VWRsVyt0?= =?utf-8?B?QVl3VUp0bVJyN3lmOHZPN0VVc0NrdWtJaEtYY2ppRVZ0aTV5dUMvY1JINmpC?= =?utf-8?B?N3YwZ1hIVG1QYTZBN05vUUpJekZ0QVhlTzMvZFNCNUNOSXhIYmd6N283VHBK?= =?utf-8?B?Vmt3MkR0QWVwZVBWeDRHUjhSNlpkbVF0eVdtR2JzeHh0Rm53b29Ta3hUNjJK?= =?utf-8?B?RTF2VDdjU3l6THIvdWFrTElCUWRxNEdJdGFTMnVzZmM4ajJNS3NLclhkNDVp?= =?utf-8?B?ZUovQVg5dHkrT2ZDdDZYRG5uR2R2MHBiYXVBUWhZWFpDd2xDSm9DSmZCUEN6?= =?utf-8?B?VG5NMFR2V3BtdDNEWVFCUXovNVZsMmlsVUhzZXhmOHpVcTNaS3d0c2czUFVT?= =?utf-8?B?VHE5aHdNRHBoOUdTeEJ3WW9HQlgxYXJJRU1Sb096MGFrU1pMQXpTeHk5Tzgy?= =?utf-8?B?aWVvaFRNQ0hCTGJMZWpRWXd6akN5VENzQ3Eyb3hDZ3hGVHhFNlVpK3B1TmZu?= =?utf-8?B?WlNoTW8yQkMrTnJVQjZPenF3ZGdYRkVseWd6dE9iYVR5MklyWm0vRHBhQ0tp?= =?utf-8?B?bFZ2RG1zWkszUkd6VDFlQkNLTkR6QnlxbUphNEpBcDZTenp6VDNjRVNNRU9W?= =?utf-8?B?VnRlSm5seGh5RDRUOElBSHl2ZFRFM3djUWdaVUF0SldTcmpBVlNhc3NKeVBS?= =?utf-8?B?eG9Lb09PN2R1T3hIY1UyQUdmYTVqalU0bC9qNmc3NTIrdzlPWjJzWnZrb0xH?= =?utf-8?Q?oGVDi7w/QSoW1feaUhoMjnOj1zhe/rxVJmBrNxI?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64ad95ca-dd20-47b0-23a7-08d8da71d57f X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB3851.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Feb 2021 16:16:12.3392 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vjb0xyEnwgv4JGvzVuCXxdIDMR7odNFnr011BzuqNiL3rzC/GN+qQUWU/DXI+SVCFE2zUth/zTwfBxFv8CmWp4Sc2ycR7gIp+nS0V6VKlR0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5087 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9907 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 adultscore=0 bulkscore=0 mlxscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102260122 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9907 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 suspectscore=0 impostorscore=0 phishscore=0 mlxscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 priorityscore=1501 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102260122 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 0BEB480192FA X-Stat-Signature: ricz7knmy5sahagjypyy4k14zpcc9y3p Received-SPF: none (oracle.com>: No applicable sender policy available) receiver=imf16; identity=mailfrom; envelope-from=""; helo=aserp2120.oracle.com; client-ip=141.146.126.78 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1614356199-504199 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi Mike, On 2/26/2021 6:17 AM, Mike Rapoport wrote: > Hi George, > > On Thu, Feb 25, 2021 at 08:19:18PM -0500, George Kennedy wrote: >> Mike, >> >> To get rid of the 0x00000000BE453000 hardcoding, I added the following= patch >> to your above patch to get the iBFT table "address" to use with >> memblock_reserve(): >> >> diff --git a/drivers/acpi/acpica/tbfind.c b/drivers/acpi/acpica/tbfind= .c >> index 56d81e4..4bc7bf3 100644 >> --- a/drivers/acpi/acpica/tbfind.c >> +++ b/drivers/acpi/acpica/tbfind.c >> @@ -120,3 +120,34 @@ >> =C2=A0=C2=A0=C2=A0=C2=A0 (void)acpi_ut_release_mutex(ACPI_MTX_TABLES)= ; >> =C2=A0=C2=A0=C2=A0=C2=A0 return_ACPI_STATUS(status); >> =C2=A0} >> + >> +acpi_physical_address >> +acpi_tb_find_table_address(char *signature) >> +{ >> +=C2=A0=C2=A0=C2=A0 acpi_physical_address address =3D 0; >> +=C2=A0=C2=A0=C2=A0 struct acpi_table_desc *table_desc; >> +=C2=A0=C2=A0=C2=A0 int i; >> + >> +=C2=A0=C2=A0=C2=A0 ACPI_FUNCTION_TRACE(tb_find_table_address); >> + >> +printk(KERN_ERR "XXX acpi_tb_find_table_address: signature=3D%s\n", >> signature); >> + >> +=C2=A0=C2=A0=C2=A0 (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES); >> +=C2=A0=C2=A0=C2=A0 for (i =3D 0; i < acpi_gbl_root_table_list.current= _table_count; ++i) { >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 if (memcmp(&(acpi_gbl_root_tabl= e_list.tables[i].signature), >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0= signature, ACPI_NAMESEG_SIZE)) { >> + >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 /* Not the r= equested table */ >> + >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 continue; >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 } >> + >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 /* Table with matching signatur= e has been found */ >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 table_desc =3D &acpi_gbl_root_t= able_list.tables[i]; >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 address =3D table_desc->address= ; >> +=C2=A0=C2=A0=C2=A0 } >> + >> +=C2=A0=C2=A0=C2=A0 (void)acpi_ut_release_mutex(ACPI_MTX_TABLES); >> +printk(KERN_ERR "XXX acpi_tb_find_table_address(EXIT): address=3D%llx= \n", >> address); >> +=C2=A0=C2=A0=C2=A0 return address; >> +} >> diff --git a/drivers/firmware/iscsi_ibft_find.c >> b/drivers/firmware/iscsi_ibft_find.c >> index 95fc1a6..0de70b4 100644 >> --- a/drivers/firmware/iscsi_ibft_find.c >> +++ b/drivers/firmware/iscsi_ibft_find.c >> @@ -28,6 +28,8 @@ >> >> =C2=A0#include >> >> +extern acpi_physical_address acpi_tb_find_table_address(char *signatu= re); >> + >> =C2=A0/* >> =C2=A0 * Physical location of iSCSI Boot Format Table. >> =C2=A0 */ >> @@ -116,24 +118,32 @@ void __init reserve_ibft_region(void) >> =C2=A0{ >> =C2=A0=C2=A0=C2=A0=C2=A0 struct acpi_table_ibft *table; >> =C2=A0=C2=A0=C2=A0=C2=A0 unsigned long size; >> +=C2=A0=C2=A0=C2=A0 acpi_physical_address address; >> >> =C2=A0=C2=A0=C2=A0=C2=A0 table =3D find_ibft(); >> =C2=A0=C2=A0=C2=A0=C2=A0 if (!table) >> =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 return; >> >> =C2=A0=C2=A0=C2=A0=C2=A0 size =3D PAGE_ALIGN(table->header.length); >> +=C2=A0=C2=A0=C2=A0 address =3D acpi_tb_find_table_address(table->head= er.signature); >> =C2=A0#if 0 >> =C2=A0printk(KERN_ERR "XXX reserve_ibft_region: table=3D%llx, >> virt_to_phys(table)=3D%llx, size=3D%lx\n", >> =C2=A0=C2=A0=C2=A0=C2=A0 (u64)table, virt_to_phys(table), size); >> =C2=A0=C2=A0=C2=A0=C2=A0 memblock_reserve(virt_to_phys(table), size); >> =C2=A0#else >> -printk(KERN_ERR "XXX reserve_ibft_region: table=3D%llx, 0x00000000BE4= 53000, >> size=3D%lx\n", >> -=C2=A0=C2=A0=C2=A0 (u64)table, size); >> -=C2=A0=C2=A0=C2=A0 memblock_reserve(0x00000000BE453000, size); >> +printk(KERN_ERR "XXX reserve_ibft_region: table=3D%llx, address=3D%ll= x, >> size=3D%lx\n", >> +=C2=A0=C2=A0=C2=A0 (u64)table, address, size); >> +=C2=A0=C2=A0=C2=A0 if (address) >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 memblock_reserve(address, size)= ; >> +=C2=A0=C2=A0=C2=A0 else >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 printk(KERN_ERR "%s: Can't find= table address\n", __func__); >> =C2=A0#endif >> >> -=C2=A0=C2=A0=C2=A0 if (efi_enabled(EFI_BOOT)) >> +=C2=A0=C2=A0=C2=A0 if (efi_enabled(EFI_BOOT)) { >> +printk(KERN_ERR "XXX reserve_ibft_region: calling acpi_put_table(%llx= )\n", >> (u64)&table->header); >> =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 acpi_put_table(&table->he= ader); >> -=C2=A0=C2=A0=C2=A0 else >> +=C2=A0=C2=A0=C2=A0 } else { >> =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 ibft_addr =3D table; >> +printk(KERN_ERR "XXX reserve_ibft_region: ibft_addr=3D%llx\n", >> (u64)ibft_addr); >> +=C2=A0=C2=A0=C2=A0 } >> =C2=A0} >> >> Debug from the above: >> [=C2=A0=C2=A0=C2=A0 0.050646] ACPI: Early table checksum verification = disabled >> [=C2=A0=C2=A0=C2=A0 0.051778] ACPI: RSDP 0x00000000BFBFA014 000024 (v0= 2 BOCHS ) >> [=C2=A0=C2=A0=C2=A0 0.052922] ACPI: XSDT 0x00000000BFBF90E8 00004C (v0= 1 BOCHS BXPCFACP >> 00000001=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 01000013) >> [=C2=A0=C2=A0=C2=A0 0.054623] ACPI: FACP 0x00000000BFBF5000 000074 (v0= 1 BOCHS BXPCFACP >> 00000001 BXPC 00000001) >> [=C2=A0=C2=A0=C2=A0 0.056326] ACPI: DSDT 0x00000000BFBF6000 00238D (v0= 1 BOCHS BXPCDSDT >> 00000001 BXPC 00000001) >> [=C2=A0=C2=A0=C2=A0 0.058016] ACPI: FACS 0x00000000BFBFD000 000040 >> [=C2=A0=C2=A0=C2=A0 0.058940] ACPI: APIC 0x00000000BFBF4000 000090 (v0= 1 BOCHS BXPCAPIC >> 00000001 BXPC 00000001) >> [=C2=A0=C2=A0=C2=A0 0.060627] ACPI: HPET 0x00000000BFBF3000 000038 (v0= 1 BOCHS BXPCHPET >> 00000001 BXPC 00000001) >> [=C2=A0=C2=A0=C2=A0 0.062304] ACPI: BGRT 0x00000000BE49B000 000038 (v0= 1 INTEL EDK2 >> 00000002=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 01000013) >> [=C2=A0=C2=A0=C2=A0 0.063987] ACPI: iBFT 0x00000000BE453000 000800 (v0= 1 BOCHS BXPCFACP >> 00000000=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 00000000) >> [=C2=A0=C2=A0=C2=A0 0.065683] XXX acpi_tb_find_table_address: signatur= e=3DiBFT >> [=C2=A0=C2=A0=C2=A0 0.066754] XXX acpi_tb_find_table_address(EXIT): ad= dress=3Dbe453000 >> [=C2=A0=C2=A0=C2=A0 0.067959] XXX reserve_ibft_region: table=3Dfffffff= fff240000, >> address=3Dbe453000, size=3D1000 >> [=C2=A0=C2=A0=C2=A0 0.069534] XXX reserve_ibft_region: calling >> acpi_put_table(ffffffffff240000) >> >> Not sure if it's the right thing to do, but added >> "acpi_tb_find_table_address()" to return the physical address of a tab= le to >> use with memblock_reserve(). >> >> virt_to_phys(table) does not seem to return the physical address for t= he >> iBFT table (it would be nice if struct acpi_table_header also had a >> "address" element for the physical address of the table). > virt_to_phys() does not work that early because then it is mapped with > early_memremap() which uses different virtual to physical scheme. > > I'd say that acpi_tb_find_table_address() makes sense if we'd like to > reserve ACPI tables outside of drivers/acpi. > > But probably we should simply reserve all the tables during > acpi_table_init() so that any table that firmware put in the normal mem= ory > will be surely reserved. > =20 >> Ran 10 successful boots with the above without failure. > That's good news indeed :) Wondering if we could do something like this instead (trying to keep=20 changes minimal). Just do the memblock_reserve() for all the standard=20 tables. diff --git a/drivers/acpi/acpica/tbinstal.c b/drivers/acpi/acpica/tbinsta= l.c index 0bb15ad..830f82c 100644 --- a/drivers/acpi/acpica/tbinstal.c +++ b/drivers/acpi/acpica/tbinstal.c @@ -7,6 +7,7 @@ =C2=A0 * *************************************************************************= ****/ +#include =C2=A0#include =C2=A0#include "accommon.h" =C2=A0#include "actables.h" @@ -14,6 +15,23 @@ =C2=A0#define _COMPONENT=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 ACPI_TABLES =C2=A0ACPI_MODULE_NAME("tbinstal") +void +acpi_tb_reserve_standard_table(acpi_physical_address address, +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0 st= ruct acpi_table_header *header) +{ +=C2=A0=C2=A0=C2=A0 struct acpi_table_header local_header; + +=C2=A0=C2=A0=C2=A0 if ((ACPI_COMPARE_NAMESEG(header->signature, ACPI_SIG= _FACS)) || +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 (ACPI_VALIDATE_RSDP_SIG(header->si= gnature))) { +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 return; +=C2=A0=C2=A0=C2=A0 } +=C2=A0=C2=A0=C2=A0 /* Standard ACPI table with full common header */ + +=C2=A0=C2=A0=C2=A0 memcpy(&local_header, header, sizeof(struct acpi_tabl= e_header)); + +=C2=A0=C2=A0=C2=A0 memblock_reserve(address, PAGE_ALIGN(local_header.len= gth)); +} + =C2=A0/*****************************************************************= ************** =C2=A0 * =C2=A0 * FUNCTION:=C2=A0=C2=A0=C2=A0 acpi_tb_install_table_with_override @@ -58,6 +76,9 @@ =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2= =A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 new_table_desc->flags, =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2= =A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 new_table_desc->pointer); +=C2=A0=C2=A0=C2=A0 acpi_tb_reserve_standard_table(new_table_desc->addres= s, +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2= =A0 =C2=A0=C2=A0 new_table_desc->pointer); + =C2=A0=C2=A0=C2=A0=C2=A0 acpi_tb_print_table_header(new_table_desc->addr= ess, =C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2= =A0=C2=A0 =C2=A0=C2=A0 new_table_desc->pointer); There should be no harm in doing the memblock_reserve() for all the=20 standard tables, right? Ran 10 boots with the above without failure. George >> George >>>