Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
707c347
RDMA/bnxt_re: Fix a bug while setting up Level-2 PBL pages
PlaidCat Jan 27, 2025
46348b7
perf/aux: Fix AUX buffer serialization
PlaidCat Jan 27, 2025
76f036d
context_tracking: Fix KCSAN noinstr violation
PlaidCat Jan 27, 2025
28ec521
rcu: Add rcutree.nohz_full_patience_delay to reduce nohz_full OS jitter
PlaidCat Jan 27, 2025
27268b2
kvm: Note an RCU quiescent state on guest exit
PlaidCat Jan 27, 2025
0074369
bnxt_en: Add function to calculate Toeplitz hash
PlaidCat Jan 27, 2025
d16abe7
bnxt_en: Add support for user configured RSS key
PlaidCat Jan 27, 2025
3453716
KVM: arm64: Ensure vgic_ready() is ordered against MMIO registration
PlaidCat Jan 27, 2025
c70ae8d
net/iucv: fix use after free in iucv_sock_close()
PlaidCat Jan 27, 2025
89a451a
smb: client: fix use-after-free of signing key
PlaidCat Jan 27, 2025
430dc0e
gfs2: Rename SDF_DEACTIVATING to SDF_KILL
PlaidCat Jan 27, 2025
6c3de09
gfs2: Simplify function gfs2_upgrade_iopen_glock
PlaidCat Jan 27, 2025
cf92fbb
gfs2: make timeout values more explicit
PlaidCat Jan 27, 2025
7b93990
gfs2: Rename GLF_VERIFY_EVICT to GLF_VERIFY_DELETE
PlaidCat Jan 27, 2025
f9dfec6
gfs2: Initialize gl_no_formal_ino earlier
PlaidCat Jan 27, 2025
193e733
gfs2: Allow immediate GLF_VERIFY_DELETE work
PlaidCat Jan 27, 2025
9c0a0eb
gfs2: Fix unlinked inode cleanup
PlaidCat Jan 27, 2025
f177e5f
gfs2: Faster gfs2_upgrade_iopen_glock wakeups
PlaidCat Jan 27, 2025
9919b46
gfs2: Rename GIF_{DEFERRED -> DEFER}_DELETE
PlaidCat Jan 27, 2025
30a51db
gfs2: Rename dinode_demise to evict_behavior
PlaidCat Jan 27, 2025
a158f6c
gfs2: Return enum evict_behavior from gfs2_upgrade_iopen_glock
PlaidCat Jan 27, 2025
0557021
gfs2: Minor delete_work_func cleanup
PlaidCat Jan 27, 2025
167dadc
gfs2: Clean up delete work processing
PlaidCat Jan 27, 2025
6f3a335
gfs2: Call gfs2_queue_verify_delete from gfs2_evict_inode
PlaidCat Jan 27, 2025
f23a6d2
gfs2: Update to the evict / remote delete documentation
PlaidCat Jan 27, 2025
e42b0bc
gfs2: Use mod_delayed_work in gfs2_queue_try_to_evict
PlaidCat Jan 27, 2025
35da1d9
gfs2: Randomize GLF_VERIFY_DELETE work delay
PlaidCat Jan 27, 2025
b435113
gfs2: Only defer deletes when we have an iopen glock
PlaidCat Jan 27, 2025
bdd13a3
gfs2: Prevent inode creation race
PlaidCat Jan 27, 2025
13d9576
KVM: s390: vsie: Use virt_to_phys for facility control block
PlaidCat Jan 27, 2025
c946086
KVM: s390: vsie: Use virt_to_phys for crypto control block
PlaidCat Jan 27, 2025
c6aff72
s390: allow pte_offset_map_lock() to fail
PlaidCat Jan 27, 2025
cad1d42
mm/userfaultfd: Do not place zeropages when zeropages are disallowed
PlaidCat Jan 27, 2025
602b3dd
s390/mm: Re-enable the shared zeropage for !PV and !skeys KVM guests
PlaidCat Jan 27, 2025
2b8030c
KVM: s390: remove useless include
PlaidCat Jan 27, 2025
e94ad7a
s390/uv: Panic for set and remove shared access UVC errors
PlaidCat Jan 27, 2025
4f910d7
KVM: s390: Fix SORTL and DFLTCC instruction format error in __insn32_…
PlaidCat Jan 27, 2025
3b8b5da
KVM: s390: gaccess: Check if guest address is in memslot
PlaidCat Jan 27, 2025
b7b1392
KVM: s390: Change virtual to physical address access in diag 0x258 ha…
PlaidCat Jan 27, 2025
f047c83
mm: remove arguments of show_mem()
PlaidCat Jan 27, 2025
684addd
mm: make show_free_areas() static
PlaidCat Jan 27, 2025
51a8464
mptcp: cope racing subflow creation in mptcp_rcv_space_adjust
PlaidCat Jan 27, 2025
58ff53e
mlxsw: spectrum_ipip: Fix memory leak when changing remote IPv6 address
PlaidCat Jan 27, 2025
7b30e09
Rebuild rocky9_5 with kernel-5.14.0-503.21.1.el9_5
PlaidCat Jan 27, 2025
95fba8a
scsi: storvsc: Handle additional SRB status values
PlaidCat Jan 27, 2025
72b8e2d
scsi: storvsc: Do not flag MAINTENANCE_IN return of SRB_STATUS_DATA_O…
PlaidCat Jan 27, 2025
5a56dff
rcu: Use system_unbound_wq to avoid disturbing isolated CPUs
PlaidCat Jan 27, 2025
18c9582
tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink().
PlaidCat Jan 27, 2025
337b259
tcp: Fix use-after-free of nreq in reqsk_timer_handler().
PlaidCat Jan 27, 2025
e455298
netfilter: nft_socket: fix sk refcount leaks
PlaidCat Jan 27, 2025
929a2d6
netfilter: nft_socket: make cgroupsv2 matching work with namespaces
PlaidCat Jan 27, 2025
6cf1e9e
netfilter: nft_socket: Fix a NULL vs IS_ERR() bug in nft_socket_cgrou…
PlaidCat Jan 27, 2025
4229979
netfilter: nf_tables: store new sets in dedicated list
PlaidCat Jan 27, 2025
6114ad4
netfilter: nf_set_pipapo: fix initial map fill
PlaidCat Jan 27, 2025
5889822
netfilter: nft_set_pipapo_avx2: disable softinterrupts
PlaidCat Jan 27, 2025
3f8cbdc
netfilter: nf_tables: unconditionally flush pending work before notifier
PlaidCat Jan 27, 2025
7434f56
selftests: netfilter: add test case for recent mismatch bug
PlaidCat Jan 27, 2025
59e9061
nvme-fabrics: handle zero MAXCMD without closing the connection
PlaidCat Jan 27, 2025
301cfcf
ice: fix page reuse when PAGE_SIZE is over 8k
PlaidCat Jan 27, 2025
6d0bcdd
ice: fix ICE_LAST_OFFSET formula
PlaidCat Jan 27, 2025
0913ac0
ice: fix truesize operations for PAGE_SIZE >= 8192
PlaidCat Jan 27, 2025
54747ca
i40e: fix race condition by adding filter's intermediate sync state
PlaidCat Jan 27, 2025
5e788fa
KVM: SEV: Provide support for SNP_GUEST_REQUEST NAE event
PlaidCat Jan 27, 2025
a04f20a
x86/sev: Move sev_guest.h into common SEV header
PlaidCat Jan 27, 2025
8cafcc7
KVM: SEV: Provide support for SNP_EXTENDED_GUEST_REQUEST NAE event
PlaidCat Jan 27, 2025
d36ec14
KVM: SVM: Propagate error from snp_guest_req_init() to userspace
PlaidCat Jan 27, 2025
d122da6
Revert "ixgbe: Manual AN-37 for troublesome link partners for X550 SFI"
PlaidCat Jan 27, 2025
130174a
ASoC: SOF: ipc4-topology: remove shadowed variable
PlaidCat Jan 27, 2025
787f0f9
ASoC: SOF: ipc4-topology: Allow selective update in sof_ipc4_update_h…
PlaidCat Jan 27, 2025
73d292a
ASoC: SOF: ipc4-topology: Correct DAI copier config and NHLT blob req…
PlaidCat Jan 27, 2025
ca375bd
ASoC: SOF: ipc4-topology: Add support for NHLT with 16-bit only DMIC …
PlaidCat Jan 27, 2025
5803f86
ASoC: SOF: sof-audio: rename dai clock setting query function
PlaidCat Jan 27, 2025
dac6ac4
ASoC: SOF: sof-audio: add sof_dai_get_tdm_slots function
PlaidCat Jan 27, 2025
5b60617
ASoC: SOF: ipc3-topology: support tdm slot number query
PlaidCat Jan 27, 2025
a7ff752
ASoC: SOF: ipc4-topology: support tdm slot number query
PlaidCat Jan 27, 2025
31937e2
ASoC: SOF: ipc4-topology: Print out the channel count in sof_ipc4_dbg…
PlaidCat Jan 27, 2025
c0c579e
ASoC: SOF: ipc4-topology/pcm: Rename sof_ipc4_copier_is_single_format()
PlaidCat Jan 27, 2025
7c06d67
ASoC: SOF: ipc4-topology: Improve readability of sof_ipc4_prepare_dai…
PlaidCat Jan 27, 2025
2aeb3f2
ASoC: SOF: ipc4-topology: Adjust the params based on DAI formats
PlaidCat Jan 27, 2025
08a3031
ASoC: SOF: ipc4-topology: Use correct queue_id for requesting input p…
PlaidCat Jan 27, 2025
7104fe1
ASoC: SOF: ipc4-topology: Use single token list for the copiers
PlaidCat Jan 27, 2025
5cc38be
ASoC: SOF: ipc4-topology: Only handle dai_config with HW_PARAMS for C…
PlaidCat Jan 27, 2025
98529b2
ASoC: SOF: ipc4-topology: Preserve the DMA Link ID for ChainDMA on un…
PlaidCat Jan 27, 2025
02ee108
scsi: lpfc: Handle mailbox timeouts in lpfc_get_sfp_info
PlaidCat Jan 27, 2025
597626f
scsi: lpfc: Validate hdwq pointers before dereferencing in reset/erra…
PlaidCat Jan 27, 2025
5930e4b
bpf: Use raw_spinlock_t in ringbuf
PlaidCat Jan 27, 2025
f67d9f6
arm64/sve: Discard stale CPU state when handling SVE traps
PlaidCat Jan 27, 2025
59d331e
[s390] zcore: WRITE is "data source", not destination...
PlaidCat Jan 27, 2025
208d3b1
Rebuild rocky9_5 with kernel-5.14.0-503.22.1.el9_5
PlaidCat Jan 27, 2025
1347da8
github actions: Make Builds on Merge Request Work
PlaidCat Jan 16, 2025
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
34 changes: 34 additions & 0 deletions .github/workflows/build-check_aarch64-rt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: aarch64-RT CI
on:
pull_request:
branches:
- '**'
- '!mainline'

