• Nilesh Javali's avatar
    scsi: qla2xxx: validate nvme_local_port correctly · eb1d4ce2
    Nilesh Javali authored
    The driver load failed with error message,
    
    qla2xxx [0000:04:00.0]-ffff:0: register_localport failed: ret=ffffffef
    
    and with a kernel crash,
    
    	BUG: unable to handle kernel NULL pointer dereference at 0000000000000070
    	Workqueue: events_unbound qla_register_fcport_fn [qla2xxx]
    	RIP: 0010:nvme_fc_register_remoteport+0x16/0x430 [nvme_fc]
    	RSP: 0018:ffffaaa040eb3d98 EFLAGS: 00010282
    	RAX: 0000000000000000 RBX: ffff9dfb46b78c00 RCX: 0000000000000000
    	RDX: ffff9dfb46b78da8 RSI: ffffaaa040eb3e08 RDI: 0000000000000000
    	RBP: ffff9dfb612a0a58 R08: ffffffffaf1d6270 R09: 3a34303a30303030
    	R10: 34303a303030305b R11: 2078787832616c71 R12: ffff9dfb46b78dd4
    	R13: ffff9dfb46b78c24 R14: ffff9dfb41525300 R15: ffff9dfb46b78da8
    	FS:  0000000000000000(0000) GS:ffff9dfc67c00000(0000) knlGS:0000000000000000
    	CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    	CR2: 0000000000000070 CR3: 000000018da10004 CR4: 00000000000206f0
    	Call Trace:
    	qla_nvme_register_remote+0xeb/0x1f0 [qla2xxx]
    	? qla2x00_dfs_create_rport+0x231/0x270 [qla2xxx]
    	qla2x00_update_fcport+0x2a1/0x3c0 [qla2xxx]
    	qla_register_fcport_fn+0x54/0xc0 [qla2xxx]
    
    Exit the qla_nvme_register_remote() function when qla_nvme_register_hba()
    fails and correctly validate nvme_local_port.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarNilesh Javali <njavali@marvell.com>
    Link: https://lore.kernel.org/r/20240710171057.35066-3-njavali@marvell.comReviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    eb1d4ce2
qla_nvme.c 35.5 KB