From 9e06688e7d60149cc9ef78ff29515c20186bb418 Mon Sep 17 00:00:00 2001 From: "Martin K. Petersen" Date: Fri, 19 Sep 2008 18:47:21 -0400 Subject: [SCSI] sd: Correctly handle all combinations of DIF and DIX The old detection code couldn't handle all possible combinations of DIX and DIF. This version does, giving priority to DIX if the controller is capable. Signed-off-by: Martin K. Petersen Signed-off-by: James Bottomley --- drivers/scsi/sd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/scsi/sd.h') diff --git a/drivers/scsi/sd.h b/drivers/scsi/sd.h index 95b9f06534d..a92b991d98a 100644 --- a/drivers/scsi/sd.h +++ b/drivers/scsi/sd.h @@ -99,7 +99,7 @@ struct sd_dif_tuple { #if defined(CONFIG_BLK_DEV_INTEGRITY) -extern void sd_dif_op(struct scsi_cmnd *, unsigned int, unsigned int); +extern void sd_dif_op(struct scsi_cmnd *, unsigned int, unsigned int, unsigned int); extern void sd_dif_config_host(struct scsi_disk *); extern int sd_dif_prepare(struct request *rq, sector_t, unsigned int); extern void sd_dif_complete(struct scsi_cmnd *, unsigned int); -- cgit v1.2.3 From 4c393e6e457fb41169dd110c1b96a138394c2d7b Mon Sep 17 00:00:00 2001 From: James Bottomley Date: Mon, 13 Oct 2008 15:20:06 -0400 Subject: [SCSI] sd: fix compile failure with CONFIG_BLK_DEV_INTEGRITY=n Signed-off-by: James Bottomley --- drivers/scsi/sd.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'drivers/scsi/sd.h') diff --git a/drivers/scsi/sd.h b/drivers/scsi/sd.h index a92b991d98a..75638e7d3f6 100644 --- a/drivers/scsi/sd.h +++ b/drivers/scsi/sd.h @@ -97,7 +97,7 @@ struct sd_dif_tuple { __be32 ref_tag; /* Target LBA or indirect LBA */ }; -#if defined(CONFIG_BLK_DEV_INTEGRITY) +#ifdef CONFIG_BLK_DEV_INTEGRITY extern void sd_dif_op(struct scsi_cmnd *, unsigned int, unsigned int, unsigned int); extern void sd_dif_config_host(struct scsi_disk *); @@ -106,10 +106,19 @@ extern void sd_dif_complete(struct scsi_cmnd *, unsigned int); #else /* CONFIG_BLK_DEV_INTEGRITY */ -#define sd_dif_op(a, b, c) do { } while (0) -#define sd_dif_config_host(a) do { } while (0) -#define sd_dif_prepare(a, b, c) (0) -#define sd_dif_complete(a, b) (0) +static inline void sd_dif_op(struct scsi_cmnd *cmd, unsigned int a, unsigned int b, unsigned int c) +{ +} +static inline void sd_dif_config_host(struct scsi_disk *disk) +{ +} +static inline int sd_dif_prepare(struct request *rq, sector_t s, unsigned int a) +{ + return 0; +} +static inline void sd_dif_complete(struct scsi_cmnd *cmd, unsigned int a) +{ +} #endif /* CONFIG_BLK_DEV_INTEGRITY */ -- cgit v1.2.3