Re: [PATCH v2] net: starfire: fix ioaddr sign-extension causing ioremap() failure

From: Simon Horman

Date: Tue Sep 08 2026 - 08:46:40 EST


On Mon, Sep 07, 2026 at 04:57:48PM -0600, Ivy Lopez wrote:
> ioaddr is declared as a signed long, but is assigned the result of
> pci_resource_start(), which returns an unsigned resource_size_t.
> On configurations where the BAR address has its high bit set, the
> value sign-extends when passed to ioremap(), producing a bogus
> 64-bit address and causing device probe to fail:
>
> ioremap: invalid physical address fffffffffe480000
> starfire 0000:08:04.0: cannot Remap 0x80000 @ 0xfe480000, aborting
>
> Change ioaddr to resource_size_t, matching both the return type of
> pci_resource_start() and the type ioremap() expects for its physical
> address argument, rather than unsigned long, which is not guaranteed
> to be wide enough on all configurations. Switch the associated error
> print to %pa accordingly.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=198035
> Signed-off-by: Ivy Lopez <skunkolee@xxxxxxxxx>
> ---
> v2: use resource_size_t instead of unsigned long, and switch the
> error print to %pa, per Simon Horman's review.

In general this change looks good to me.
But unfortunately it does not apply against net-next.

Please rebase.

--
pw-bot: changes-requested

...