diff options
Diffstat (limited to 'kernel/lockdep.c')
| -rw-r--r-- | kernel/lockdep.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index c927a549db2c..2594e1ce41cb 100644 --- a/kernel/lockdep.c +++ b/kernel/lockdep.c | |||
| @@ -43,6 +43,7 @@ | |||
| 43 | #include <linux/ftrace.h> | 43 | #include <linux/ftrace.h> |
| 44 | #include <linux/stringify.h> | 44 | #include <linux/stringify.h> |
| 45 | #include <linux/bitops.h> | 45 | #include <linux/bitops.h> |
| 46 | #include <linux/gfp.h> | ||
| 46 | 47 | ||
| 47 | #include <asm/sections.h> | 48 | #include <asm/sections.h> |
| 48 | 49 | ||
| @@ -582,9 +583,6 @@ static int static_obj(void *obj) | |||
| 582 | unsigned long start = (unsigned long) &_stext, | 583 | unsigned long start = (unsigned long) &_stext, |
| 583 | end = (unsigned long) &_end, | 584 | end = (unsigned long) &_end, |
| 584 | addr = (unsigned long) obj; | 585 | addr = (unsigned long) obj; |
| 585 | #ifdef CONFIG_SMP | ||
| 586 | int i; | ||
| 587 | #endif | ||
| 588 | 586 | ||
| 589 | /* | 587 | /* |
| 590 | * static variable? | 588 | * static variable? |
| @@ -595,24 +593,16 @@ static int static_obj(void *obj) | |||
| 595 | if (arch_is_kernel_data(addr)) | 593 | if (arch_is_kernel_data(addr)) |
| 596 | return 1; | 594 | return 1; |
| 597 | 595 | ||
| 598 | #ifdef CONFIG_SMP | ||
| 599 | /* | 596 | /* |
| 600 | * percpu var? | 597 | * in-kernel percpu var? |
| 601 | */ | 598 | */ |
| 602 | for_each_possible_cpu(i) { | 599 | if (is_kernel_percpu_address(addr)) |
| 603 | start = (unsigned long) &__per_cpu_start + per_cpu_offset(i); | 600 | return 1; |
| 604 | end = (unsigned long) &__per_cpu_start + PERCPU_ENOUGH_ROOM | ||
| 605 | + per_cpu_offset(i); | ||
| 606 | |||
| 607 | if ((addr >= start) && (addr < end)) | ||
| 608 | return 1; | ||
| 609 | } | ||
| 610 | #endif | ||
| 611 | 601 | ||
| 612 | /* | 602 | /* |
| 613 | * module var? | 603 | * module static or percpu var? |
| 614 | */ | 604 | */ |
| 615 | return is_module_address(addr); | 605 | return is_module_address(addr) || is_module_percpu_address(addr); |
| 616 | } | 606 | } |
| 617 | 607 | ||
| 618 | /* | 608 | /* |
