Re: [PATCH] PCI: Remove useless WARN_ON() from devres

From: Philipp Stanner

Date: Wed Jan 14 2026 - 08:10:24 EST


On Thu, 2025-12-18 at 10:28 +0100, Philipp Stanner wrote:
> PCI's devres implementation contains a WARN_ON() which served to inform
> users relying on the legacy devres iomap table that this table does not
> support multiple mappings per BAR.
>
> The WARN_ON() can be regarded as useless by now, since mapping a BAR
> multiple times is legal behavior and old users of pcim_iomap_table(),
> the accessor function for that table, did not break in the past PCI
> devres cleanup. New PCI users will hopefully notice that
> pcim_iomap_table() is deprecated and are unlikely to use it for mapping
> the same BAR multiple times.
>
> Moreover, WARN_ON()s create noisy, difficult to read error messages
> which can be more confusing than helpful, since they don't inform the
> user about what precisely the problem is.
>
> Remove the WARN_ON().
>
> Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> Signed-off-by: Philipp Stanner <phasta@xxxxxxxxxx>

*ping*

> ---
>  drivers/pci/devres.c | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/drivers/pci/devres.c b/drivers/pci/devres.c
> index 9f4190501395..f075e7881c3a 100644
> --- a/drivers/pci/devres.c
> +++ b/drivers/pci/devres.c
> @@ -469,9 +469,6 @@ static int pcim_add_mapping_to_legacy_table(struct pci_dev *pdev,
>   if (!legacy_iomap_table)
>   return -ENOMEM;
>  
> - /* The legacy mechanism doesn't allow for duplicate mappings. */
> - WARN_ON(legacy_iomap_table[bar]);
> -
>   legacy_iomap_table[bar] = mapping;
>  
>   return 0;