#              HBA supports DIX Type 1: Host to HBA  Type 1 protection
 #
 */
-unsigned int lpfc_prot_mask = SHOST_DIF_TYPE1_PROTECTION |
-                             SHOST_DIX_TYPE0_PROTECTION |
-                             SHOST_DIX_TYPE1_PROTECTION;
-
-module_param(lpfc_prot_mask, uint, S_IRUGO);
-MODULE_PARM_DESC(lpfc_prot_mask, "host protection mask");
+LPFC_ATTR(prot_mask,
+       (SHOST_DIF_TYPE1_PROTECTION |
+       SHOST_DIX_TYPE0_PROTECTION |
+       SHOST_DIX_TYPE1_PROTECTION),
+       0,
+       (SHOST_DIF_TYPE1_PROTECTION |
+       SHOST_DIX_TYPE0_PROTECTION |
+       SHOST_DIX_TYPE1_PROTECTION),
+       "T10-DIF host protection capabilities mask");
 
 /*
 # lpfc_prot_guard: i
 #      - Default will result in registering capabilities for all guard types
 #
 */
-unsigned char lpfc_prot_guard = SHOST_DIX_GUARD_IP;
-module_param(lpfc_prot_guard, byte, S_IRUGO);
-MODULE_PARM_DESC(lpfc_prot_guard, "host protection guard type");
+LPFC_ATTR(prot_guard,
+       SHOST_DIX_GUARD_IP, SHOST_DIX_GUARD_CRC, SHOST_DIX_GUARD_IP,
+       "T10-DIF host protection guard type");
 
 /*
  * Delay initial NPort discovery when Clean Address bit is cleared in
        phba->cfg_oas_flags = 0;
        phba->cfg_oas_priority = 0;
        lpfc_enable_bg_init(phba, lpfc_enable_bg);
+       lpfc_prot_mask_init(phba, lpfc_prot_mask);
+       lpfc_prot_guard_init(phba, lpfc_prot_guard);
        if (phba->sli_rev == LPFC_SLI_REV4)
                phba->cfg_poll = 0;
        else
 
        uint32_t old_guard;
 
        int pagecnt = 10;
-       if (lpfc_prot_mask && lpfc_prot_guard) {
+       if (phba->cfg_prot_mask && phba->cfg_prot_guard) {
                lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
                                "1478 Registering BlockGuard with the "
                                "SCSI layer\n");
 
-               old_mask = lpfc_prot_mask;
-               old_guard = lpfc_prot_guard;
+               old_mask = phba->cfg_prot_mask;
+               old_guard = phba->cfg_prot_guard;
 
                /* Only allow supported values */
-               lpfc_prot_mask &= (SHOST_DIF_TYPE1_PROTECTION |
+               phba->cfg_prot_mask &= (SHOST_DIF_TYPE1_PROTECTION |
                        SHOST_DIX_TYPE0_PROTECTION |
                        SHOST_DIX_TYPE1_PROTECTION);
-               lpfc_prot_guard &= (SHOST_DIX_GUARD_IP | SHOST_DIX_GUARD_CRC);
+               phba->cfg_prot_guard &= (SHOST_DIX_GUARD_IP |
+                                        SHOST_DIX_GUARD_CRC);
 
                /* DIF Type 1 protection for profiles AST1/C1 is end to end */
-               if (lpfc_prot_mask == SHOST_DIX_TYPE1_PROTECTION)
-                       lpfc_prot_mask |= SHOST_DIF_TYPE1_PROTECTION;
+               if (phba->cfg_prot_mask == SHOST_DIX_TYPE1_PROTECTION)
+                       phba->cfg_prot_mask |= SHOST_DIF_TYPE1_PROTECTION;
 
-               if (lpfc_prot_mask && lpfc_prot_guard) {
-                       if ((old_mask != lpfc_prot_mask) ||
-                               (old_guard != lpfc_prot_guard))
+               if (phba->cfg_prot_mask && phba->cfg_prot_guard) {
+                       if ((old_mask != phba->cfg_prot_mask) ||
+                               (old_guard != phba->cfg_prot_guard))
                                lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
                                        "1475 Registering BlockGuard with the "
                                        "SCSI layer: mask %d  guard %d\n",
-                                       lpfc_prot_mask, lpfc_prot_guard);
+                                       phba->cfg_prot_mask,
+                                       phba->cfg_prot_guard);
 
-                       scsi_host_set_prot(shost, lpfc_prot_mask);
-                       scsi_host_set_guard(shost, lpfc_prot_guard);
+                       scsi_host_set_prot(shost, phba->cfg_prot_mask);
+                       scsi_host_set_guard(shost, phba->cfg_prot_guard);
                } else
                        lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
                                "1479 Not Registering BlockGuard with the SCSI "