[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1330334360.11728.3.camel@pasglop>
Date: Mon, 27 Feb 2012 20:19:20 +1100
From: Benjamin Herrenschmidt <benh@...nel.crashing.org>
To: Stephen Rothwell <sfr@...b.auug.org.au>
Cc: Jesse Barnes <jbarnes@...tuousgeek.org>,
linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
Bjorn Helgaas <bhelgaas@...gle.com>,
ppc-dev <linuxppc-dev@...ts.ozlabs.org>
Subject: Re: linux-next: build failure after merge of the final tree
On Mon, 2012-02-27 at 17:37 +1100, Stephen Rothwell wrote:
> pci_add_resource_offset(resources, res,
> - (resource_size_t) hose->io_base_virt - _IO_BASE);
> + (resource_size_t)(unsigned long)hose->io_base_virt - _IO_BASE);
We have to be careful here as we do want sign extension to happen (yeah
it's odd, but it's the way we do IOs on ppc32 :-) Maybe I should change
it one day).
So we probably want to do:
(resource_size_t)(long long)(hose->io_base_virt - _IO_BASE)
Basically, IO resources are relative to _IO_BASE which on ppc32 is
basically the virtual address where we map the first PHB IO space.
Subsequent PHB mappings can end up below _IO_BASE, leading to negative
resource values for IO BARs on those busses. It all works fine because
even an unsigned addition will do the right thing as long as the value
is fully sign extended.
Cheers,
Ben.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists