[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS: cvs.openbsd.org: src



CVSROOT:	/cvs
Module name:	src
Changes by:	oga_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org	2008/12/10 13:26:56

Modified files:
	sys/arch/amd64/isa: isa_machdep.c 
	sys/arch/i386/isa: isa_machdep.c 

Log message:
both x86 platforms isa bus_dma implementations handle bus_dmamap_sync
incorrectly.

The spec (manpage) states that using two PRE or two POST ops together is
entirely valid, but mixing pre and post is invalid. The way this was
handled before with a switch statement meant that only individual
commands actually would be recognised, so move to just checking the
commands indidually using "if (op & $command)". Additionally, add a
DIAGNOSTIC check and panic for the mixing of pre and post operations
(this is done on several other architectures already).

tested by several people; thanks!

ok dlg@, kettenis@, "the diff made sense" deraadt.



Visit your host, monkey.org