Date: Thu, 30 Jul 2015 03:06:54 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 194979] uart_intr leads to "bad stray interrupt" under pressure Message-ID: <bug-194979-8-GAGj3LB7Ry@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-194979-8@https.bugs.freebsd.org/bugzilla/> References: <bug-194979-8@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194979 --- Comment #3 from commit-hook@freebsd.org --- A commit references this bug: Author: marius Date: Thu Jul 30 03:06:13 UTC 2015 New revision: 286061 URL: https://svnweb.freebsd.org/changeset/base/286061 Log: MFC: r285843 (r286059 in stable/10) - Since r253161, uart_intr() abuses FILTER_SCHEDULE_THREAD for signaling uart_bus_attach() during its test that 20 iterations weren't sufficient for clearing all pending interrupts, assuming this means that hardware is broken and doesn't deassert interrupts. However, under pressure, 20 iterations also can be insufficient for clearing all pending interrupts, leading to a panic as intr_event_handle() tries to schedule an interrupt handler not registered. Solve this by introducing a flag that is set in test mode and otherwise restores pre-r253161 behavior of uart_intr(). The approach of additionally registering uart_intr() as handler as suggested in PR 194979 is not taken as that in turn would abuse special pccard and pccbb handling code of intr_event_handle(). [1] - Const'ify uart_driver_name. - Fix some minor style bugs. PR: 194979 [1] Reviewed by: marcel (earlier version) Approved by: re (gjb) Changes: _U releng/10.2/ releng/10.2/sys/dev/uart/uart_bus.h releng/10.2/sys/dev/uart/uart_core.c -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-194979-8-GAGj3LB7Ry>