Ricardo Neri
1e03bff360
x86/cpu/intel: Clear cache self-snoop capability in CPUs with known errata
...
Processors which have self-snooping capability can handle conflicting
memory type across CPUs by snooping its own cache. However, there exists
CPU models in which having conflicting memory types still leads to
unpredictable behavior, machine check errors, or hangs.
Clear this feature on affected CPUs to prevent its use.
Suggested-by: Alan Cox <alan.cox@intel.com >
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Borislav Petkov <bp@suse.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Jordan Borgner <mail@jordan-borgner.de >
Cc: "Ravi V. Shankar" <ravi.v.shankar@intel.com >
Cc: Mohammad Etemadi <mohammad.etemadi@intel.com >
Cc: Ricardo Neri <ricardo.neri@intel.com >
Cc: Andy Shevchenko <andriy.shevchenko@intel.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Peter Feiner <pfeiner@google.com >
Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com >
Link: https://lkml.kernel.org/r/1561689337-19390-2-git-send-email-ricardo.neri-calderon@linux.intel.com
2019-06-28 07:20:48 +02:00
Baoquan He
8ff80fbe7e
x86/kdump/64: Restrict kdump kernel reservation to <64TB
...
Restrict kdump to only reserve crashkernel below 64TB.
The reaons is that the kdump may jump from a 5-level paging mode to a
4-level paging mode kernel. If a 4-level paging mode kdump kernel is put
above 64TB, then the kdump kernel cannot start.
The 1st kernel reserves the kdump kernel region during bootup. At that
point it is not known whether the kdump kernel has 5-level or 4-level
paging support.
To support both restrict the kdump kernel reservation to the lower 64TB
address space to ensure that a 4-level paging mode kdump kernel can be
loaded and successfully started.
[ tglx: Massaged changelog ]
Signed-off-by: Baoquan He <bhe@redhat.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Acked-by: Dave Young <dyoung@redhat.com >
Cc: bp@alien8.de
Cc: hpa@zytor.com
Link: https://lkml.kernel.org/r/20190524073810.24298-4-bhe@redhat.com
2019-06-28 07:14:59 +02:00
Baoquan He
ee338b9ee2
x86/kexec/64: Prevent kexec from 5-level paging to a 4-level only kernel
...
If the running kernel has 5-level paging activated, the 5-level paging mode
is preserved across kexec. If the kexec'ed kernel does not contain support
for handling active 5-level paging mode in the decompressor, the
decompressor will crash with #GP.
Prevent this situation at load time. If 5-level paging is active, check the
xloadflags whether the kexec kernel can handle 5-level paging at least in
the decompressor. If not, reject the load attempt and print out an error
message.
Signed-off-by: Baoquan He <bhe@redhat.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Cc: bp@alien8.de
Cc: hpa@zytor.com
Cc: dyoung@redhat.com
Link: https://lkml.kernel.org/r/20190524073810.24298-3-bhe@redhat.com
2019-06-28 07:14:59 +02:00
Thomas Gleixner
e44252f4fe
x86/hpet: Use channel for legacy clockevent storage
...
All preparations are done. Use the channel storage for the legacy
clockevent and remove the static variable.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.737689919@linutronix.de
2019-06-28 00:57:27 +02:00
Thomas Gleixner
49adaa60fa
x86/hpet: Use common init for legacy clockevent
...
Replace the static initialization of the legacy clockevent with runtime
initialization utilizing the common init function as the last preparatory
step to switch the legacy clockevent over to the channel 0 storage in
hpet_base.
This comes with a twist. The static clockevent initializer has selected
support for periodic and oneshot mode unconditionally whether the HPET
config advertised periodic mode or not. Even the pre clockevents code did
this. But....
Using the conditional in hpet_init_clockevent() makes at least Qemu and one
hardware machine fail to boot. There are two issues which cause the boot
failure:
#1 After the timer delivery test in IOAPIC and the IOAPIC setup the next
interrupt is not delivered despite the HPET channel being programmed
correctly. Reprogramming the HPET after switching to IOAPIC makes it
work again. After fixing this, the next issue surfaces:
#2 Due to the unconditional periodic mode 'availability' the Local APIC
timer calibration can hijack the global clockevents event handler
without causing damage. Using oneshot at this stage makes if hang
because the HPET does not get reprogrammed due to the handler
hijacking. Duh, stupid me!
Both issues require major surgery and especially the kick HPET again after
enabling IOAPIC results in really nasty hackery. This 'assume periodic
works' magic has survived since HPET support got added, so it's
questionable whether this should be fixed. Both Qemu and the failing
hardware machine support periodic mode despite the fact that both don't
advertise it in the configuration register and both need that extra kick
after switching to IOAPIC. Seems to be a feature...
Keep the 'assume periodic works' magic around and add a big fat comment.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.646565913@linutronix.de
2019-06-28 00:57:27 +02:00
Thomas Gleixner
ea99110dd0
x86/hpet: Carve out shareable parts of init_one_hpet_msi_clockevent()
...
To finally remove the static channel0/clockevent storage and to utilize the
channel 0 storage in hpet_base, it's required to run time initialize the
clockevent. The MSI clockevents already have a run time init function.
Carve out the parts which can be shared between the legacy and the MSI
implementation.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.552451082@linutronix.de
2019-06-28 00:57:26 +02:00
Thomas Gleixner
310b5b3eb6
x86/hpet: Consolidate clockevent functions
...
Now that the legacy clockevent is wrapped in a hpet_channel struct most
clockevent functions can be shared between the legacy and the MSI based
clockevents.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.461437795@linutronix.de
2019-06-28 00:57:26 +02:00
Thomas Gleixner
18e84a2dff
x86/hpet: Wrap legacy clockevent in hpet_channel
...
For HPET channel 0 there exist two clockevent structures right now:
- the static hpet_clockevent
- the clockevent in channel 0 storage
The goal is to use the clockevent in the channel storage, remove the static
variable and share code with the MSI implementation.
As a first step wrap the legacy clockevent into a hpet_channel struct and
convert the users.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.368141247@linutronix.de
2019-06-28 00:57:25 +02:00
Thomas Gleixner
45e0a41563
x86/hpet: Use cached info instead of extra flags
...
Now that HPET clockevent support is integrated into the channel data, reuse
the cached boot configuration instead of copying the same information into
a flags field.
This also allows to consolidate the reservation code into one place, which
can now solely depend on the mode information.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.277510163@linutronix.de
2019-06-28 00:57:25 +02:00
Thomas Gleixner
4d5e68330d
x86/hpet: Move clockevents into channels
...
Instead of allocating yet another data structure, move the clock event data
into the channel structure. This allows further consolidation of the
reservation code and the reuse of the cached boot config to replace the
extra flags in the clockevent data.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.185851116@linutronix.de
2019-06-28 00:57:24 +02:00
Ingo Molnar
d415c75431
x86/hpet: Rename variables to prepare for switching to channels
...
struct hpet_dev is gone with the next change as the clockevent storage
moves into struct hpet_channel. So the variable name hdev will not make
sense anymore. Ditto for timer vs. channel and similar details.
Doing the rename in the change makes the patch harder to review. Doing it
afterward is problematic vs. tracking down issues. Doing it upfront is the
easiest solution as it does not change functionality.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.093113681@linutronix.de
2019-06-28 00:57:24 +02:00
Thomas Gleixner
af5a1dadf3
x86/hpet: Add function to select a /dev/hpet channel
...
If CONFIG_HPET=y is enabled the x86 specific HPET code should reserve at
least one channel for the /dev/hpet character device, so that not all
channels are absorbed for per CPU clockevent devices.
Create a function to assign HPET_MODE_DEVICE so the rework of the
clockevents allocation code can utilize the mode information instead of
reducing the number of evaluated channels by #ifdef hackery.
The function is not yet used, but provided as a separate patch for ease of
review. It will be used when the rework of the clockevent selection takes
place.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132436.002758910@linutronix.de
2019-06-28 00:57:23 +02:00
Thomas Gleixner
9e16e4933e
x86/hpet: Add mode information to struct hpet_channel
...
The usage of the individual HPET channels is not tracked in a central
place. The information is scattered in different data structures. Also the
HPET reservation in the HPET character device is split out into several
places which makes the code hard to follow.
Assigning a mode to the channel allows to consolidate the reservation code
and paves the way for further simplifications.
As a first step set the mode of the legacy channels when the HPET is in
legacy mode.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.911652981@linutronix.de
2019-06-28 00:57:23 +02:00
Thomas Gleixner
2460d5878a
x86/hpet: Use cached channel data
...
Instead of rereading the HPET registers over and over use the information
which was cached in hpet_enable().
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.821728550@linutronix.de
2019-06-28 00:57:22 +02:00
Thomas Gleixner
e37f0881e9
x86/hpet: Introduce struct hpet_base and struct hpet_channel
...
Introduce new data structures to replace the ad hoc collection of separate
variables and pointers.
Replace the boot configuration store and restore as a first step.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.728456320@linutronix.de
2019-06-28 00:57:21 +02:00
Ingo Molnar
0b5c597de6
x86/hpet: Coding style cleanup
...
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.637420368@linutronix.de
2019-06-28 00:57:21 +02:00
Ingo Molnar
dfe36b573e
x86/hpet: Clean up comments
...
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.545653922@linutronix.de
2019-06-28 00:57:20 +02:00
Ingo Molnar
3fe50c34dc
x86/hpet: Make naming consistent
...
Use 'evt' for clockevents pointers and capitalize HPET in comments.
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.454138339@linutronix.de
2019-06-28 00:57:20 +02:00
Ingo Molnar
9bc9e1d4c1
x86/hpet: Remove not required includes
...
Signed-off-by: Ingo Molnar <mingo@kernel.org >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.348089155@linutronix.de
2019-06-28 00:57:20 +02:00
Thomas Gleixner
3535aa12f7
x86/hpet: Decapitalize and rename EVT_TO_HPET_DEV
...
It's a function not a macro and the upcoming changes use channel for the
individual hpet timer units to allow a step by step refactoring approach.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.241032433@linutronix.de
2019-06-28 00:57:19 +02:00
Thomas Gleixner
44b5be5733
x86/hpet: Simplify counter validation
...
There is no point to loop for 200k TSC cycles to check afterwards whether
the HPET counter is working. Read the counter inside of the loop and break
out when the counter value changed.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.149535103@linutronix.de
2019-06-28 00:57:19 +02:00
Thomas Gleixner
3222daf970
x86/hpet: Separate counter check out of clocksource register code
...
The init code checks whether the HPET counter works late in the init
function when the clocksource is registered. That should happen right with
the other sanity checks.
Split it into a separate validation function and move it to the other
sanity checks.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132435.058540608@linutronix.de
2019-06-28 00:57:18 +02:00
Thomas Gleixner
6bdec41a0c
x86/hpet: Shuffle code around for readability sake
...
It doesn't make sense to have init functions in the middle of other
code. Aside of that, further changes in that area create horrible diffs if
the code stays where it is.
No functional change
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.951733064@linutronix.de
2019-06-28 00:57:18 +02:00
Thomas Gleixner
8c273f2c81
x86/hpet: Move static and global variables to one place
...
Having static and global variables sprinkled all over the code is just
annoying to read. Move them all to the top of the file.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.860549134@linutronix.de
2019-06-28 00:57:17 +02:00
Thomas Gleixner
4ce78e2094
x86/hpet: Sanitize stub functions
...
Mark them inline and remove the pointless 'return;' statement.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.754768274@linutronix.de
2019-06-28 00:57:17 +02:00
Thomas Gleixner
433526cc05
x86/hpet: Mark init functions __init
...
They are only called from init code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.645357869@linutronix.de
2019-06-28 00:57:17 +02:00
Thomas Gleixner
eb8ec32c45
x86/hpet: Remove the unused hpet_msi_read() function
...
No users.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.553729327@linutronix.de
2019-06-28 00:57:16 +02:00
Thomas Gleixner
853acaf064
x86/hpet: Remove unused parameter from hpet_next_event()
...
The clockevent device pointer is not used in this function.
While at it, rename the misnamed 'timer' parameter to 'channel', which makes it
clear what this parameter means.
No functional change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.447880978@linutronix.de
2019-06-28 00:57:16 +02:00
Thomas Gleixner
7c4b0e0898
x86/hpet: Remove pointless x86-64 specific #include
...
Nothing requires asm/pgtable.h here anymore.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.339011567@linutronix.de
2019-06-28 00:57:16 +02:00
Thomas Gleixner
9b0b28de83
x86/hpet: Restructure init code
...
As a preparatory change for further consolidation, restructure the HPET
init code so it becomes more readable. Fix up misleading and stale comments
and rename variables so they actually make sense.
No intended functional change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.247842972@linutronix.de
2019-06-28 00:57:15 +02:00
Thomas Gleixner
46e5b64fde
x86/hpet: Replace printk(KERN...) with pr_...()
...
And sanitize the format strings while at it.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.140411339@linutronix.de
2019-06-28 00:57:15 +02:00
Thomas Gleixner
36b9017f02
x86/hpet: Simplify CPU online code
...
The indirection via work scheduled on the upcoming CPU was necessary with the
old hotplug code because the online callback was invoked on the control CPU
not on the upcoming CPU. The rework of the CPU hotplug core guarantees that
the online callbacks are invoked on the upcoming CPU.
Remove the now pointless work redirection.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Ingo Molnar <mingo@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com >
Cc: Ashok Raj <ashok.raj@intel.com >
Cc: Andi Kleen <andi.kleen@intel.com >
Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Ravi Shankar <ravi.v.shankar@intel.com >
Link: https://lkml.kernel.org/r/20190623132434.047254075@linutronix.de
2019-06-28 00:57:15 +02:00
Josh Poimboeuf
ae6a45a086
x86/unwind/orc: Fall back to using frame pointers for generated code
...
The ORC unwinder can't unwind through BPF JIT generated code because
there are no ORC entries associated with the code.
If an ORC entry isn't available, try to fall back to frame pointers. If
BPF and other generated code always do frame pointer setup (even with
CONFIG_FRAME_POINTERS=n) then this will allow ORC to unwind through most
generated code despite there being no corresponding ORC entries.
Fixes: d15d356887
("perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER")
Reported-by: Song Liu <songliubraving@fb.com >
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Kairui Song <kasong@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Borislav Petkov <bp@alien8.de >
Link: https://lkml.kernel.org/r/b6f69208ddff4343d56b7bfac1fc7cfcd62689e8.1561595111.git.jpoimboe@redhat.com
2019-06-28 00:11:21 +02:00
Dianzhang Chen
993773d11d
x86/tls: Fix possible spectre-v1 in do_get_thread_area()
...
The index to access the threads tls array is controlled by userspace
via syscall: sys_ptrace(), hence leading to a potential exploitation
of the Spectre variant 1 vulnerability.
The index can be controlled from:
ptrace -> arch_ptrace -> do_get_thread_area.
Fix this by sanitizing the user supplied index before using it to access
the p->thread.tls_array.
Signed-off-by: Dianzhang Chen <dianzhangchen0@gmail.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: bp@alien8.de
Cc: hpa@zytor.com
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/1561524630-3642-1-git-send-email-dianzhangchen0@gmail.com
2019-06-27 23:48:04 +02:00
Dianzhang Chen
31a2fbb390
x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
...
The index to access the threads ptrace_bps is controlled by userspace via
syscall: sys_ptrace(), hence leading to a potential exploitation of the
Spectre variant 1 vulnerability.
The index can be controlled from:
ptrace -> arch_ptrace -> ptrace_get_debugreg.
Fix this by sanitizing the user supplied index before using it access
thread->ptrace_bps.
Signed-off-by: Dianzhang Chen <dianzhangchen0@gmail.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: bp@alien8.de
Cc: hpa@zytor.com
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/1561476617-3759-1-git-send-email-dianzhangchen0@gmail.com
2019-06-27 23:48:04 +02:00
Zhenzhong Duan
d97ee99bf2
x86/jailhouse: Mark jailhouse_x2apic_available() as __init
...
.. as it is only called at early bootup stage.
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Jan Kiszka <jan.kiszka@siemens.com >
Cc: Borislav Petkov <bp@alien8.de >
Cc: jailhouse-dev@googlegroups.com
Link: https://lkml.kernel.org/r/1561539289-29180-1-git-send-email-zhenzhong.duan@oracle.com
2019-06-27 16:59:19 +02:00
Alejandro Jimenez
c1f7fec1eb
x86/speculation: Allow guests to use SSBD even if host does not
...
The bits set in x86_spec_ctrl_mask are used to calculate the guest's value
of SPEC_CTRL that is written to the MSR before VMENTRY, and control which
mitigations the guest can enable. In the case of SSBD, unless the host has
enabled SSBD always on mode (by passing "spec_store_bypass_disable=on" in
the kernel parameters), the SSBD bit is not set in the mask and the guest
can not properly enable the SSBD always on mitigation mode.
This has been confirmed by running the SSBD PoC on a guest using the SSBD
always on mitigation mode (booted with kernel parameter
"spec_store_bypass_disable=on"), and verifying that the guest is vulnerable
unless the host is also using SSBD always on mode. In addition, the guest
OS incorrectly reports the SSB vulnerability as mitigated.
Always set the SSBD bit in x86_spec_ctrl_mask when the host CPU supports
it, allowing the guest to use SSBD whether or not the host has chosen to
enable the mitigation in any of its modes.
Fixes: be6fcb5478
("x86/bugs: Rework spec_ctrl base and mask logic")
Signed-off-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Liam Merwick <liam.merwick@oracle.com >
Reviewed-by: Mark Kanda <mark.kanda@oracle.com >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Cc: bp@alien8.de
Cc: rkrcmar@redhat.com
Cc: kvm@vger.kernel.org
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/1560187210-11054-1-git-send-email-alejandro.j.jimenez@oracle.com
2019-06-26 16:38:36 +02:00
Tiezhu Yang
53b7607382
x86/kexec: Make variable static and config dependent
...
The following sparse warning is emitted:
arch/x86/kernel/crash.c:59:15:
warning: symbol 'crash_zero_bytes' was not declared. Should it be static?
The variable is only used in this compilation unit, but it is also only
used when CONFIG_KEXEC_FILE is enabled. Just making it static would result
in a 'defined but not used' warning for CONFIG_KEXEC_FILE=n.
Make it static and move it into the existing CONFIG_KEXEC_FILE section.
[ tglx: Massaged changelog and moved it into the existing ifdef ]
Fixes: dd5f726076
("kexec: support for kexec on panic using new system call")
Signed-off-by: Tiezhu Yang <kernelpatch@126.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Dave Young <dyoung@redhat.com >
Cc: bp@alien8.de
Cc: hpa@zytor.com
Cc: kexec@lists.infradead.org
Cc: vgoyal@redhat.com
Cc: Vivek Goyal <vgoyal@redhat.com >
Link: https://lkml.kernel.org/r/117ef0c6.3d30.16b87c9cfbf.Coremail.kernelpatch@126.com
2019-06-26 16:02:45 +02:00
Kirill A. Shutemov
c1887159eb
x86/boot/64: Add missing fixup_pointer() for next_early_pgt access
...
__startup_64() uses fixup_pointer() to access global variables in a
position-independent fashion. Access to next_early_pgt was wrapped into the
helper, but one instance in the 5-level paging branch was missed.
GCC generates a R_X86_64_PC32 PC-relative relocation for the access which
doesn't trigger the issue, but Clang emmits a R_X86_64_32S which leads to
an invalid memory access and system reboot.
Fixes: 187e91fe5e
("x86/boot/64/clang: Use fixup_pointer() to access 'next_early_pgt'")
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Borislav Petkov <bp@alien8.de >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Alexander Potapenko <glider@google.com >
Link: https://lkml.kernel.org/r/20190620112422.29264-1-kirill.shutemov@linux.intel.com
2019-06-26 07:25:09 +02:00
Kirill A. Shutemov
81c7ed296d
x86/boot/64: Fix crash if kernel image crosses page table boundary
...
A kernel which boots in 5-level paging mode crashes in a small percentage
of cases if KASLR is enabled.
This issue was tracked down to the case when the kernel image unpacks in a
way that it crosses an 1G boundary. The crash is caused by an overrun of
the PMD page table in __startup_64() and corruption of P4D page table
allocated next to it. This particular issue is not visible with 4-level
paging as P4D page tables are not used.
But the P4D and the PUD calculation have similar problems.
The PMD index calculation is wrong due to operator precedence, which fails
to confine the PMDs in the PMD array on wrap around.
The P4D calculation for 5-level paging and the PUD calculation calculate
the first index correctly, but then blindly increment it which causes the
same issue when a kernel image is located across a 512G and for 5-level
paging across a 46T boundary.
This wrap around mishandling was introduced when these parts moved from
assembly to C.
Restore it to the correct behaviour.
Fixes: c88d71508e
("x86/boot/64: Rewrite startup_64() in C")
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Borislav Petkov <bp@alien8.de >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: https://lkml.kernel.org/r/20190620112345.28833-1-kirill.shutemov@linux.intel.com
2019-06-26 07:25:09 +02:00
Peter Zijlstra
7457c0da02
x86/alternatives: Add int3_emulate_call() selftest
...
Given that the entry_*.S changes for this functionality are somewhat
tricky, make sure the paths are tested every boot, instead of on the
rare occasion when we trip an INT3 while rewriting text.
Requested-by: Andy Lutomirski <luto@kernel.org >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Andy Lutomirski <luto@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-06-25 10:23:50 +02:00
Peter Zijlstra
faeedb0679
x86/stackframe/32: Allow int3_emulate_push()
...
Now that x86_32 has an unconditional gap on the kernel stack frame,
the int3_emulate_push() thing will work without further changes.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-06-25 10:23:49 +02:00
Peter Zijlstra
3c88c692c2
x86/stackframe/32: Provide consistent pt_regs
...
Currently pt_regs on x86_32 has an oddity in that kernel regs
(!user_mode(regs)) are short two entries (esp/ss). This means that any
code trying to use them (typically: regs->sp) needs to jump through
some unfortunate hoops.
Change the entry code to fix this up and create a full pt_regs frame.
This then simplifies various trampolines in ftrace and kprobes, the
stack unwinder, ptrace, kdump and kgdb.
Much thanks to Josh for help with the cleanups!
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-06-25 10:23:47 +02:00
Peter Zijlstra
ea1ed38dba
x86/stackframe, x86/ftrace: Add pt_regs frame annotations
...
When CONFIG_FRAME_POINTER, we should mark pt_regs frames.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-06-25 10:23:47 +02:00
Peter Zijlstra
4201311dae
x86/stackframe, x86/kprobes: Fix frame pointer annotations
...
The kprobe trampolines have a FRAME_POINTER annotation that makes no
sense. It marks the frame in the middle of pt_regs, at the place of
saving BP.
Change it to mark the pt_regs frame as per the ENCODE_FRAME_POINTER
from the respective entry_*.S.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-06-25 10:23:46 +02:00
Ingo Molnar
c21ac93288
Merge tag 'v5.2-rc6' into x86/asm, to refresh the branch
...
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-06-25 10:23:22 +02:00
Masahiro Yamada
87b61864d7
x86/build: Remove redundant 'clean-files += capflags.c'
...
All the files added to 'targets' are cleaned. Adding the same file to both
'targets' and 'clean-files' is redundant.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: https://lkml.kernel.org/r/20190625073311.18303-1-yamada.masahiro@socionext.com
2019-06-25 09:52:06 +02:00
Masahiro Yamada
bc53d3d777
x86/build: Add 'set -e' to mkcapflags.sh to delete broken capflags.c
...
Without 'set -e', shell scripts continue running even after any
error occurs. The missed 'set -e' is a typical bug in shell scripting.
For example, when a disk space shortage occurs while this script is
running, it actually ends up with generating a truncated capflags.c.
Yet, mkcapflags.sh continues running and exits with 0. So, the build
system assumes it has succeeded.
It will not be re-generated in the next invocation of Make since its
timestamp is newer than that of any of the source files.
Add 'set -e' so that any error in this script is caught and propagated
to the build system.
Since 9c2af1c737
("kbuild: add .DELETE_ON_ERROR special target"),
make automatically deletes the target on any failure. So, the broken
capflags.c will be deleted automatically.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Borislav Petkov <bp@alien8.de >
Link: https://lkml.kernel.org/r/20190625072622.17679-1-yamada.masahiro@socionext.com
2019-06-25 09:52:05 +02:00
Reinette Chatre
2ef085bd11
x86/resctrl: Cleanup cbm_ensure_valid()
...
A recent fix to the cbm_ensure_valid() function left some coding style
issues that are now addressed:
- Return a value instead of using a function parameter as input and
output
- Use if (!val) instead of if (val == 0)
- Follow reverse fir tree ordering of variable declarations
Suggested-by: Borislav Petkov <bp@alien8.de >
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: fenghua.yu@intel.com
Cc: tony.luck@intel.com
Cc: hpa@zytor.com
Link: https://lkml.kernel.org/r/15ba03856f1d944468ee6f44e3fd7aa548293ede.1561408280.git.reinette.chatre@intel.com
2019-06-25 09:26:11 +02:00
Thomas Gleixner
4fedcde702
Merge branch 'x86/urgent' into x86/cache
...
Pick up pending upstream fixes to meet dependencies
2019-06-25 09:24:35 +02:00