summaryrefslogtreecommitdiff
path: root/usr/src/uts/sun4v/io/qcn.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/sun4v/io/qcn.c')
-rw-r--r--usr/src/uts/sun4v/io/qcn.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/usr/src/uts/sun4v/io/qcn.c b/usr/src/uts/sun4v/io/qcn.c
index e68e1bde53..63b3c0b5fb 100644
--- a/usr/src/uts/sun4v/io/qcn.c
+++ b/usr/src/uts/sun4v/io/qcn.c
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -19,8 +18,9 @@
*
* CDDL HEADER END
*/
+
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -87,7 +87,8 @@ static cyc_handler_t qcn_poll_cychandler = {
};
static cyclic_id_t qcn_poll_cycid = CYCLIC_NONE;
static uint64_t qcn_poll_interval = 5; /* milli sec */
-static uint64_t sb_interval = 0;
+static uint64_t sb_interval = 0;
+uint_t qcn_force_polling = 0;
#endif
#define QCN_MI_IDNUM 0xABCE
@@ -338,7 +339,8 @@ qcn_attach(dev_info_t *dip, ddi_attach_cmd_t cmd)
* the console to work on older firmware releases.
*/
binding_name = ddi_binding_name(qcn_state->qcn_dip);
- if (strcmp(binding_name, "qcn") == 0)
+ if ((strcmp(binding_name, "qcn") == 0) ||
+ (qcn_force_polling))
qcn_state->qcn_polling = 1;
if (qcn_state->qcn_polling) {
@@ -802,7 +804,7 @@ qcn_transmit(queue_t *q, mblk_t *mp)
buf = (caddr_t)bp->b_rptr;
for (i = 0; i < len; i++) {
- if (hv_cnputchar(buf[i]) == -1)
+ if (hv_cnputchar(buf[i]) == H_EWOULDBLOCK)
break;
}
if (i != len) {