Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
96a40c3
btrfs: tree-checker: do not error out if extent ref hash doesn't match
josefbacik Jun 4, 2021
aaa41b3
net: usb: cdc_ncm: don't spew notifications
grundlerchromium Jan 20, 2021
e9487a4
ALSA: usb: update old-style static const declaration
plbossart Jan 11, 2020
0338fa4
nl80211: validate key indexes for cfg80211_registered_device
thazhemadam Jun 3, 2021
90870b4
hwmon: (dell-smm-hwmon) Fix index values
Wer-Wolf May 13, 2021
2986fdd
netfilter: conntrack: unregister ipv4 sockopts on error unwind
May 4, 2021
bc8f664
efi: Allow EFI_MEMORY_XP and EFI_MEMORY_RO both to be cleared
hkallweit Apr 30, 2021
a4ed602
efi: cper: fix snprintf() use in cper_dimm_err_location()
Villemoes Apr 21, 2021
5da371c
vfio/pci: Fix error return code in vfio_ecap_init()
May 15, 2021
8709739
vfio/pci: zap_vma_ptes() needs MMU
rddunlap May 15, 2021
60dcad1
samples: vfio-mdev: fix error handing in mdpy_fb_probe()
May 20, 2021
087b803
vfio/platform: fix module_put call in error flow
mgurtovoy May 18, 2021
c8a95cb
ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service
May 24, 2021
279e213
HID: pidff: fix error return code in hid_pidff_init()
May 8, 2021
385e186
HID: i2c-hid: fix format string mismatch
arndb May 14, 2021
8e86789
net/sched: act_ct: Fix ct template allocation for zone 0
Awik84 May 26, 2021
14c0381
ACPICA: Clean up context mutex during object deletion
May 21, 2021
da8d31e
netfilter: nft_ct: skip expectations for confirmed conntrack
ummakynes May 27, 2021
66f3ab0
netfilter: nfnetlink_cthelper: hit EBUSY on updates if size mismatches
ummakynes May 28, 2021
4ca8aa3
ieee802154: fix error return code in ieee802154_add_iface()
May 8, 2021
b5cc02c
ieee802154: fix error return code in ieee802154_llsec_getparams()
May 19, 2021
112533f
ixgbevf: add correct exception tracing for XDP
magnus-karlsson May 10, 2021
7ba7fa7
ipv6: Fix KASAN: slab-out-of-bounds Read in fib6_nh_flush_exceptions
xli98 Jun 3, 2021
3583ab2
ice: write register with correct offset
mawilli1 Oct 9, 2019
bafd0a7
ice: Fix VFR issues for AVF drivers that expect ATQLEN cleared
bcreeley13 Feb 26, 2021
de37510
ice: Allow all LLDP packets from PF to Tx
dmertman May 5, 2021
06f667d
i2c: qcom-geni: Add shutdown callback for i2c
May 25, 2021
adfd635
i40e: optimize for XDP_REDIRECT in xsk path
magnus-karlsson Dec 2, 2020
3616dd0
i40e: add correct exception tracing for XDP
magnus-karlsson May 10, 2021
f78c28a
arm64: dts: ls1028a: fix memory node
mwalle Apr 8, 2021
3a55911
arm64: dts: zii-ultra: fix 12V_MAIN voltage
lynxeye-dev May 7, 2021
55fa22d
ARM: dts: imx7d-meerkat96: Fix the 'tuning-step' property
fabioestevam May 20, 2021
5b97dd9
ARM: dts: imx7d-pico: Fix the 'tuning-step' property
fabioestevam May 20, 2021
22ea29c
ARM: dts: imx: emcon-avari: Fix nxp,pca8574 #gpio-cells
geertu May 21, 2021
0fa160a
bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act
tmlind May 25, 2021
9ac67fd
tipc: add extack messages for bearer/media failure
Mar 25, 2021
28efacc
tipc: fix unique bearer names sanity check
Apr 1, 2021
8d3d0ac
Bluetooth: fix the erroneous flush_work() order
f0rm2l1n May 25, 2021
b6f9755
Bluetooth: use correct lock to prevent UAF of hdev object
f0rm2l1n May 30, 2021
64824f6
net: caif: added cfserl_release function
pskrgag Jun 3, 2021
c97cdb7
net: caif: add proper error handling
pskrgag Jun 3, 2021
f52f4fd
net: caif: fix memory leak in caif_device_notify
pskrgag Jun 3, 2021
4d94f53
net: caif: fix memory leak in cfusbl_device_notify
pskrgag Jun 3, 2021
142d5ca
HID: i2c-hid: Skip ELAN power-on command after reset
ElanDriver Apr 13, 2021
368c5d4
HID: magicmouse: fix NULL-deref on disconnect
jhovold May 17, 2021
d65bc96
HID: multitouch: require Finger field to mark Win8 reports as MT
nabijaczleweli Mar 8, 2021
0afd601
ALSA: timer: Fix master timer notification
tiwai Jun 2, 2021
d349ff0
ALSA: hda: Fix for mute key LED for HP Pavilion 15-CK0xx
carmarpe May 31, 2021
2cac47e
ARM: dts: imx6dl-yapp4: Fix RGMII connection to QCA8334 switch
zandar Apr 13, 2021
52fc8f0
ARM: dts: imx6q-dhcom: Add PU,VDD1P1,VDD2P5 regulators
Apr 26, 2021
920697b
ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed
May 6, 2021
fe4e0bd
usb: dwc2: Fix build in periphal-only mode
pelwell Jun 8, 2021
2cd6eed
pid: take a reference when initializing `cad_pid`
mrutland-arm Jun 5, 2021
cc2edb9
ocfs2: fix data corruption by fallocate
biger410 Jun 5, 2021
5d4c4b0
nfc: fix NULL ptr dereference in llcp_sock_getname() after failed con…
krzk May 31, 2021
24c06e5
drm/amdgpu: Don't query CE and UE errors
May 12, 2021
b0c0d8b
drm/amdgpu: make sure we unpin the UVD BO
May 28, 2021
12ca655
x86/apic: Mark _all_ legacy interrupts when IO/APIC is missing
KAGA-KOKO May 25, 2021
295859a
btrfs: mark ordered extent and inode with error if we fail to finish
josefbacik May 19, 2021
0fd9149
btrfs: fix error handling in btrfs_del_csums
josefbacik May 19, 2021
dad974d
btrfs: return errors from btrfs_del_csums in cleanup_ref_head
josefbacik May 19, 2021
6d4da27
btrfs: fixup error handling in fixup_inode_link_counts
josefbacik May 19, 2021
14fd3da
mm, hugetlb: fix simple resv_huge_pages underflow on UFFDIO_COPY
mina Jun 5, 2021
f192885
bnxt_en: Remove the setting of dev_port.
Jan 27, 2020
fd8e06a
mm: add thp_order
Jun 7, 2021
03a390d
XArray: add xa_get_order
Jun 7, 2021
0a890e2
XArray: add xas_split
Jun 7, 2021
3b7f3ca
mm/filemap: fix storing to a THP shadow entry
Jun 7, 2021
0450af0
btrfs: fix unmountable seed device after fstrim
asj Apr 30, 2021
2295e87
KVM: SVM: Truncate GPR value for DR and CR accesses in !64-bit mode
sean-jc Apr 22, 2021
f82030a
KVM: arm64: Fix debug register indexing
May 14, 2021
7620a66
x86/kvm: Teardown PV features on boot CPU as well
vittyvk May 31, 2021
9084fe1
x86/kvm: Disable kvmclock on all CPUs on shutdown
vittyvk May 31, 2021
97e814e
x86/kvm: Disable all PV features on crash
vittyvk May 31, 2021
defcc2b
lib/lz4: explicitly support in-place decompression
Dec 16, 2020
bdc17b2
xen-pciback: redo VF placement in the virtual topology
jbeulich May 18, 2021
8e0bb29
i2c: qcom-geni: Suspend and resume the bus during SYSTEM_SLEEP_PM ops
May 25, 2021
d99029e
neighbour: allow NUD_NOARP entries to be forced GCed
dsahern Jun 7, 2021
3909e23
Linux 5.4.125
gregkh Jun 10, 2021
681f72a
Merge tag 'v5.4.125' into 5.4.x+fslc
zandrey Jun 10, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions Documentation/core-api/xarray.rst
Original file line number Diff line number Diff line change
Expand Up @@ -461,13 +461,15 @@ or iterations will move the index to the first index in the range.
Each entry will only be returned once, no matter how many indices it
occupies.

Using xas_next() or xas_prev() with a multi-index xa_state
is not supported. Using either of these functions on a multi-index entry
will reveal sibling entries; these should be skipped over by the caller.

Storing ``NULL`` into any index of a multi-index entry will set the entry
at every index to ``NULL`` and dissolve the tie. Splitting a multi-index
entry into entries occupying smaller ranges is not yet supported.
Using xas_next() or xas_prev() with a multi-index xa_state is not
supported. Using either of these functions on a multi-index entry will
reveal sibling entries; these should be skipped over by the caller.

Storing ``NULL`` into any index of a multi-index entry will set the
entry at every index to ``NULL`` and dissolve the tie. A multi-index
entry can be split into entries occupying smaller ranges by calling
xas_split_alloc() without the xa_lock held, followed by taking the lock
and calling xas_split().

Functions and structures
========================
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 124
SUBLEVEL = 125
EXTRAVERSION =
NAME = Kleptomaniac Octopus

Expand Down
6 changes: 5 additions & 1 deletion arch/arm/boot/dts/imx6dl-yapp4-common.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,13 @@
phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
phy-reset-duration = <20>;
phy-supply = <&sw2_reg>;
phy-handle = <&ethphy0>;
status = "okay";

fixed-link {
speed = <1000>;
full-duplex;
};

mdio {
#address-cells = <1>;
#size-cells = <0>;
Expand Down
12 changes: 12 additions & 0 deletions arch/arm/boot/dts/imx6q-dhcom-som.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,18 @@
vin-supply = <&sw1_reg>;
};

&reg_pu {
vin-supply = <&sw1_reg>;
};

&reg_vdd1p1 {
vin-supply = <&sw2_reg>;
};

&reg_vdd2p5 {
vin-supply = <&sw2_reg>;
};

&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/imx6qdl-emcon-avari.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@
compatible = "nxp,pca8574";
reg = <0x3a>;
gpio-controller;
#gpio-cells = <1>;
#gpio-cells = <2>;
};
};

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/imx7d-meerkat96.dts
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1>;
keep-power-in-suspend;
tuning-step = <2>;
fsl,tuning-step = <2>;
vmmc-supply = <&reg_3p3v>;
no-1-8-v;
broken-cd;
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/dts/imx7d-pico.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
bus-width = <4>;
tuning-step = <2>;
fsl,tuning-step = <2>;
vmmc-supply = <&reg_3p3v>;
wakeup-source;
no-1-8-v;
Expand Down
4 changes: 2 additions & 2 deletions arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@
ddr: memory-controller@1080000 {
compatible = "fsl,qoriq-memory-controller";
reg = <0x0 0x1080000 0x0 0x1000>;
interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
big-endian;
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
little-endian;
};

dcfg: syscon@1e00000 {
Expand Down
4 changes: 2 additions & 2 deletions arch/arm64/boot/dts/freescale/imx8mq-zii-ultra.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@
reg_12p0_main: regulator-12p0-main {
compatible = "regulator-fixed";
regulator-name = "12V_MAIN";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
regulator-always-on;
};

Expand Down
42 changes: 21 additions & 21 deletions arch/arm64/kvm/sys_regs.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,22 +432,22 @@ static bool trap_bvr(struct kvm_vcpu *vcpu,
struct sys_reg_params *p,
const struct sys_reg_desc *rd)
{
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg];
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->CRm];

if (p->is_write)
reg_to_dbg(vcpu, p, dbg_reg);
else
dbg_to_reg(vcpu, p, dbg_reg);

trace_trap_reg(__func__, rd->reg, p->is_write, *dbg_reg);
trace_trap_reg(__func__, rd->CRm, p->is_write, *dbg_reg);

return true;
}

static int set_bvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
const struct kvm_one_reg *reg, void __user *uaddr)
{
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg];
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->CRm];

if (copy_from_user(r, uaddr, KVM_REG_SIZE(reg->id)) != 0)
return -EFAULT;
Expand All @@ -457,7 +457,7 @@ static int set_bvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
static int get_bvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
const struct kvm_one_reg *reg, void __user *uaddr)
{
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg];
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bvr[rd->CRm];

