Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Upstream
-
None
-
3
-
9223372036854775807
Description
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000588
Call stack:
324.423743] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000588 ... {{ Call trace: [ 324.459145] down_read+0x28/0x100 [ 324.459684] active_show+0x2c/0x90 [osp] [ 324.460339] lustre_attr_show+0x1c/0x2c [obdclass] [ 324.461095] sysfs_kf_seq_show+0xb0/0x140 [ 324.461729] kernfs_seq_show+0x30/0x40 [ 324.462377] seq_read_iter+0x1cc/0x4c8 [ 324.462973] kernfs_fop_read_iter+0x38/0x40 [ 324.463635] new_sync_read+0xf0/0x190 [ 324.464219] vfs_read+0x150/0x1e8 [ 324.464748] ksys_read+0x70/0xfc [ 324.465265] __arm64_sys_read+0x20/0x28 [ 324.465880] el0_svc_common.constprop.0+0x84/0x240 [ 324.466635] do_el0_svc+0x28/0x80 [ 324.467165] el0_svc+0x1c/0x28 [ 324.467657] el0_sync_handler+0x94/0x120}}
Observed on Lustre 2_15.
Analysis:
active_show calls macro with_imp_locked with an obd_device, which in
turn gets a lock on u.cli.cl_sem in obd_device.
The exception is at offset 0x588, and u.cli.cl_sem is at 0x588
in struct obd_device - as a result of obd being NULL.