linux/drivers/s390/crypto
Anthony Krowiak 100b452e0e s390/vfio-ap: Fix no AP queue sharing allowed message written to kernel log
[ Upstream commit d33d729afc ]

An erroneous message is written to the kernel log when either of the
following actions are taken by a user:

1. Assign an adapter or domain to a vfio_ap mediated device via its sysfs
   assign_adapter or assign_domain attributes that would result in one or
   more AP queues being assigned that are already assigned to a different
   mediated device. Sharing of queues between mdevs is not allowed.

2. Reserve an adapter or domain for the host device driver via the AP bus
   driver's sysfs apmask or aqmask attribute that would result in providing
   host access to an AP queue that is in use by a vfio_ap mediated device.
   Reserving a queue for a host driver that is in use by an mdev is not
   allowed.

In both cases, the assignment will return an error; however, a message like
the following is written to the kernel log:

vfio_ap_mdev e1839397-51a0-4e3c-91e0-c3b9c3d3047d: Userspace may not
re-assign queue 00.0028 already assigned to \
e1839397-51a0-4e3c-91e0-c3b9c3d3047d

Notice the mdev reporting the error is the same as the mdev identified
in the message as the one to which the queue is being assigned.
It is perfectly okay to assign a queue to an mdev to which it is
already assigned; the assignment is simply ignored by the vfio_ap device
driver.

This patch logs more descriptive and accurate messages for both 1 and 2
above to the kernel log:

Example for 1:
vfio_ap_mdev 0fe903a0-a323-44db-9daf-134c68627d61: Userspace may not assign
queue 00.0033 to mdev: already assigned to \
62177883-f1bb-47f0-914d-32a22e3a8804

Example for 2:
vfio_ap_mdev 62177883-f1bb-47f0-914d-32a22e3a8804: Can not reserve queue
00.0033 for host driver: in use by mdev

Signed-off-by: Anthony Krowiak <akrowiak@linux.ibm.com>
Link: https://lore.kernel.org/r/20250311103304.1539188-1-akrowiak@linux.ibm.com
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-05-29 11:02:02 +02:00
..
ap_bus.c s390/ap: Fix CCA crypto card behavior within protected execution environment 2024-10-10 15:31:55 +02:00
ap_bus.h s390/ap: Fix CCA crypto card behavior within protected execution environment 2024-10-10 15:31:55 +02:00
ap_card.c s390/ap: store TAPQ hwinfo in struct ap_card 2023-11-30 16:24:23 +01:00
ap_debug.h s390/zcrypt: introduce dynamic debugging for AP and zcrypt code 2024-02-16 14:30:12 +01:00
ap_queue.c s390/ap: Fix CCA crypto card behavior within protected execution environment 2024-10-10 15:31:55 +02:00
Makefile s390/pkey: Introduce pkey base with handler registry and handler modules 2024-08-29 22:56:34 +02:00
pkey_api.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
pkey_base.c s390/pkey: Add function to enforce pkey handler modules load 2024-08-29 22:56:34 +02:00
pkey_base.h s390/pkey: Add AES xts and HMAC clear key token support 2024-09-05 15:17:23 +02:00
pkey_cca.c s390/pkey: Add slowpath function to CCA and EP11 handler 2024-08-29 22:56:34 +02:00
pkey_ep11.c s390/pkey: Add slowpath function to CCA and EP11 handler 2024-08-29 22:56:34 +02:00
pkey_pckmo.c s390/pkey_pckmo: Return with success for valid protected key types 2024-10-16 11:32:32 +02:00
pkey_sysfs.c s390/pkey: Add AES xts and HMAC clear key token support 2024-09-05 15:17:23 +02:00
vfio_ap_debug.h s390-vfio-ap: introduces s390 kernel debug feature for vfio_ap device driver 2022-02-06 23:31:29 +01:00
vfio_ap_drv.c s390/vfio-ap: Driver feature advertisement 2024-09-23 17:57:04 +02:00
vfio_ap_ops.c s390/vfio-ap: Fix no AP queue sharing allowed message written to kernel log 2025-05-29 11:02:02 +02:00
vfio_ap_private.h s390/vfio-ap: Add write support to sysfs attr ap_config 2024-04-22 12:49:17 +02:00
zcrypt_api.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
zcrypt_api.h s390/zcrypt: improve zcrypt retry behavior 2024-03-07 14:41:15 +01:00
zcrypt_card.c s390/zcrypt: don't report online if card or queue is in check-stop state 2023-11-05 22:34:57 +01:00
zcrypt_cca_key.h s390/zcrypt: rework arrays with length zero occurrences 2023-04-19 16:47:31 +02:00
zcrypt_ccamisc.c s390/pkey: Rework and split PKEY kernel module code 2024-08-29 22:56:33 +02:00
zcrypt_ccamisc.h s390/pkey: Rework and split PKEY kernel module code 2024-08-29 22:56:33 +02:00
zcrypt_cex2a.c s390/zcrypt: remove CEX2 and CEX3 device drivers 2023-07-24 12:12:22 +02:00
zcrypt_cex2a.h s390/zcrypt: remove CEX2 and CEX3 device drivers 2023-07-24 12:12:22 +02:00
zcrypt_cex2c.c s390/zcrypt: remove CEX2 and CEX3 device drivers 2023-07-24 12:12:22 +02:00
zcrypt_cex2c.h s390/zcrypt: remove CEX2 and CEX3 device drivers 2023-07-24 12:12:22 +02:00
zcrypt_cex4.c s390/ap: store TAPQ hwinfo in struct ap_card 2023-11-30 16:24:23 +01:00
zcrypt_cex4.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
zcrypt_debug.h s390/zcrypt: introduce dynamic debugging for AP and zcrypt code 2024-02-16 14:30:12 +01:00
zcrypt_ep11misc.c s390/pkey: Rework and split PKEY kernel module code 2024-08-29 22:56:33 +02:00
zcrypt_ep11misc.h s390/pkey: Rework and split PKEY kernel module code 2024-08-29 22:56:33 +02:00
zcrypt_error.h s390/zcrypt: improve zcrypt retry behavior 2024-03-07 14:41:15 +01:00
zcrypt_msgtype6.c s390/zcrypt_msgtype6: Cleanup debug code 2024-08-21 16:17:01 +02:00
zcrypt_msgtype6.h s390/zcrypt: code cleanup 2022-04-25 13:54:14 +02:00
zcrypt_msgtype50.c s390/zcrypt_msgtype50: Cleanup debug code 2024-08-21 16:17:01 +02:00
zcrypt_msgtype50.h s390/zcrypt: remove CEX2 and CEX3 device drivers 2023-07-24 12:12:22 +02:00
zcrypt_queue.c s390/zcrypt: don't report online if card or queue is in check-stop state 2023-11-05 22:34:57 +01:00