jobs:
kernel-build-job:
runs-on:
labels: kernel-build-arm64
container:
image: rockylinux:9
env:
ROCKY_ENV: rocky9
ports:
- 80
options: --cpus 8
steps:
- name: Install tools and Libraries
run: |
dnf groupinstall 'Development Tools' -y
dnf install --enablerepo=crb bc dwarves kernel-devel openssl-devel elfutils-libelf-devel -y
- name: Checkout code
uses: actions/checkout@v4
with:
ref: "${{ github.event.pull_request.head.sha }}"
fetch-depth: 0
- name: Build the Kernel
run: |
git config --global --add safe.directory /__w/kernel-src-tree/kernel-src-tree
cp configs/kernel-aarch64-rt-rhel.config .config
make olddefconfig
make -j8
34 changes: 34 additions & 0 deletions .github/workflows/build-check_aarch64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: aarch64 CI
on:
pull_request:
branches:
- '**'
- '!mainline'

jobs:
kernel-build-job:
runs-on:
labels: kernel-build-arm64
container:
image: rockylinux:9
env:
ROCKY_ENV: rocky9
ports:
- 80
options: --cpus 8
steps:
- name: Install tools and Libraries
run: |
dnf groupinstall 'Development Tools' -y
dnf install --enablerepo=crb bc dwarves kernel-devel openssl-devel elfutils-libelf-devel -y
- name: Checkout code
uses: actions/checkout@v4
with:
ref: "${{ github.event.pull_request.head.sha }}"
fetch-depth: 0
- name: Build the Kernel
run: |
git config --global --add safe.directory /__w/kernel-src-tree/kernel-src-tree
cp configs/kernel-aarch64-rhel.config .config
make olddefconfig
make -j8
34 changes: 34 additions & 0 deletions .github/workflows/build-check_x86_64-rt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: x86_64-RT CI
on:
pull_request:
branches:
- '**'
- '!mainline'

