diff options
author | narayan <none@none> | 2007-08-18 06:36:15 -0700 |
---|---|---|
committer | narayan <none@none> | 2007-08-18 06:36:15 -0700 |
commit | 332608ac9554f08178b41e86935f5eef65453071 (patch) | |
tree | ae1cd77c9d4b25c9559535f6c86681cc42b69fd6 | |
parent | f2ae7103d1ba90bbf5530ba2117bd044c29f9661 (diff) | |
download | illumos-gate-332608ac9554f08178b41e86935f5eef65453071.tar.gz |
6591825 ldc_read does not set qhead after processing control pkts
-rw-r--r-- | usr/src/uts/sun4v/io/ldc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr/src/uts/sun4v/io/ldc.c b/usr/src/uts/sun4v/io/ldc.c index ca29b89108..1ff888511a 100644 --- a/usr/src/uts/sun4v/io/ldc.c +++ b/usr/src/uts/sun4v/io/ldc.c @@ -3689,8 +3689,9 @@ i_ldc_read_packet(ldc_chan_t *ldcp, caddr_t target_bufp, size_t *sizep) break; } - /* advance head if it is a DATA ACK */ - if ((msg->type & LDC_DATA) && (msg->stype & LDC_ACK)) { + /* advance head if it is a CTRL packet or a DATA ACK packet */ + if ((msg->type & LDC_CTRL) || + ((msg->type & LDC_DATA) && (msg->stype & LDC_ACK))) { /* set the queue head */ if (rv = i_ldc_set_rx_head(ldcp, curr_head)) { |