diff options
| author | Paul Mackerras <paulus@samba.org> | 2007-05-10 07:08:37 -0400 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2007-05-10 07:08:37 -0400 |
| commit | 2ecf042ef530dd0943e41d84b6344f507941af3e (patch) | |
| tree | 73100361dd74e3f80f14c7c81ba4675948983f44 /arch/i386 | |
| parent | 32a56ebb24f23da1bbaf24292acf85b6c04526ab (diff) | |
| parent | de5603748af8bf7deac403e6ba92887f8d18e812 (diff) | |
Merge branch 'linux-2.6'
Diffstat (limited to 'arch/i386')
| -rw-r--r-- | arch/i386/Kconfig | 4 | ||||
| -rw-r--r-- | arch/i386/Kconfig.cpu | 4 | ||||
| -rw-r--r-- | arch/i386/kernel/cpu/intel_cacheinfo.c | 2 | ||||
| -rw-r--r-- | arch/i386/kernel/cpu/mcheck/therm_throt.c | 4 | ||||
| -rw-r--r-- | arch/i386/kernel/cpu/transmeta.c | 6 | ||||
| -rw-r--r-- | arch/i386/kernel/cpuid.c | 2 | ||||
| -rw-r--r-- | arch/i386/kernel/microcode.c | 59 | ||||
| -rw-r--r-- | arch/i386/kernel/msr.c | 2 | ||||
| -rw-r--r-- | arch/i386/kernel/traps.c | 2 | ||||
| -rw-r--r-- | arch/i386/mach-generic/probe.c | 2 | ||||
| -rw-r--r-- | arch/i386/mach-voyager/voyager_basic.c | 4 | ||||
| -rw-r--r-- | arch/i386/pci/init.c | 2 |
12 files changed, 57 insertions, 36 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 64ad10f984a1..30944ee2e61a 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
| @@ -858,9 +858,9 @@ config RELOCATABLE | |||
| 858 | bool "Build a relocatable kernel(EXPERIMENTAL)" | 858 | bool "Build a relocatable kernel(EXPERIMENTAL)" |
| 859 | depends on EXPERIMENTAL | 859 | depends on EXPERIMENTAL |
| 860 | help | 860 | help |
| 861 | This build a kernel image that retains relocation information | 861 | This builds a kernel image that retains relocation information |
| 862 | so it can be loaded someplace besides the default 1MB. | 862 | so it can be loaded someplace besides the default 1MB. |
| 863 | The relocations tend to the kernel binary about 10% larger, | 863 | The relocations tend to make the kernel binary about 10% larger, |
| 864 | but are discarded at runtime. | 864 | but are discarded at runtime. |
| 865 | 865 | ||
| 866 | One use is for the kexec on panic case where the recovery kernel | 866 | One use is for the kexec on panic case where the recovery kernel |
diff --git a/arch/i386/Kconfig.cpu b/arch/i386/Kconfig.cpu index dce6124cb842..d7f6fb0b30f2 100644 --- a/arch/i386/Kconfig.cpu +++ b/arch/i386/Kconfig.cpu | |||
| @@ -108,7 +108,7 @@ config MCORE2 | |||
| 108 | bool "Core 2/newer Xeon" | 108 | bool "Core 2/newer Xeon" |
| 109 | help | 109 | help |
| 110 | Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx) | 110 | Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx) |
| 111 | CPUs. You can distingush newer from older Xeons by the CPU family | 111 | CPUs. You can distinguish newer from older Xeons by the CPU family |
| 112 | in /proc/cpuinfo. Newer ones have 6. | 112 | in /proc/cpuinfo. Newer ones have 6. |
| 113 | 113 | ||
| 114 | config MPENTIUM4 | 114 | config MPENTIUM4 |
| @@ -172,7 +172,7 @@ config MWINCHIP3D | |||
| 172 | help | 172 | help |
| 173 | Select this for an IDT Winchip-2A or 3. Linux and GCC | 173 | Select this for an IDT Winchip-2A or 3. Linux and GCC |
| 174 | treat this chip as a 586TSC with some extended instructions | 174 | treat this chip as a 586TSC with some extended instructions |
| 175 | and alignment reqirements. Also enable out of order memory | 175 | and alignment requirements. Also enable out of order memory |
| 176 | stores for this CPU, which can increase performance of some | 176 | stores for this CPU, which can increase performance of some |
| 177 | operations. | 177 | operations. |
| 178 | 178 | ||
diff --git a/arch/i386/kernel/cpu/intel_cacheinfo.c b/arch/i386/kernel/cpu/intel_cacheinfo.c index 80b4c5d421b1..e5be819492ef 100644 --- a/arch/i386/kernel/cpu/intel_cacheinfo.c +++ b/arch/i386/kernel/cpu/intel_cacheinfo.c | |||
| @@ -733,9 +733,11 @@ static int __cpuinit cacheinfo_cpu_callback(struct notifier_block *nfb, | |||
| 733 | sys_dev = get_cpu_sysdev(cpu); | 733 | sys_dev = get_cpu_sysdev(cpu); |
| 734 | switch (action) { | 734 | switch (action) { |
| 735 | case CPU_ONLINE: | 735 | case CPU_ONLINE: |
| 736 | case CPU_ONLINE_FROZEN: | ||
| 736 | cache_add_dev(sys_dev); | 737 | cache_add_dev(sys_dev); |
| 737 | break; | 738 | break; |
| 738 | case CPU_DEAD: | 739 | case CPU_DEAD: |
| 740 | case CPU_DEAD_FROZEN: | ||
| 739 | cache_remove_dev(sys_dev); | 741 | cache_remove_dev(sys_dev); |
| 740 | break; | 742 | break; |
| 741 | } | 743 | } |
diff --git a/arch/i386/kernel/cpu/mcheck/therm_throt.c b/arch/i386/kernel/cpu/mcheck/therm_throt.c index 065005c3f168..7ba7c3abd3a4 100644 --- a/arch/i386/kernel/cpu/mcheck/therm_throt.c +++ b/arch/i386/kernel/cpu/mcheck/therm_throt.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * linux/arch/i386/kerne/cpu/mcheck/therm_throt.c | 2 | * linux/arch/i386/kernel/cpu/mcheck/therm_throt.c |
| 3 | * | 3 | * |
| 4 | * Thermal throttle event support code (such as syslog messaging and rate | 4 | * Thermal throttle event support code (such as syslog messaging and rate |
| 5 | * limiting) that was factored out from x86_64 (mce_intel.c) and i386 (p4.c). | 5 | * limiting) that was factored out from x86_64 (mce_intel.c) and i386 (p4.c). |
| @@ -137,10 +137,12 @@ static __cpuinit int thermal_throttle_cpu_callback(struct notifier_block *nfb, | |||
| 137 | mutex_lock(&therm_cpu_lock); | 137 | mutex_lock(&therm_cpu_lock); |
| 138 | switch (action) { | 138 | switch (action) { |
| 139 | case CPU_ONLINE: | 139 | case CPU_ONLINE: |
| 140 | case CPU_ONLINE_FROZEN: | ||
| 140 | err = thermal_throttle_add_dev(sys_dev); | 141 | err = thermal_throttle_add_dev(sys_dev); |
| 141 | WARN_ON(err); | 142 | WARN_ON(err); |
| 142 | break; | 143 | break; |
| 143 | case CPU_DEAD: | 144 | case CPU_DEAD: |
| 145 | case CPU_DEAD_FROZEN: | ||
| 144 | thermal_throttle_remove_dev(sys_dev); | 146 | thermal_throttle_remove_dev(sys_dev); |
| 145 | break; | 147 | break; |
| 146 | } | 148 | } |
diff --git a/arch/i386/kernel/cpu/transmeta.c b/arch/i386/kernel/cpu/transmeta.c index 6471a5a13202..200fb3f9ebfb 100644 --- a/arch/i386/kernel/cpu/transmeta.c +++ b/arch/i386/kernel/cpu/transmeta.c | |||
| @@ -77,8 +77,10 @@ static void __cpuinit init_transmeta(struct cpuinfo_x86 *c) | |||
| 77 | set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); | 77 | set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); |
| 78 | 78 | ||
| 79 | /* If we can run i686 user-space code, call us an i686 */ | 79 | /* If we can run i686 user-space code, call us an i686 */ |
| 80 | #define USER686 (X86_FEATURE_TSC|X86_FEATURE_CX8|X86_FEATURE_CMOV) | 80 | #define USER686 ((1 << X86_FEATURE_TSC)|\ |
| 81 | if ( c->x86 == 5 && (c->x86_capability[0] & USER686) == USER686 ) | 81 | (1 << X86_FEATURE_CX8)|\ |
| 82 | (1 << X86_FEATURE_CMOV)) | ||
| 83 | if (c->x86 == 5 && (c->x86_capability[0] & USER686) == USER686) | ||
| 82 | c->x86 = 6; | 84 | c->x86 = 6; |
| 83 | 85 | ||
| 84 | #ifdef CONFIG_SYSCTL | 86 | #ifdef CONFIG_SYSCTL |
diff --git a/arch/i386/kernel/cpuid.c b/arch/i386/kernel/cpuid.c index eeae0d992337..5c2faa10e9fa 100644 --- a/arch/i386/kernel/cpuid.c +++ b/arch/i386/kernel/cpuid.c | |||
| @@ -169,9 +169,11 @@ static int cpuid_class_cpu_callback(struct notifier_block *nfb, unsigned long ac | |||
| 169 | 169 | ||
| 170 | switch (action) { | 170 | switch (action) { |
| 171 | case CPU_ONLINE: | 171 | case CPU_ONLINE: |
| 172 | case CPU_ONLINE_FROZEN: | ||
| 172 | cpuid_device_create(cpu); | 173 | cpuid_device_create(cpu); |
| 173 | break; | 174 | break; |
| 174 | case CPU_DEAD: | 175 | case CPU_DEAD: |
| 176 | case CPU_DEAD_FROZEN: | ||
| 175 | device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, cpu)); | 177 | device_destroy(cpuid_class, MKDEV(CPUID_MAJOR, cpu)); |
| 176 | break; | 178 | break; |
| 177 | } | 179 | } |
diff --git a/arch/i386/kernel/microcode.c b/arch/i386/kernel/microcode.c index cbe7ec8dbb9f..83f825f2e2d7 100644 --- a/arch/i386/kernel/microcode.c +++ b/arch/i386/kernel/microcode.c | |||
| @@ -567,7 +567,7 @@ static int cpu_request_microcode(int cpu) | |||
| 567 | return error; | 567 | return error; |
| 568 | } | 568 | } |
| 569 | 569 | ||
| 570 | static int apply_microcode_on_cpu(int cpu) | 570 | static int apply_microcode_check_cpu(int cpu) |
| 571 | { | 571 | { |
| 572 | struct cpuinfo_x86 *c = cpu_data + cpu; | 572 | struct cpuinfo_x86 *c = cpu_data + cpu; |
| 573 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; | 573 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; |
| @@ -575,8 +575,9 @@ static int apply_microcode_on_cpu(int cpu) | |||
| 575 | unsigned int val[2]; | 575 | unsigned int val[2]; |
| 576 | int err = 0; | 576 | int err = 0; |
| 577 | 577 | ||
| 578 | /* Check if the microcode is available */ | ||
| 578 | if (!uci->mc) | 579 | if (!uci->mc) |
| 579 | return -EINVAL; | 580 | return 0; |
| 580 | 581 | ||
| 581 | old = current->cpus_allowed; | 582 | old = current->cpus_allowed; |
| 582 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 583 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); |
| @@ -614,7 +615,7 @@ static int apply_microcode_on_cpu(int cpu) | |||
| 614 | return err; | 615 | return err; |
| 615 | } | 616 | } |
| 616 | 617 | ||
| 617 | static void microcode_init_cpu(int cpu) | 618 | static void microcode_init_cpu(int cpu, int resume) |
| 618 | { | 619 | { |
| 619 | cpumask_t old; | 620 | cpumask_t old; |
| 620 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; | 621 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; |
| @@ -624,8 +625,7 @@ static void microcode_init_cpu(int cpu) | |||
| 624 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 625 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); |
| 625 | mutex_lock(µcode_mutex); | 626 | mutex_lock(µcode_mutex); |
| 626 | collect_cpu_info(cpu); | 627 | collect_cpu_info(cpu); |
| 627 | if (uci->valid && system_state == SYSTEM_RUNNING && | 628 | if (uci->valid && system_state == SYSTEM_RUNNING && !resume) |
| 628 | !suspend_cpu_hotplug) | ||
| 629 | cpu_request_microcode(cpu); | 629 | cpu_request_microcode(cpu); |
| 630 | mutex_unlock(µcode_mutex); | 630 | mutex_unlock(µcode_mutex); |
| 631 | set_cpus_allowed(current, old); | 631 | set_cpus_allowed(current, old); |
| @@ -702,7 +702,7 @@ static struct attribute_group mc_attr_group = { | |||
| 702 | .name = "microcode", | 702 | .name = "microcode", |
| 703 | }; | 703 | }; |
| 704 | 704 | ||
| 705 | static int mc_sysdev_add(struct sys_device *sys_dev) | 705 | static int __mc_sysdev_add(struct sys_device *sys_dev, int resume) |
| 706 | { | 706 | { |
| 707 | int err, cpu = sys_dev->id; | 707 | int err, cpu = sys_dev->id; |
| 708 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; | 708 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; |
| @@ -711,39 +711,31 @@ static int mc_sysdev_add(struct sys_device *sys_dev) | |||
| 711 | return 0; | 711 | return 0; |
| 712 | 712 | ||
| 713 | pr_debug("Microcode:CPU %d added\n", cpu); | 713 | pr_debug("Microcode:CPU %d added\n", cpu); |
| 714 | /* If suspend_cpu_hotplug is set, the system is resuming and we should | 714 | memset(uci, 0, sizeof(*uci)); |
| 715 | * use the data from before the suspend. | ||
| 716 | */ | ||
| 717 | if (suspend_cpu_hotplug) { | ||
| 718 | err = apply_microcode_on_cpu(cpu); | ||
| 719 | if (err) | ||
| 720 | microcode_fini_cpu(cpu); | ||
| 721 | } | ||
| 722 | if (!uci->valid) | ||
| 723 | memset(uci, 0, sizeof(*uci)); | ||
| 724 | 715 | ||
| 725 | err = sysfs_create_group(&sys_dev->kobj, &mc_attr_group); | 716 | err = sysfs_create_group(&sys_dev->kobj, &mc_attr_group); |
| 726 | if (err) | 717 | if (err) |
| 727 | return err; | 718 | return err; |
| 728 | 719 | ||
| 729 | if (!uci->valid) | 720 | microcode_init_cpu(cpu, resume); |
| 730 | microcode_init_cpu(cpu); | ||
| 731 | 721 | ||
| 732 | return 0; | 722 | return 0; |
| 733 | } | 723 | } |
| 734 | 724 | ||
| 725 | static int mc_sysdev_add(struct sys_device *sys_dev) | ||
| 726 | { | ||
| 727 | return __mc_sysdev_add(sys_dev, 0); | ||
| 728 | } | ||
| 729 | |||
| 735 | static int mc_sysdev_remove(struct sys_device *sys_dev) | 730 | static int mc_sysdev_remove(struct sys_device *sys_dev) |
| 736 | { | 731 | { |
| 737 | int cpu = sys_dev->id; | 732 | int cpu = sys_dev->id; |
| 738 | 733 | ||
| 739 | if (!cpu_online(cpu)) | 734 | if (!cpu_online(cpu)) |
| 740 | return 0; | 735 | return 0; |
| 736 | |||
| 741 | pr_debug("Microcode:CPU %d removed\n", cpu); | 737 | pr_debug("Microcode:CPU %d removed\n", cpu); |
| 742 | /* If suspend_cpu_hotplug is set, the system is suspending and we should | 738 | microcode_fini_cpu(cpu); |
| 743 | * keep the microcode in memory for the resume. | ||
| 744 | */ | ||
| 745 | if (!suspend_cpu_hotplug) | ||
| 746 | microcode_fini_cpu(cpu); | ||
| 747 | sysfs_remove_group(&sys_dev->kobj, &mc_attr_group); | 739 | sysfs_remove_group(&sys_dev->kobj, &mc_attr_group); |
| 748 | return 0; | 740 | return 0; |
| 749 | } | 741 | } |
| @@ -774,13 +766,34 @@ mc_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu) | |||
| 774 | 766 | ||
| 775 | sys_dev = get_cpu_sysdev(cpu); | 767 | sys_dev = get_cpu_sysdev(cpu); |
| 776 | switch (action) { | 768 | switch (action) { |
| 769 | case CPU_UP_CANCELED_FROZEN: | ||
| 770 | /* The CPU refused to come up during a system resume */ | ||
| 771 | microcode_fini_cpu(cpu); | ||
| 772 | break; | ||
| 777 | case CPU_ONLINE: | 773 | case CPU_ONLINE: |
| 778 | case CPU_DOWN_FAILED: | 774 | case CPU_DOWN_FAILED: |
| 779 | mc_sysdev_add(sys_dev); | 775 | mc_sysdev_add(sys_dev); |
| 780 | break; | 776 | break; |
| 777 | case CPU_ONLINE_FROZEN: | ||
| 778 | /* System-wide resume is in progress, try to apply microcode */ | ||
| 779 | if (apply_microcode_check_cpu(cpu)) { | ||
| 780 | /* The application of microcode failed */ | ||
| 781 | microcode_fini_cpu(cpu); | ||
| 782 | __mc_sysdev_add(sys_dev, 1); | ||
| 783 | break; | ||
| 784 | } | ||
| 785 | case CPU_DOWN_FAILED_FROZEN: | ||
| 786 | if (sysfs_create_group(&sys_dev->kobj, &mc_attr_group)) | ||
| 787 | printk(KERN_ERR "Microcode: Failed to create the sysfs " | ||
| 788 | "group for CPU%d\n", cpu); | ||
| 789 | break; | ||
| 781 | case CPU_DOWN_PREPARE: | 790 | case CPU_DOWN_PREPARE: |
| 782 | mc_sysdev_remove(sys_dev); | 791 | mc_sysdev_remove(sys_dev); |
| 783 | break; | 792 | break; |
| 793 | case CPU_DOWN_PREPARE_FROZEN: | ||
| 794 | /* Suspend is in progress, only remove the interface */ | ||
| 795 | sysfs_remove_group(&sys_dev->kobj, &mc_attr_group); | ||
| 796 | break; | ||
| 784 | } | 797 | } |
| 785 | return NOTIFY_OK; | 798 | return NOTIFY_OK; |
| 786 | } | 799 | } |
diff --git a/arch/i386/kernel/msr.c b/arch/i386/kernel/msr.c index 8cd0a91ce107..0c1069b8d638 100644 --- a/arch/i386/kernel/msr.c +++ b/arch/i386/kernel/msr.c | |||
| @@ -153,9 +153,11 @@ static int msr_class_cpu_callback(struct notifier_block *nfb, | |||
| 153 | 153 | ||
| 154 | switch (action) { | 154 | switch (action) { |
| 155 | case CPU_ONLINE: | 155 | case CPU_ONLINE: |
| 156 | case CPU_ONLINE_FROZEN: | ||
| 156 | msr_device_create(cpu); | 157 | msr_device_create(cpu); |
| 157 | break; | 158 | break; |
| 158 | case CPU_DEAD: | 159 | case CPU_DEAD: |
| 160 | case CPU_DEAD_FROZEN: | ||
| 159 | device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu)); | 161 | device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu)); |
| 160 | break; | 162 | break; |
| 161 | } | 163 | } |
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c index 4bec0cbf407a..c05e7e861b29 100644 --- a/arch/i386/kernel/traps.c +++ b/arch/i386/kernel/traps.c | |||
| @@ -305,7 +305,7 @@ void show_registers(struct pt_regs *regs) | |||
| 305 | regs->xds & 0xffff, regs->xes & 0xffff, regs->xfs & 0xffff, gs, ss); | 305 | regs->xds & 0xffff, regs->xes & 0xffff, regs->xfs & 0xffff, gs, ss); |
| 306 | printk(KERN_EMERG "Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)", | 306 | printk(KERN_EMERG "Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)", |
| 307 | TASK_COMM_LEN, current->comm, current->pid, | 307 | TASK_COMM_LEN, current->comm, current->pid, |
| 308 | current_thread_info(), current, current->thread_info); | 308 | current_thread_info(), current, task_thread_info(current)); |
| 309 | /* | 309 | /* |
| 310 | * When in-kernel, we also print out the stack and code at the | 310 | * When in-kernel, we also print out the stack and code at the |
| 311 | * time of the fault.. | 311 | * time of the fault.. |
diff --git a/arch/i386/mach-generic/probe.c b/arch/i386/mach-generic/probe.c index a7b3999bb37a..74f3da634423 100644 --- a/arch/i386/mach-generic/probe.c +++ b/arch/i386/mach-generic/probe.c | |||
| @@ -119,9 +119,7 @@ int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
| 119 | return 0; | 119 | return 0; |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | #ifdef CONFIG_SMP | ||
| 123 | int hard_smp_processor_id(void) | 122 | int hard_smp_processor_id(void) |
| 124 | { | 123 | { |
| 125 | return genapic->get_apic_id(*(unsigned long *)(APIC_BASE+APIC_ID)); | 124 | return genapic->get_apic_id(*(unsigned long *)(APIC_BASE+APIC_ID)); |
| 126 | } | 125 | } |
| 127 | #endif | ||
diff --git a/arch/i386/mach-voyager/voyager_basic.c b/arch/i386/mach-voyager/voyager_basic.c index 8fe7e4593d5f..9b77b39b71a6 100644 --- a/arch/i386/mach-voyager/voyager_basic.c +++ b/arch/i386/mach-voyager/voyager_basic.c | |||
| @@ -292,8 +292,8 @@ machine_emergency_restart(void) | |||
| 292 | void | 292 | void |
| 293 | mca_nmi_hook(void) | 293 | mca_nmi_hook(void) |
| 294 | { | 294 | { |
| 295 | __u8 dumpval __attribute__((unused)) = inb(0xf823); | 295 | __u8 dumpval __maybe_unused = inb(0xf823); |
| 296 | __u8 swnmi __attribute__((unused)) = inb(0xf813); | 296 | __u8 swnmi __maybe_unused = inb(0xf813); |
| 297 | 297 | ||
| 298 | /* FIXME: assume dump switch pressed */ | 298 | /* FIXME: assume dump switch pressed */ |
| 299 | /* check to see if the dump switch was pressed */ | 299 | /* check to see if the dump switch was pressed */ |
diff --git a/arch/i386/pci/init.c b/arch/i386/pci/init.c index 1cf11af96de2..3de9f9ba2da6 100644 --- a/arch/i386/pci/init.c +++ b/arch/i386/pci/init.c | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | in the right sequence from here. */ | 6 | in the right sequence from here. */ |
| 7 | static __init int pci_access_init(void) | 7 | static __init int pci_access_init(void) |
| 8 | { | 8 | { |
| 9 | int type __attribute__((unused)) = 0; | 9 | int type __maybe_unused = 0; |
| 10 | 10 | ||
| 11 | #ifdef CONFIG_PCI_DIRECT | 11 | #ifdef CONFIG_PCI_DIRECT |
| 12 | type = pci_direct_probe(); | 12 | type = pci_direct_probe(); |
