--- x/mm/hugetlb.c +++ h/mm/hugetlb.c @@ -4043,6 +4043,7 @@ static void __init hugetlb_sysfs_init(vo static int __init hugetlb_init(void) { + struct lock_class_key *key; int i; BUILD_BUG_ON(sizeof_field(struct page, private) * BITS_PER_BYTE < @@ -4107,8 +4108,15 @@ static int __init hugetlb_init(void) GFP_KERNEL); BUG_ON(!hugetlb_fault_mutex_table); - for (i = 0; i < num_fault_mutexes; i++) + key = kmalloc_array(num_fault_mutexes, sizeof(struct lock_class_key), + GFP_KERNEL); + BUG_ON(!key); + + for (i = 0; i < num_fault_mutexes; i++) { mutex_init(&hugetlb_fault_mutex_table[i]); + lockdep_register_key(&key[i]); + lockdep_set_class(&hugetlb_fault_mutex_table[i], &key[i]); + } return 0; } subsys_initcall(hugetlb_init);