Keith,
Keith Owens wrote:
>
> This is a more general problem than mips dbe, other kernel tables and
> other architectures will have the same problem. I will do a general
> patch against 2.5.8 to sort these tables at init time, and backport the
> general fix to 2.4.19 later. In the meantime your patch will bypass
> the problem for mips dbe.
Consider it as a feature. It was known from the time Ralf designed it.
If you really hate this behaviour and want to change it, I guess just
linear serach is OK. Or just introduce set of get/put_dbe{b,w,l}
routines instead of macros and expect just one fault address (well, 6
addresses, if you care). I think, it's better than rearranging the table
on startup (your proposal) and searching in several dbe tables (was
introduced last year).
Another table (in fact, I know only the unaligned access table in
arch/mips*/unaligned.c) is immune, because call from an __init routine
from user space is somewhat tricky and, anyway, isn't allowed.
If you know other tables, I think it's better to find a solution on
individual basis. No needs for a common solution here.
Regards,
Gleb.
|