This series add generic eiointc 8 bytes access interface, so that 1/2/4/8 bytes access can use the generic 8 bytes access interface. It reduce about 300 lines redundant code and make eiointc emulation driver simple than ever. --- v4 ... v5 1. Rebase patch on latest kernel where bugfix of eiointc has been merged. 2. Add generic eiointc 8 bytes access interface, 1/2/4/8 bytes access uses generic 8 bytes access interface. v3 ... v4: 1. Remove patch about enhancement and only keep bugfix relative patches. 2. Remove INTC indication in the patch title. 3. With access size, keep default case unchanged besides 1/2/4/8 since here all patches are bugfix 4. Firstly check return value of copy_from_user() with error path, keep the same order with old patch in patch 4. v2 ... v3: 1. Add prefix INTC: in title of every patch. 2. Fix array index overflow when emulate register EIOINTC_ENABLE writing operation. 3. Add address alignment check with eiointc register access operation. v1 ... v2: 1. Add extra fix in patch 3 and patch 4, add num_cpu validation check 2. Name of stat information keeps unchanged, only move it from VM stat to vCPU stat. --- Bibo Mao (13): LoongArch: KVM: Use standard bitops API with eiointc LoongArch: KVM: Remove unused parameter len LoongArch: KVM: Add stat information with kernel irqchip LoongArch: KVM: Remove never called default case statement LoongArch: KVM: Rename loongarch_eiointc_readq with loongarch_eiointc_read LoongArch: KVM: Use generic read function loongarch_eiointc_read LoongArch: KVM: Remove some unnecessary local variables LoongArch: KVM: Use concise api __ffs() LoongArch: KVM: Replace eiointc_enable_irq() with eiointc_update_irq() LoongArch: KVM: Remove local variable offset LoongArch: KVM: Rename old_data with old LoongArch: KVM: Add generic function loongarch_eiointc_write() LoongArch: KVM: Use generic interface loongarch_eiointc_write() arch/loongarch/include/asm/kvm_host.h | 12 +- arch/loongarch/kvm/intc/eiointc.c | 557 ++++---------------------- arch/loongarch/kvm/intc/ipi.c | 28 +- arch/loongarch/kvm/intc/pch_pic.c | 4 +- arch/loongarch/kvm/vcpu.c | 8 +- 5 files changed, 102 insertions(+), 507 deletions(-) base-commit: d0b3b7b22dfa1f4b515fd3a295b3fd958f9e81af -- 2.39.3