From af71cc4ed6be914d26e9de3a90a2bb56e4bbe78d Mon Sep 17 00:00:00 2001 From: Michael Bergknoff Date: Fri, 24 Oct 2008 10:05:33 -0700 Subject: 6731560 Aborting prtdiag with control-c results in future prtdiag reporting "unknown" for sensor outputs --- usr/src/cmd/picl/plugins/sun4v/snmp/snmpplugin.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'usr/src') diff --git a/usr/src/cmd/picl/plugins/sun4v/snmp/snmpplugin.c b/usr/src/cmd/picl/plugins/sun4v/snmp/snmpplugin.c index 5b0fed34ec..d1387aebf1 100644 --- a/usr/src/cmd/picl/plugins/sun4v/snmp/snmpplugin.c +++ b/usr/src/cmd/picl/plugins/sun4v/snmp/snmpplugin.c @@ -1102,13 +1102,16 @@ check_for_stale_data(boolean_t nocache) /* * Check if mib data has changed (hotplug? link-reset?) */ - ret = snmp_get_int(hdl, OID_entLastChangeTime, 0, &cur_change_time, - &snmp_syserr); - (void) time(&change_time_check); - if ((ret == 0) && (cur_change_time == change_time)) { - (void) rw_unlock(&stale_tree_rwlp); - return; - } + do { + snmp_syserr = 0; + ret = snmp_get_int(hdl, OID_entLastChangeTime, 0, + &cur_change_time, &snmp_syserr); + (void) time(&change_time_check); + if ((ret == 0) && (cur_change_time == change_time)) { + (void) rw_unlock(&stale_tree_rwlp); + return; + } + } while (ret != 0 && snmp_syserr == EINTR); /* * If we can't read entLastChangeTime we assume we need to rebuild -- cgit v1.2.3