diff options
-rw-r--r-- | drivers/target/target_core_user.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c index 396c2fa1ec22..4eeeaaf3796b 100644 --- a/drivers/target/target_core_user.c +++ b/drivers/target/target_core_user.c | |||
@@ -1633,7 +1633,7 @@ static void tcmu_dev_kref_release(struct kref *kref) | |||
1633 | WARN_ON(!all_expired); | 1633 | WARN_ON(!all_expired); |
1634 | 1634 | ||
1635 | tcmu_blocks_release(&udev->data_blocks, 0, udev->dbi_max + 1); | 1635 | tcmu_blocks_release(&udev->data_blocks, 0, udev->dbi_max + 1); |
1636 | kfree(udev->data_bitmap); | 1636 | bitmap_free(udev->data_bitmap); |
1637 | mutex_unlock(&udev->cmdr_lock); | 1637 | mutex_unlock(&udev->cmdr_lock); |
1638 | 1638 | ||
1639 | call_rcu(&dev->rcu_head, tcmu_dev_call_rcu); | 1639 | call_rcu(&dev->rcu_head, tcmu_dev_call_rcu); |
@@ -1841,9 +1841,7 @@ static int tcmu_configure_device(struct se_device *dev) | |||
1841 | info = &udev->uio_info; | 1841 | info = &udev->uio_info; |
1842 | 1842 | ||
1843 | mutex_lock(&udev->cmdr_lock); | 1843 | mutex_lock(&udev->cmdr_lock); |
1844 | udev->data_bitmap = kcalloc(BITS_TO_LONGS(udev->max_blocks), | 1844 | udev->data_bitmap = bitmap_zalloc(udev->max_blocks, GFP_KERNEL); |
1845 | sizeof(unsigned long), | ||
1846 | GFP_KERNEL); | ||
1847 | mutex_unlock(&udev->cmdr_lock); | 1845 | mutex_unlock(&udev->cmdr_lock); |
1848 | if (!udev->data_bitmap) { | 1846 | if (!udev->data_bitmap) { |
1849 | ret = -ENOMEM; | 1847 | ret = -ENOMEM; |
@@ -1930,7 +1928,7 @@ err_register: | |||
1930 | vfree(udev->mb_addr); | 1928 | vfree(udev->mb_addr); |
1931 | udev->mb_addr = NULL; | 1929 | udev->mb_addr = NULL; |
1932 | err_vzalloc: | 1930 | err_vzalloc: |
1933 | kfree(udev->data_bitmap); | 1931 | bitmap_free(udev->data_bitmap); |
1934 | udev->data_bitmap = NULL; | 1932 | udev->data_bitmap = NULL; |
1935 | err_bitmap_alloc: | 1933 | err_bitmap_alloc: |
1936 | kfree(info->name); | 1934 | kfree(info->name); |