Aug. 19, 2016
1:28 a.m.
On Fri, Aug 19, 2016 at 1:32 AM, <Valdis.Kletnieks@vt.edu> wrote:
Step 1: Figure out whether your driver is returning a physical or logical address for the CMA, and which of the two /dev/mem requires.
Step 2: Take a look at the address returned and make sure it at least looks valid (is someplace the E820 map says is RAM, isn't a PCI BAR or something like that, etc etc)
Those are the two biggest sources of error I can think of...
First of all, just want to make my problem clear, the "bad address" is returned when I call vmsplice(), not mmap(). 1. I have verified the address is a physical one 2. It indeed is within the RAM range What bugs me is that write() works just fine but vmsplice() complains about the address.