Pull s390 fixes from Heiko Carstens: - Disable address-of-packed-member warning in s390 specific boot code to get rid of a gcc9 warning which otherwise is already disabled for the whole kernel. - Fix yet another compiler error seen with CONFIG_OPTIMIZE_INLINING enabled. - Fix memory leak in vfio-ccw code on module exit. * tag 's390-5.2-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: vfio-ccw: Destroy kmem cache region on module exit s390/ctl_reg: mark __ctl_set_bit and __ctl_clear_bit as __always_inline s390/boot: disable address-of-packed-member warning
Unified · Split
| @@ -30,6 +30,7 @@ KBUILD_CFLAGS_DECOMPRESSOR += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY · 29 unmodified lines | |||
| 30 | KBUILD_CFLAGS_DECOMPRESSOR += -fno-delete-null-pointer-checks -msoft-float | 30 | KBUILD_CFLAGS_DECOMPRESSOR += -fno-delete-null-pointer-checks -msoft-float |
| 31 | KBUILD_CFLAGS_DECOMPRESSOR += -fno-asynchronous-unwind-tables | 31 | KBUILD_CFLAGS_DECOMPRESSOR += -fno-asynchronous-unwind-tables |
| 32 | KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-option,-ffreestanding) | 32 | KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-option,-ffreestanding) |
| 33 | KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-member) | ||
| 33 | KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g) | 34 | KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g) |
| 34 | KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,)) | 35 | KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,)) |
| 35 | UTS_MACHINE := s390x | 36 | UTS_MACHINE := s390x |
| @@ -55,7 +55,7 @@ · 54 unmodified lines | |||
| 55 | : "i" (low), "i" (high)); \ | 55 | : "i" (low), "i" (high)); \ |
| 56 | } while (0) | 56 | } while (0) |
| 57 | 57 | ||
| 58 | static inline void __ctl_set_bit(unsigned int cr, unsigned int bit) | 58 | static __always_inline void __ctl_set_bit(unsigned int cr, unsigned int bit) |
| 59 | { | 59 | { |
| 60 | unsigned long reg; | 60 | unsigned long reg; |
| 61 | 61 | ||
| @@ -64,7 +64,7 @@ static inline void __ctl_set_bit(unsigned int cr, unsigned int bit) · 2 unmodified lines | |||
| 64 | __ctl_load(reg, cr, cr); | 64 | __ctl_load(reg, cr, cr); |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | static inline void __ctl_clear_bit(unsigned int cr, unsigned int bit) | 67 | static __always_inline void __ctl_clear_bit(unsigned int cr, unsigned int bit) |
| 68 | { | 68 | { |
| 69 | unsigned long reg; | 69 | unsigned long reg; |
| 70 | 70 | ||
| @@ -299,6 +299,7 @@ static void __exit vfio_ccw_sch_exit(void) · 298 unmodified lines | |||
| 299 | css_driver_unregister(&vfio_ccw_sch_driver); | 299 | css_driver_unregister(&vfio_ccw_sch_driver); |
| 300 | isc_unregister(VFIO_CCW_ISC); | 300 | isc_unregister(VFIO_CCW_ISC); |
| 301 | kmem_cache_destroy(vfio_ccw_io_region); | 301 | kmem_cache_destroy(vfio_ccw_io_region); |
| 302 | kmem_cache_destroy(vfio_ccw_cmd_region); | ||
| 302 | destroy_workqueue(vfio_ccw_work_q); | 303 | destroy_workqueue(vfio_ccw_work_q); |
| 303 | } | 304 | } |
| 304 | module_init(vfio_ccw_sch_init); | 305 | module_init(vfio_ccw_sch_init); |