Module Name:    src
Committed By:   palle
Date:           Fri Jun 25 19:10:50 UTC 2021

Modified Files:
        src/sys/arch/sparc64/dev: vdsk.c

Log Message:
sun4v: vdsk - restart the ldc state machine when the ldc endpoint resets the 
link or a DATA/NACK/DRING_DATA message is received. These changes make the 
driver more robust. In a ldom with Solaris 11.4 SRU30 as primary domain (T5 
host system) frequent resets and NACK messages are observed.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/sparc64/dev/vdsk.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/sparc64/dev/vdsk.c
diff -u src/sys/arch/sparc64/dev/vdsk.c:1.6 src/sys/arch/sparc64/dev/vdsk.c:1.7
--- src/sys/arch/sparc64/dev/vdsk.c:1.6	Sat Apr 24 23:36:49 2021
+++ src/sys/arch/sparc64/dev/vdsk.c	Fri Jun 25 19:10:50 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: vdsk.c,v 1.6 2021/04/24 23:36:49 thorpej Exp $	*/
+/*	$NetBSD: vdsk.c,v 1.7 2021/06/25 19:10:50 palle Exp $	*/
 /*	$OpenBSD: vdsk.c,v 1.46 2015/01/25 21:42:13 kettenis Exp $	*/
 /*
  * Copyright (c) 2009, 2011 Mark Kettenis
@@ -492,6 +492,7 @@ vdsk_rx_intr(void *arg)
 			break;
 		case LDC_CHANNEL_RESET:
 			DPRINTF(("Rx link reset\n"));
+			ldc_send_vers(lc);
 			break;
 		}
 		lc->lc_rx_state = rx_state;
@@ -773,6 +774,8 @@ vdsk_rx_vio_dring_data(struct vdsk_softc
 
 		case VIO_SUBTYPE_NACK:
 			DPRINTF(("DATA/NACK/DRING_DATA\n"));
+			struct ldc_conn *lc = &sc->sc_lc;
+			ldc_send_vers(lc);
 			break;
 
 		default:

Reply via email to