Index: head/sys/dev/bhnd/bhndb/bhndb.c =================================================================== --- head/sys/dev/bhnd/bhndb/bhndb.c +++ head/sys/dev/bhnd/bhndb/bhndb.c @@ -1728,8 +1728,9 @@ /* Adjust the window if the I/O request won't fit in the current * target range. */ - if (addr < dwa->target || - (dwa->target + dwa->win->win_size) - addr < size) + if (addr < dwa->target || + addr > dwa->target + dwa->win->win_size || + (dwa->target + dwa->win->win_size) - addr < size) { error = bhndb_dw_set_addr(sc->dev, sc->bus_res, dwa, addr, size);