jobs:
kernel-build-job:
runs-on:
labels: kernel-build
container:
image: rockylinux:9
env:
ROCKY_ENV: rocky9
ports:
- 80
options: --cpus 8
steps:
- name: Install tools and Libraries
run: |
dnf groupinstall 'Development Tools' -y
dnf install --enablerepo=crb bc dwarves kernel-devel openssl-devel elfutils-libelf-devel -y
- name: Checkout code
uses: actions/checkout@v4
with:
ref: "${{ github.event.pull_request.head.sha }}"
fetch-depth: 0
- name: Build the Kernel
run: |
git config --global --add safe.directory /__w/kernel-src-tree/kernel-src-tree
cp configs/kernel-x86_64-rt-rhel.config .config
make olddefconfig
make -j8
34 changes: 34 additions & 0 deletions .github/workflows/build-check_x86_64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: x86_64 CI
on:
pull_request:
branches:
- '**'
- '!mainline'

jobs:
kernel-build-job:
runs-on:
labels: kernel-build
container:
image: rockylinux:9
env:
ROCKY_ENV: rocky9
ports:
- 80
options: --cpus 8
steps:
- name: Install tools and Libraries
run: |
dnf groupinstall 'Development Tools' -y
dnf install --enablerepo=crb bc dwarves kernel-devel openssl-devel elfutils-libelf-devel -y
- name: Checkout code
uses: actions/checkout@v4
with:
ref: "${{ github.event.pull_request.head.sha }}"
fetch-depth: 0
- name: Build the Kernel
run: |
git config --global --add safe.directory /__w/kernel-src-tree/kernel-src-tree
cp configs/kernel-x86_64-rhel.config .config
make olddefconfig
make -j8
File renamed without changes.
8 changes: 8 additions & 0 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4900,6 +4900,14 @@
kthread, but increases that same overhead on
each group's NOCB grace-period kthread.

