Patch "scsi: mpt3sas: Reject NVMe Encap cmnds to unsupported HBA" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: mpt3sas: Reject NVMe Encap cmnds to unsupported HBA

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-mpt3sas-reject-nvme-encap-cmnds-to-unsupported-.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 09d7e9e7ab1460b19fa119a742b4ea52c48d9396
Author: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxx>
Date:   Fri Sep 13 09:04:48 2019 -0400

    scsi: mpt3sas: Reject NVMe Encap cmnds to unsupported HBA
    
    [ Upstream commit 77fd4f2c88bf83205a21f9ca49fdcc0c7868dba9 ]
    
    If any faulty application issues an NVMe Encapsulated commands to HBA which
    doesn't support NVMe protocol then driver should return the command as
    invalid with the following message.
    
    "HBA doesn't support NVMe. Rejecting NVMe Encapsulated request."
    
    Otherwise below page fault kernel panic will be observed while building the
    PRPs as there is no PRP pools allocated for the HBA which doesn't support
    NVMe drives.
    
    RIP: 0010:_base_build_nvme_prp+0x3b/0xf0 [mpt3sas]
    Call Trace:
     _ctl_do_mpt_command+0x931/0x1120 [mpt3sas]
     _ctl_ioctl_main.isra.11+0xa28/0x11e0 [mpt3sas]
     ? prepare_to_wait+0xb0/0xb0
     ? tty_ldisc_deref+0x16/0x20
     _ctl_ioctl+0x1a/0x20 [mpt3sas]
     do_vfs_ioctl+0xaa/0x620
     ? vfs_read+0x117/0x140
     ksys_ioctl+0x67/0x90
     __x64_sys_ioctl+0x1a/0x20
     do_syscall_64+0x60/0x190
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    [mkp: tweaked error string]
    
    Link: https://lore.kernel.org/r/1568379890-18347-12-git-send-email-sreekanth.reddy@xxxxxxxxxxxx
    Signed-off-by: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/mpt3sas/mpt3sas_ctl.c b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
index 3c463e8f6074..b95f7d062ea4 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_ctl.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_ctl.c
@@ -778,6 +778,18 @@ _ctl_do_mpt_command(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command karg,
 	case MPI2_FUNCTION_NVME_ENCAPSULATED:
 	{
 		nvme_encap_request = (Mpi26NVMeEncapsulatedRequest_t *)request;
+		if (!ioc->pcie_sg_lookup) {
+			dtmprintk(ioc, ioc_info(ioc,
+			    "HBA doesn't support NVMe. Rejecting NVMe Encapsulated request.\n"
+			    ));
+
+			if (ioc->logging_level & MPT_DEBUG_TM)
+				_debug_dump_mf(nvme_encap_request,
+				    ioc->request_sz/4);
+			mpt3sas_base_free_smid(ioc, smid);
+			ret = -EINVAL;
+			goto out;
+		}
 		/*
 		 * Get the Physical Address of the sense buffer.
 		 * Use Error Response buffer address field to hold the sense



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux