Jiang Liu
af87baedf2
x86/htirq: Use new irqdomain interfaces to allocate/free IRQ
...
Use new irqdomain interfaces to allocate/free IRQ for HTIRQ, so we can
remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ later.
This patch changes the interfaces between arch independent PCI driver
and arch specific code. Currently HT_IRQ is only enabled on x86, so it
does not affect other architectures.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Link: http://lkml.kernel.org/r/1428905519-23704-7-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:48 +02:00
Jiang Liu
4c8f9960ee
x86/MSI: Use new irqdomain interfaces to allocate/free IRQ
...
Use new irqdomain interfaces to allocate/free IRQ for PCI MSI, so we
can remove GENERIC_IRQ_LEGACY_ALLOC_HWIRQ later.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Link: http://lkml.kernel.org/r/1416894816-23245-5-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:48 +02:00
Jiang Liu
b5dc8e6c21
x86/irq: Use hierarchical irqdomain to manage CPU interrupt vectors
...
Abstract CPU local APIC as an interrupt controller and create an
irqdomain for it to manage CPU interrupt vectors. It's the base to
enable hierarchical irqdomains on x86 systems.
The final irqdomain hierarchy will look like this:
IOAPIC domain ----|
MSI/MSI-x domain ----> [Interrupt Remapping domain] -> CPU vector domain
HPET_IRQ domain ----| ^
|
DMAR domain ----------------------------------------------|
HT_IRQ domain ----------------------------------------------|
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Cc: Grant Likely <grant.likely@linaro.org >
Link: http://lkml.kernel.org/r/1428905519-23704-3-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:47 +02:00
Jiang Liu
5f0052f952
x86/irq: Save destination CPU ID in irq_cfg
...
Cache destination CPU APIC ID into struct irq_cfg when assigning vector
for interrupt. Upper layer just needs to read the cached APIC ID instead
of calling apic->cpu_mask_to_apicid_and(), it helps to hide APIC driver
details from IOAPIC/HPET/MSI drivers..
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: David Cohen <david.a.cohen@linux.intel.com >
Cc: Sander Eikelenboom <linux@eikelenboom.it >
Cc: David Vrabel <david.vrabel@citrix.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dimitri Sivanich <sivanich@sgi.com >
Link: http://lkml.kernel.org/r/1428905519-23704-2-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-04-24 15:36:47 +02:00
Linus Torvalds
6496edfce9
Merge tag 'cpumask-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
...
Pull final removal of deprecated cpus_* cpumask functions from Rusty Russell:
"This is the final removal (after several years!) of the obsolete
cpus_* functions, prompted by their mis-use in staging.
With these function removed, all cpu functions should only iterate to
nr_cpu_ids, so we finally only allocate that many bits when cpumasks
are allocated offstack"
* tag 'cpumask-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (25 commits)
cpumask: remove __first_cpu / __next_cpu
cpumask: resurrect CPU_MASK_CPU0
linux/cpumask.h: add typechecking to cpumask_test_cpu
cpumask: only allocate nr_cpumask_bits.
Fix weird uses of num_online_cpus().
cpumask: remove deprecated functions.
mips: fix obsolete cpumask_of_cpu usage.
x86: fix more deprecated cpu function usage.
ia64: remove deprecated cpus_ usage.
powerpc: fix deprecated CPU_MASK_CPU0 usage.
CPU_MASK_ALL/CPU_MASK_NONE: remove from deprecated region.
staging/lustre/o2iblnd: Don't use cpus_weight
staging/lustre/libcfs: replace deprecated cpus_ calls with cpumask_
staging/lustre/ptlrpc: Do not use deprecated cpus_* functions
blackfin: fix up obsolete cpu function usage.
parisc: fix up obsolete cpu function usage.
tile: fix up obsolete cpu function usage.
arm64: fix up obsolete cpu function usage.
mips: fix up obsolete cpu function usage.
x86: fix up obsolete cpu function usage.
...
2015-04-20 10:19:03 -07:00
Linus Torvalds
9f3252f1ad
Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
...
Pull x86 cleanups from Ingo Molnar:
"Various cleanups"
* 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/iommu: Fix header comments regarding standard and _FINISH macros
x86/earlyprintk: Put CONFIG_PCI-only functions under the #ifdef
x86: Fix up obsolete __cpu_set() function usage
2015-04-13 13:20:54 -07:00
Mike Travis
1912c7afa3
x86/apic/uv: Update the UV APIC HUB check
...
Update the check for UV2000/3000. Note when the HUB is not recognized.
Signed-off-by: Mike Travis <travis@sgi.com >
Acked-by: Hedi Berriche <hedi@sgi.com >
Acked-by: Dimitri Sivanich <sivanich@sgi.com >
Link: http://lkml.kernel.org/r/20150409182629.267239403@asylum.americas.sgi.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-04-10 10:16:08 +02:00
Mike Travis
379b97e280
x86/apic/uv: Update the UV APIC driver check
...
Fix a bug in the OEM check function that determines if the
system is a UV system and the BIOS is compatible with the
kernel's UV apic driver. This prevents some possibly obscure
panics and guards the system against being started on SGI
hardware that does not have the required kernel support.
Signed-off-by: Mike Travis <travis@sgi.com >
Acked-by: Hedi Berriche <hedi@sgi.com >
Acked-by: Dimitri Sivanich <sivanich@sgi.com >
Link: http://lkml.kernel.org/r/20150409182629.112998930@asylum.americas.sgi.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-04-10 10:16:07 +02:00
Mike Travis
7a4e017041
x86/apic/uv: Update the APIC UV OEM check
...
Optimize the first "SGI" OEM check to return faster if the
system is not an SGI or UV system.
Signed-off-by: Mike Travis <travis@sgi.com >
Acked-by: Hedi Berriche <hedi@sgi.com >
Acked-by: Dimitri Sivanich <sivanich@sgi.com >
Link: http://lkml.kernel.org/r/20150409182628.952357922@asylum.americas.sgi.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-04-10 10:16:07 +02:00
Bandan Das
4399c03c67
x86/apic: Remove verify_local_APIC()
...
__verify_local_APIC() is detritus from the early APIC days.
Its return value isn't used anywhere and the information it
prints when debug is enabled is already part of APIC
initialization messages printed to syslog. Off with it!
Signed-off-by: Bandan Das <bsd@redhat.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/jpgy4mcsxsq.fsf@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-04-01 10:47:57 +02:00
Daniel J Blueman
c8a470cab0
x86/apic/numachip: Fix sibling map with NumaChip
...
On NumaChip systems, the physical processor ID assignment wasn't
accounting for the number of nodes in AMD multi-module
processors, giving an incorrect sibling map:
$ cd /sys/devices/system/cpu/cpu29/topology
$ grep . *
core_id:5
core_siblings:00000000,ff000000
core_siblings_list:24-31
physical_package_id:3
thread_siblings:00000000,30000000
thread_siblings_list:28-29
This fixes it:
$ cd /sys/devices/system/cpu/cpu29/topology
$ grep . *
core_id:5
core_siblings:00000000,ffff0000
core_siblings_list:16-31
physical_package_id:1
thread_siblings:00000000,30000000
thread_siblings_list:28-29
Signed-off-by: Daniel J Blueman <daniel@numascale.com >
Signed-off-by: Borislav Petkov <bp@suse.de >
Cc: <stable@vger.kernel.org >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Steffen Persvold <sp@numascale.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/1426135950-10110-1-git-send-email-daniel@numascale.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-03-12 16:58:59 +01:00
Rusty Russell
fdaf3a6539
x86: fix more deprecated cpu function usage.
...
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au >
2015-03-10 13:54:40 +10:30
Rusty Russell
d089f8e97d
x86: fix up obsolete cpu function usage.
...
Thanks to spatch, plus manual removal of "&*".
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au >
Cc: x86@kernel.org
2015-03-05 15:25:05 +10:30
Rusty Russell
020b37ac66
x86: Fix up obsolete __cpu_set() function usage
...
Thanks to spatch, plus manual removal of "&*".
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/1425296150-4722-8-git-send-email-rusty@rustcorp.com.au
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-03-02 14:28:17 +01:00
Linus Torvalds
8329aa9fff
Revert "x86/apic: Only disable CPU x2apic mode when necessary"
...
This reverts commit 5fcee53ce7
.
It causes the suspend to fail on at least the Chromebook Pixel, possibly
other platforms too.
Joerg Roedel points out that the logic should probably have been
if (max_physical_apicid > 255 ||
!(IS_ENABLED(CONFIG_HYPERVISOR_GUEST) &&
hypervisor_x2apic_available())) {
instead, but since the code is not in any fast-path, so we can just live
without that optimization and just revert to the original code.
Acked-by: Joerg Roedel <joro@8bytes.org >
Acked-by: Jiang Liu <jiang.liu@linux.intel.com >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2015-02-13 10:26:18 -08:00
Thomas Gleixner
9c4d9c73dd
x86: Consolidate boot cpu timer setup
...
Now that the APIC bringup is consolidated we can move the setup call
for the percpu clock event device to apic_bsp_setup().
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211704.162567839@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:56 +01:00
Thomas Gleixner
374aab339f
x86/apic: Reuse apic_bsp_setup() for UP APIC setup
...
Extend apic_bsp_setup() so the same code flow can be used for
APIC_init_uniprocessor().
Folded Jiangs fix to provide proper ordering of the UP setup.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211704.084765674@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:56 +01:00
Thomas Gleixner
05f7e46d2a
x86/smpboot: Move apic init code to apic.c
...
We better provide proper functions which implement the required code
flow in the apic code rather than letting the smpboot code open code
it. That allows to make more functions static and confines the APIC
functionality to apic.c where it belongs.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211703.907616730@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:56 +01:00
Thomas Gleixner
30b8b0066c
init: Get rid of x86isms
...
The UP local API support can be set up from an early initcall. No need
for horrible hackery in the init code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211703.827943883@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:56 +01:00
Thomas Gleixner
e714a91f92
x86/apic: Move apic_init_uniprocessor code
...
Move the code to a different place so we can make other functions
inline. Preparatory patch for further cleanups. No change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211703.731329006@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:56 +01:00
Thomas Gleixner
35e4c6d30e
x86/apic: Sanitize ioapic handling
...
We have proper stubs for the IOAPIC=n case and the setup/enable
function have the required checks inside now. Remove the ifdeffery and
the copy&pasted conditionals.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >C
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211703.569830549@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:55 +01:00
Thomas Gleixner
a46f5c8927
x86/ioapic: Add proper checks to setp/enable_IO_APIC()
...
No point to have the same checks at every call site. Add them to the
functions, so they can be called unconditionally.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211703.490719938@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:55 +01:00
Thomas Gleixner
6d2d49d2cd
x86/x2apic: Use state information for disable
...
Use the state information to simplify the disable logic further.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211703.209387598@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:55 +01:00
Thomas Gleixner
659006bf3a
x86/x2apic: Split enable and setup function
...
enable_x2apic() is a convoluted unreadable mess because it is used for
both enablement in early boot and for setup in cpu_init().
Split the code into x2apic_enable() for enablement and x2apic_setup()
for setup of (secondary cpus). Make use of the new state tracking to
simplify the logic.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211703.129287153@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:55 +01:00
Thomas Gleixner
44e25ff9e6
x86/x2apic: Disable x2apic from nox2apic setup
...
There is no point in postponing the hardware disablement of x2apic. It
can be disabled right away in the nox2apic setup function.
Disable it right away and set the state to DISABLED . This allows to
remove all the nox2apic conditionals all over the place.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211703.051214090@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:55 +01:00
Thomas Gleixner
12e189d3cf
x86/x2apic: Add proper state tracking
...
Having 3 different variables to track the state is just silly and
error prone. Add a proper state tracking variable which covers the
three possible states: ON/OFF/DISABLED.
We cannot use x2apic_mode for this as this would require to change all
users of x2apic_mode with explicit comparisons for a state value
instead of treating it as boolean.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211702.955392443@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:55 +01:00
Thomas Gleixner
62e61633da
x86/x2apic: Clarify remapping mode for x2apic enablement
...
Rename the argument of try_to_enable_x2apic() so the purpose becomes
more clear.
Make the pr_warning more consistent and avoid the double print of
"disabling".
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211702.876012628@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:55 +01:00
Thomas Gleixner
55eae7de72
x86/x2apic: Move code in conditional region
...
No point in having try_to_enable_x2apic() outside of the
CONFIG_X86_X2APIC section and having inline functions and more ifdefs
to deal with it. Move the code into the existing ifdef section and
remove the inline cruft.
Fixup the printk about not enabling interrupt remapping as suggested
by Boris.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211702.795388613@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:54 +01:00
Thomas Gleixner
d524165cb8
x86/apic: Check x2apic early
...
No point in delaying the x2apic detection for the CONFIG_X86_X2APIC=n
case to enable_IR_x2apic(). We rather detect that before we try to
setup anything there.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211702.702479404@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:54 +01:00
Thomas Gleixner
9aa1636527
x86/apic: Make disable x2apic work really
...
If x2apic_preenabled is not enabled, then disable_x2apic() is not
called from various places which results in x2apic_disabled not being
set. So other code pathes can happily reenable the x2apic.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211702.621431109@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:54 +01:00
Thomas Gleixner
2ca5b40479
x86/ioapic: Check x2apic really
...
The x2apic_preenabled flag is just a horrible hack and if X2APIC
support is disabled it does not reflect the actual hardware
state. Check the hardware instead.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/20150115211702.541280622@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:54 +01:00
Thomas Gleixner
bfb0507029
x86/apic: Move x2apic code to one place
...
Having several disjunct pieces of code for x2apic support makes
reading the code unnecessarily hard. Move it to one ifdeffed section.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211702.445212133@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:54 +01:00
Thomas Gleixner
81a46dd824
x86/apic: Make x2apic_mode depend on CONFIG_X86_X2APIC
...
No point in having a static variable around which is always 0. Let the
compiler optimize code out if disabled.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211702.363274310@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:54 +01:00
Thomas Gleixner
8d80696060
x86/apic: Avoid open coded x2apic detection
...
enable_IR_x2apic() grew a open coded x2apic detection. Implement a
proper helper function which shares the code with the already existing
x2apic_enabled().
Made it use rdmsrl_safe as suggested by Boris.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Link: http://lkml.kernel.org/r/20150115211702.285038186@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-22 15:10:54 +01:00
Jiang Liu
c392f56c94
iommu/irq_remapping: Kill function irq_remapping_supported() and related code
...
Simplify irq_remapping code by killing irq_remapping_supported() and
related interfaces.
Joerg posted a similar patch at https://lkml.org/lkml/2014/12/15/490 ,
so assume an signed-off from Joerg.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Signed-off-by: Joerg Roedel <jroedel@suse.de >
Tested-by: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
Link: http://lkml.kernel.org/r/1420615903-28253-14-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-15 11:24:23 +01:00
Jiang Liu
5fcee53ce7
x86/apic: Only disable CPU x2apic mode when necessary
...
When interrupt remapping hardware is not in X2APIC, CPU X2APIC mode
will be disabled if:
1) Maximum CPU APIC ID is bigger than 255
2) hypervisior doesn't support x2apic mode.
But we should only check whether hypervisor supports X2APIC mode when
hypervisor(CONFIG_HYPERVISOR_GUEST) is enabled, otherwise X2APIC will
always be disabled when CONFIG_HYPERVISOR_GUEST is disabled and IR
doesn't work in X2APIC mode.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Tested-by: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
Link: http://lkml.kernel.org/r/1420615903-28253-12-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-15 11:24:23 +01:00
Jiang Liu
ef1b2b8ad1
x86/apic: Handle XAPIC remap mode proper.
...
If remapping is in XAPIC mode, the setup code just skips X2APIC
initialization without checking max CPU APIC ID in system, which may
cause problem if system has a CPU with APIC ID bigger than 255.
Handle IR in XAPIC mode the same way as if remapping is disabled.
[ tglx: Split out from previous patch ]
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
Link: http://lkml.kernel.org/r/1420615903-28253-8-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-15 11:24:23 +01:00
Jiang Liu
07806c50bd
x86/apic: Refine enable_IR_x2apic() and related functions
...
Refine enable_IR_x2apic() and related functions for better readability.
[ tglx: Removed the XAPIC mode change and split it out into a seperate
patch. Added comments. ]
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
Link: http://lkml.kernel.org/r/1420615903-28253-8-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-15 11:24:23 +01:00
Jiang Liu
89356cf20e
x86/apic: Correctly detect X2APIC status in function enable_IR()
...
X2APIC will be disabled if user specifies "nox2apic" on kernel command
line, even when x2apic_preenabled is true. So correctly detect X2APIC
status by using x2apic_enabled() instead of x2apic_preenabled.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
Link: http://lkml.kernel.org/r/1420615903-28253-7-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-15 11:24:23 +01:00
Jiang Liu
7f530a2771
x86/apic: Kill useless variable x2apic_enabled in function enable_IR_x2apic()
...
Local variable x2apic_enabled has been assigned to but never referred,
so kill it.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
Link: http://lkml.kernel.org/r/1420615903-28253-6-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-15 11:24:22 +01:00
Jiang Liu
2599094f6e
x86/apic: Panic if kernel doesn't support x2apic but BIOS has enabled x2apic
...
When kernel doesn't support X2APIC but BIOS has enabled X2APIC, system
may panic or hang without useful messages. On the other hand, it's
hard to dynamically disable X2APIC when CONFIG_X86_X2APIC is disabled.
So panic with a clear message in such a case.
Now system panics as below when X2APIC is disabled and interrupt remapping
is enabled:
[ 0.316118] LAPIC pending interrupts after 512 EOI
[ 0.322126] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.368655] Kernel panic - not syncing: timer doesn't work through Interrupt-remapped IO-APIC
[ 0.378300] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.18.0+ #340
[ 0.385300] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRIVTIN1.86B.0051.L05.1406240953 06/24/2014
[ 0.396997] ffff88046dc03000 ffff88046c307dd8 ffffffff8179dada 00000000000043f2
[ 0.405629] ffffffff81a92158 ffff88046c307e58 ffffffff8179b757 0000000000000002
[ 0.414261] 0000000000000008 ffff88046c307e68 ffff88046c307e08 ffffffff813ad82b
[ 0.422890] Call Trace:
[ 0.425711] [<ffffffff8179dada>] dump_stack+0x45/0x57
[ 0.431533] [<ffffffff8179b757>] panic+0xc1/0x1f5
[ 0.436978] [<ffffffff813ad82b>] ? delay_tsc+0x3b/0x70
[ 0.442910] [<ffffffff8166fa2c>] panic_if_irq_remap+0x1c/0x20
[ 0.449524] [<ffffffff81d73645>] setup_IO_APIC+0x405/0x82e
[ 0.464979] [<ffffffff81d6fcc2>] native_smp_prepare_cpus+0x2d9/0x31c
[ 0.472274] [<ffffffff81d5d0ac>] kernel_init_freeable+0xd6/0x223
[ 0.479170] [<ffffffff81792ad0>] ? rest_init+0x80/0x80
[ 0.485099] [<ffffffff81792ade>] kernel_init+0xe/0xf0
[ 0.490932] [<ffffffff817a537c>] ret_from_fork+0x7c/0xb0
[ 0.497054] [<ffffffff81792ad0>] ? rest_init+0x80/0x80
[ 0.502983] ---[ end Kernel panic - not syncing: timer doesn't work through Interrupt-remapped IO-APIC
System hangs as below when X2APIC and interrupt remapping are both disabled:
[ 1.102782] pci 0000:00:02.0: System wakeup disabled by ACPI
[ 1.109351] pci 0000:00:03.0: System wakeup disabled by ACPI
[ 1.115915] pci 0000:00:03.2: System wakeup disabled by ACPI
[ 1.122479] pci 0000:00:03.3: System wakeup disabled by ACPI
[ 1.132274] pci 0000:00:1c.0: Enabling MPC IRBNCE
[ 1.137620] pci 0000:00:1c.0: Intel PCH root port ACS workaround enabled
[ 1.145239] pci 0000:00:1c.0: System wakeup disabled by ACPI
[ 1.151790] pci 0000:00:1c.7: Enabling MPC IRBNCE
[ 1.157128] pci 0000:00:1c.7: Intel PCH root port ACS workaround enabled
[ 1.164748] pci 0000:00:1c.7: System wakeup disabled by ACPI
[ 1.171447] pci 0000:00:1e.0: System wakeup disabled by ACPI
[ 1.178612] acpiphp: Slot [8] registered
[ 1.183095] pci 0000:00:02.0: PCI bridge to [bus 01]
[ 1.188867] acpiphp: Slot [2] registered
With this patch applied, the system panics in both cases with a proper
panic message.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
Link: http://lkml.kernel.org/r/1420615903-28253-5-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-15 11:24:22 +01:00
Thomas Gleixner
f7ccadac2d
x86/apic: Clear stale x2apic mode
...
If x2apic got disabled on the kernel command line, then the following
issue can happen:
enable_IR_x2apic()
....
x2apic_mode = 1;
enable_x2apic();
if (x2apic_disabled) {
__disable_x2apic();
return;
}
That leaves X2APIC disabled in hardware, but x2apic_mode stays 1. So
all other code which checks x2apic_mode gets the wrong information.
Set x2apic_mode to 0 after disabling it in hardware.
This is just a hotfix. The proper solution is to rework this code so
it has seperate functions for the initial setup on the boot processor
and the secondary cpus, but that's beyond the scope of this fix.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
2015-01-15 11:24:22 +01:00
Thomas Gleixner
a1dafe857d
iommu, x86: Restructure setup of the irq remapping feature
...
enable_IR_x2apic() calls setup_irq_remapping_ops() which by default
installs the intel dmar remapping ops and then calls the amd iommu irq
remapping prepare callback to figure out whether we are running on an
AMD machine with irq remapping hardware.
Right after that it calls irq_remapping_prepare() which pointlessly
checks:
if (!remap_ops || !remap_ops->prepare)
return -ENODEV;
and then calls
remap_ops->prepare()
which is silly in the AMD case as it got called from
setup_irq_remapping_ops() already a few microseconds ago.
Simplify this and just collapse everything into
irq_remapping_prepare().
The irq_remapping_prepare() remains still silly as it assigns blindly
the intel ops, but that's not scope of this patch.
The scope here is to move the preperatory work, i.e. memory
allocations out of the atomic section which is required to enable irq
remapping.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Borislav Petkov <bp@alien8.de >
Acked-and-tested-by: Joerg Roedel <joro@8bytes.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: iommu@lists.linux-foundation.org
Cc: Joerg Roedel <jroedel@suse.de >
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: David Rientjes <rientjes@google.com >
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com >
Cc: Jan Beulich <JBeulich@suse.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: Oren Twaig <oren@scalemp.com >
Cc: x86@kernel.org
Link: http://lkml.kernel.org/r/20141205084147.232633738@linutronix.de
Link: http://lkml.kernel.org/r/1420615903-28253-2-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2015-01-15 11:24:22 +01:00
Linus Torvalds
e589c9e13a
Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
...
Pull x86 apic updates from Thomas Gleixner:
"After stopping the full x86/apic branch, I took some time to go
through the first block of patches again, which are mostly cleanups
and preparatory work for the irqdomain conversion and ioapic hotplug
support.
Unfortunaly one of the real problematic commits was right at the
beginning, so I rebased this portion of the pending patches without
the offenders.
It would be great to get this into 3.19. That makes reworking the
problematic parts simpler. The usual tip testing did not unearth any
issues and it is fully bisectible now.
I'm pretty confident that this wont affect the calmness of the xmas
season.
Changes:
- Split the convoluted io_apic.c code into domain specific parts
(vector, ioapic, msi, htirq)
- Introduce proper helper functions to retrieve irq specific data
instead of open coded dereferencing of pointers
- Preparatory work for ioapic hotplug and irqdomain conversion
- Removal of the non functional pci-ioapic driver
- Removal of unused irq entry stubs
- Make native_smp_prepare_cpus() preemtible to avoid GFP_ATOMIC
allocations for everything which is called from there.
- Small cleanups and fixes"
* 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
iommu/amd: Use helpers to access irq_cfg data structure associated with IRQ
iommu/vt-d: Use helpers to access irq_cfg data structure associated with IRQ
x86: irq_remapping: Use helpers to access irq_cfg data structure associated with IRQ
x86, irq: Use helpers to access irq_cfg data structure associated with IRQ
x86, irq: Make MSI and HT_IRQ indepenent of X86_IO_APIC
x86, irq: Move IRQ initialization routines from io_apic.c into vector.c
x86, irq: Move IOAPIC related declarations from hw_irq.h into io_apic.h
x86, irq: Move HT IRQ related code from io_apic.c into htirq.c
x86, irq: Move PCI MSI related code from io_apic.c into msi.c
x86, irq: Replace printk(KERN_LVL) with pr_lvl() utilities
x86, irq: Make UP version of irq_complete_move() an inline stub
x86, irq: Move local APIC related code from io_apic.c into vector.c
x86, irq: Introduce helpers to access struct irq_cfg
x86, irq: Protect __clear_irq_vector() with vector_lock
x86, irq: Rename local APIC related functions in io_apic.c as apic_xxx()
x86, irq: Refine hw_irq.h to prepare for irqdomain support
x86, irq: Convert irq_2_pin list to generic list
x86, irq: Kill useless parameter 'irq_attr' of IO_APIC_get_PCI_irq_vector()
x86, irq, acpi: Get rid of special handling of GSI for ACPI SCI
x86, irq: Introduce helper to check whether an IOAPIC has been registered
...
2014-12-19 14:02:02 -08:00
Jiang Liu
a978609112
x86, irq: Use helpers to access irq_cfg data structure associated with IRQ
...
Use helpers to access irq_cfg data structure associated with IRQ,
instead of accessing irq_data->chip_data directly. Later we can
rewrite those helpers to support hierarchy irqdomain.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414397531-28254-17-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00
Jiang Liu
11d686e956
x86, irq: Move IRQ initialization routines from io_apic.c into vector.c
...
Move IRQ initialization routines from io_apic.c into vector.c,
preparing for enabling hierarchy irqdomain.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414397531-28254-15-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00
Jiang Liu
8643e28da2
x86, irq: Move IOAPIC related declarations from hw_irq.h into io_apic.h
...
Clean up code by moving IOAPIC related declarations from hw_irq.h into
io_apic.h.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: H. Peter Anvin <hpa@linux.intel.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Prarit Bhargava <prarit@redhat.com >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Vivek Goyal <vgoyal@redhat.com >
Cc: Baoquan He <bhe@redhat.com >
Cc: Matt Fleming <matt.fleming@intel.com >
Cc: Fenghua Yu <fenghua.yu@intel.com >
Cc: Christian Gmeiner <christian.gmeiner@gmail.com >
Cc: Aubrey <aubrey.li@linux.intel.com >
Cc: Ryan Desfosses <ryan@desfo.org >
Cc: Quentin Lambert <lambert.quentin@gmail.com >
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
Link: http://lkml.kernel.org/r/1414397531-28254-14-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00
Jiang Liu
c3468952f0
x86, irq: Move HT IRQ related code from io_apic.c into htirq.c
...
Create arch/x86/kernel/apic/htirq.c to host Hypertransport IRQ related
code, preparing for enabling hierarchy irqdomain.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414397531-28254-13-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00
Jiang Liu
443809828c
x86, irq: Move PCI MSI related code from io_apic.c into msi.c
...
Create arch/x86/kernel/apic/msi.c to host MSI related code,
preparing for enabling hierarchy irqdomain.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
Cc: Grant Likely <grant.likely@linaro.org >
Cc: Prarit Bhargava <prarit@redhat.com >
Link: http://lkml.kernel.org/r/1414397531-28254-12-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00
Jiang Liu
849d3569bb
x86, irq: Replace printk(KERN_LVL) with pr_lvl() utilities
...
Replace printk(KENR_LVL) with pr_lvl() to keep checkpatch script silent.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com >
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Joerg Roedel <joro@8bytes.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Bjorn Helgaas <bhelgaas@google.com >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: Yinghai Lu <yinghai@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Link: http://lkml.kernel.org/r/1414397531-28254-11-git-send-email-jiang.liu@linux.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2014-12-16 14:08:17 +01:00