linux/arch/m68k/mac
Finn Thain aeb445bf21 m68k: mac: Don't send IOP message until channel is idle
In the following sequence of calls, iop_do_send() gets called when the
"send" channel is not in the IOP_MSG_IDLE state:

	iop_ism_irq()
		iop_handle_send()
			(msg->handler)()
				iop_send_message()
			iop_do_send()

Avoid this by testing the channel state before calling iop_do_send().

When sending, and iop_send_queue is empty, call iop_do_send() because
the channel is idle. If iop_send_queue is not empty, iop_do_send() will
get called later by iop_handle_send().

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Tested-by: Stan Johnson <userm57@yahoo.com>
Cc: Joshua Thompson <funaho@jurai.org>
Link: https://lore.kernel.org/r/6d667c39e53865661fa5a48f16829d18ed8abe54.1590880333.git.fthain@telegraphics.com.au
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2020-07-13 11:39:13 +02:00
..
baboon.c m68k/mac: Fix apparent race condition in Baboon interrupt dispatch 2018-03-19 10:22:59 +01:00
config.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
iop.c m68k: mac: Don't send IOP message until channel is idle 2020-07-13 11:39:13 +02:00
mac_penguin.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
macboing.c m68k/macboing: Fix missed timer callback assignment 2017-11-24 16:19:40 +01:00
macints.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
misc.c Char/Misc driver patches for 5.1-rc1 2019-03-06 14:18:59 -08:00
oss.c m68k/mac: Fix race conditions in OSS interrupt dispatch 2018-01-16 16:52:17 +01:00
psc.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
via.c m68k: mac: Don't call via_flush_cache() on Mac IIfx 2020-05-25 10:55:56 +02:00