From: Christoph Hellwig Date: Fri, 22 May 2015 09:12:45 +0000 (+0200) Subject: nvme: fail SCSI read/write command with unsupported protection bit X-Git-Tag: v4.1.12-92~126^2~257 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7e609a80899dea337174242f62dd7c24a6a74716;p=users%2Fjedix%2Flinux-maple.git nvme: fail SCSI read/write command with unsupported protection bit Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe (cherry picked from commit 772ce43559e076730ddff5907fabcb3485545e38) Orabug: 22620486 Signed-off-by: Jason Luo --- diff --git a/drivers/block/nvme-scsi.c b/drivers/block/nvme-scsi.c index 3b033b5599356..55908e56beebe 100644 --- a/drivers/block/nvme-scsi.c +++ b/drivers/block/nvme-scsi.c @@ -1901,6 +1901,13 @@ static int nvme_trans_io(struct nvme_ns *ns, struct sg_io_hdr *hdr, u8 is_write, default: cdb_info.fua = cmd[1] & 0x8; cdb_info.prot_info = (cmd[1] & 0xe0) >> 5; + if (cdb_info.prot_info && !ns->pi_type) { + return nvme_trans_completion(hdr, + SAM_STAT_CHECK_CONDITION, + ILLEGAL_REQUEST, + SCSI_ASC_INVALID_CDB, + SCSI_ASCQ_CAUSE_NOT_REPORTABLE); + } } switch (opcode) {