if (copy_to_user(uaddr, r, KVM_REG_SIZE(reg->id)) != 0)
return -EFAULT;
Expand All @@ -467,29 +467,29 @@ static int get_bvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
static void reset_bvr(struct kvm_vcpu *vcpu,
const struct sys_reg_desc *rd)
{
vcpu->arch.vcpu_debug_state.dbg_bvr[rd->reg] = rd->val;
vcpu->arch.vcpu_debug_state.dbg_bvr[rd->CRm] = rd->val;
}

static bool trap_bcr(struct kvm_vcpu *vcpu,
struct sys_reg_params *p,
const struct sys_reg_desc *rd)
{
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg];
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->CRm];

if (p->is_write)
reg_to_dbg(vcpu, p, dbg_reg);
else
dbg_to_reg(vcpu, p, dbg_reg);

trace_trap_reg(__func__, rd->reg, p->is_write, *dbg_reg);
trace_trap_reg(__func__, rd->CRm, p->is_write, *dbg_reg);

return true;
}

static int set_bcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
const struct kvm_one_reg *reg, void __user *uaddr)
{
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg];
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->CRm];

if (copy_from_user(r, uaddr, KVM_REG_SIZE(reg->id)) != 0)
return -EFAULT;
Expand All @@ -500,7 +500,7 @@ static int set_bcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
static int get_bcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
const struct kvm_one_reg *reg, void __user *uaddr)
{
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg];
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_bcr[rd->CRm];

if (copy_to_user(uaddr, r, KVM_REG_SIZE(reg->id)) != 0)
return -EFAULT;
Expand All @@ -510,30 +510,30 @@ static int get_bcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
static void reset_bcr(struct kvm_vcpu *vcpu,
const struct sys_reg_desc *rd)
{
vcpu->arch.vcpu_debug_state.dbg_bcr[rd->reg] = rd->val;
vcpu->arch.vcpu_debug_state.dbg_bcr[rd->CRm] = rd->val;
}

static bool trap_wvr(struct kvm_vcpu *vcpu,
struct sys_reg_params *p,
const struct sys_reg_desc *rd)
{
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg];
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm];

if (p->is_write)
reg_to_dbg(vcpu, p, dbg_reg);
else
dbg_to_reg(vcpu, p, dbg_reg);

trace_trap_reg(__func__, rd->reg, p->is_write,
vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg]);
trace_trap_reg(__func__, rd->CRm, p->is_write,
vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm]);

return true;
}

static int set_wvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
const struct kvm_one_reg *reg, void __user *uaddr)
{
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg];
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm];

if (copy_from_user(r, uaddr, KVM_REG_SIZE(reg->id)) != 0)
return -EFAULT;
Expand All @@ -543,7 +543,7 @@ static int set_wvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
static int get_wvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
const struct kvm_one_reg *reg, void __user *uaddr)
{
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg];
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm];

if (copy_to_user(uaddr, r, KVM_REG_SIZE(reg->id)) != 0)
return -EFAULT;
Expand All @@ -553,29 +553,29 @@ static int get_wvr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
static void reset_wvr(struct kvm_vcpu *vcpu,
const struct sys_reg_desc *rd)
{
vcpu->arch.vcpu_debug_state.dbg_wvr[rd->reg] = rd->val;
vcpu->arch.vcpu_debug_state.dbg_wvr[rd->CRm] = rd->val;
}

static bool trap_wcr(struct kvm_vcpu *vcpu,
struct sys_reg_params *p,
const struct sys_reg_desc *rd)
{
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg];
u64 *dbg_reg = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->CRm];

if (p->is_write)
reg_to_dbg(vcpu, p, dbg_reg);
else
dbg_to_reg(vcpu, p, dbg_reg);

trace_trap_reg(__func__, rd->reg, p->is_write, *dbg_reg);
trace_trap_reg(__func__, rd->CRm, p->is_write, *dbg_reg);

return true;
}

static int set_wcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
const struct kvm_one_reg *reg, void __user *uaddr)
{
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg];
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->CRm];

