kfree(port) is called in put_device(&port->dev) so that following use would cause use-after-free bug. the former put_device is redundant for device_unregister contains put_device already. So just remove it to fix this. Fixes: 83d4e1c33d93 ("[SCSI] zfcp: cleanup port sysfs attribute usage") Reported-by: Hulk Robot <hulkci@xxxxxxxxxx> Signed-off-by: Qinglang Miao <miaoqinglang@xxxxxxxxxx> --- drivers/s390/scsi/zfcp_sysfs.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/s390/scsi/zfcp_sysfs.c b/drivers/s390/scsi/zfcp_sysfs.c index 8d9662e8b..06285e452 100644 --- a/drivers/s390/scsi/zfcp_sysfs.c +++ b/drivers/s390/scsi/zfcp_sysfs.c @@ -327,8 +327,6 @@ static ssize_t zfcp_sysfs_port_remove_store(struct device *dev, list_del(&port->list); write_unlock_irq(&adapter->port_list_lock); - put_device(&port->dev); - zfcp_erp_port_shutdown(port, 0, "syprs_1"); device_unregister(&port->dev); out: -- 2.23.0