pgnr = bo->pgnr;
  
-       bo->page_obj = kmalloc(sizeof(struct hmm_page_object) * pgnr,
+       bo->page_obj = kmalloc_array(pgnr, sizeof(struct hmm_page_object),
                                GFP_KERNEL);
 -      if (unlikely(!bo->page_obj)) {
 -              dev_err(atomisp_dev, "out of memory for bo->page_obj\n");
 +      if (unlikely(!bo->page_obj))
                return -ENOMEM;
 -      }
  
        i = 0;
        alloc_pgnr = 0;
        struct vm_area_struct *vma;
        struct page **pages;
  
-       pages = kmalloc(sizeof(struct page *) * bo->pgnr, GFP_KERNEL);
+       pages = kmalloc_array(bo->pgnr, sizeof(struct page *), GFP_KERNEL);
 -      if (unlikely(!pages)) {
 -              dev_err(atomisp_dev, "out of memory for pages...\n");
 +      if (unlikely(!pages))
                return -ENOMEM;
 -      }
  
-       bo->page_obj = kmalloc(sizeof(struct hmm_page_object) * bo->pgnr,
+       bo->page_obj = kmalloc_array(bo->pgnr, sizeof(struct hmm_page_object),
                GFP_KERNEL);
        if (unlikely(!bo->page_obj)) {
 -              dev_err(atomisp_dev, "out of memory for bo->page_obj...\n");
                kfree(pages);
                return -ENOMEM;
        }
                bo->status &= ~(HMM_BO_VMAPED | HMM_BO_VMAPED_CACHED);
        }
  
-       pages = kmalloc(sizeof(*pages) * bo->pgnr, GFP_KERNEL);
+       pages = kmalloc_array(bo->pgnr, sizeof(*pages), GFP_KERNEL);
        if (unlikely(!pages)) {
                mutex_unlock(&bo->mutex);
 -              dev_err(atomisp_dev, "out of memory for pages...\n");
                return NULL;
        }