struct memregion;
 
 struct memregion *visor_memregion_create(HOSTADDRESS physaddr, ulong nbytes);
-struct memregion *visor_memregion_create_overlapped(struct memregion *parent,
-                                                   ulong offset, ulong nbytes);
 int visor_memregion_resize(struct memregion *memregion, ulong newsize);
 int visor_memregion_read(struct memregion *memregion,
                         ulong offset, void *dest, ulong nbytes);
 
        ulong nbytes;
        void __iomem *mapped;
        BOOL requested;
-       BOOL overlapped;
 };
 
 static BOOL mapit(struct memregion *memregion);
 
        memregion->physaddr = physaddr;
        memregion->nbytes = nbytes;
-       memregion->overlapped = FALSE;
        if (!mapit(memregion)) {
                rc = NULL;
                goto cleanup;
 }
 EXPORT_SYMBOL_GPL(visor_memregion_create);
 
-struct memregion *
-visor_memregion_create_overlapped(struct memregion *parent, ulong offset,
-                                 ulong nbytes)
-{
-       struct memregion *memregion = NULL;
-
-       if (parent == NULL)
-               return NULL;
-
-       if (parent->mapped == NULL)
-               return NULL;
-
-       if ((offset >= parent->nbytes) ||
-           ((offset + nbytes) >= parent->nbytes))
-               return NULL;
-
-       memregion = kzalloc(sizeof(*memregion), GFP_KERNEL|__GFP_NORETRY);
-       if (memregion == NULL)
-               return NULL;
-
-       memregion->physaddr = parent->physaddr + offset;
-       memregion->nbytes = nbytes;
-       memregion->mapped = ((u8 __iomem *)(parent->mapped)) + offset;
-       memregion->requested = FALSE;
-       memregion->overlapped = TRUE;
-       return memregion;
-}
-EXPORT_SYMBOL_GPL(visor_memregion_create_overlapped);
-
 static BOOL
 mapit(struct memregion *memregion)
 {
 {
        if (newsize == memregion->nbytes)
                return 0;
-       if (memregion->overlapped)
-               /* no error check here - we no longer know the
-                * parent's range!
-                */
-               memregion->nbytes = newsize;
-       else {
-               unmapit(memregion);
-               memregion->nbytes = newsize;
-               if (!mapit(memregion))
-                       return -EIO;
-       }
+
+       unmapit(memregion);
+       memregion->nbytes = newsize;
+       if (!mapit(memregion))
+               return -EIO;
+
        return 0;
 }
 EXPORT_SYMBOL_GPL(visor_memregion_resize);
 {
        if (!memregion)
                return;
-       if (!memregion->overlapped)
-               unmapit(memregion);
+       unmapit(memregion);
        kfree(memregion);
 }
 EXPORT_SYMBOL_GPL(visor_memregion_destroy);
-