Crash in list_del() called from dasd_alias_remove_device(), Linux on IBM Z
Issue
System crashes when it stumbles on a corrupt linked list with console messages like:
[594418.406411] Unable to handle kernel pointer dereference at virtual kernel address 001ffc0002288000
[594418.406478] Oops: 0011 [#1] SMP
[594418.406489] Modules linked in: af_iucv fuse dcssblk ipt_REJECT nf_reject_ipv4 xt_conntrack ebtable_nat ebtable_broute bridge stp llc iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat iptable_mangle iptable_security iptable_raw nf_conntrack libcrc32c ip_set nfnetlink ebtable_filter ebtables ip6_tables iptable_filter binfmt_misc auth_rpcgss sunrpc ip_tables ext4 mbcache jbd2 qeth_l2 dasd_fba_mod dasd_eckd_mod dasd_mod qeth ccwgroup qdio dm_mirror dm_region_hash dm_log dm_mod pkey zcrypt ap sha512_s390 ghash_s390 des_s390 des_generic aes_s390 prng [last unloaded: sg]
[594418.406581] CPU: 0 PID: 11880 Comm: chccwdev Kdump: loaded Not tainted 3.10.0-1127.8.2.el7.s390x #1
[594418.406587] task: 0000000007962ec0 ti: 0000000007048000 task.ti: 0000000007048000
[594418.406592] Krnl PSW : 0404e00180000000 00000000004a4656 (__list_del_entry+0x3e/0xe0)
[594418.406605] R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 EA:3
Krnl GPRS: 001fffff80284540 001ffc0002288000 0000000006b68980 0000000000000200
[594418.406772] 001ffc0002284000 0000000000000001 0000000000000000 000000000704bcd8
[594418.406774] 0700000000000000 00000000021bfc00 0000000006b68980 00000000112a6400
[594418.406776] 0000000000000000 0000000006b68980 000000000704bb80 000000000704bb68
[594418.406801] Krnl Code: 00000000004a4646: ec43001e8064 cgrj %r4,%r3,8,4a4682
00000000004a464c: a7390200 lghi %r3,512
#00000000004a4650: ec1300458064 cgrj %r1,%r3,8,4a46da
>00000000004a4656: e32010000020 cg %r2,0(%r1)
00000000004a465c: a7740030 brc 7,4a46bc
00000000004a4660: e32040080020 cg %r2,8(%r4)
00000000004a4666: a774001c brc 7,4a469e
00000000004a466a: e31040080024 stg %r1,8(%r4)
[594418.406909] Call Trace:
[594418.406912] ([<0000000000000000>] 0x0)
[594418.406920] [<00000000004a4720>] list_del+0x28/0x40
[594418.406925] [<001fffff80284648>] dasd_alias_remove_device+0x120/0x140 [dasd_eckd_mod]
[594418.406940] [<001fffff8023f51a>] dasd_change_state+0xe2/0xcd8 [dasd_mod]
[594418.406957] [<001fffff8024026a>] dasd_set_target_state+0xaa/0x110 [dasd_mod]
[594418.406965] [<001fffff80240906>] dasd_generic_set_offline+0x13e/0x368 [dasd_mod]
[594418.406972] [<00000000005aeefc>] ccw_device_set_offline+0x64/0x98
[594418.406976] [<00000000005b0174>] online_store+0x21c/0x288
[594418.406978] [<00000000003aeac0>] kernfs_fop_write+0x118/0x198
[594418.406984] [<0000000000305626>] vfs_write+0xbe/0x1e8
[594418.406988] [<00000000003065ec>] SyS_write+0x84/0x128
[594418.406990] [<0000000000762204>] sysc_tracego+0x18/0x1e
[594418.406995] [<000003ff91bfc9c8>] 0x3ff91bfc9c8
[594418.406998] Last Breaking-Event-Address:
[594418.407000] [<00000000004a471a>] list_del+0x22/0x40
[594418.407002]
[594418.407005] Kernel panic - not syncing: Fatal exception: panic_on_oops
Environment
- Red Hat Enterprise Linux 7 or 8
-- problem originally detected on kernel 3.10.0-1127.8.2.el7.s390x - Disk storage controlled by DASD driver
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.