Commit 43d80439 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Paul Mackerras

[POWERPC] ps3: system bus minor mmio fix

Fix two minor bugs in the PS3 system bus mmio region code.  First, on error or
when freeing a region, retain the bus_addr and len fields to allow subsequent
calls to create the region.  Second, correct the region address argument to the
lv1_unmap_device_mmio_region() call.

Fixes modprobe/rmmod of some drivers.
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarGeoff Levand <geoffrey.levand@am.sony.com>
Acked-by: default avatarArnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 6c7be7d3
......@@ -50,7 +50,7 @@ int ps3_mmio_region_create(struct ps3_mmio_region *r)
if (result) {
pr_debug("%s:%d: lv1_map_device_mmio_region failed: %s\n",
__func__, __LINE__, ps3_result(result));
r->lpar_addr = r->len = r->bus_addr = 0;
r->lpar_addr = 0;
}
dump_mmio_region(r);
......@@ -62,13 +62,13 @@ int ps3_free_mmio_region(struct ps3_mmio_region *r)
int result;
result = lv1_unmap_device_mmio_region(r->did.bus_id, r->did.dev_id,
r->bus_addr);
r->lpar_addr);
if (result)
pr_debug("%s:%d: lv1_unmap_device_mmio_region failed: %s\n",
__func__, __LINE__, ps3_result(result));
r->lpar_addr = r->len = r->bus_addr = 0;
r->lpar_addr = 0;
return result;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment