Messages in this thread | | | From | "Guzman Lugo, Fernando" <> | Date | Thu, 1 Jul 2010 12:54:30 -0500 | Subject | RE: [PATCHv3 5/9] dspbridge: add mmufault support |
| |
Hi Hari,
> -----Original Message----- > From: Kanigeri, Hari > Sent: Thursday, July 01, 2010 12:17 PM > To: Guzman Lugo, Fernando; linux-omap@vger.kernel.org; linux- > kernel@vger.kernel.org > Cc: ohad@wizery.com; hiroshi.doyo@nokia.com; ameya.palande@nokia.com; > felipe.contreras@nokia.com; Guzman Lugo, Fernando > Subject: RE: [PATCHv3 5/9] dspbridge: add mmufault support > > Hi Fernando, > > > +int mmu_fault_isr(struct iommu *mmu) > > > > -/* > > - * ======== mmu_check_if_fault ======= > > - * Check to see if MMU Fault is valid TLB miss from DSP > > - * Note: This function is called from an ISR > > - */ > > -static bool mmu_check_if_fault(struct bridge_dev_context *dev_context) > > { > > + struct deh_mgr *dm; > > + u32 da; > > + > > + dev_get_deh_mgr(dev_get_first(), &dm); > > + > > + if (!dm) > > + return -EPERM; > > + > > + da = iommu_read_reg(mmu, MMU_FAULT_AD); > > + iommu_write_reg(mmu, 0, MMU_IRQENABLE); > > -- Isn't the MMU already enabled at this point when the function callback > is called by iommu ?
This line is actually disabling the interrupts. I am writing "0x0" in the MMU_IRQENABLE.
> > > + dm->err_info.dw_val1 = da; > > + tasklet_schedule(&dm->dpc_tasklet); > > -- The iommu fault isr disables the IOMMU at the end of the fault handler, > so by the time your tasklet is scheduled you might have the MMU in a > disabled state. Looks to me either this requires change in iommu to remove > the disable part or enable the MMU in the tasklet instead of doing it > early in mmu_fault_isr.
I am returning 0 in the callback function, that means the callback function has managed the fault and the mmu_fault_isr does not do anything else
if (obj->isr) err = obj->isr(obj);
if (!err) return IRQ_HANDLED;
it is working for me without not modifications in the iommu_fault_handler function.
Thanks for the comments, Fernando.
> > Thank you, > Best regards, > Hari
| |