Page MenuHomeFreeBSD

D45494.id139489.diff
No OneTemporary

D45494.id139489.diff

Index: sys/dev/aic7xxx/aic79xx.c
===================================================================
--- sys/dev/aic7xxx/aic79xx.c
+++ sys/dev/aic7xxx/aic79xx.c
@@ -8593,8 +8593,7 @@
if (sg_prefetch_align == 0)
sg_prefetch_align = 8;
/* Round down to the nearest power of 2. */
- while (powerof2(sg_prefetch_align) == 0)
- sg_prefetch_align--;
+ sg_prefetch_align = 1 << ilog2(sg_prefetch_align);
cacheline_mask = sg_prefetch_align - 1;
Index: sys/dev/cxgb/cxgb_sge.c
===================================================================
--- sys/dev/cxgb/cxgb_sge.c
+++ sys/dev/cxgb/cxgb_sge.c
@@ -553,9 +553,7 @@
nqsets *= adap->params.nports;
fl_q_size = min(nmbclusters/(3*nqsets), FL_Q_SIZE);
-
- while (!powerof2(fl_q_size))
- fl_q_size--;
+ fl_q_size = 1 << ilog2(fl_q_size);
use_16k = cxgb_use_16k_clusters != -1 ? cxgb_use_16k_clusters :
is_offload(adap);
@@ -567,8 +565,7 @@
jumbo_q_size = min(nmbjumbo9/(3*nqsets), JUMBO_Q_SIZE);
jumbo_buf_size = MJUM9BYTES;
}
- while (!powerof2(jumbo_q_size))
- jumbo_q_size--;
+ jumbo_q_size = 1 << ilog2(jumbo_q_size);
if (fl_q_size < (FL_Q_SIZE / 4) || jumbo_q_size < (JUMBO_Q_SIZE / 2))
device_printf(adap->dev,
Index: sys/dev/cxgbe/t4_sge.c
===================================================================
--- sys/dev/cxgbe/t4_sge.c
+++ sys/dev/cxgbe/t4_sge.c
@@ -4220,9 +4220,7 @@
{
u_int fthresh;
- while (!powerof2(qsize))
- qsize++;
- fthresh = ilog2(qsize);
+ fthresh = qsize == 0 ? 0 : fls(qsize - 1);
if (fthresh > X_CIDXFLUSHTHRESH_128)
fthresh = X_CIDXFLUSHTHRESH_128;
Index: sys/dev/irdma/irdma_ctrl.c
===================================================================
--- sys/dev/irdma/irdma_ctrl.c
+++ sys/dev/irdma/irdma_ctrl.c
@@ -4909,7 +4909,7 @@
struct irdma_virt_mem virt_mem;
u32 i, mem_size;
u32 qpwanted, mrwanted, pblewanted;
- u32 powerof2, hte;
+ u32 hte;
u32 sd_needed;
u32 sd_diff;
u32 loop_count = 0;
@@ -4938,12 +4938,8 @@
hmc_info->sd_table.sd_cnt, max_sds);
qpwanted = min(qp_count, hmc_info->hmc_obj[IRDMA_HMC_IW_QP].max_cnt);
-
- powerof2 = 1;
- while (powerof2 <= qpwanted)
- powerof2 *= 2;
- powerof2 /= 2;
- qpwanted = powerof2;
+ if (qpwanted != 0)
+ qpwanted = 1 << ilog2(qpwanted);
mrwanted = hmc_info->hmc_obj[IRDMA_HMC_IW_MR].max_cnt;
pblewanted = hmc_info->hmc_obj[IRDMA_HMC_IW_PBLE].max_cnt;
@@ -4986,11 +4982,9 @@
hmc_info->hmc_obj[IRDMA_HMC_IW_MR].cnt = mrwanted;
hte = round_up(qpwanted + hmc_info->hmc_obj[IRDMA_HMC_IW_FSIMC].cnt, 512);
- powerof2 = 1;
- while (powerof2 < hte)
- powerof2 *= 2;
+ hte = hte == 0 ? 1 : 1 << fls(hte - 1);
hmc_info->hmc_obj[IRDMA_HMC_IW_HTE].cnt =
- powerof2 * hmc_fpm_misc->ht_multiplier;
+ hte * hmc_fpm_misc->ht_multiplier;
if (dev->hw_attrs.uk_attrs.hw_rev == IRDMA_GEN_1)
cfg_fpm_value_gen_1(dev, hmc_info, qpwanted);
else
Index: sys/dev/mlx5/mlx5_en/mlx5_en_main.c
===================================================================
--- sys/dev/mlx5/mlx5_en/mlx5_en_main.c
+++ sys/dev/mlx5/mlx5_en/mlx5_en_main.c
@@ -2331,9 +2331,7 @@
* Stride size is 16 * (n + 1), as the first segment is
* control.
*/
- for (n = howmany(r, MLX5E_MAX_RX_BYTES); !powerof2(n + 1); n++)
- ;
-
+ n = (1 << fls(howmany(r, MLX5E_MAX_RX_BYTES))) - 1;
if (n > MLX5E_MAX_BUSDMA_RX_SEGS)
return (-ENOMEM);

File Metadata

Mime Type
text/plain
Expires
Sat, Jun 6, 8:09 PM (51 m, 54 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33784792
Default Alt Text
D45494.id139489.diff (3 KB)

Event Timeline