diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c index 0e9d22e9c..701bfc2ba 100755 --- a/net/smc/smc_core.c +++ b/net/smc/smc_core.c @@ -1385,6 +1385,7 @@ out: */ static u8 smc_compress_bufsize(int size, bool is_smcd, bool is_rmb) { + const unsigned int max_scat = SG_MAX_SINGLE_ALLOC * PAGE_SIZE; u8 compressed; if (size <= SMC_BUF_MIN_SIZE) @@ -1394,11 +1395,9 @@ static u8 smc_compress_bufsize(int size, bool is_smcd, bool is_rmb) compressed = min_t(u8, ilog2(size) + 1, is_smcd ? SMCD_DMBE_SIZES : SMCR_RMBE_SIZES); -#ifdef CONFIG_ARCH_NO_SG_CHAIN if (!is_smcd && is_rmb) /* RMBs are backed by & limited to max size of scatterlists */ - compressed = min_t(u8, compressed, ilog2((SG_MAX_SINGLE_ALLOC * PAGE_SIZE) >> 14)); -#endif + compressed = min_t(u8, compressed, ilog2(max_scat >> 14)); return compressed; }