Hi Paolo, I love your patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on linux/master drm-tip/drm-tip linus/master v5.11-rc6 next-20210125] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Paolo-Bonzini/i915-kvmgt-the-KVM-mmu_lock-is-now-an-rwlock/20210209-070812 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: x86_64-rhel-8.3 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/e1625dbf5fa4aea9c53da01a04bfb55443375c30 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Paolo-Bonzini/i915-kvmgt-the-KVM-mmu_lock-is-now-an-rwlock/20210209-070812 git checkout e1625dbf5fa4aea9c53da01a04bfb55443375c30 # save the attached .config to linux build tree make W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): In file included from include/linux/spinlock.h:312, from include/linux/wait.h:9, from include/linux/pid.h:6, from include/linux/sched.h:14, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from drivers/gpu/drm/i915/gvt/kvmgt.c:32: drivers/gpu/drm/i915/gvt/kvmgt.c: In function 'kvmgt_page_track_add': drivers/gpu/drm/i915/gvt/kvmgt.c:1706:13: error: passing argument 1 of '_raw_write_lock' from incompatible pointer type [-Werror=incompatible-pointer-types] 1706 | write_lock(&kvm->mmu_lock); | ^~~~~~~~~~~~~~ | | | spinlock_t * {aka struct spinlock *} include/linux/rwlock.h:70:42: note: in definition of macro 'write_lock' 70 | #define write_lock(lock) _raw_write_lock(lock) | ^~~~ In file included from include/linux/spinlock_api_smp.h:190, from include/linux/spinlock.h:318, from include/linux/wait.h:9, from include/linux/pid.h:6, from include/linux/sched.h:14, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from drivers/gpu/drm/i915/gvt/kvmgt.c:32: include/linux/rwlock_api_smp.h:19:43: note: expected 'rwlock_t *' {aka 'struct <anonymous> *'} but argument is of type 'spinlock_t *' {aka 'struct spinlock *'} 19 | void __lockfunc _raw_write_lock(rwlock_t *lock) __acquires(lock); | ~~~~~~~~~~^~~~ >> drivers/gpu/drm/i915/gvt/kvmgt.c:1715:15: error: passing argument 1 of '__raw_write_unlock' from incompatible pointer type [-Werror=incompatible-pointer-types] 1715 | write_unlock(&kvm->mmu_lock); | ^~~~~~~~~~~~~~ | | | spinlock_t * {aka struct spinlock *} include/linux/rwlock_api_smp.h:88:52: note: in definition of macro '_raw_write_unlock' 88 | #define _raw_write_unlock(lock) __raw_write_unlock(lock) | ^~~~ drivers/gpu/drm/i915/gvt/kvmgt.c:1715:2: note: in expansion of macro 'write_unlock' 1715 | write_unlock(&kvm->mmu_lock); | ^~~~~~~~~~~~ include/linux/rwlock_api_smp.h:216:49: note: expected 'rwlock_t *' {aka 'struct <anonymous> *'} but argument is of type 'spinlock_t *' {aka 'struct spinlock *'} 216 | static inline void __raw_write_unlock(rwlock_t *lock) | ~~~~~~~~~~^~~~ In file included from include/linux/spinlock.h:312, from include/linux/wait.h:9, from include/linux/pid.h:6, from include/linux/sched.h:14, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from drivers/gpu/drm/i915/gvt/kvmgt.c:32: drivers/gpu/drm/i915/gvt/kvmgt.c: In function 'kvmgt_page_track_remove': drivers/gpu/drm/i915/gvt/kvmgt.c:1740:13: error: passing argument 1 of '_raw_write_lock' from incompatible pointer type [-Werror=incompatible-pointer-types] 1740 | write_lock(&kvm->mmu_lock); | ^~~~~~~~~~~~~~ | | | spinlock_t * {aka struct spinlock *} include/linux/rwlock.h:70:42: note: in definition of macro 'write_lock' 70 | #define write_lock(lock) _raw_write_lock(lock) | ^~~~ In file included from include/linux/spinlock_api_smp.h:190, from include/linux/spinlock.h:318, from include/linux/wait.h:9, from include/linux/pid.h:6, from include/linux/sched.h:14, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from drivers/gpu/drm/i915/gvt/kvmgt.c:32: include/linux/rwlock_api_smp.h:19:43: note: expected 'rwlock_t *' {aka 'struct <anonymous> *'} but argument is of type 'spinlock_t *' {aka 'struct spinlock *'} 19 | void __lockfunc _raw_write_lock(rwlock_t *lock) __acquires(lock); | ~~~~~~~~~~^~~~ drivers/gpu/drm/i915/gvt/kvmgt.c:1749:15: error: passing argument 1 of '__raw_write_unlock' from incompatible pointer type [-Werror=incompatible-pointer-types] 1749 | write_unlock(&kvm->mmu_lock); | ^~~~~~~~~~~~~~ | | | spinlock_t * {aka struct spinlock *} include/linux/rwlock_api_smp.h:88:52: note: in definition of macro '_raw_write_unlock' 88 | #define _raw_write_unlock(lock) __raw_write_unlock(lock) | ^~~~ drivers/gpu/drm/i915/gvt/kvmgt.c:1749:2: note: in expansion of macro 'write_unlock' 1749 | write_unlock(&kvm->mmu_lock); | ^~~~~~~~~~~~ include/linux/rwlock_api_smp.h:216:49: note: expected 'rwlock_t *' {aka 'struct <anonymous> *'} but argument is of type 'spinlock_t *' {aka 'struct spinlock *'} 216 | static inline void __raw_write_unlock(rwlock_t *lock) | ~~~~~~~~~~^~~~ In file included from include/linux/spinlock.h:312, from include/linux/wait.h:9, from include/linux/pid.h:6, from include/linux/sched.h:14, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from drivers/gpu/drm/i915/gvt/kvmgt.c:32: drivers/gpu/drm/i915/gvt/kvmgt.c: In function 'kvmgt_page_track_flush_slot': drivers/gpu/drm/i915/gvt/kvmgt.c:1775:13: error: passing argument 1 of '_raw_write_lock' from incompatible pointer type [-Werror=incompatible-pointer-types] 1775 | write_lock(&kvm->mmu_lock); | ^~~~~~~~~~~~~~ | | | spinlock_t * {aka struct spinlock *} include/linux/rwlock.h:70:42: note: in definition of macro 'write_lock' 70 | #define write_lock(lock) _raw_write_lock(lock) | ^~~~ In file included from include/linux/spinlock_api_smp.h:190, from include/linux/spinlock.h:318, from include/linux/wait.h:9, from include/linux/pid.h:6, from include/linux/sched.h:14, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from drivers/gpu/drm/i915/gvt/kvmgt.c:32: include/linux/rwlock_api_smp.h:19:43: note: expected 'rwlock_t *' {aka 'struct <anonymous> *'} but argument is of type 'spinlock_t *' {aka 'struct spinlock *'} 19 | void __lockfunc _raw_write_lock(rwlock_t *lock) __acquires(lock); | ~~~~~~~~~~^~~~ drivers/gpu/drm/i915/gvt/kvmgt.c:1784:15: error: passing argument 1 of '__raw_write_unlock' from incompatible pointer type [-Werror=incompatible-pointer-types] 1784 | write_unlock(&kvm->mmu_lock); | ^~~~~~~~~~~~~~ | | | spinlock_t * {aka struct spinlock *} include/linux/rwlock_api_smp.h:88:52: note: in definition of macro '_raw_write_unlock' 88 | #define _raw_write_unlock(lock) __raw_write_unlock(lock) | ^~~~ drivers/gpu/drm/i915/gvt/kvmgt.c:1784:2: note: in expansion of macro 'write_unlock' 1784 | write_unlock(&kvm->mmu_lock); | ^~~~~~~~~~~~ include/linux/rwlock_api_smp.h:216:49: note: expected 'rwlock_t *' {aka 'struct <anonymous> *'} but argument is of type 'spinlock_t *' {aka 'struct spinlock *'} 216 | static inline void __raw_write_unlock(rwlock_t *lock) | ~~~~~~~~~~^~~~ cc1: all warnings being treated as errors vim +/__raw_write_unlock +1715 drivers/gpu/drm/i915/gvt/kvmgt.c 1685 1686 static int kvmgt_page_track_add(unsigned long handle, u64 gfn) 1687 { 1688 struct kvmgt_guest_info *info; 1689 struct kvm *kvm; 1690 struct kvm_memory_slot *slot; 1691 int idx; 1692 1693 if (!handle_valid(handle)) 1694 return -ESRCH; 1695 1696 info = (struct kvmgt_guest_info *)handle; 1697 kvm = info->kvm; 1698 1699 idx = srcu_read_lock(&kvm->srcu); 1700 slot = gfn_to_memslot(kvm, gfn); 1701 if (!slot) { 1702 srcu_read_unlock(&kvm->srcu, idx); 1703 return -EINVAL; 1704 } 1705 1706 write_lock(&kvm->mmu_lock); 1707 1708 if (kvmgt_gfn_is_write_protected(info, gfn)) 1709 goto out; 1710 1711 kvm_slot_page_track_add_page(kvm, slot, gfn, KVM_PAGE_TRACK_WRITE); 1712 kvmgt_protect_table_add(info, gfn); 1713 1714 out: > 1715 write_unlock(&kvm->mmu_lock); 1716 srcu_read_unlock(&kvm->srcu, idx); 1717 return 0; 1718 } 1719 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx