typedef __be16 (csum_fn) (void *, unsigned int);
 
-static const __be16 APP_ESCAPE = (__force __be16) 0xffff;
-static const __be32 REF_ESCAPE = (__force __be32) 0xffffffff;
-
 static __be16 t10_pi_crc_fn(void *data, unsigned int len)
 {
        return cpu_to_be16(crc_t10dif(data, len));
                switch (type) {
                case 1:
                case 2:
-                       if (pi->app_tag == APP_ESCAPE)
+                       if (pi->app_tag == T10_PI_APP_ESCAPE)
                                goto next;
 
                        if (be32_to_cpu(pi->ref_tag) !=
                        }
                        break;
                case 3:
-                       if (pi->app_tag == APP_ESCAPE &&
-                           pi->ref_tag == REF_ESCAPE)
+                       if (pi->app_tag == T10_PI_APP_ESCAPE &&
+                           pi->ref_tag == T10_PI_REF_ESCAPE)
                                goto next;
                        break;
                }
 
 #include <linux/export.h>
 #include <linux/delay.h>
 #include <asm/unaligned.h>
+#include <linux/t10-pi.h>
 #include <linux/crc-t10dif.h>
 #include <net/checksum.h>
 
                                 * First check to see if a protection data
                                 * check is valid
                                 */
-                               if ((src->ref_tag == 0xffffffff) ||
-                                   (src->app_tag == 0xffff)) {
+                               if ((src->ref_tag == T10_PI_REF_ESCAPE) ||
+                                   (src->app_tag == T10_PI_APP_ESCAPE)) {
                                        start_ref_tag++;
                                        goto skipit;
                                }
 
         * For type     3: ref & app tag is all 'f's
         * For type 0,1,2: app tag is all 'f's
         */
-       if ((a_app_tag == 0xffff) &&
+       if ((a_app_tag == T10_PI_APP_ESCAPE) &&
            ((scsi_get_prot_type(cmd) != SCSI_PROT_DIF_TYPE3) ||
-            (a_ref_tag == 0xffffffff))) {
+            (a_ref_tag == T10_PI_REF_ESCAPE))) {
                uint32_t blocks_done, resid;
                sector_t lba_s = scsi_get_lba(cmd);
 
                        spt = page_address(sg_page(sg)) + sg->offset;
                        spt += j;
 
-                       spt->app_tag = 0xffff;
+                       spt->app_tag = T10_PI_APP_ESCAPE;
                        if (scsi_get_prot_type(cmd) == SCSI_PROT_DIF_TYPE3)
-                               spt->ref_tag = 0xffffffff;
+                               spt->ref_tag = T10_PI_REF_ESCAPE;
                }
 
                return 0;
 
                                 (unsigned long long)sector, sdt->guard_tag,
                                 sdt->app_tag, be32_to_cpu(sdt->ref_tag));
 
-                       if (sdt->app_tag == cpu_to_be16(0xffff)) {
+                       if (sdt->app_tag == T10_PI_APP_ESCAPE) {
                                dsg_off += block_size;
                                goto next;
                        }
 
        __be32 ref_tag;         /* Target LBA or indirect LBA */
 };
 
+#define T10_PI_APP_ESCAPE cpu_to_be16(0xffff)
+#define T10_PI_REF_ESCAPE cpu_to_be32(0xffffffff)
 
 extern const struct blk_integrity_profile t10_pi_type1_crc;
 extern const struct blk_integrity_profile t10_pi_type1_ip;