rcutree.nohz_full_patience_delay= [KNL]
On callback-offloaded (rcu_nocbs) CPUs, avoid
disturbing RCU unless the grace period has
reached the specified age in milliseconds.
Defaults to zero. Large values will be capped
at five seconds. All values will be rounded down
to the nearest value representable by jiffies.

rcutree.qhimark= [KNL]
Set threshold of queued RCU callbacks beyond which
batch limiting is disabled.
Expand Down
2 changes: 1 addition & 1 deletion Makefile.rhelver
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RHEL_MINOR = 5
#
# Use this spot to avoid future merge conflicts.
# Do not trim this comment.
RHEL_RELEASE = 503.19.1
RHEL_RELEASE = 503.22.1

#
# ZSTREAM
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/kernel/fpsimd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1429,6 +1429,7 @@ static void sve_init_regs(void)
} else {
fpsimd_to_sve(current);
current->thread.fp_type = FP_STATE_SVE;
fpsimd_flush_task_state(current);
}
}

Expand Down
13 changes: 11 additions & 2 deletions arch/arm64/kvm/vgic/vgic-init.c
Original file line number Diff line number Diff line change
Expand Up @@ -522,14 +522,23 @@ int kvm_vgic_map_resources(struct kvm *kvm)
if (ret)
goto out;

dist->ready = true;
dist_base = dist->vgic_dist_base;
mutex_unlock(&kvm->arch.config_lock);

