]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/commit
MFC: r285843 (r286059 in stable/10)
authormarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 30 Jul 2015 03:06:11 +0000 (03:06 +0000)
committermarius <marius@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 30 Jul 2015 03:06:11 +0000 (03:06 +0000)
commit6cd981271b453f3c75066a3be55fa4eaf39f0e7a
tree3da597d53007a9534e8d47f8cbf7a406f5d40814
parenta9c5032ad36618ad8a1a25d27fb548b29e655493
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)

git-svn-id: https://svn.freebsd.org/base/releng/10.2@286061 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/uart/uart_bus.h
sys/dev/uart/uart_core.c