Use try_cmpxchg() instead of cmpxchg() so compilers with flag output operand support (gcc 14 and newer) can generate slightly better code. Also get rid of two cmpxchg() usages on one/two byte memory areas which generates inefficient code. bloat-o-meter statistics of the kvm module: add/remove: 0/0 grow/shrink: 0/11 up/down: 0/-318 (-318) Function old new delta kvm_s390_handle_wait 886 880 -6 kvm_s390_gisa_destroy 226 220 -6 kvm_s390_gisa_clear 96 90 -6 ipte_unlock 380 372 -8 kvm_s390_gisc_unregister 270 260 -10 kvm_s390_gisc_register 290 280 -10 gisa_vcpu_kicker 200 190 -10 account_mem 250 232 -18 ipte_lock 416 368 -48 kvm_s390_update_topology_change_report 174 122 -52 kvm_s390_clear_local_irqs 420 276 -144 Total: Before=316521, After=316203, chg -0.10% Heiko Carstens (3): KVM: s390: Use try_cmpxchg() instead of cmpxchg() loops KVM: s390: Remove one byte cmpxchg() usage KVM: s390: Increase size of union sca_utility to four bytes arch/s390/include/asm/kvm_host.h | 10 +++++----- arch/s390/kvm/gaccess.c | 16 ++++++++-------- arch/s390/kvm/interrupt.c | 25 ++++++++----------------- arch/s390/kvm/kvm-s390.c | 4 ++-- arch/s390/kvm/pci.c | 5 ++--- 5 files changed, 25 insertions(+), 35 deletions(-) base-commit: 9f16d5e6f220661f73b36a4be1b21575651d8833 -- 2.45.2