qed: Use the bitmap API to simplify some functions
'cid_map' is a bitmap. So use 'bitmap_zalloc()' to simplify code, improve the semantic and avoid some open-coded arithmetic in allocator arguments. Also change the corresponding 'kfree()' into 'bitmap_free()' to keep consistency. Also change some 'memset()' into 'bitmap_zero()' to keep consistency. This is also much less verbose. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
08a7abf4af
Коммит
5e6c7ccd3e
|
@ -1036,12 +1036,12 @@ static void qed_cid_map_free(struct qed_hwfn *p_hwfn)
|
|||
u32 type, vf;
|
||||
|
||||
for (type = 0; type < MAX_CONN_TYPES; type++) {
|
||||
kfree(p_mngr->acquired[type].cid_map);
|
||||
bitmap_free(p_mngr->acquired[type].cid_map);
|
||||
p_mngr->acquired[type].max_count = 0;
|
||||
p_mngr->acquired[type].start_cid = 0;
|
||||
|
||||
for (vf = 0; vf < MAX_NUM_VFS; vf++) {
|
||||
kfree(p_mngr->acquired_vf[type][vf].cid_map);
|
||||
bitmap_free(p_mngr->acquired_vf[type][vf].cid_map);
|
||||
p_mngr->acquired_vf[type][vf].max_count = 0;
|
||||
p_mngr->acquired_vf[type][vf].start_cid = 0;
|
||||
}
|
||||
|
@ -1054,15 +1054,10 @@ qed_cid_map_alloc_single(struct qed_hwfn *p_hwfn,
|
|||
u32 cid_start,
|
||||
u32 cid_count, struct qed_cid_acquired_map *p_map)
|
||||
{
|
||||
u32 size;
|
||||
|
||||
if (!cid_count)
|
||||
return 0;
|
||||
|
||||
size = DIV_ROUND_UP(cid_count,
|
||||
sizeof(unsigned long) * BITS_PER_BYTE) *
|
||||
sizeof(unsigned long);
|
||||
p_map->cid_map = kzalloc(size, GFP_KERNEL);
|
||||
p_map->cid_map = bitmap_zalloc(cid_count, GFP_KERNEL);
|
||||
if (!p_map->cid_map)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -1216,7 +1211,6 @@ void qed_cxt_mngr_setup(struct qed_hwfn *p_hwfn)
|
|||
struct qed_cid_acquired_map *p_map;
|
||||
struct qed_conn_type_cfg *p_cfg;
|
||||
int type;
|
||||
u32 len;
|
||||
|
||||
/* Reset acquired cids */
|
||||
for (type = 0; type < MAX_CONN_TYPES; type++) {
|
||||
|
@ -1225,11 +1219,7 @@ void qed_cxt_mngr_setup(struct qed_hwfn *p_hwfn)
|
|||
p_cfg = &p_mngr->conn_cfg[type];
|
||||
if (p_cfg->cid_count) {
|
||||
p_map = &p_mngr->acquired[type];
|
||||
len = DIV_ROUND_UP(p_map->max_count,
|
||||
sizeof(unsigned long) *
|
||||
BITS_PER_BYTE) *
|
||||
sizeof(unsigned long);
|
||||
memset(p_map->cid_map, 0, len);
|
||||
bitmap_zero(p_map->cid_map, p_map->max_count);
|
||||
}
|
||||
|
||||
if (!p_cfg->cids_per_vf)
|
||||
|
@ -1237,11 +1227,7 @@ void qed_cxt_mngr_setup(struct qed_hwfn *p_hwfn)
|
|||
|
||||
for (vf = 0; vf < MAX_NUM_VFS; vf++) {
|
||||
p_map = &p_mngr->acquired_vf[type][vf];
|
||||
len = DIV_ROUND_UP(p_map->max_count,
|
||||
sizeof(unsigned long) *
|
||||
BITS_PER_BYTE) *
|
||||
sizeof(unsigned long);
|
||||
memset(p_map->cid_map, 0, len);
|
||||
bitmap_zero(p_map->cid_map, p_map->max_count);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче