freebsd-skq/sys/dev/ioat
cem 7ea1be6e5b ioat(4): Use memory completion rather than device register
The CHANSTS register is a split 64-bit register on CBDMA units before
hardware v3.3.  If a torn read happens during ioat_process_events(),
software cannot know when to stop completing descriptors correctly.

So, just use the device-pushed main memory channel status instead.

Remove the ioat_get_active() seatbelt as well.  It does nothing if the
completion address is valid.

Sponsored by:	Dell EMC Isilon
2016-10-28 23:53:37 +00:00
..
ioat_hw.h ioat(4): Export HW capabilities to consumers 2016-07-12 21:56:49 +00:00
ioat_internal.h ioat(4): Use memory completion rather than device register 2016-10-28 23:53:37 +00:00
ioat_test.c ioat(4): ioat_get_dmaengine(): Add M_WAITOK mode 2016-04-09 13:15:34 +00:00
ioat_test.h ioatcontrol(8): Add support for interrupt coalescing 2015-12-14 22:02:01 +00:00
ioat.c ioat(4): Use memory completion rather than device register 2016-10-28 23:53:37 +00:00
ioat.h ioat(4): Export HW capabilities to consumers 2016-07-12 21:56:49 +00:00