All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: dri-devel@lists.freedesktop.org
Subject: Re: [bug report] drm/vmwgfx: Implement an infrastructure for read-coherent resources
Date: Thu, 29 Jul 2021 17:51:31 +0300	[thread overview]
Message-ID: <20210729145130.GB25548@kadam> (raw)
In-Reply-To: <20210729143945.GA22949@kili>

Huh... Vmware is blocking email to Thomas?

"Recipient is not authorized to accept external mail"

This seems like potentially a serious bug and I don't know how to report
it.

regards,
dan carpenter

On Thu, Jul 29, 2021 at 05:39:45PM +0300, Dan Carpenter wrote:
> Hello Thomas Hellstrom,
> 
> The patch fb80edb0d766: "drm/vmwgfx: Implement an infrastructure for
> read-coherent resources" from Mar 28, 2019, leads to the following
> static checker warning:
> 
> 	drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c:461 vmw_bo_vm_fault()
> 	warn: missing conversion: 'page_offset + ((1) << 12)' 'page + byte'
> 
> 	drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c:534 vmw_bo_vm_huge_fault()
> 	warn: missing conversion: 'page_offset + ((1) << 12)' 'page + byte'
> 
> drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c
>     435 vm_fault_t vmw_bo_vm_fault(struct vm_fault *vmf)
>     436 {
>     437 	struct vm_area_struct *vma = vmf->vma;
>     438 	struct ttm_buffer_object *bo = (struct ttm_buffer_object *)
>     439 	    vma->vm_private_data;
>     440 	struct vmw_buffer_object *vbo =
>     441 		container_of(bo, struct vmw_buffer_object, base);
>     442 	pgoff_t num_prefault;
>     443 	pgprot_t prot;
>     444 	vm_fault_t ret;
>     445 
>     446 	ret = ttm_bo_vm_reserve(bo, vmf);
>     447 	if (ret)
>     448 		return ret;
>     449 
>     450 	num_prefault = (vma->vm_flags & VM_RAND_READ) ? 1 :
>     451 		TTM_BO_VM_NUM_PREFAULT;
>     452 
>     453 	if (vbo->dirty) {
>     454 		pgoff_t allowed_prefault;
>     455 		unsigned long page_offset;
>     456 
>     457 		page_offset = vmf->pgoff -
>     458 			drm_vma_node_start(&bo->base.vma_node);
>     459 		if (page_offset >= bo->resource->num_pages ||
>                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> page_offset is in terms of pages
> 
>     460 		    vmw_resources_clean(vbo, page_offset,
> --> 461 					page_offset + PAGE_SIZE,
>                                                 ^^^^^^^^^^^^^^^^^^^^^^^
> It doesn't make sense to add PAGE_SIZE (which is bytes) to pages.  The
> code in vmw_bo_vm_huge_fault() has a similar bug.
> 
>     462 					&allowed_prefault)) {
>     463 			ret = VM_FAULT_SIGBUS;
>     464 			goto out_unlock;
>     465 		}
>     466 
>     467 		num_prefault = min(num_prefault, allowed_prefault);
>     468 	}
>     469 
>     470 	/*
>     471 	 * If we don't track dirty using the MKWRITE method, make sure
>     472 	 * sure the page protection is write-enabled so we don't get
>     473 	 * a lot of unnecessary write faults.
>     474 	 */
>     475 	if (vbo->dirty && vbo->dirty->method == VMW_BO_DIRTY_MKWRITE)
>     476 		prot = vm_get_page_prot(vma->vm_flags & ~VM_SHARED);
>     477 	else
>     478 		prot = vm_get_page_prot(vma->vm_flags);
>     479 
>     480 	ret = ttm_bo_vm_fault_reserved(vmf, prot, num_prefault, 1);
>     481 	if (ret == VM_FAULT_RETRY && !(vmf->flags & FAULT_FLAG_RETRY_NOWAIT))
>     482 		return ret;
>     483 
>     484 out_unlock:
>     485 	dma_resv_unlock(bo->base.resv);
>     486 
>     487 	return ret;
>     488 }
> 
> regards,
> dan carpenter

      reply	other threads:[~2021-07-29 14:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-29 14:39 [bug report] drm/vmwgfx: Implement an infrastructure for read-coherent resources Dan Carpenter
2021-07-29 14:51 ` Dan Carpenter [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210729145130.GB25548@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.