Re: iommu/omap: Invalid offset used for flushing page table entries

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ralf,

Removing Josue from the thread so that mails don't bounce.

On 07/31/2018 05:01 AM, Ralf Göbel wrote:
> Hi,
> 
> I think the offsets used for flushing the page table entries in
> iopte_alloc_page(), iopte_alloc_large() and iopgtable_clear_entry_core() are
> incorrect. The offsets are already included in pt_dma and therefore they
> should be zero.
> 
> The problem occurred while adding support for System MMU2 (PCIe) on a
> AM5728.
> An exception occurs during a memory write from a device into memory:
> 
> [   63.607203] WARNING: CPU: 0 PID: 0 at drivers/bus/omap_l3_noc.c:147
> l3_interrupt_handler+0x25c/0x36c
> [   63.616373] 44000000.ocp:L3 Custom Error: MASTER PCIE1 TARGET MMU2
> (Idle): Data Access in User mode during Functional access
> [   63.627633] Modules linked in: agexpcidrv(O)
> [   63.631934] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O
> 4.9.59-rt23-visioncam-xm+ #38
> [   63.640839] Hardware name: Generic DRA74X (Flattened Device Tree)
> [   63.646953] Backtrace:
> ...
> [   63.916445] iommu_report_fault(): status = 0x00000002
> [   63.916456] omap-iommu 4881e000.mmu: 4881e000.mmu: errs:0x00000002
> da:0x80002f80 pgd:0xeeba6000 *pgd:0xad989c01 pte:0xed989c08 *pte:0xb73d7002
> 
> According to TI documentation, this error (status = 0x00000002) is caused by
> an invalid descriptor in the translation tables (TRANSLATIONFAULT).
> 
> The following change in the functions mentioned above fixed the problem:
> 
>     flush_iopte_range(obj->dev, pt_dma, 0/*offset*/, ...);

There calls are flushing only the entries modified, so that's where the
offset is coming from, and the num_entries is used to compute the length.

Which line did you have to modify to get this working - did you modify a
specific line or all of them?

regards
Suman


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux