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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EFE78D7877A for ; Thu, 21 Nov 2024 15:01:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 82E556B0082; Thu, 21 Nov 2024 10:01:23 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7DE246B0083; Thu, 21 Nov 2024 10:01:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A5EA6B0088; Thu, 21 Nov 2024 10:01:23 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 4C0966B0082 for ; Thu, 21 Nov 2024 10:01:23 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id F40D0AE9E0 for ; Thu, 21 Nov 2024 15:01:22 +0000 (UTC) X-FDA: 82810415142.14.C6BAE6C Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by imf09.hostedemail.com (Postfix) with ESMTP id 12CE514002D for ; Thu, 21 Nov 2024 15:00:42 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f9nDehhs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of shankerwangmiao@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=shankerwangmiao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732201212; a=rsa-sha256; cv=none; b=Mcd1r85X+GPce2MLflJ5lPGI2mmJmGnd9op1AZHo44DLZs1mQ8QrdstqM9ICu33/QiO6rH h/px719lGTtyFFG9nvaWBiXtfFD0nAGPN4d4EwI6onXZSSaKQ/V4mpcn3lP70SdJAb6bak ePPPOH4OiS454ojmzSgEYoP9W9qxLmQ= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=f9nDehhs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of shankerwangmiao@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=shankerwangmiao@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732201212; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=nIMnEIrQlc2mtRqL6KiBSU+z+KNnl2MpH+4S/poJBaU=; b=7JV+Ovn+lGnis9YT2FYSWBXbO3qXujPaOLhe9FCldEP+TeN0Waa3RO/JPH3IzP4Rr0IlwP 7Lvg3ajwhnaB+T3YBgi07BDWSp7qR2zkJNZGTHIEACpkUnuUxrKUE6Fx+wL6+29iazSyL9 P5FT0d9uY7W42lNUpdMzmyPyrDOS9Gw= Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-2ea4e97ca43so120841a91.0 for ; Thu, 21 Nov 2024 07:01:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732201278; x=1732806078; darn=kvack.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=nIMnEIrQlc2mtRqL6KiBSU+z+KNnl2MpH+4S/poJBaU=; b=f9nDehhsqOdiFQn2x/QRQ1VT0WqVxRinnW2uAd716+XDSIdLqmpdA+E0+iEObnpF30 AY+kiNCebF+V8LuyDEkERK9SsNeaIgtD5xhyShNoV5PgVSNA6aXVUDDCl0pKZBrjutdL 6bDhhMyvCSztucvPO4s6fwzmSM/mCqyRr9KAA6Doo9QIY3hMrjuDmLunmlXt/qhO5JdB wao9U7qdHyp5TOUzABKN3ObInrA7IsxXyLDKRw5llkZXdhzVZ8RR8D/jB8pVuELgaiQv 0OOBksGbm5APHDvwoolF/H6fNwuDLdYkEZh+tx4WjbrrVucqsaLRPTXHW5XZqreLoI2Y AQhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732201278; x=1732806078; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nIMnEIrQlc2mtRqL6KiBSU+z+KNnl2MpH+4S/poJBaU=; b=IS3tZYKNNgpaq/D5NjHFr/yN8lH9y6QaHoIDTGzvjm46RcNyRva5Hm0/m3nrM6LYrf fBFt2uF6EQgUKDtCUStxd3j8SnI9axCDGNH2gERMpCgnHKBVvABnnIjQZHQWEyxdj+GW JEAbjwP8sTysPhrLlS6mBBE31HzszPRwgj7PpdygGm/Qk538jCtkewTi6tHOb4HgnBGQ k4QWSyL33lv+Nz/4TF++zDUmgAYIVuumT6Mzkn5lS1CX7P6J2cE3axv27hD984xNg/2x LLy2a5RdrX79sM0Dn45So4o+Q8623NaTUbuKQ9L5wIM7TxTFSWeLW1j296nzyygwThcY l8Lg== X-Forwarded-Encrypted: i=1; AJvYcCVv14xFDjGOFhQzUw1WxW87TqIN06obAD13w/2DjuPmqZVn1CGwSCvUrDhKROzsO9j2JnxMchdmbg==@kvack.org X-Gm-Message-State: AOJu0YxvDqilNo6gnuyMOsx95cywlRkZTX+OSCrFJyCFoq1te7Enicha VdXanpY3qhzeuzFTtT9XZ3dbJj5csHMFPI7LfqD8IGyrhIJXvABK X-Gm-Gg: ASbGnctK83Uh+3w7lIJ2aO3qVtgldia6KDTA2kBkKhPL9iYIyo+t4YlNJLNUPmVJcH0 YeqMtSlPZxGbOURXbjhaGBiAkluVprf+iC1hdpB+fWGbKjhd6wDUaO7Zyu85bLDLrCyb36sck61 bDHM8c1WxoBp9pD5yQ3T/1TieQjzNkXGUvD9R6FBu6VGm6OBdh62PgGa1ze7/uhdUMzdXiwCAqw hh8OFyOaSk9I8kHk+4OYLdIa4VQNMuHbvGtVmgfap9qKE41antc/uIoXtKmXQGgQa8Glh9SOg== X-Google-Smtp-Source: AGHT+IE+i5LWdNUe6PR8k75SmTTcvVV9Y6nATtBS/1glIlY6gLIXD/0ksh+iikUhtwWzBtlzU+fF4A== X-Received: by 2002:a17:90b:3144:b0:2ea:956b:deab with SMTP id 98e67ed59e1d1-2eaca7d236bmr3642213a91.4.1732201277587; Thu, 21 Nov 2024 07:01:17 -0800 (PST) Received: from smtpclient.apple ([23.247.139.92]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-212878bd8f9sm14758655ad.109.2024.11.21.07.01.13 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Nov 2024 07:01:17 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.200.121\)) Subject: Re: [PATCH v3] ACPI: PCI: check if the root io space is page aligned From: Miao Wang In-Reply-To: <9CBE412E-25B3-4C36-80F6-5EA9248B9085@gmail.com> Date: Thu, 21 Nov 2024 23:01:00 +0800 Cc: linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <20240814163711.GA351420@bhelgaas> <86348A3F-6AF4-4DC0-ACF5-08EC52E3828C@gmail.com> <9CBE412E-25B3-4C36-80F6-5EA9248B9085@gmail.com> To: Bjorn Helgaas , =?utf-8?Q?Ilpo_J=C3=A4rvinen?= , Bjorn Helgaas , "Rafael J. Wysocki" , Len Brown X-Mailer: Apple Mail (2.3826.200.121) X-Rspam-User: X-Rspamd-Queue-Id: 12CE514002D X-Rspamd-Server: rspam01 X-Stat-Signature: 1r1ugm73bguokkaur5zafrn9fxyu7d8d X-HE-Tag: 1732201242-149595 X-HE-Meta: U2FsdGVkX18knrh0j+AIZ8wZ6Rr3X6eVk4XukAwxHsEg8mbRRmF3UHDihekdZc2+LyrP9c2fDaPiHaAWWeMOw2/CM+9zhx12VpEF9uaZ/RMcBw7bxLpsNYCMYSUROINDWpL2ehUg2tzrtgHMb9UKebJTzmtBJHsYBwC8Aoo+24hn38WKqzmNJn544Mg7zjmIQyEyuUegksVON905n7f8sR5Jf/xrMNJ4o0JqgAB6J792cj6C4cUM8dXjtCe9I3pMkOK7PffM2RaUifaK7juHWM40Ey6VAASsa7sLFgYntSkTXiZAUcfwaSdGN3T2hbmXQHpt4MGdW4Jfq0i4bmCAEV0h5jwpPkvn6a95g5CLomGdNKlov+wYVCkE30WMNQRBZCKH8B8tExFxsLd5Q13ZihKs5gpJO3YRElVO0QWPInqosts/9qdM2CNUYtetnI8DyoSl7H8LjTW421Ko85AAOnGATYqzfOjgsAxkzvwnEi+jJKn+egeLabqDg6/TF3SRd3Q+XrP4LbPBi/vIefHRJ3JVVuBUlTozywyPjbIBwfCGBzXHFcPilFVYJlPdHNuJiwAH7GpJHaGw00KVL8yjMQ9E5XPnQy3HPteb5idougyS3vUCslc2QHcH9VYUikTvKp4+OUUcwjoHq4iGDi80WNFSYrUzgIk6mlxR/wANp3B9oTRzWt1YwNx2s+6Tc0D3hRSNttHOFHO1SImaWKIrYkx+oyjjwbXtD8CywkSJA8uUiO0P4fidEvlJ0Vrmwuw/uhDOCgOVMWP1yBfp+6l3ktxoquSHACumJBA1UhKV2UQqYsHYIKjIAK2yDaOg5zArseqziXR6+al50w5Zgam21mtgaJFeSaFGfvTv/JMe9dgDQqfV1Y1K95Ejppw+PjJ4mxm+G5ACTDB84xUv09+V7jtTFT86Fk9svOzNfUhoY4R26t04EeIM2vLlvRMd8gK9mIMxc/mKUIix1jw8/GU dw3OkwNq 1HB2SVJ86/5gi9nTnWHs1y1OFlAvoQC0wZnEU7OT5SYdkfcmvhs62JBk44nE6XO0gQtbql6bgZYg9C/pRe4RJU85qLQ51XfRjJckUr0kTB5lUTtaz726ZQeBEtSieJ7VIWx2U3UzthM2QXpK6k9ZsiskN7H77fVPqW9j1vWcKXWywVPWWAO4WxlX0NnXBeIxBVnz5PjYlSFeCENBo4dCRlP2vYsxPn67m+Efg5Mhfagppnook70rEpGj6CJy1IFqyWsuZLeScs5ckR6FBa1aAJLv8ikg5Qj3RO+ABI0KLmHVZhZRdrVI1BDXu7Cbchk/1KMrKaYdJQov8O6ae3R7pMo8HUqTlCa7x7DMvkb09HPmsZjRI6dT6+6R6Hytq84lR+WuZuPiAS8/9TIzgtLxhmw3GktcgyYyydJxBcHQy4rArPsJ+NXuu/mmoSLG2IOVmTZSnsO1PqkBgBQvo7jzmJuPS5fSMyKx3X8wYavISrlFM2ZaZLxyTNGRu4w== 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: List-Subscribe: List-Unsubscribe: > It seems that there is no reply from linux-mm about this. I believe = even if > there might be a better place for the mm subsystem to check the = alignment, > it is still necessary to do the check here, because details about = which ACPI > entry is causing the problem is only available here. If in the future, = we would > developed another better place to do the alignment check, we may = refactor the > code here. Hi, all Ping on this patch. >=20 >>>>=20 >>>>> Signed-off-by: Miao Wang >>>>> --- >>>>> Changes in v3: >>>>> - Adjust code formatting. >>>>> - Reword the commit message for further description of the = possible reason >>>>> leading to misaligned IO resource addresses. >>>>> - Link to v2: = https://lore.kernel.org/r/20240814-check_pci_probe_res-v2-1-a03c8c9b498b@g= mail.com >>>>>=20 >>>>> Changes in v2: >>>>> - Sorry for posting out the draft version in V1, fixed a silly = compiling issue. >>>>> - Link to v1: = https://lore.kernel.org/r/20240814-check_pci_probe_res-v1-1-122ee07821ab@g= mail.com >>>>> --- >>>>> drivers/acpi/pci_root.c | 14 +++++++++++--- >>>>> 1 file changed, 11 insertions(+), 3 deletions(-) >>>>>=20 >>>>> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c >>>>> index d0bfb3706801..a425e93024f2 100644 >>>>> --- a/drivers/acpi/pci_root.c >>>>> +++ b/drivers/acpi/pci_root.c >>>>> @@ -858,7 +858,7 @@ static void = acpi_pci_root_validate_resources(struct device *dev, >>>>> } >>>>> } >>>>>=20 >>>>> -static void acpi_pci_root_remap_iospace(struct fwnode_handle = *fwnode, >>>>> +static void acpi_pci_root_remap_iospace(struct acpi_device = *device, >>>>> struct resource_entry *entry) >>>>> { >>>>> #ifdef PCI_IOBASE >>>>> @@ -868,7 +868,15 @@ static void = acpi_pci_root_remap_iospace(struct fwnode_handle *fwnode, >>>>> resource_size_t length =3D resource_size(res); >>>>> unsigned long port; >>>>>=20 >>>>> - if (pci_register_io_range(fwnode, cpu_addr, length)) >>>>> + if (!PAGE_ALIGNED(cpu_addr) || !PAGE_ALIGNED(length) || >>>>> + !PAGE_ALIGNED(pci_addr)) { >>>>> + dev_err(&device->dev, >>>>> + FW_BUG "I/O resource %pR or its offset %pa is not page = aligned\n", >>>>> + res, &entry->offset); >>>>> + goto err; >>>>> + } >>>>> + >>>>> + if (pci_register_io_range(&device->fwnode, cpu_addr, length)) >>>>> goto err; >>>>=20 >>>> This change verifies alignment for the ACPI case that leads to the >>>> pci_remap_iospace() -> vmap_page_range() -> vmap_pte_range() path, = but=20 >>>> there are others even in drivers/pci/, e.g., pci_remap_iospace() is >>>> also used in the DT path, where I suppose a defective DT could = cause a >>>> similar issue. >>>>=20 >>>>> port =3D pci_address_to_pio(cpu_addr); >>>>> @@ -910,7 +918,7 @@ int acpi_pci_probe_root_resources(struct = acpi_pci_root_info *info) >>>>> else { >>>>> resource_list_for_each_entry_safe(entry, tmp, list) { >>>>> if (entry->res->flags & IORESOURCE_IO) >>>>> - acpi_pci_root_remap_iospace(&device->fwnode, >>>>> + acpi_pci_root_remap_iospace(device, >>>>> entry); >>>>>=20 >>>>> if (entry->res->flags & IORESOURCE_DISABLED) >>>>>=20 >>>>> --- >>>>> base-commit: 7c626ce4bae1ac14f60076d00eafe71af30450ba >>>>> change-id: 20240813-check_pci_probe_res-27e3e6df72b2 >>>>>=20 >>>>> Best regards, >>>>> --=20 >>>>> Miao Wang