IB/iser: Simplify prot_caps setting
authorMax Gurtovoy <mgurtovoy@nvidia.com>
Mon, 11 Jan 2021 14:57:54 +0000 (14:57 +0000)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 20 Jan 2021 00:02:07 +0000 (20:02 -0400)
Reduce the number of instructions made for setting protection caps. No
need to do bitwise OR with 0 since we can zero the return value in the
beginning of the function.

Link: https://lore.kernel.org/r/20210111145754.56727-5-mgurtovoy@nvidia.com
Reviewed-by: Israel Rukshin <israelr@nvidia.com>
Signed-off-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/ulp/iser/iscsi_iser.c

index fcfdeb5dea42a6267f2747a4e08b19519b83a643..8fcaa1136f2cd42b45b38cd520230b6e8bd88627 100644 (file)
@@ -590,13 +590,20 @@ iscsi_iser_session_destroy(struct iscsi_cls_session *cls_session)
 static inline unsigned int
 iser_dif_prot_caps(int prot_caps)
 {
-       return ((prot_caps & IB_PROT_T10DIF_TYPE_1) ?
-               SHOST_DIF_TYPE1_PROTECTION | SHOST_DIX_TYPE0_PROTECTION |
-               SHOST_DIX_TYPE1_PROTECTION : 0) |
-              ((prot_caps & IB_PROT_T10DIF_TYPE_2) ?
-               SHOST_DIF_TYPE2_PROTECTION | SHOST_DIX_TYPE2_PROTECTION : 0) |
-              ((prot_caps & IB_PROT_T10DIF_TYPE_3) ?
-               SHOST_DIF_TYPE3_PROTECTION | SHOST_DIX_TYPE3_PROTECTION : 0);
+       int ret = 0;
+
+       if (prot_caps & IB_PROT_T10DIF_TYPE_1)
+               ret |= SHOST_DIF_TYPE1_PROTECTION |
+                      SHOST_DIX_TYPE0_PROTECTION |
+                      SHOST_DIX_TYPE1_PROTECTION;
+       if (prot_caps & IB_PROT_T10DIF_TYPE_2)
+               ret |= SHOST_DIF_TYPE2_PROTECTION |
+                      SHOST_DIX_TYPE2_PROTECTION;
+       if (prot_caps & IB_PROT_T10DIF_TYPE_3)
+               ret |= SHOST_DIF_TYPE3_PROTECTION |
+                      SHOST_DIX_TYPE3_PROTECTION;
+
+       return ret;
 }
 
 /**