Hello Frank hm, the output shows absolutely no relationship with AP bus or zcrypt device driver code. Neither the kernel callstack nor the userspace iucvserv application has any relations to my patch series.
-- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1913442 Title: [Ubuntu 20.04] Problem leading IUCV service down (on s390x) Status in Ubuntu on IBM z Systems: In Progress Status in linux package in Ubuntu: Fix Released Status in linux source package in Focal: In Progress Status in linux source package in Hirsute: Fix Released Status in linux source package in Impish: Fix Released Bug description: SRU Justification: ================== [Impact] * Problems occur in IBM z/VM's IUCV (Inter User Communication Vehicle) environments and its communication. * Errors like "usercopy: Kernel memory overwrite attempt detected to SLUB object 'dma-kmalloc-1 k' (offset 0, size 11)!" pop up and cause failures. * This is because IUCV uses kmalloc() with __GFP_DMA because of memory address restrictions. * The solution is to mark dma-kmalloc caches as usercopy caches. [Fix] * 49f2d2419d60a103752e5fbaf158cf8d07c0d884 49f2d2419d60 "usercopy: mark dma-kmalloc caches as usercopy caches" * Due to changes in the context of the upstream patch, a cherry-pick was not possible and the following backport was created: https://bugs.launchpad.net/bugs/1913442/+attachment/5457885/+files/commit_49f2d2419d60_backport.patch [Test Case] * Setup Ubuntu Server 20.04 on s390x system as IBM z/VM guest aka virtual machine. * Setup IUCV on z/VM: Setting up the (IUCV TCPIP) service machine: https://www.ibm.com/support/knowledgecenter/linuxonibm/com.ibm.linux.z.ljdd/ljdd_t_iucv_tcpservice.html * Set up a Linux IUCV instance: https://www.ibm.com/support/knowledgecenter/linuxonibm/com.ibm.linux.z.ljdd/ljdd_t_iucv_scen1_guest.html * Set up an IUCV direct: https://www.ibm.com/support/knowledgecenter/linuxonibm/com.ibm.linux.z.ljdd/ljdd_c_iucv_connect.html * Make use of IUCV, for example using ssh on a direct connection. * Verify if the connections is stable and watch out for messages starting with "usercopy". [Regression Potential] * Problems could occur in case the create_kmalloc_cache call is done wrong, for example with wrong index, wrong size or just wrong comma separations. * Wrong size or index will probably lead to similar instability problems that exist today. * Problems in the syntax (commas etc.) will be detected at compile time. * But it's just a single line modification in function create_kmalloc_caches of /mm/slab_common.c, * so the change is very limited and quite traceable. * And it was in depth discussed here: https://lore.kernel.org/kernel-hardening/1515636190-24061-2-git-send-email-keesc...@chromium.org/ * a reviewed by a lot of kernel engineers (see provenance) * and it was already upstream accepted with kernel 5.8. [Other] * Since the commit is upstream accepted with 5.8, so it's already in impish and hirsute (and groovy). * Hence this kernel SRU submission is for Focal only and covers only the above single but common code commit/patch. __________ When I deployed a Ubuntu20.04 instance with kernel version of 5.4.0-58-generic under z/VM, I saw below messages from kernel and the iucvserv program malfunctioned. Hence it caused some devices like network device configuration failure and deployment failure. Dec 14 22:02:26 ub2004img iucvserv: Receive OPNCLD4 0.0.0.1 pwd sent from IUCV client. Dec 14 22:02:26 ub2004img iucvserv: /etc/iucv_authorized_userid exists, check authorization. Dec 14 22:02:26 ub2004img iucvserv: senduserid=OPNCLD4, authuserid=OPNCLD4, len=7 Dec 14 22:02:26 ub2004img iucvserv: Current version is 0.0.0.1, upgraded version is 0.0.0.1 Dec 14 22:02:26 ub2004img iucvserv: Will execute the linux command pwd 2>&1; echo iucvcmdrc=$? sent from IUCV client. Dec 14 22:02:26 ub2004img iucvserv: result length=14, send message length=14,#012 /#012iucvcmdrc=0 Dec 14 22:02:26 ub2004img kernel: [63084.184649] ------------[ cut here ]------------ Dec 14 22:02:26 ub2004img kernel: [63084.184654] Bad or missing usercopy whitelist? Kernel memory exposure attempt detected from SLUB object 'dma-kmalloc-1k' (offset 0, size 20)! Dec 14 22:02:26 ub2004img kernel: [63084.184680] WARNING: CPU: 1 PID: 697 at mm/usercopy.c:75 usercopy_warn+0xa0/0xd0 Dec 14 22:02:26 ub2004img kernel: [63084.184681] Modules linked in: tcp_diag udp_diag raw_diag inet_diag unix_diag xt_CT iptable_raw ipt_REJECT nf_reject_ipv4 xt_tcpudp xt_conntrack nf_conntrack nf_defr ag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter af_iucv nls_utf8 isofs dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua vmur vfio_ccw vfio_mdev mdev s390_trng vfio_iommu_type1 vfio sch_fq_codel drm drm _panel_orientation_quirks i2c_core ip_tables x_tables btrfs zstd_compress zlib_deflate raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 linear pkey zcrypt crc32_vx_s390 ghash_s390 prng aes_s390 des_s390 libdes sha3_512_s390 sha3_256_s390 sha512_s390 sha256_s390 sha1_s390 sha_common dasd_fba_mod dasd_mod qeth_l2 qeth qdio ccwgroup Dec 14 22:02:26 ub2004img kernel: [63084.184718] CPU: 1 PID: 697 Comm: iucvserv Not tainted 5.4.0-58-generic #64-Ubuntu Dec 14 22:02:26 ub2004img kernel: [63084.184718] Hardware name: IBM 8561 LT1 400 (z/VM 7.1.0) Dec 14 22:02:26 ub2004img kernel: [63084.184719] Krnl PSW : 0704c00180000000 00000000b3c37a60 (usercopy_warn+0xa0/0xd0) Dec 14 22:02:26 ub2004img kernel: [63084.184721] R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 RI:0 EA:3 Dec 14 22:02:26 ub2004img kernel: [63084.184722] Krnl GPRS: 0000000000000004 0000000000000006 0000000000000081 0000000000000007 Dec 14 22:02:26 ub2004img kernel: [63084.184722] 0000000000000007 00000000f2ecb400 00000000b43fdc6a 000003e000000014 Dec 14 22:02:26 ub2004img kernel: [63084.184723] 0000000000000000 0000000000000014 0000000000000000 00000000b43f01f0 Dec 14 22:02:26 ub2004img kernel: [63084.184723] 00000000aae13300 00000000e9332a00 00000000b3c37a5c 000003e000987a10 Dec 14 22:02:26 ub2004img kernel: [63084.184728] Krnl Code: 00000000b3c37a50: c020003e310f larl %r2,00000000b43fdc6e Dec 14 22:02:26 ub2004img kernel: [63084.184728] 00000000b3c37a56: c0e5ffedbe85 brasl %r14,00000000b39ef760 Dec 14 22:02:26 ub2004img kernel: [63084.184728] #00000000b3c37a5c: a7f40001 brc 15,00000000b3c37a5e Dec 14 22:02:26 ub2004img kernel: [63084.184728] >00000000b3c37a60: eb6ff0c00004 lmg %r6,%r15,192(%r15) Dec 14 22:02:26 ub2004img kernel: [63084.184728] 00000000b3c37a66: 07fe bcr 15,%r14 Dec 14 22:02:26 ub2004img kernel: [63084.184728] 00000000b3c37a68: 47000700 bc 0,1792 Dec 14 22:02:26 ub2004img kernel: [63084.184728] 00000000b3c37a6c: c020003e30fa larl %r2,00000000b43fdc60 Dec 14 22:02:26 ub2004img kernel: [63084.184728] 00000000b3c37a72: a7f4ffd4 brc 15,00000000b3c37a1a Dec 14 22:02:26 ub2004img kernel: [63084.184735] Call Trace: Dec 14 22:02:26 ub2004img kernel: [63084.184736] ([<00000000b3c37a5c>] usercopy_warn+0x9c/0xd0) Dec 14 22:02:26 ub2004img kernel: [63084.184740] [<00000000b3c0fcc8>] __check_heap_object+0xd8/0x150 Dec 14 22:02:26 ub2004img kernel: [63084.184741] [<00000000b3c37bc4>] __check_object_size+0x134/0x200 Dec 14 22:02:26 ub2004img kernel: [63084.184744] [<00000000b4080a7e>] simple_copy_to_iter+0x3e/0x70 Dec 14 22:02:26 ub2004img kernel: [63084.184745] [<00000000b407fe02>] __skb_datagram_iter+0x72/0x280 Dec 14 22:02:26 ub2004img kernel: [63084.184745] [<00000000b40800be>] skb_copy_datagram_iter+0x5e/0xe0 Dec 14 22:02:26 ub2004img kernel: [63084.184747] [<000003ff805014ea>] iucv_sock_recvmsg+0xaa/0x460 [af_iucv] Dec 14 22:02:26 ub2004img kernel: [63084.184749] [<00000000b406ce36>] __sys_recvfrom+0xb6/0x140 Dec 14 22:02:26 ub2004img kernel: [63084.184750] [<00000000b406e042>] __s390x_sys_socketcall+0x222/0x350 Dec 14 22:02:26 ub2004img kernel: [63084.184753] [<00000000b4250ba2>] system_call+0x2a6/0x2c8 Dec 14 22:02:26 ub2004img kernel: [63084.184753] Last Breaking-Event-Address: Dec 14 22:02:26 ub2004img kernel: [63084.184754] [<00000000b3c37a5c>] usercopy_warn+0x9c/0xd0 Dec 14 22:02:26 ub2004img kernel: [63084.184754] ---[ end trace b0232fe5536a773d ]--- Dec 14 22:02:26 ub2004img iucvserv: Receive OPNCLD4 0.0.0.1 ls /etc/*-release sent from IUCV client. Dec 14 22:02:26 ub2004img iucvserv: /etc/iucv_authorized_userid exists, check authorization. Dec 14 22:02:26 ub2004img iucvserv: senduserid=OPNCLD4, authuserid=OPNCLD4, len=7 Dec 14 22:02:26 ub2004img iucvserv: Current version is 0.0.0.1, upgraded version is 0.0.0.1 Dec 14 22:02:26 ub2004img iucvserv: Will execute the linux command ls /etc/*-release 2>&1; echo iucvcmdrc=$? sent from IUCV client. Dec 14 22:02:26 ub2004img iucvserv: result length=45, send message length=45,#012 /etc/lsb-release#012/etc/os-release#012iucvcmdrc=0 Dec 14 22:02:26 ub2004img iucvserv: Receive OPNCLD4 0.0.0.1 cat /etc/os-release sent from IUCV client. Dec 14 22:02:26 ub2004img iucvserv: /etc/iucv_authorized_userid exists, check authorization. Dec 14 22:02:26 ub2004img iucvserv: senduserid=OPNCLD4, authuserid=OPNCLD4, len=7 Dec 14 22:02:26 ub2004img iucvserv: Current version is 0.0.0.1, upgraded version is 0.0.0.1 But I didn't see such problem with kernel version 5.4.0-40-generic #44-Ubuntu when I did the same operation. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-z-systems/+bug/1913442/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp