On Friday 14 March 2014, Liviu Dudau wrote:
+int of_pci_range_to_resource(struct of_pci_range *range,
struct device_node *np, struct resource *res)
+{
res->flags = range->flags;
if (res->flags & IORESOURCE_IO) {
unsigned long port = -1;
int err = pci_register_io_range(range->cpu_addr, range->size);
if (err)
return err;
port = pci_address_to_pio(range->cpu_addr);
if (port == (unsigned long)-1) {
res->start = (resource_size_t)OF_BAD_ADDR;
res->end = (resource_size_t)OF_BAD_ADDR;
return -EINVAL;
}
The error handling is inconsistent here: in one case you set the resource to OF_BAD_ADDR, in the other one you don't.
Arnd