Date: Fri, 29 May 2015 09:18:00 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r283692 - head/sys/x86/iommu Message-ID: <201505290918.t4T9I0uM025094@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kib Date: Fri May 29 09:17:59 2015 New Revision: 283692 URL: https://svnweb.freebsd.org/changeset/base/283692 Log: Explicitely enable queued invalidation completion interrupt when the queue is started, not relying on the interrupt remaping method to happen. Also disable interrupts when shooting down the queue. Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/x86/iommu/intel_qi.c Modified: head/sys/x86/iommu/intel_qi.c ============================================================================== --- head/sys/x86/iommu/intel_qi.c Fri May 29 08:31:15 2015 (r283691) +++ head/sys/x86/iommu/intel_qi.c Fri May 29 09:17:59 2015 (r283692) @@ -411,6 +411,7 @@ dmar_init_qi(struct dmar_unit *unit) ics = DMAR_ICS_IWC; dmar_write4(unit, DMAR_ICS_REG, ics); } + dmar_enable_qi_intr(unit); DMAR_UNLOCK(unit); return (0); @@ -434,6 +435,7 @@ dmar_fini_qi(struct dmar_unit *unit) dmar_qi_advance_tail(unit); dmar_qi_wait_for_seq(unit, &gseq, false); /* only after the quisce, disable queue */ + dmar_disable_qi_intr(unit); dmar_disable_qi(unit); KASSERT(unit->inv_seq_waiters == 0, ("dmar%d: waiters on disabled queue", unit->unit));
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505290918.t4T9I0uM025094>