From: Øyvind Harboe Date: Tue, 13 Dec 2011 16:57:20 +0000 (+0100) Subject: zy1000: fix crash in JTAG over TCP/IP X-Git-Tag: v0.6.0-rc1~373 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=230f0e9dc64efd379866e632969966ce64b07f1a;p=openocd zy1000: fix crash in JTAG over TCP/IP disable asynchronous callbacks and reads as minidriver requires reads and callbacks to be synchronous. Could possibly be fixed by some design work. Change-Id: I7ca79a551085b2e8ba6928e1762d1baed6e95d4b Signed-off-by: Øyvind Harboe Reviewed-on: http://openocd.zylin.com/260 Tested-by: jenkins Reviewed-by: Øyvind Harboe Tested-by: Øyvind Harboe --- diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c index 7a3a0f2e..25783fa7 100644 --- a/src/jtag/zy1000/zy1000.c +++ b/src/jtag/zy1000/zy1000.c @@ -1296,6 +1296,15 @@ void zy1000_jtag_add_callback4(jtag_callback_t callback, jtag_callback_data_t da callbackqueue[callbackqueue_pos].data2 = data2; callbackqueue[callbackqueue_pos].data3 = data3; callbackqueue_pos++; + + /* KLUDGE! + * make callbacks synchronous for now as minidriver requires callback + * to be synchronous. + * + * We can get away with making read and writes asynchronous so we + * don't completely kill performance. + */ + zy1000_flush_callbackqueue(); } static int zy1000_jtag_convert_to_callback4(jtag_callback_data_t data0, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3) @@ -1342,6 +1351,9 @@ static void writeShiftValue(uint8_t *data, int bits) readqueue[readqueue_pos].dest = data; readqueue[readqueue_pos].bits = bits; readqueue_pos++; + + /* KLUDGE!!! minidriver requires readqueue to be synchronous */ + zy1000_flush_readqueue(); } #else