]> www.infradead.org Git - users/hch/block.git/commitdiff
sd: remove sd_dif.c
authorChristoph Hellwig <hch@lst.de>
Thu, 9 Jun 2022 06:00:40 +0000 (08:00 +0200)
committerChristoph Hellwig <hch@lst.de>
Thu, 9 Jun 2022 07:29:18 +0000 (09:29 +0200)
Move the one remaining function into sd.c, and use IS_ENABLED to call
it compile time conditional instead of using ifdefs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/Makefile
drivers/scsi/sd.c
drivers/scsi/sd.h
drivers/scsi/sd_dif.c [deleted file]

index 2ad3bc0525316ad7cce702724b6d4f3321856596..4fbacdd4a867b9705d0ab394f6ce22a64affe521 100644 (file)
@@ -172,7 +172,6 @@ scsi_mod-$(CONFIG_BLK_DEV_BSG)      += scsi_bsg.o
 hv_storvsc-y                   := storvsc_drv.o
 
 sd_mod-objs    := sd.o
-sd_mod-$(CONFIG_BLK_DEV_INTEGRITY) += sd_dif.o
 sd_mod-$(CONFIG_BLK_DEV_ZONED) += sd_zbc.o
 
 sr_mod-objs    := sr.o sr_ioctl.o sr_vendor.o
index 9011aa2350578a29557863777e0577e9d666058e..be8751f8f57aaf10567c68a99d970e389d610057 100644 (file)
@@ -1,11 +1,13 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- *      sd.c Copyright (C) 1992 Drew Eckhardt
- *           Copyright (C) 1993, 1994, 1995, 1999 Eric Youngdale
+ * Copyright (C) 1992 Drew Eckhardt
+ * Copyright (C) 1993, 1994, 1995, 1999 Eric Youngdale
+ * Copyright (C) 2007, 2008 Oracle Corporation
  *
  *      Linux scsi disk driver
  *              Initial versions: Drew Eckhardt
  *              Subsequent revisions: Eric Youngdale
+ *             T10-PI Support written by: Martin K. Petersen
  *     Modification history:
  *       - Drew Eckhardt <drew@colorado.edu> original
  *       - Eric Youngdale <eric@andante.org> add scatter-gather, multiple 
@@ -2188,6 +2190,64 @@ static int sd_read_protection_type(struct scsi_disk *sdkp, unsigned char *buffer
        return 0;
 }
 
