diff options
Diffstat (limited to 'arch/x86')
| -rw-r--r-- | arch/x86/kernel/pci-iommu_table.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/arch/x86/kernel/pci-iommu_table.c b/arch/x86/kernel/pci-iommu_table.c index 55d745ec1181..35ccf75696eb 100644 --- a/arch/x86/kernel/pci-iommu_table.c +++ b/arch/x86/kernel/pci-iommu_table.c | |||
| @@ -50,20 +50,14 @@ void __init check_iommu_entries(struct iommu_table_entry *start, | |||
| 50 | struct iommu_table_entry *finish) | 50 | struct iommu_table_entry *finish) |
| 51 | { | 51 | { |
| 52 | struct iommu_table_entry *p, *q, *x; | 52 | struct iommu_table_entry *p, *q, *x; |
| 53 | char sym_p[KSYM_SYMBOL_LEN]; | ||
| 54 | char sym_q[KSYM_SYMBOL_LEN]; | ||
| 55 | 53 | ||
| 56 | /* Simple cyclic dependency checker. */ | 54 | /* Simple cyclic dependency checker. */ |
| 57 | for (p = start; p < finish; p++) { | 55 | for (p = start; p < finish; p++) { |
| 58 | q = find_dependents_of(start, finish, p); | 56 | q = find_dependents_of(start, finish, p); |
| 59 | x = find_dependents_of(start, finish, q); | 57 | x = find_dependents_of(start, finish, q); |
| 60 | if (p == x) { | 58 | if (p == x) { |
| 61 | sprint_symbol(sym_p, (unsigned long)p->detect); | 59 | printk(KERN_ERR "CYCLIC DEPENDENCY FOUND! %pS depends on %pS and vice-versa. BREAKING IT.\n", |
| 62 | sprint_symbol(sym_q, (unsigned long)q->detect); | 60 | p->detect, q->detect); |
| 63 | |||
| 64 | printk(KERN_ERR "CYCLIC DEPENDENCY FOUND! %s depends" \ | ||
| 65 | " on %s and vice-versa. BREAKING IT.\n", | ||
| 66 | sym_p, sym_q); | ||
| 67 | /* Heavy handed way..*/ | 61 | /* Heavy handed way..*/ |
| 68 | x->depend = 0; | 62 | x->depend = 0; |
| 69 | } | 63 | } |
| @@ -72,12 +66,8 @@ void __init check_iommu_entries(struct iommu_table_entry *start, | |||
| 72 | for (p = start; p < finish; p++) { | 66 | for (p = start; p < finish; p++) { |
| 73 | q = find_dependents_of(p, finish, p); | 67 | q = find_dependents_of(p, finish, p); |
| 74 | if (q && q > p) { | 68 | if (q && q > p) { |
| 75 | sprint_symbol(sym_p, (unsigned long)p->detect); | 69 | printk(KERN_ERR "EXECUTION ORDER INVALID! %pS should be called before %pS!\n", |
| 76 | sprint_symbol(sym_q, (unsigned long)q->detect); | 70 | p->detect, q->detect); |
| 77 | |||
| 78 | printk(KERN_ERR "EXECUTION ORDER INVALID! %s "\ | ||
| 79 | "should be called before %s!\n", | ||
| 80 | sym_p, sym_q); | ||
| 81 | } | 71 | } |
| 82 | } | 72 | } |
| 83 | } | 73 | } |
