|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-devel
[Xen-devel] Re: [PATCH] infiniband/mthca : Fix userland mapping of	mthca 
| To: | Vivien Bernet-Rollande <vbr@xxxxxxxxxxx> |  
| Subject: | [Xen-devel] Re: [PATCH] infiniband/mthca : Fix userland mapping of	mthca infiniband cards in Xen dom0 |  
| From: | Roland Dreier <rdreier@xxxxxxxxx> |  
| Date: | Wed, 05 Jan 2011 11:35:59 -0800 |  
| Authentication-results: | sj-iport-4.cisco.com;	dkim=neutral (message not signed) header.i=none |  
| Cc: | jackm@xxxxxxxxxxxxxx, Jeremy Fitzhardinge <jeremy@xxxxxxxx>,	xen-devel@xxxxxxxxxxxxxxxxxxx, linux-rdma@xxxxxxxxxxxxxxx,	rdreir@xxxxxxxxx, sean.hefty@xxxxxxxxx |  
| Delivery-date: | Wed, 05 Jan 2011 11:37:58 -0800 |  
| Envelope-to: | www-data@xxxxxxxxxxxxxxxxxxx |  
| In-reply-to: | <1293034260.30522.426.camel@trax> (Vivien Bernet-Rollande's	message of "Wed, 22 Dec 2010 17:11:00 +0100") |  
| List-help: | <mailto:xen-devel-request@lists.xensource.com?subject=help> |  
| List-id: | Xen developer discussion <xen-devel.lists.xensource.com> |  
| List-post: | <mailto:xen-devel@lists.xensource.com> |  
| List-subscribe: | <http://lists.xensource.com/mailman/listinfo/xen-devel>,	<mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |  
| List-unsubscribe: | <http://lists.xensource.com/mailman/listinfo/xen-devel>,	<mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |  
| References: | <1293034260.30522.426.camel@trax> |  
| Sender: | xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |  
| User-agent: | Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |  
|  > --- kernel-2.6.32.fc12.orig/drivers/infiniband/hw/mthca/mthca_provider.c     
 > 2010-12-16 16:39:06.901130993 +0100
 > +++ kernel-2.6.32.fc12.new/drivers/infiniband/hw/mthca/mthca_provider.c      
 > 2010-12-16 17:02:07.944127489 +0100
 > @@ -391,6 +391,8 @@ static int mthca_mmap_uar(struct ib_ucon
 >      if (vma->vm_end - vma->vm_start != PAGE_SIZE)
 >              return -EINVAL;
 >  
 > +    vma->vm_flags |= VM_IO;
 > +    vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
 >      vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
 >  
 >      if (io_remap_pfn_range(vma, vma->vm_start,
This is kind of unappealing -- is there no way to make
io_remap_pfn_range do the right thing under Xen?  It seems unfortunate
to make drivers both set VM_IO and call io_remap_pfn_range.  Or maybe we
should get rid of io_remap_pfn_range() and just have drivers set VM_IO
and call remap_pfn_range() all the time?
There are quite a few drivers under drivers/infiniband/hw that call
io_remap_pfn_range() -- presumably they all need the analogous fix?
Finally as a stylistic thing I would probably prefer to see the
vm_page_prot manipulation written as
        vma->vm_page_prot = pgprot_noncached(vm_get_page_prot(vma->vm_flags));
and if this fix is really the right thing to do, this should probably be
wrapped up in a helper function; presumably every instance of
        vma->vm_page_prot = pgprot_FOO(vma->vm_page_prot)
under drivers/ would need the same fix for Xen.
 - R.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 | 
 |  | 
  
    |  |  |