+/*
+ * Configure exchange of protection information between OS and HBA.
+ */
+static void sd_dif_config_host(struct scsi_disk *sdkp)
+{
+       struct scsi_device *sdp = sdkp->device;
+       struct gendisk *disk = sdkp->disk;
+       u8 type = sdkp->protection_type;
+       struct blk_integrity bi;
+       int dif, dix;
+
+       dif = scsi_host_dif_capable(sdp->host, type);
+       dix = scsi_host_dix_capable(sdp->host, type);
+
+       if (!dix && scsi_host_dix_capable(sdp->host, 0)) {
+               dif = 0; dix = 1;
+       }
+
+       if (!dix)
+               return;
+
+       memset(&bi, 0, sizeof(bi));
+
+       /* Enable DMA of protection information */
+       if (scsi_host_get_guard(sdkp->device->host) & SHOST_DIX_GUARD_IP) {
+               if (type == T10_PI_TYPE3_PROTECTION)
+                       bi.profile = &t10_pi_type3_ip;
+               else
+                       bi.profile = &t10_pi_type1_ip;
+
+               bi.flags |= BLK_INTEGRITY_IP_CHECKSUM;
+       } else
+               if (type == T10_PI_TYPE3_PROTECTION)
+                       bi.profile = &t10_pi_type3_crc;
+               else
+                       bi.profile = &t10_pi_type1_crc;
+
+       bi.tuple_size = sizeof(struct t10_pi_tuple);
+
+       if (dif && type) {
+               bi.flags |= BLK_INTEGRITY_DEVICE_CAPABLE;
+
+               if (!sdkp->ATO)
+                       goto out;
+
+               if (type == T10_PI_TYPE3_PROTECTION)
+                       bi.tag_size = sizeof(u16) + sizeof(u32);
+               else
+                       bi.tag_size = sizeof(u16);
+       }
+
+       sd_printk(KERN_NOTICE, sdkp,
+                 "Enabling DIX %s, application tag size %u bytes\n",
+                 bi.profile->name, bi.tag_size);
+out:
+       blk_integrity_register(disk, &bi);
+}
+
 static void sd_config_protection(struct scsi_disk *sdkp)
 {
        struct scsi_device *sdp = sdkp->device;
@@ -2195,7 +2255,8 @@ static void sd_config_protection(struct scsi_disk *sdkp)
        if (!sdkp->first_scan)
                return;
 
-       sd_dif_config_host(sdkp);
+       if (IS_ENABLED(CONFIG_BLK_DEV_INTEGRITY))
+               sd_dif_config_host(sdkp);
 
        if (!sdkp->protection_type)
                return;
index 5eea762f84d188e15b516b05f0f98ba3892209a5..833c37e29d78d57a71ab37b0ec1039014ddfefda 100644 (file)
@@ -222,18 +222,6 @@ static inline sector_t sectors_to_logical(struct scsi_device *sdev, sector_t sec
        return sector >> (ilog2(sdev->sector_size) - 9);
 }
 
-#ifdef CONFIG_BLK_DEV_INTEGRITY
-
-extern void sd_dif_config_host(struct scsi_disk *);
-
-#else /* CONFIG_BLK_DEV_INTEGRITY */
-
-static inline void sd_dif_config_host(struct scsi_disk *disk)
-{
-}
-
-#endif /* CONFIG_BLK_DEV_INTEGRITY */
-
 static inline int sd_is_zoned(struct scsi_disk *sdkp)
 {
        return sdkp->zoned == 1 || sdkp->device->type == TYPE_ZBC;
diff --git a/drivers/scsi/sd_dif.c b/drivers/scsi/sd_dif.c
deleted file mode 100644 (file)
index 968993e..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * sd_dif.c - SCSI Data Integrity Field
- *
- * Copyright (C) 2007, 2008 Oracle Corporation
- * Written by: Martin K. Petersen <martin.petersen@oracle.com>
- */
-
-#include <linux/blk-integrity.h>
-#include <linux/t10-pi.h>
-
-#include <scsi/scsi.h>
-#include <scsi/scsi_cmnd.h>
-#include <scsi/scsi_dbg.h>
-#include <scsi/scsi_device.h>
-#include <scsi/scsi_driver.h>
-#include <scsi/scsi_eh.h>
-#include <scsi/scsi_host.h>
-#include <scsi/scsi_ioctl.h>
-#include <scsi/scsicam.h>
-
-#include "sd.h"
-
-/*
- * Configure exchange of protection information between OS and HBA.
- */
-void sd_dif_config_host(struct scsi_disk *sdkp)
-{
-       struct scsi_device *sdp = sdkp->device;
-       struct gendisk *disk = sdkp->disk;
-       u8 type = sdkp->protection_type;
-       struct blk_integrity bi;
-       int dif, dix;
-
-       dif = scsi_host_dif_capable(sdp->host, type);
-       dix = scsi_host_dix_capable(sdp->host, type);
-
-       if (!dix && scsi_host_dix_capable(sdp->host, 0)) {
-               dif = 0; dix = 1;
-       }
-
-       if (!dix)
-               return;
-
-       memset(&bi, 0, sizeof(bi));
-
-       /* Enable DMA of protection information */
-       if (scsi_host_get_guard(sdkp->device->host) & SHOST_DIX_GUARD_IP) {
-               if (type == T10_PI_TYPE3_PROTECTION)
-                       bi.profile = &t10_pi_type3_ip;
-               else
-                       bi.profile = &t10_pi_type1_ip;
-
-               bi.flags |= BLK_INTEGRITY_IP_CHECKSUM;
-       } else
-               if (type == T10_PI_TYPE3_PROTECTION)
-                       bi.profile = &t10_pi_type3_crc;
-               else
-                       bi.profile = &t10_pi_type1_crc;
-
-       bi.tuple_size = sizeof(struct t10_pi_tuple);
-
-       if (dif && type) {
-               bi.flags |= BLK_INTEGRITY_DEVICE_CAPABLE;
-
-               if (!sdkp->ATO)
-                       goto out;
-
-               if (type == T10_PI_TYPE3_PROTECTION)
-                       bi.tag_size = sizeof(u16) + sizeof(u32);
-               else
-                       bi.tag_size = sizeof(u16);
-       }
-
-       sd_printk(KERN_NOTICE, sdkp,
-                 "Enabling DIX %s, application tag size %u bytes\n",
-                 bi.profile->name, bi.tag_size);
-out:
-       blk_integrity_register(disk, &bi);
-}
-