ret = vgic_register_dist_iodev(kvm, dist_base, type);
if (ret)
if (ret) {
kvm_err("Unable to register VGIC dist MMIO regions\n");
goto out_slots;
}

/*
* kvm_io_bus_register_dev() guarantees all readers see the new MMIO
* registration before returning through synchronize_srcu(), which also
* implies a full memory barrier. As such, marking the distributor as
* 'ready' here is guaranteed to be ordered after all vCPUs having seen
* a completely configured distributor.
*/
dist->ready = true;
goto out_slots;
out:
mutex_unlock(&kvm->arch.config_lock);
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/xmon/xmon.c
Original file line number Diff line number Diff line change
Expand Up @@ -1088,7 +1088,7 @@ cmds(struct pt_regs *excp)
memzcan();
break;
case 'i':
show_mem(0, NULL);
show_mem();
break;
default:
termch = cmd;
Expand Down
2 changes: 1 addition & 1 deletion arch/s390/include/asm/gmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ int gmap_mprotect_notify(struct gmap *, unsigned long start,

void gmap_sync_dirty_log_pmd(struct gmap *gmap, unsigned long dirty_bitmap[4],
unsigned long gaddr, unsigned long vmaddr);
int gmap_mark_unmergeable(void);
int s390_disable_cow_sharing(void);
void s390_unlist_old_asce(struct gmap *gmap);
int s390_replace_asce(struct gmap *gmap);
void s390_uv_destroy_pfns(unsigned long count, unsigned long *pfns);
Expand Down
1 change: 0 additions & 1 deletion arch/s390/include/asm/kvm_host.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include <linux/hrtimer.h>
#include <linux/interrupt.h>
#include <linux/kvm_types.h>
#include <linux/kvm_host.h>
#include <linux/kvm.h>
#include <linux/seqlock.h>
#include <linux/module.h>
Expand Down
5 changes: 5 additions & 0 deletions arch/s390/include/asm/mmu.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ typedef struct {
unsigned int uses_cmm:1;
/* The gmaps associated with this context are allowed to use huge pages. */
unsigned int allow_gmap_hpage_1m:1;
/*
* The mmu context allows COW-sharing of memory pages (KSM, zeropage).
* Note that COW-sharing during fork() is currently always allowed.
*/
RH_KABI_EXTEND(unsigned int allow_cow_sharing:1)
} mm_context_t;

#define INIT_MM_CONTEXT(name) \
Expand Down
1 change: 1 addition & 0 deletions arch/s390/include/asm/mmu_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ static inline int init_new_context(struct task_struct *tsk,
mm->context.has_pgste = 0;
mm->context.uses_skeys = 0;
mm->context.uses_cmm = 0;
mm->context.allow_cow_sharing = 1;
mm->context.allow_gmap_hpage_1m = 0;
#endif
switch (mm->context.asce_limit) {
Expand Down
16 changes: 13 additions & 3 deletions arch/s390/include/asm/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -560,10 +560,20 @@ static inline pud_t set_pud_bit(pud_t pud, pgprot_t prot)
}

/*
* In the case that a guest uses storage keys
* faults should no longer be backed by zero pages
* As soon as the guest uses storage keys or enables PV, we deduplicate all
* mapped shared zeropages and prevent new shared zeropages from getting
* mapped.
*/
#define mm_forbids_zeropage mm_has_pgste
#define mm_forbids_zeropage mm_forbids_zeropage
static inline int mm_forbids_zeropage(struct mm_struct *mm)
{
#ifdef CONFIG_PGSTE
if (!mm->context.allow_cow_sharing)
return 1;
#endif
return 0;
}

static inline int mm_uses_skeys(struct mm_struct *mm)
{
#ifdef CONFIG_PGSTE
Expand Down
5 changes: 4 additions & 1 deletion arch/s390/include/asm/uv.h
Original file line number Diff line number Diff line change
Expand Up @@ -442,7 +442,10 @@ static inline int share(unsigned long addr, u16 cmd)

if (!uv_call(0, (u64)&uvcb))
return 0;
return -EINVAL;
pr_err("%s UVC failed (rc: 0x%x, rrc: 0x%x), possible hypervisor bug.\n",
uvcb.header.cmd == UVC_CMD_SET_SHARED_ACCESS ? "Share" : "Unshare",
uvcb.header.rc, uvcb.header.rrc);
panic("System security cannot be guaranteed unless the system panics now.\n");
}

/*
Expand Down
2 changes: 2 additions & 0 deletions arch/s390/kernel/uv.c
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,8 @@ int gmap_make_secure(struct gmap *gmap, unsigned long gaddr, void *uvcb)

rc = -ENXIO;
ptep = get_locked_pte(gmap->mm, uaddr, &ptelock);
if (!ptep)
goto out;
if (pte_present(*ptep) && !(pte_val(*ptep) & _PAGE_INVALID) && pte_write(*ptep)) {
page = pte_page(*ptep);
rc = -EAGAIN;
Expand Down
2 changes: 1 addition & 1 deletion arch/s390/kvm/diag.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ static int __diag_page_ref_service(struct kvm_vcpu *vcpu)
vcpu->stat.instruction_diagnose_258++;
if (vcpu->run->s.regs.gprs[rx] & 7)
return kvm_s390_inject_program_int(vcpu, PGM_SPECIFICATION);
rc = read_guest(vcpu, vcpu->run->s.regs.gprs[rx], rx, &parm, sizeof(parm));
rc = read_guest_real(vcpu, vcpu->run->s.regs.gprs[rx], &parm, sizeof(parm));
if (rc)
return kvm_s390_inject_prog_cond(vcpu, rc);
if (parm.parm_version != 2 || parm.parm_len < 5 || parm.code != 0x258)
Expand Down
4 changes: 4 additions & 0 deletions arch/s390/kvm/gaccess.c
Original file line number Diff line number Diff line change
Expand Up @@ -985,6 +985,8 @@ static int access_guest_page(struct kvm *kvm, enum gacc_mode mode, gpa_t gpa,
const gfn_t gfn = gpa_to_gfn(gpa);
int rc;

if (!gfn_to_memslot(kvm, gfn))
return PGM_ADDRESSING;
if (mode == GACC_STORE)
rc = kvm_write_guest_page(kvm, gfn, data, offset, len);
else
Expand Down Expand Up @@ -1142,6 +1144,8 @@ int access_guest_real(struct kvm_vcpu *vcpu, unsigned long gra,
gra += fragment_len;
data += fragment_len;
}
if (rc > 0)
vcpu->arch.pgm.code = rc;
return rc;
}

Expand Down
14 changes: 8 additions & 6 deletions arch/s390/kvm/gaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -405,11 +405,12 @@ int read_guest_abs(struct kvm_vcpu *vcpu, unsigned long gpa, void *data,
* @len: number of bytes to copy
*
* Copy @len bytes from @data (kernel space) to @gra (guest real address).
* It is up to the caller to ensure that the entire guest memory range is
* valid memory before calling this function.
* Guest low address and key protection are not checked.
*
* Returns zero on success or -EFAULT on error.
* Returns zero on success, -EFAULT when copying from @data failed, or
* PGM_ADRESSING in case @gra is outside a memslot. In this case, pgm check info
* is also stored to allow injecting into the guest (if applicable) using
* kvm_s390_inject_prog_cond().
*
* If an error occurs data may have been copied partially to guest memory.
*/
Expand All @@ -428,11 +429,12 @@ int write_guest_real(struct kvm_vcpu *vcpu, unsigned long gra, void *data,
* @len: number of bytes to copy
*
* Copy @len bytes from @gra (guest real address) to @data (kernel space).
* It is up to the caller to ensure that the entire guest memory range is
* valid memory before calling this function.
* Guest key protection is not checked.
*
* Returns zero on success or -EFAULT on error.
* Returns zero on success, -EFAULT when copying to @data failed, or
* PGM_ADRESSING in case @gra is outside a memslot. In this case, pgm check info
* is also stored to allow injecting into the guest (if applicable) using
* kvm_s390_inject_prog_cond().
*
* If an error occurs data may have been copied partially to kernel space.
*/
Expand Down
Loading