From: Dan Carpenter <dan.carpenter@oracle.com>
To: martin.petersen@oracle.com
Cc: linux-scsi@vger.kernel.org
Subject: re: [SCSI] sd: Ensure we correctly disable devices with unknown protection type
Date: Wed, 26 Sep 2012 11:26:48 +0300 [thread overview]
Message-ID: <20120926082648.GA6721@elgon.mountain> (raw)
Hi Martin,
The patch fe542396da73: "[SCSI] sd: Ensure we correctly disable
devices with unknown protection type" from Sep 21, 2012, leads to the
following warning:
include/scsi/scsi_host.h:879 scsi_host_dif_capable()
warn: buffer overflow 'cap' 4 <= 4
838 enum scsi_host_prot_capabilities {
839 SHOST_DIF_TYPE1_PROTECTION = 1 << 0, /* T10 DIF Type 1 */
840 SHOST_DIF_TYPE2_PROTECTION = 1 << 1, /* T10 DIF Type 2 */
841 SHOST_DIF_TYPE3_PROTECTION = 1 << 2, /* T10 DIF Type 3 */
842
843 SHOST_DIX_TYPE0_PROTECTION = 1 << 3, /* DIX between OS and HBA only */
844 SHOST_DIX_TYPE1_PROTECTION = 1 << 4, /* DIX with DIF Type 1 */
845 SHOST_DIX_TYPE2_PROTECTION = 1 << 5, /* DIX with DIF Type 2 */
846 SHOST_DIX_TYPE3_PROTECTION = 1 << 6, /* DIX with DIF Type 3 */
847 };
869 static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsigned int target_type)
870 {
871 static unsigned char cap[] = { 0,
872 SHOST_DIF_TYPE1_PROTECTION,
873 SHOST_DIF_TYPE2_PROTECTION,
874 SHOST_DIF_TYPE3_PROTECTION };
875
876 if (target_type > SHOST_DIF_TYPE3_PROTECTION)
877 return 0;
878
879 return shost->prot_capabilities & cap[target_type] ? target_type : 0;
^^^^^^^^^^^^^^^^
It looks like we're doing cap[1 << 2] here not cap[2].
880 }
882 static inline unsigned int scsi_host_dix_capable(struct Scsi_Host *shost, unsigned int target_type)
883 {
884 #if defined(CONFIG_BLK_DEV_INTEGRITY)
885 static unsigned char cap[] = { SHOST_DIX_TYPE0_PROTECTION,
886 SHOST_DIX_TYPE1_PROTECTION,
887 SHOST_DIX_TYPE2_PROTECTION,
888 SHOST_DIX_TYPE3_PROTECTION };
889
890 if (target_type > SHOST_DIX_TYPE3_PROTECTION)
891 return 0;
892
893 return shost->prot_capabilities & cap[target_type];
^^^^^^^^^^^^^^^^^
We're doing cap[1 << 6] here, not cap[6];
894 #endif
895 return 0;
896 }
regards,
dan carpenter
next reply other threads:[~2012-09-26 8:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-26 8:26 Dan Carpenter [this message]
2012-09-27 2:39 ` [SCSI] sd: Ensure we correctly disable devices with unknown protection type Martin K. Petersen
2013-02-06 19:29 ` Dan Carpenter
2013-02-07 19:24 ` Martin K. Petersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120926082648.GA6721@elgon.mountain \
--to=dan.carpenter@oracle.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).