As KVM supports passing Adjunct Processor (AP) crypto devices to guests, we should make sure that the interface works as expected. Three instructions provide the interface to the AP devices: - nqap: Enqueues a crypto request - dqap: Dequeues a crypto request - pqap: Provides information and processes support functions nqap & dqap work on crypto requests for which we currently don't want to add tests due to their sheer complexity. Which leaves us with pqap which is partly emulated for a guest 2 and hence is a prime target for testing. v3: - Renamed ap_check() to ap_setup() and added comment v2: - Re-worked the ap_check() function to test for stfle 12 since we rely on PQAP QCI in the library functions - Re-worked APQN management - Fixed faulty loop variable initializers in ap.c - Fixed report messages - Extended clobber lists - Extended length bit checks for nqap - Now using ARRAY_SIZE where applicabale - NIB is now allocated as IO memory Janosch Frank (7): lib: s390x: Add ap library s390x: Add guest 2 AP test lib: s390x: ap: Add proper ap setup code s390x: ap: Add pqap aqic tests s390x: ap: Add reset tests lib: s390x: ap: Add tapq test facility bit s390x: ap: Add nq/dq len test lib/s390x/ap.c | 278 ++++++++++++++++++++++ lib/s390x/ap.h | 119 ++++++++++ s390x/Makefile | 2 + s390x/ap.c | 564 ++++++++++++++++++++++++++++++++++++++++++++ s390x/unittests.cfg | 3 + 5 files changed, 966 insertions(+) create mode 100644 lib/s390x/ap.c create mode 100644 lib/s390x/ap.h create mode 100644 s390x/ap.c -- 2.34.1