From: Toshi Kani <toshi.kani@hp.com>
To: Ashutosh Dixit <ashutosh.dixit@intel.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Dutt, Sudeep" <sudeep.dutt@intel.com>,
"Rao, Nikhil" <nikhil.rao@intel.com>,
"Williams, Dan J" <dan.j.williams@intel.com>
Subject: Re: Regression in v4.2-rc1: vmalloc_to_page with ioremap
Date: Tue, 21 Jul 2015 14:43:38 -0600 [thread overview]
Message-ID: <1437511418.3214.233.camel@hp.com> (raw)
In-Reply-To: <1437511150.3214.230.camel@hp.com>
On Tue, 2015-07-21 at 14:39 -0600, Toshi Kani wrote:
> On Tue, 2015-07-21 at 08:17 -0700, Ashutosh Dixit wrote:
> > On Mon, Jul 20 2015 at 12:21:18 PM, Toshi Kani <toshi.kani@hp.com>
:
> > Yes, you are correct, the 'struct page' pointer returned by
> > vmalloc_to_page does not point to a "real" struct page entry. Neither
> > have we allocated a struct page for the range. However, because we pass
> > the returned pointer to streaming DMA mapping API's
> > (dma_map_ops->dma_map_sg or dma_map_ops->dma_map_page) and all those
> > functions do is call page_to_phys, they only care about the physical
> > address, it used to work.
> >
> > Would it be possible to have a different API which can do this or can
> > vmalloc_to_page be updated to handle huge ioremaps without crashing?
> > Or
> > would you have a suggestion for doing this differently?
>
> You can do the following instead. If you have the physical address
> already
> (i.e. the address you passed to ioremap), you can skip
> slow_virt_to_phys().
> pfn_to_page() is a hack for the time being so that you can use the same
> DMA mapping APIs.
>
> phys = slow_virt_to_phys(vaddr);
> page = pfn_to_page(phys >> PAGE_SHIFT);
Forgot to mention. slow_virt_to_phys() is only defined in x86, but I think
your driver is x86-only. Let me know if this is a problem.
Thanks,
-Toshi
next prev parent reply other threads:[~2015-07-21 20:45 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-18 18:04 Regression in v4.2-rc1: vmalloc_to_page with ioremap Dixit, Ashutosh
2015-07-20 15:54 ` Toshi Kani
2015-07-20 15:59 ` Toshi Kani
2015-07-20 18:33 ` Ashutosh Dixit
2015-07-20 19:21 ` Toshi Kani
2015-07-21 15:17 ` Ashutosh Dixit
2015-07-21 20:39 ` Toshi Kani
2015-07-21 20:43 ` Toshi Kani [this message]
2015-07-22 7:13 ` Ashutosh Dixit
2015-07-22 14:54 ` Toshi Kani
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=1437511418.3214.233.camel@hp.com \
--to=toshi.kani@hp.com \
--cc=ashutosh.dixit@intel.com \
--cc=dan.j.williams@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nikhil.rao@intel.com \
--cc=sudeep.dutt@intel.com \
/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.