Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d29899a3 authored by Radim Krčmář's avatar Radim Krčmář
Browse files

Merge tag 'kvm-s390-master-4.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux

KVM: s390: Fixes for 4.15

- SPDX tags
- Fence storage key accesses from problem state
- Make sure that irq_state.flags is not used in the future
parents 2895db67 ca76ec9c
Loading
Loading
Loading
Loading
+12 −3
Original line number Original line Diff line number Diff line
@@ -2901,14 +2901,19 @@ userspace buffer and its length:


struct kvm_s390_irq_state {
struct kvm_s390_irq_state {
	__u64 buf;
	__u64 buf;
	__u32 flags;
	__u32 flags;        /* will stay unused for compatibility reasons */
	__u32 len;
	__u32 len;
	__u32 reserved[4];
	__u32 reserved[4];  /* will stay unused for compatibility reasons */
};
};


Userspace passes in the above struct and for each pending interrupt a
Userspace passes in the above struct and for each pending interrupt a
struct kvm_s390_irq is copied to the provided buffer.
struct kvm_s390_irq is copied to the provided buffer.


The structure contains a flags and a reserved field for future extensions. As
the kernel never checked for flags == 0 and QEMU never pre-zeroed flags and
reserved, these fields can not be used in the future without breaking
compatibility.

If -ENOBUFS is returned the buffer provided was too small and userspace
If -ENOBUFS is returned the buffer provided was too small and userspace
may retry with a bigger buffer.
may retry with a bigger buffer.


@@ -2932,10 +2937,14 @@ containing a struct kvm_s390_irq_state:


struct kvm_s390_irq_state {
struct kvm_s390_irq_state {
	__u64 buf;
	__u64 buf;
	__u32 flags;        /* will stay unused for compatibility reasons */
	__u32 len;
	__u32 len;
	__u32 pad;
	__u32 reserved[4];  /* will stay unused for compatibility reasons */
};
};


The restrictions for flags and reserved apply as well.
(see KVM_S390_GET_IRQ_STATE)

The userspace memory referenced by buf contains a struct kvm_s390_irq
The userspace memory referenced by buf contains a struct kvm_s390_irq
for each interrupt to be injected into the guest.
for each interrupt to be injected into the guest.
If one of the interrupts could not be injected for some reason the
If one of the interrupts could not be injected for some reason the
+1 −4
Original line number Original line Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
# Makefile for kernel virtual machines on s390
# Makefile for kernel virtual machines on s390
#
#
# Copyright IBM Corp. 2008
# Copyright IBM Corp. 2008
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License (version 2 only)
# as published by the Free Software Foundation.


KVM := ../../../virt/kvm
KVM := ../../../virt/kvm
common-objs = $(KVM)/kvm_main.o $(KVM)/eventfd.o  $(KVM)/async_pf.o $(KVM)/irqchip.o $(KVM)/vfio.o
common-objs = $(KVM)/kvm_main.o $(KVM)/eventfd.o  $(KVM)/async_pf.o $(KVM)/irqchip.o $(KVM)/vfio.o
+1 −4
Original line number Original line Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/*
/*
 * handling diagnose instructions
 * handling diagnose instructions
 *
 *
 * Copyright IBM Corp. 2008, 2011
 * Copyright IBM Corp. 2008, 2011
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License (version 2 only)
 * as published by the Free Software Foundation.
 *
 *    Author(s): Carsten Otte <cotte@de.ibm.com>
 *    Author(s): Carsten Otte <cotte@de.ibm.com>
 *               Christian Borntraeger <borntraeger@de.ibm.com>
 *               Christian Borntraeger <borntraeger@de.ibm.com>
 */
 */
+1 −4
Original line number Original line Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/*
/*
 * access guest memory
 * access guest memory
 *
 *
 * Copyright IBM Corp. 2008, 2014
 * Copyright IBM Corp. 2008, 2014
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License (version 2 only)
 * as published by the Free Software Foundation.
 *
 *    Author(s): Carsten Otte <cotte@de.ibm.com>
 *    Author(s): Carsten Otte <cotte@de.ibm.com>
 */
 */


+1 −4
Original line number Original line Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
/*
/*
 * kvm guest debug support
 * kvm guest debug support
 *
 *
 * Copyright IBM Corp. 2014
 * Copyright IBM Corp. 2014
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License (version 2 only)
 * as published by the Free Software Foundation.
 *
 *    Author(s): David Hildenbrand <dahi@linux.vnet.ibm.com>
 *    Author(s): David Hildenbrand <dahi@linux.vnet.ibm.com>
 */
 */
#include <linux/kvm_host.h>
#include <linux/kvm_host.h>
Loading