Subject: disable migrate_prep() From: Andrea Arcangeli I get trouble from lockdep if I leave it enabled: ======================================================= [ INFO: possible circular locking dependency detected ] 2.6.34-rc3 #50 ------------------------------------------------------- largepages/4965 is trying to acquire lock: (events){+.+.+.}, at: [] flush_work+0x38/0x130 but task is already holding lock: (&mm->mmap_sem){++++++}, at: [] do_page_fault+0xd2/0x430 flush_work apparently wants to run free from lock and it bugs in: lock_map_acquire(&cwq->wq->lockdep_map); Signed-off-by: Andrea Arcangeli --- diff --git a/mm/compaction.c b/mm/compaction.c --- a/mm/compaction.c +++ b/mm/compaction.c @@ -383,7 +383,9 @@ static int compact_zone(struct zone *zon cc->free_pfn = cc->migrate_pfn + zone->spanned_pages; cc->free_pfn &= ~(pageblock_nr_pages-1); +#if 0 migrate_prep(); +#endif while ((ret = compact_finished(zone, cc)) == COMPACT_CONTINUE) { unsigned long nr_migrate, nr_remaining;