summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorMichael Bergknoff <Michael.Bergknoff@Sun.COM>2008-10-24 10:05:33 -0700
committerMichael Bergknoff <Michael.Bergknoff@Sun.COM>2008-10-24 10:05:33 -0700
commitaf71cc4ed6be914d26e9de3a90a2bb56e4bbe78d (patch)
tree99d6ade257b4420974452e3d31ac40722ae5d140 /usr/src
parent159d09a20817016f09b3ea28d1bdada4a336bb91 (diff)
downloadillumos-joyent-af71cc4ed6be914d26e9de3a90a2bb56e4bbe78d.tar.gz
6731560 Aborting prtdiag with control-c results in future prtdiag reporting "unknown" for sensor outputs
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/picl/plugins/sun4v/snmp/snmpplugin.c17
1 files changed, 10 insertions, 7 deletions
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