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