Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
d0532ed
iio: adc: ti-ads7950: Ensure CS is deasserted after reading channels
Jul 9, 2021
45de224
iio: adis: set GPIO reset pin direction
Detegr Jul 8, 2021
632279e
iio: humidity: hdc100x: Add margin to the conversion time
ChrisLesiak Jun 14, 2021
0c9adae
iio: adc: Fix incorrect exit of for-loop
Jul 30, 2021
c419c4c
ASoC: amd: Fix reference to PCM buffer address
tiwai Jul 31, 2021
209eb62
ASoC: xilinx: Fix reference to PCM buffer address
tiwai Jul 28, 2021
7e5a7fa
ASoC: uniphier: Fix reference to PCM buffer address
tiwai Jul 28, 2021
261613e
ASoC: tlv320aic31xx: Fix jack detection after suspend
broonie Jul 23, 2021
b8bceac
ASoC: intel: atom: Fix reference to PCM buffer address
tiwai Jul 28, 2021
d1398e3
i2c: dev: zero out array used for i2c reads from userspace
gregkh Jul 29, 2021
3db5cb9
cifs: create sd context must be a multiple of 8
sprasad-microsoft Aug 4, 2021
5491698
scsi: lpfc: Move initialization of phba->poll_list earlier to avoid c…
Aug 9, 2021
561d131
seccomp: Fix setting loaded filter count during TSYNC
hckuo Mar 4, 2021
4716a21
net: ethernet: ti: cpsw: fix min eth packet size for non-switch use-c…
grygoriyS Aug 5, 2021
ca6dea4
ARC: fp: set FPU_STATUS.FWE to enable FPU_STATUS update on context sw…
vineetgarc Jul 9, 2021
f3fcf9d
ceph: reduce contention in ceph_check_delayed_caps()
Jul 6, 2021
366de90
ACPI: NFIT: Fix support for virtual SPA ranges
djbw Aug 11, 2021
c2351e5
libnvdimm/region: Fix label activation vs errors
djbw Jul 30, 2021
ae311a7
drm/amd/display: Remove invalid assert for ODM + MPC case
Jul 26, 2021
bd80d11
drm/amd/display: use GFP_ATOMIC in amdgpu_dm_irq_schedule_work
Jul 30, 2021
95de359
drm/amdgpu: don't enable baco on boco platforms in runpm
alexdeucher Aug 2, 2021
528f17c
ieee802154: hwsim: fix GPF in hwsim_set_edge_lqi
mudongliang Jul 5, 2021
27188a9
ieee802154: hwsim: fix GPF in hwsim_new_edge_nl
mudongliang Jul 7, 2021
a21963c
pinctrl: mediatek: Fix fallback behavior for bias_set_combo
hsinyi527 Jul 1, 2021
5769396
ASoC: cs42l42: Correct definition of ADC Volume control
rfvirgil Jul 29, 2021
0e47f99
ASoC: cs42l42: Don't allow SND_SOC_DAIFMT_LEFT_J
rfvirgil Jul 29, 2021
2386a8c
ASoC: SOF: Intel: hda-ipc: fix reply size checking
lyakh Aug 2, 2021
b268f9f
ASoC: cs42l42: Fix inversion of ADC Notch Switch control
rfvirgil Aug 3, 2021
aa6b17b
ASoC: cs42l42: Remove duplicate control for WNF filter frequency
rfvirgil Aug 3, 2021
be49d54
netfilter: nf_conntrack_bridge: Fix memory leak when error
Jul 29, 2021
750503a
pinctrl: tigerlake: Fix GPIO mapping for newer version of software
andy-shev Aug 4, 2021
20a8031
ASoC: cs42l42: Fix LRCLK frame start edge
rfvirgil Aug 5, 2021
784320e
net: dsa: mt7530: add the missing RxUnicast MIB counter
LGA1150 Aug 6, 2021
53ebbfd
net: mvvp2: fix short frame size on s390
johnhubbard Aug 6, 2021
a3e9a3e
platform/x86: pcengines-apuv2: Add missing terminating entries to gpi…
jwrdegoede Aug 6, 2021
1960c3a
libbpf: Fix probe for BPF_PROG_TYPE_CGROUP_SOCKOPT
rgo3 Jul 28, 2021
e95620c
bpf: Fix integer overflow involving bucket_size
ty60 Aug 6, 2021
046579c
net: phy: micrel: Fix link detection on ksz87xx switch"
bwh-mind Aug 7, 2021
51f4965
ppp: Fix generating ifname when empty IFLA_IFNAME is specified
pali Aug 7, 2021
f15f771
net/smc: fix wait on already cleared link
karstengr Aug 9, 2021
059238c
net: sched: act_mirred: Reset ct info when mirror/redirect skb
liuhangbin Aug 9, 2021
bae5b52
ice: Prevent probing virtual functions
refactorman Jul 28, 2021
a6192ba
ice: don't remove netdev->dev_addr from uc sync list
bcreeley13 Aug 6, 2021
b3f0b17
iavf: Set RSS LUT and key in reset handle path
Jun 4, 2021
30b1fc4
psample: Add a fwd declaration for skbuff
roidayan Aug 8, 2021
00a0c11
bareudp: Fix invalid read beyond skb's linear data
Aug 6, 2021
303ba01
net/mlx5: Synchronize correct IRQ when destroying CQ
shayshyi Apr 11, 2021
6e18864
net/mlx5: Fix return value from tracer initialization
ayalevin Jun 8, 2021
558092b
drm/meson: fix colour distortion from HDR set during vendor u-boot
chewitt Aug 6, 2021
ccc1fe8
net: dsa: microchip: Fix ksz_read64()
bwh-mind Aug 9, 2021
dbfaf7a
net: dsa: microchip: ksz8795: Fix VLAN filtering
bwh-mind Aug 9, 2021
69b1316
net: Fix memory leak in ieee802154_raw_deliver
Aug 5, 2021
24e1b7d
net: igmp: fix data-race in igmp_ifc_timer_expire()
edumazet Aug 10, 2021
f7720b3
net: dsa: lan9303: fix broken backpressure in .port_fdb_dump
vladimiroltean Aug 10, 2021
56cc340
net: dsa: lantiq: fix broken backpressure in .port_fdb_dump
vladimiroltean Aug 10, 2021
1cad01a
net: dsa: sja1105: fix broken backpressure in .port_fdb_dump
vladimiroltean Aug 10, 2021
e3b949b
net: bridge: validate the NUD_PERMANENT bit when adding an extern_lea…
vladimiroltean Aug 1, 2021
f333a5c
net: bridge: fix flags interpretation for extern learn fdb entries
Aug 10, 2021
4c2af90
net: bridge: fix memleak in br_add_if()
Aug 9, 2021
8976606
net: linkwatch: fix failure to restore device state across suspend/re…
wtarreau Aug 9, 2021
696afe2
tcp_bbr: fix u32 wrap bug in round logic if bbr_init() called after 2…
nealcardwell Aug 11, 2021
4344440
net: igmp: increase size of mr_ifc_count
edumazet Aug 11, 2021
65395b0
drm/i915: Only access SFC_DONE when media domain is not fused off
mattrope Aug 6, 2021
dff830e
xen/events: Fix race in set_evtchn_to_irq
heynemax Aug 12, 2021
f5cefe9
vsock/virtio: avoid potential deadlock when vsock device remove
Aug 12, 2021
e0ee8d9
nbd: Aovid double completion of a request
YongjiXie Aug 13, 2021
afcb84e
arm64: efi: kaslr: Fix occasional random alloc (and boot) failure
ozbenh Jul 20, 2021
feb4a01
efi/libstub: arm64: Force Image reallocation if BSS was not reserved
ardbiesheuvel Jul 26, 2021
015e2c9
efi/libstub: arm64: Relax 2M alignment again for relocatable kernels
ardbiesheuvel Jul 22, 2021
4acc0d9
powerpc/kprobes: Fix kprobe Oops happens in booke
Aug 9, 2021
2a28b52
x86/tools: Fix objdump version check again
rddunlap Jul 31, 2021
4e52a4f
genirq: Provide IRQCHIP_AFFINITY_PRE_STARTUP
KAGA-KOKO Jul 29, 2021
19fb5da
x86/msi: Force affinity setup before startup
KAGA-KOKO Jul 29, 2021
25216ed
x86/ioapic: Force affinity setup before startup
KAGA-KOKO Jul 29, 2021
f0736be
x86/resctrl: Fix default monitoring groups reporting
babumoger Aug 2, 2021
3557541
genirq/msi: Ensure deactivation on teardown
May 18, 2021
2d2c668
genirq/timings: Prevent potential array overflow in __irq_timings_sto…
Apr 25, 2021
7e90e81
PCI/MSI: Enable and mask MSI-X early
KAGA-KOKO Jul 29, 2021
aa8092c
PCI/MSI: Mask all unused MSI-X entries
KAGA-KOKO Jul 29, 2021
0b2509d
PCI/MSI: Enforce that MSI-X table entry is masked for update
KAGA-KOKO Jul 29, 2021
042e03c
PCI/MSI: Enforce MSI[X] entry updates to be visible
KAGA-KOKO Jul 29, 2021
e42fb8e
PCI/MSI: Do not set invalid bits in MSI mask
KAGA-KOKO Jul 29, 2021
9233687
PCI/MSI: Correct misleading comments
KAGA-KOKO Jul 29, 2021
724d0a9
PCI/MSI: Use msi_mask_irq() in pci_msi_shutdown()
KAGA-KOKO Jul 29, 2021
312730c
PCI/MSI: Protect msi_desc::masked for multi-MSI
KAGA-KOKO Jul 29, 2021
fc7da43
powerpc/smp: Fix OOPS in topology_init()
chleroy Aug 4, 2021
4a948c5
efi/libstub: arm64: Double check image alignment at entry
ardbiesheuvel Jul 26, 2021
0ab67e3
KVM: VMX: Use current VMCS to query WAITPKG support for MSR emulation
sean-jc Aug 10, 2021
433f0b3
KVM: nVMX: Use vmx_need_pf_intercept() when deciding if L0 wants a #PF
sean-jc Aug 12, 2021
7cd14c1
vboxsf: Add vboxsf_[create|release]_sf_handle() helpers
jwrdegoede Jan 21, 2021
dcdb587
vboxsf: Add support for the atomic_open directory-inode op
jwrdegoede Jan 21, 2021
b0efc93
ceph: add some lockdep assertions around snaprealm handling
jtlayton Jun 1, 2021
a23aced
ceph: clean up locking annotation for ceph_get_snap_realm and __looku…
jtlayton Jun 1, 2021
2fe0758
ceph: take snap_empty_lock atomically with snaprealm refcount change
jtlayton Aug 3, 2021
b5f05bd
vmlinux.lds.h: Handle clang's module.{c,d}tor sections
nathanchance Jul 31, 2021
c0883f6
KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl (CVE-…
Jul 14, 2021
3dc5666
KVM: nSVM: always intercept VMLOAD/VMSAVE when nested (CVE-2021-3656)
Jul 19, 2021
f365d53
net: dsa: microchip: Fix probing KSZ87xx switch with DT node for host…
bwh-mind Aug 16, 2021
60c007b
net: dsa: microchip: ksz8795: Fix PVID tag insertion
bwh-mind Aug 16, 2021
5033d5e
net: dsa: microchip: ksz8795: Reject unsupported VLAN configuration
bwh-mind Aug 16, 2021
1e78179
net: dsa: microchip: ksz8795: Fix VLAN untagged flag change on deletion
bwh-mind Aug 16, 2021
3a24e12
net: dsa: microchip: ksz8795: Use software untagging on CPU port
bwh-mind Aug 16, 2021
2c5bd94
Linux 5.10.60
gregkh Aug 18, 2021
b7378e2
Merge tag 'v5.10.60' into 5.10.x+fslc
zandrey Aug 18, 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
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 = 10
SUBLEVEL = 59
SUBLEVEL = 60
EXTRAVERSION =
NAME = Dare mighty things

Expand Down
9 changes: 6 additions & 3 deletions arch/arc/kernel/fpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,23 +57,26 @@ void fpu_save_restore(struct task_struct *prev, struct task_struct *next)

void fpu_init_task(struct pt_regs *regs)
{
const unsigned int fwe = 0x80000000;

/* default rounding mode */
write_aux_reg(ARC_REG_FPU_CTRL, 0x100);

/* set "Write enable" to allow explicit write to exception flags */
write_aux_reg(ARC_REG_FPU_STATUS, 0x80000000);
/* Initialize to zero: setting requires FWE be set */
write_aux_reg(ARC_REG_FPU_STATUS, fwe);
}

void fpu_save_restore(struct task_struct *prev, struct task_struct *next)
{
struct arc_fpu *save = &prev->thread.fpu;
struct arc_fpu *restore = &next->thread.fpu;
const unsigned int fwe = 0x80000000;

save->ctrl = read_aux_reg(ARC_REG_FPU_CTRL);
save->status = read_aux_reg(ARC_REG_FPU_STATUS);

write_aux_reg(ARC_REG_FPU_CTRL, restore->ctrl);
write_aux_reg(ARC_REG_FPU_STATUS, restore->status);
write_aux_reg(ARC_REG_FPU_STATUS, (fwe | restore->status));
}

#endif
3 changes: 2 additions & 1 deletion arch/powerpc/kernel/kprobes.c
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,8 @@ int kprobe_handler(struct pt_regs *regs)
if (user_mode(regs))
return 0;

if (!(regs->msr & MSR_IR) || !(regs->msr & MSR_DR))
if (!IS_ENABLED(CONFIG_BOOKE) &&
(!(regs->msr & MSR_IR) || !(regs->msr & MSR_DR)))
return 0;

/*
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/kernel/sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1167,7 +1167,7 @@ static int __init topology_init(void)
* CPU. For instance, the boot cpu might never be valid
* for hotplugging.
*/
if (smp_ops->cpu_offline_self)
if (smp_ops && smp_ops->cpu_offline_self)
c->hotpluggable = 1;
#endif

Expand Down
2 changes: 2 additions & 0 deletions arch/x86/include/asm/svm.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ struct __attribute__ ((__packed__)) vmcb_control_area {
#define V_IGN_TPR_SHIFT 20
#define V_IGN_TPR_MASK (1 << V_IGN_TPR_SHIFT)

#define V_IRQ_INJECTION_BITS_MASK (V_IRQ_MASK | V_INTR_PRIO_MASK | V_IGN_TPR_MASK)

#define V_INTR_MASKING_SHIFT 24
#define V_INTR_MASKING_MASK (1 << V_INTR_MASKING_SHIFT)

Expand Down
6 changes: 4 additions & 2 deletions arch/x86/kernel/apic/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -1948,7 +1948,8 @@ static struct irq_chip ioapic_chip __read_mostly = {
.irq_set_affinity = ioapic_set_affinity,
.irq_retrigger = irq_chip_retrigger_hierarchy,
.irq_get_irqchip_state = ioapic_irq_get_chip_state,
.flags = IRQCHIP_SKIP_SET_WAKE,
.flags = IRQCHIP_SKIP_SET_WAKE |
IRQCHIP_AFFINITY_PRE_STARTUP,
};

static struct irq_chip ioapic_ir_chip __read_mostly = {
Expand All @@ -1961,7 +1962,8 @@ static struct irq_chip ioapic_ir_chip __read_mostly = {
.irq_set_affinity = ioapic_set_affinity,
.irq_retrigger = irq_chip_retrigger_hierarchy,
.irq_get_irqchip_state = ioapic_irq_get_chip_state,
.flags = IRQCHIP_SKIP_SET_WAKE,
.flags = IRQCHIP_SKIP_SET_WAKE |
IRQCHIP_AFFINITY_PRE_STARTUP,
};

static inline void init_IO_APIC_traps(void)
Expand Down
13 changes: 9 additions & 4 deletions arch/x86/kernel/apic/msi.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,13 @@ msi_set_affinity(struct irq_data *irqd, const struct cpumask *mask, bool force)
* The quirk bit is not set in this case.
* - The new vector is the same as the old vector
* - The old vector is MANAGED_IRQ_SHUTDOWN_VECTOR (interrupt starts up)
* - The interrupt is not yet started up
* - The new destination CPU is the same as the old destination CPU
*/
if (!irqd_msi_nomask_quirk(irqd) ||
cfg->vector == old_cfg.vector ||
old_cfg.vector == MANAGED_IRQ_SHUTDOWN_VECTOR ||
!irqd_is_started(irqd) ||
cfg->dest_apicid == old_cfg.dest_apicid) {
irq_msi_update_msg(irqd, cfg);
return ret;
Expand Down Expand Up @@ -178,7 +180,8 @@ static struct irq_chip pci_msi_controller = {
.irq_ack = irq_chip_ack_parent,
.irq_retrigger = irq_chip_retrigger_hierarchy,
.irq_set_affinity = msi_set_affinity,
.flags = IRQCHIP_SKIP_SET_WAKE,
.flags = IRQCHIP_SKIP_SET_WAKE |
IRQCHIP_AFFINITY_PRE_STARTUP,
};

int pci_msi_prepare(struct irq_domain *domain, struct device *dev, int nvec,
Expand Down Expand Up @@ -247,7 +250,8 @@ static struct irq_chip pci_msi_ir_controller = {
.irq_mask = pci_msi_mask_irq,
.irq_ack = irq_chip_ack_parent,
.irq_retrigger = irq_chip_retrigger_hierarchy,
.flags = IRQCHIP_SKIP_SET_WAKE,
.flags = IRQCHIP_SKIP_SET_WAKE |
IRQCHIP_AFFINITY_PRE_STARTUP,
};

static struct msi_domain_info pci_msi_ir_domain_info = {
Expand Down Expand Up @@ -289,7 +293,8 @@ static struct irq_chip dmar_msi_controller = {
.irq_set_affinity = msi_domain_set_affinity,
.irq_retrigger = irq_chip_retrigger_hierarchy,
.irq_write_msi_msg = dmar_msi_write_msg,
.flags = IRQCHIP_SKIP_SET_WAKE,
.flags = IRQCHIP_SKIP_SET_WAKE |
IRQCHIP_AFFINITY_PRE_STARTUP,
};

static int dmar_msi_init(struct irq_domain *domain,
Expand Down Expand Up @@ -381,7 +386,7 @@ static struct irq_chip hpet_msi_controller __ro_after_init = {
.irq_set_affinity = msi_domain_set_affinity,
.irq_retrigger = irq_chip_retrigger_hierarchy,
.irq_write_msi_msg = hpet_msi_write_msg,
.flags = IRQCHIP_SKIP_SET_WAKE,
.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_AFFINITY_PRE_STARTUP,
};

static int hpet_msi_init(struct irq_domain *domain,
Expand Down
27 changes: 13 additions & 14 deletions arch/x86/kernel/cpu/resctrl/monitor.c
Original file line number Diff line number Diff line change
Expand Up @@ -222,15 +222,14 @@ static u64 mbm_overflow_count(u64 prev_msr, u64 cur_msr, unsigned int width)
return chunks >>= shift;
}

static int __mon_event_count(u32 rmid, struct rmid_read *rr)
static u64 __mon_event_count(u32 rmid, struct rmid_read *rr)
{
struct mbm_state *m;
u64 chunks, tval;

tval = __rmid_read(rmid, rr->evtid);
if (tval & (RMID_VAL_ERROR | RMID_VAL_UNAVAIL)) {
rr->val = tval;
return -EINVAL;
return tval;
}
switch (rr->evtid) {
case QOS_L3_OCCUP_EVENT_ID:
Expand All @@ -242,12 +241,6 @@ static int __mon_event_count(u32 rmid, struct rmid_read *rr)
case QOS_L3_MBM_LOCAL_EVENT_ID:
m = &rr->d->mbm_local[rmid];
break;
default:
/*
* Code would never reach here because
* an invalid event id would fail the __rmid_read.
*/
return -EINVAL;
}

if (rr->first) {
Expand Down Expand Up @@ -297,23 +290,29 @@ void mon_event_count(void *info)
struct rdtgroup *rdtgrp, *entry;
struct rmid_read *rr = info;
struct list_head *head;
u64 ret_val;

rdtgrp = rr->rgrp;

if (__mon_event_count(rdtgrp->mon.rmid, rr))
return;
ret_val = __mon_event_count(rdtgrp->mon.rmid, rr);

/*
* For Ctrl groups read data from child monitor groups.
* For Ctrl groups read data from child monitor groups and
* add them together. Count events which are read successfully.
* Discard the rmid_read's reporting errors.
*/
head = &rdtgrp->mon.crdtgrp_list;

if (rdtgrp->type == RDTCTRL_GROUP) {
list_for_each_entry(entry, head, mon.crdtgrp_list) {
if (__mon_event_count(entry->mon.rmid, rr))
return;
if (__mon_event_count(entry->mon.rmid, rr) == 0)
ret_val = 0;
}
}

/* Report error if none of rmid_reads are successful */
if (ret_val)
rr->val = ret_val;
}

/*
Expand Down
14 changes: 10 additions & 4 deletions arch/x86/kvm/svm/nested.c
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,9 @@ void recalc_intercepts(struct vcpu_svm *svm)

for (i = 0; i < MAX_INTERCEPT; i++)
c->intercepts[i] |= g->intercepts[i];

vmcb_set_intercept(c, INTERCEPT_VMLOAD);
vmcb_set_intercept(c, INTERCEPT_VMSAVE);
}

static void copy_vmcb_control_area(struct vmcb_control_area *dst,
Expand Down Expand Up @@ -429,17 +432,20 @@ static void nested_prepare_vmcb_save(struct vcpu_svm *svm, struct vmcb *vmcb12)

static void nested_prepare_vmcb_control(struct vcpu_svm *svm)
{
const u32 mask = V_INTR_MASKING_MASK | V_GIF_ENABLE_MASK | V_GIF_MASK;
const u32 int_ctl_vmcb01_bits =
V_INTR_MASKING_MASK | V_GIF_MASK | V_GIF_ENABLE_MASK;

const u32 int_ctl_vmcb12_bits = V_TPR_MASK | V_IRQ_INJECTION_BITS_MASK;

if (nested_npt_enabled(svm))
nested_svm_init_mmu_context(&svm->vcpu);

svm->vmcb->control.tsc_offset = svm->vcpu.arch.tsc_offset =
svm->vcpu.arch.l1_tsc_offset + svm->nested.ctl.tsc_offset;

svm->vmcb->control.int_ctl =
(svm->nested.ctl.int_ctl & ~mask) |
(svm->nested.hsave->control.int_ctl & mask);
svm->vmcb->control.int_ctl =
(svm->nested.ctl.int_ctl & int_ctl_vmcb12_bits) |
(svm->nested.hsave->control.int_ctl & int_ctl_vmcb01_bits);

svm->vmcb->control.virt_ext = svm->nested.ctl.virt_ext;
svm->vmcb->control.int_vector = svm->nested.ctl.int_vector;
Expand Down
8 changes: 4 additions & 4 deletions arch/x86/kvm/svm/svm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1486,17 +1486,17 @@ static void svm_set_vintr(struct vcpu_svm *svm)

static void svm_clear_vintr(struct vcpu_svm *svm)
{
const u32 mask = V_TPR_MASK | V_GIF_ENABLE_MASK | V_GIF_MASK | V_INTR_MASKING_MASK;
svm_clr_intercept(svm, INTERCEPT_VINTR);

/* Drop int_ctl fields related to VINTR injection. */
svm->vmcb->control.int_ctl &= mask;
svm->vmcb->control.int_ctl &= ~V_IRQ_INJECTION_BITS_MASK;
if (is_guest_mode(&svm->vcpu)) {
svm->nested.hsave->control.int_ctl &= mask;
svm->nested.hsave->control.int_ctl &= ~V_IRQ_INJECTION_BITS_MASK;

WARN_ON((svm->vmcb->control.int_ctl & V_TPR_MASK) !=
(svm->nested.ctl.int_ctl & V_TPR_MASK));
svm->vmcb->control.int_ctl |= svm->nested.ctl.int_ctl & ~mask;
svm->vmcb->control.int_ctl |= svm->nested.ctl.int_ctl &
V_IRQ_INJECTION_BITS_MASK;
}

vmcb_mark_dirty(svm->vmcb, VMCB_INTR);
Expand Down
3 changes: 2 additions & 1 deletion arch/x86/kvm/vmx/nested.c
Original file line number Diff line number Diff line change
Expand Up @@ -5779,7 +5779,8 @@ static bool nested_vmx_l0_wants_exit(struct kvm_vcpu *vcpu,
if (is_nmi(intr_info))
return true;
else if (is_page_fault(intr_info))
return vcpu->arch.apf.host_apf_flags || !enable_ept;
return vcpu->arch.apf.host_apf_flags ||
vmx_need_pf_intercept(vcpu);
else if (is_debug(intr_info) &&
vcpu->guest_debug &
(KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP))
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kvm/vmx/vmx.h
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ static inline void decache_tsc_multiplier(struct vcpu_vmx *vmx)

static inline bool vmx_has_waitpkg(struct vcpu_vmx *vmx)
{
return vmx->secondary_exec_control &
return secondary_exec_controls_get(vmx) &
SECONDARY_EXEC_ENABLE_USR_WAIT_PAUSE;
}

Expand Down
1 change: 1 addition & 0 deletions arch/x86/tools/chkobjdump.awk
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ BEGIN {

/^GNU objdump/ {
verstr = ""
gsub(/\(.*\)/, "");
for (i = 3; i <= NF; i++)
if (match($(i), "^[0-9]")) {
verstr = $(i);
Expand Down
3 changes: 3 additions & 0 deletions drivers/acpi/nfit/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -3031,6 +3031,9 @@ static int acpi_nfit_register_region(struct acpi_nfit_desc *acpi_desc,
struct acpi_nfit_memory_map *memdev = nfit_memdev->memdev;
struct nd_mapping_desc *mapping;

/* range index 0 == unmapped in SPA or invalid-SPA */
if (memdev->range_index == 0 || spa->range_index == 0)
continue;
if (memdev->range_index != spa->range_index)
continue;
if (count >= ND_MAX_MAPPINGS) {
Expand Down
1 change: 1 addition & 0 deletions drivers/base/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2452,6 +2452,7 @@ void device_initialize(struct device *dev)
device_pm_init(dev);
set_dev_node(dev, -1);
#ifdef CONFIG_GENERIC_MSI_IRQ
raw_spin_lock_init(&dev->msi_lock);
INIT_LIST_HEAD(&dev->msi_list);
#endif
INIT_LIST_HEAD(&dev->links.consumers);
Expand Down
14 changes: 11 additions & 3 deletions drivers/block/nbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -812,6 +812,10 @@ static bool nbd_clear_req(struct request *req, void *data, bool reserved)
{
struct nbd_cmd *cmd = blk_mq_rq_to_pdu(req);

/* don't abort one completed request */
if (blk_mq_request_completed(req))
return true;

mutex_lock(&cmd->lock);
cmd->status = BLK_STS_IOERR;
mutex_unlock(&cmd->lock);
Expand Down Expand Up @@ -2024,15 +2028,19 @@ static void nbd_disconnect_and_put(struct nbd_device *nbd)
{
mutex_lock(&nbd->config_lock);
nbd_disconnect(nbd);
nbd_clear_sock(nbd);
mutex_unlock(&nbd->config_lock);
sock_shutdown(nbd);
/*
* Make sure recv thread has finished, so it does not drop the last
* config ref and try to destroy the workqueue from inside the work
* queue.
* queue. And this also ensure that we can safely call nbd_clear_que()
* to cancel the inflight I/Os.
*/
if (nbd->recv_workq)
flush_workqueue(nbd->recv_workq);
nbd_clear_que(nbd);
nbd->task_setup = NULL;
mutex_unlock(&nbd->config_lock);

if (test_and_clear_bit(NBD_RT_HAS_CONFIG_REF,
&nbd->config->runtime_flags))
nbd_config_put(nbd);
Expand Down
Loading