From f5b9eb50fda88b3cf816d4d9c71f18b12f1e0a61 Mon Sep 17 00:00:00 2001 From: cem Date: Sat, 24 Oct 2015 23:46:08 +0000 Subject: [PATCH] ioat: Extract halted error-debugging to a function Sponsored by: EMC / Isilon Storage Division --- sys/dev/ioat/ioat.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/sys/dev/ioat/ioat.c b/sys/dev/ioat/ioat.c index 4daefb14022..9ffec6a9b8b 100644 --- a/sys/dev/ioat/ioat.c +++ b/sys/dev/ioat/ioat.c @@ -930,9 +930,24 @@ resize_ring(struct ioat_softc *ioat, int order) } static void -ioat_timer_callback(void *arg) +ioat_halted_debug(struct ioat_softc *ioat, uint32_t chanerr) { struct ioat_descriptor *desc; + + ioat_log_message(0, "Channel halted (%x)\n", chanerr); + if (chanerr == 0) + return; + + desc = ioat_get_ring_entry(ioat, ioat->tail + 0); + dump_descriptor(desc->u.raw); + + desc = ioat_get_ring_entry(ioat, ioat->tail + 1); + dump_descriptor(desc->u.raw); +} + +static void +ioat_timer_callback(void *arg) +{ struct ioat_softc *ioat; uint64_t status; uint32_t chanerr; @@ -949,13 +964,7 @@ ioat_timer_callback(void *arg) */ if (is_ioat_halted(status)) { chanerr = ioat_read_4(ioat, IOAT_CHANERR_OFFSET); - ioat_log_message(0, "Channel halted (%x)\n", chanerr); - - desc = ioat_get_ring_entry(ioat, ioat->tail + 0); - dump_descriptor(desc->u.raw); - - desc = ioat_get_ring_entry(ioat, ioat->tail + 1); - dump_descriptor(desc->u.raw); + ioat_halted_debug(ioat, chanerr); } ioat_process_events(ioat); } else { -- 2.39.5