Re: Linux-2.6.12

Hugh Dickins
2005-06-20T13:47:37Z

Gosh, I thought from the Subject that you'd taken over from Linus,
and were announcing your new release ;)

On Mon, 20 Jun 2005, Richard B. Johnson wrote:
>
> Attempts to run a driver that worked up to 2.6.11.9 shows that
> it aparently is no longer possible to nest calls to `down`.
> In other words, a procedure that has taken a semaphore can't
> then take another semaphore.
>
> down(&first_resource);
> down(&second_resource);
> ...
> ...
> up(&second_resource);
> up(&first_resource);
>
>
> The error is 'sleeping function called from invalid context....'
>
> ------------[ cut here ]------------
> kernel BUG at mm/memory.c:1112!

No, the error is "kernel BUG at mm/memory.c:1112!", which occurs while
it's holding page table lock, from which it doesn't recover very well.

It's the BUG_ON(!pte_none(*pte)) in remap_pte_range. Maybe your page
table is corrupt, maybe your driver is trying to remap_pfn_range on
top of something already mapped.

Hugh