Commit e9268a94 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by David S. Miller

hv_netvsc: Use bitmap_zalloc() when applicable

'send_section_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.

While at it, change an '== NULL' test into a '!'.
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5e6c7ccd
...@@ -155,7 +155,7 @@ static void free_netvsc_device(struct rcu_head *head) ...@@ -155,7 +155,7 @@ static void free_netvsc_device(struct rcu_head *head)
kfree(nvdev->extension); kfree(nvdev->extension);
vfree(nvdev->recv_buf); vfree(nvdev->recv_buf);
vfree(nvdev->send_buf); vfree(nvdev->send_buf);
kfree(nvdev->send_section_map); bitmap_free(nvdev->send_section_map);
for (i = 0; i < VRSS_CHANNEL_MAX; i++) { for (i = 0; i < VRSS_CHANNEL_MAX; i++) {
xdp_rxq_info_unreg(&nvdev->chan_table[i].xdp_rxq); xdp_rxq_info_unreg(&nvdev->chan_table[i].xdp_rxq);
...@@ -336,7 +336,6 @@ static int netvsc_init_buf(struct hv_device *device, ...@@ -336,7 +336,6 @@ static int netvsc_init_buf(struct hv_device *device,
struct net_device *ndev = hv_get_drvdata(device); struct net_device *ndev = hv_get_drvdata(device);
struct nvsp_message *init_packet; struct nvsp_message *init_packet;
unsigned int buf_size; unsigned int buf_size;
size_t map_words;
int i, ret = 0; int i, ret = 0;
/* Get receive buffer area. */ /* Get receive buffer area. */
...@@ -528,10 +527,9 @@ static int netvsc_init_buf(struct hv_device *device, ...@@ -528,10 +527,9 @@ static int netvsc_init_buf(struct hv_device *device,
net_device->send_section_size, net_device->send_section_cnt); net_device->send_section_size, net_device->send_section_cnt);
/* Setup state for managing the send buffer. */ /* Setup state for managing the send buffer. */
map_words = DIV_ROUND_UP(net_device->send_section_cnt, BITS_PER_LONG); net_device->send_section_map = bitmap_zalloc(net_device->send_section_cnt,
GFP_KERNEL);
net_device->send_section_map = kcalloc(map_words, sizeof(ulong), GFP_KERNEL); if (!net_device->send_section_map) {
if (net_device->send_section_map == NULL) {
ret = -ENOMEM; ret = -ENOMEM;
goto cleanup; goto cleanup;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment