On Fri, Mar 15, 2024 at 10:48:44AM -0400, Anthony Krowiak wrote: > Unless someone else chooses to review these, my opinion is that they are > good to go. Please don't top-post. > On 3/13/24 4:58 PM, Jason J. Herne wrote: > > Mdevctl requires a way to atomically query and atomically update a vfio-ap > > mdev's current state. This patch set creates the ap_config sysfs attribute. > > This new attribute allows reading and writing an mdev's entire state in one go. > > If a newly written state is invalid for any reason the entire state is rejected > > and the target mdev remains unchanged. ... > > Jason J. Herne (5): > > s390/ap: Externalize AP bus specific bitmap reading function > > s390/vfio-ap: Add sysfs attr, ap_config, to export mdev state > > s390/vfio-ap: Ignore duplicate link requests in > > vfio_ap_mdev_link_queue > > s390/vfio-ap: Add write support to sysfs attr ap_config > > docs: Update s390 vfio-ap doc for ap_config sysfs attribute > > > > Documentation/arch/s390/vfio-ap.rst | 30 ++++ > > drivers/s390/crypto/ap_bus.c | 13 +- > > drivers/s390/crypto/ap_bus.h | 22 +++ > > drivers/s390/crypto/vfio_ap_ops.c | 220 ++++++++++++++++++++++++-- > > drivers/s390/crypto/vfio_ap_private.h | 6 +- > > 5 files changed, 262 insertions(+), 29 deletions(-) With gcc gcc 13.2.0 / binutils 2.40.90.20230730 I get this (defconfig): CC [M] drivers/s390/crypto/vfio_ap_ops.o In file included from ./include/linux/cpumask.h:13, from ./include/linux/smp.h:13, from ./include/linux/lockdep.h:14, from ./include/linux/spinlock.h:63, from ./include/linux/mmzone.h:8, from ./include/linux/gfp.h:7, from ./include/linux/mm.h:7, from ./include/linux/scatterlist.h:8, from ./include/linux/iommu.h:10, from ./include/linux/vfio.h:12, from drivers/s390/crypto/vfio_ap_ops.c:12: In function ‘bitmap_copy’, inlined from ‘ap_matrix_copy’ at drivers/s390/crypto/vfio_ap_ops.c:1672:2, inlined from ‘ap_config_store’ at drivers/s390/crypto/vfio_ap_ops.c:1696:2: ./include/linux/bitmap.h:253:17: warning: ‘memcpy’ reading 32 bytes from a region of size 0 [-Wstringop-overread] 253 | memcpy(dst, src, len); | ^~~~~~~~~~~~~~~~~~~~~ In function ‘ap_config_store’: cc1: note: source object is likely at address zero In function ‘bitmap_copy’, inlined from ‘ap_matrix_copy’ at drivers/s390/crypto/vfio_ap_ops.c:1673:2, inlined from ‘ap_config_store’ at drivers/s390/crypto/vfio_ap_ops.c:1696:2: ./include/linux/bitmap.h:253:17: warning: ‘memcpy’ reading 32 bytes from a region of size 0 [-Wstringop-overread] 253 | memcpy(dst, src, len); | ^~~~~~~~~~~~~~~~~~~~~ In function ‘ap_config_store’: cc1: note: source object is likely at address zero In function ‘bitmap_copy’, inlined from ‘ap_matrix_copy’ at drivers/s390/crypto/vfio_ap_ops.c:1674:2, inlined from ‘ap_config_store’ at drivers/s390/crypto/vfio_ap_ops.c:1696:2: ./include/linux/bitmap.h:253:17: warning: ‘memcpy’ reading 32 bytes from a region of size 0 [-Wstringop-overread] 253 | memcpy(dst, src, len); | ^~~~~~~~~~~~~~~~~~~~~ In function ‘ap_config_store’: cc1: note: source object is likely at address zero