From 4228a524fdb2816fe195cb81402c603fa53e96a5 Mon Sep 17 00:00:00 2001 From: Juli Mallett Date: Fri, 2 Mar 2012 21:46:31 +0000 Subject: [PATCH] When creating a handle for a subregion, be sure to actually math out the new handle address, where we're using handles as raw addresses. This fixes devices with subregions on Octeon PCI specifically, and likely also on MIPS more generally, where there isn't another bus_space in use that was doing the math already. --- sys/mips/cavium/octopci_bus_space.c | 9 ++++----- sys/mips/mips/bus_space_generic.c | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/sys/mips/cavium/octopci_bus_space.c b/sys/mips/cavium/octopci_bus_space.c index 870fe325f371..05ff904cc392 100644 --- a/sys/mips/cavium/octopci_bus_space.c +++ b/sys/mips/cavium/octopci_bus_space.c @@ -230,13 +230,12 @@ octopci_bs_unmap(void *t __unused, bus_space_handle_t bh __unused, } int -octopci_bs_subregion(void *t __unused, bus_space_handle_t handle __unused, - bus_size_t offset __unused, bus_size_t size __unused, - bus_space_handle_t *nhandle __unused) +octopci_bs_subregion(void *t __unused, bus_space_handle_t handle, + bus_size_t offset, bus_size_t size __unused, + bus_space_handle_t *bshp) { - printf("SUBREGION?!?!?!\n"); - /* Do nothing */ + *bshp = handle + offset; return (0); } diff --git a/sys/mips/mips/bus_space_generic.c b/sys/mips/mips/bus_space_generic.c index e56611ee2e91..84127256389c 100644 --- a/sys/mips/mips/bus_space_generic.c +++ b/sys/mips/mips/bus_space_generic.c @@ -245,13 +245,12 @@ generic_bs_unmap(void *t __unused, bus_space_handle_t bh __unused, } int -generic_bs_subregion(void *t __unused, bus_space_handle_t handle __unused, - bus_size_t offset __unused, bus_size_t size __unused, - bus_space_handle_t *nhandle __unused) +generic_bs_subregion(void *t __unused, bus_space_handle_t handle, + bus_size_t offset, bus_size_t size __unused, + bus_space_handle_t *bshp) { - printf("SUBREGION?!?!?!\n"); - /* Do nothing */ + *bshp = handle + offset; return (0); }