if (copy_from_user(r, uaddr, KVM_REG_SIZE(reg->id)) != 0)
return -EFAULT;
Expand All @@ -585,7 +585,7 @@ static int set_wcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
static int get_wcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
const struct kvm_one_reg *reg, void __user *uaddr)
{
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg];
__u64 *r = &vcpu->arch.vcpu_debug_state.dbg_wcr[rd->CRm];

if (copy_to_user(uaddr, r, KVM_REG_SIZE(reg->id)) != 0)
return -EFAULT;
Expand All @@ -595,7 +595,7 @@ static int get_wcr(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd,
static void reset_wcr(struct kvm_vcpu *vcpu,
const struct sys_reg_desc *rd)
{
vcpu->arch.vcpu_debug_state.dbg_wcr[rd->reg] = rd->val;
vcpu->arch.vcpu_debug_state.dbg_wcr[rd->CRm] = rd->val;
}

static void reset_amair_el1(struct kvm_vcpu *vcpu, const struct sys_reg_desc *r)
Expand Down
1 change: 1 addition & 0 deletions arch/x86/include/asm/apic.h
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ static inline int apic_is_clustered_box(void)
extern int setup_APIC_eilvt(u8 lvt_off, u8 vector, u8 msg_type, u8 mask);
extern void lapic_assign_system_vectors(void);
extern void lapic_assign_legacy_vector(unsigned int isairq, bool replace);
extern void lapic_update_legacy_vectors(void);
extern void lapic_online(void);
extern void lapic_offline(void);
extern bool apic_needs_pit(void);
Expand Down
10 changes: 2 additions & 8 deletions arch/x86/include/asm/kvm_para.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
#include <asm/alternative.h>
#include <uapi/asm/kvm_para.h>

extern void kvmclock_init(void);

#ifdef CONFIG_KVM_GUEST
bool kvm_check_and_clear_guest_paused(void);
#else
Expand Down Expand Up @@ -85,13 +83,14 @@ static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
}

#ifdef CONFIG_KVM_GUEST
void kvmclock_init(void);
void kvmclock_disable(void);
bool kvm_para_available(void);
unsigned int kvm_arch_para_features(void);
unsigned int kvm_arch_para_hints(void);
void kvm_async_pf_task_wait(u32 token, int interrupt_kernel);
void kvm_async_pf_task_wake(u32 token);
u32 kvm_read_and_reset_pf_reason(void);
extern void kvm_disable_steal_time(void);
void do_async_page_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address);

#ifdef CONFIG_PARAVIRT_SPINLOCKS
Expand Down Expand Up @@ -125,11 +124,6 @@ static inline u32 kvm_read_and_reset_pf_reason(void)
{
return 0;
}

static inline void kvm_disable_steal_time(void)
{
return;
}
#endif

#endif /* _ASM_X86_KVM_PARA_H */
1 change: 1 addition & 0 deletions arch/x86/kernel/apic/apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -2579,6 +2579,7 @@ static void __init apic_bsp_setup(bool upmode)
end_local_APIC_setup();
irq_remap_enable_fault_handling();
setup_IO_APIC();
lapic_update_legacy_vectors();
}

#ifdef CONFIG_UP_LATE_INIT
Expand Down
20 changes: 20 additions & 0 deletions arch/x86/kernel/apic/vector.c
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,26 @@ void lapic_assign_legacy_vector(unsigned int irq, bool replace)
irq_matrix_assign_system(vector_matrix, ISA_IRQ_VECTOR(irq), replace);
}

void __init lapic_update_legacy_vectors(void)
{
unsigned int i;

if (IS_ENABLED(CONFIG_X86_IO_APIC) && nr_ioapics > 0)
return;

/*
* If the IO/APIC is disabled via config, kernel command line or
* lack of enumeration then all legacy interrupts are routed
* through the PIC. Make sure that they are marked as legacy
* vectors. PIC_CASCADE_IRQ has already been marked in
* lapic_assign_system_vectors().
*/
for (i = 0; i < nr_legacy_irqs(); i++) {
if (i != PIC_CASCADE_IR)
lapic_assign_legacy_vector(i, true);
}
}

void __init lapic_assign_system_vectors(void)
{
unsigned int i, vector = 0;
Expand Down
Loading