We're no longer using the 'mtx_lock' field, so remove it. While here remove the 'volatile' keyword from amd64's 'struct mutex'.
ok? Index: i386/i386/genassym.cf =================================================================== RCS file: /cvs/src/sys/arch/i386/i386/genassym.cf,v retrieving revision 1.39 diff -u -p -r1.39 genassym.cf --- i386/i386/genassym.cf 15 Mar 2016 03:17:51 -0000 1.39 +++ i386/i386/genassym.cf 2 Jan 2018 14:56:57 -0000 @@ -136,7 +136,6 @@ member ih_next endif struct mutex -member mtx_lock member mtx_wantipl member mtx_oldipl member mtx_owner Index: i386/include/mutex.h =================================================================== RCS file: /cvs/src/sys/arch/i386/include/mutex.h,v retrieving revision 1.9 diff -u -p -r1.9 mutex.h --- i386/include/mutex.h 20 Apr 2017 13:57:29 -0000 1.9 +++ i386/include/mutex.h 2 Jan 2018 14:59:07 -0000 @@ -29,12 +29,7 @@ #include <sys/_lock.h> -/* - * XXX - we don't really need the mtx_lock field, we can use mtx_oldipl - * as the lock to save some space. - */ struct mutex { - volatile int mtx_lock; int mtx_wantipl; int mtx_oldipl; void *mtx_owner; @@ -59,10 +54,10 @@ struct mutex { #ifdef WITNESS #define MUTEX_INITIALIZER_FLAGS(ipl, name, flags) \ - { 0, __MUTEX_IPL(ipl), 0, NULL, MTX_LO_INITIALIZER(name, flags) } + { __MUTEX_IPL((ipl)), 0, NULL, MTX_LO_INITIALIZER(name, flags) } #else #define MUTEX_INITIALIZER_FLAGS(ipl, name, flags) \ - { 0, __MUTEX_IPL(ipl), 0, NULL } + { __MUTEX_IPL((ipl)), 0, NULL } #endif void __mtx_init(struct mutex *, int); Index: amd64/include/mutex.h =================================================================== RCS file: /cvs/src/sys/arch/amd64/include/mutex.h,v retrieving revision 1.8 diff -u -p -r1.8 mutex.h --- amd64/include/mutex.h 20 Apr 2017 13:57:29 -0000 1.8 +++ amd64/include/mutex.h 2 Jan 2018 14:59:16 -0000 @@ -32,7 +32,7 @@ struct mutex { int mtx_wantipl; int mtx_oldipl; - volatile void *mtx_owner; + void *mtx_owner; #ifdef WITNESS struct lock_object mtx_lock_obj; #endif