We found a NULL pointer dereference in iscsi_sw_tcp_conn_get_param(), the root reason is we did sysfs addition wrong. iscsi_create_conn() expose iscsi_cls_conn to sysfs while the related resources are not initialized. So we should delay the calling of device_add() until these resources has been initialized. This patchset solve this issue by correct the add and teardown flow of iscsi_cls_conn. ----------- V2: add two more iscsi_free_conn() and iscsi_remove_conn() than V1 change the teardown flow of iscsi_cls_conn Wenchao Hao (3): scsi: iscsi: Add helper functions to manage iscsi_cls_conn scsi:libiscsi: Add iscsi_cls_conn to sysfs after been initialized scsi:libiscsi: teardown iscsi_cls_conn gracefully drivers/scsi/libiscsi.c | 21 ++++++--- drivers/scsi/scsi_transport_iscsi.c | 72 +++++++++++++++++++++-------- include/scsi/scsi_transport_iscsi.h | 5 +- 3 files changed, 71 insertions(+), 27 deletions(-) -- 2.32.0