On Thu, Feb 04, 2016 at 10:08:50PM -0700, Jason Gunthorpe wrote:
> On Thu, Feb 04, 2016 at 08:05:00PM -0800, Jarkko Sakkinen wrote:
> 
> > 4.4 does not use devm_ioremap_resource(). That is why this is
> > confusing. If that was the kernel from my master branch, then this
> > would make sense.
> 
> It makes sense, the MSFT resource is created by the kernel when it
> parses the ACPI tables.
> 
> devm_ioremap_resource creates a child resource of the above owned by
> the driver.
> 
> Eg, a PCI example:
> 
> $ cat /proc/iomem
>     d0000000-d0003fff : 0000:06:00.0
>           d0000000-d0003fff : r8169
> 
> 0000:06:00.0 is created by parsing the BAR, it always exists,
> equivalent to the MSFT resource
> 
> r8169 is created when the driver attaches to it, and serves to lock
> the memory range from other drivers.
> 
> tpm_crb works the same.
> 
> ioremap complains if a mapping crosses any resource boundary, not
> just driver created resources.

Right, thanks for the explanation and I'm able to reproduce it on my own
work laptop now:

[    0.708272] resource sanity check: requesting [mem
0xfed10000-0xfed15fff], which spans more than pnp 00:01 [mem
0xfed10000-0xfed13fff]
[    0.708302]  [<ffffffff8108548a>] ? iomem_map_sanity_check+0xba/0xd0

Luckily we have this fixed (in two commits) in 4.5.

> Jason

/Jarkko

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
tpmdd-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tpmdd-devel

Reply via email to