PERFORCE change 96738 for review

tkuik tkuik at FreeBSD.org
Sat May 6 12:46:38 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=96738

Change 96738 by tkuik at tkuik_freebsd on 2006/05/06 12:46:31

	Added check for rings before display in sysctl output.

Affected files ...

.. //depot/projects/xen3/src/sys/dev/xen/netback/netback.c#2 edit

Differences ...

==== //depot/projects/xen3/src/sys/dev/xen/netback/netback.c#2 (text+ko) ====

@@ -904,7 +904,7 @@
 
 #if XEN_NETBACK_FIXUP_CSUM
 		/* Check if we need to compute a checksum.  This happens */
-		/* when briding from one domain to another. */
+		/* when bridging from one domain to another. */
 		if ((m->m_pkthdr.csum_flags & CSUM_DELAY_DATA))
 			fixup_checksum(m);
 #endif
@@ -1414,31 +1414,29 @@
 };
 
 static char *
-vif_sysctl_txring_info(netif_tx_back_ring_t *tx)
+vif_sysctl_ring_info(netif_t *netif, int cmd)
 {
 	char *buf = malloc(256, M_DEVBUF, M_WAITOK);
 	if (buf) {
-		sprintf(buf, "nr_ents=%x req_cons=%x"
-			" req_prod=%x req_event=%x"
-			" rsp_prod=%x rsp_event=%x",
-			tx->nr_ents, tx->req_cons,
-			tx->sring->req_prod, tx->sring->req_event,
-			tx->sring->rsp_prod, tx->sring->rsp_event);
-	}
-	return buf;
-}
-
-static char *
-vif_sysctl_rxring_info(netif_rx_back_ring_t *rx)
-{
-	char *buf = malloc(256, M_DEVBUF, M_WAITOK);
-	if (buf) {
-		sprintf(buf, "nr_ents=%x req_cons=%x"
-			" req_prod=%x req_event=%x"
-			" rsp_prod=%x rsp_event=%x",
-			rx->nr_ents, rx->req_cons,
-			rx->sring->req_prod, rx->sring->req_event,
-			rx->sring->rsp_prod, rx->sring->rsp_event);
+		if (!netif->rings_connected)
+			sprintf(buf, "rings not connected\n");
+		else if (cmd == VIF_SYSCTL_TXRING) {
+			netif_tx_back_ring_t *tx = &netif->tx;
+			sprintf(buf, "nr_ents=%x req_cons=%x"
+					" req_prod=%x req_event=%x"
+					" rsp_prod=%x rsp_event=%x",
+					tx->nr_ents, tx->req_cons,
+					tx->sring->req_prod, tx->sring->req_event,
+					tx->sring->rsp_prod, tx->sring->rsp_event);
+		} else {
+			netif_rx_back_ring_t *rx = &netif->rx;
+			sprintf(buf, "nr_ents=%x req_cons=%x"
+					" req_prod=%x req_event=%x"
+					" rsp_prod=%x rsp_event=%x",
+					rx->nr_ents, rx->req_cons,
+					rx->sring->req_prod, rx->sring->req_event,
+					rx->sring->rsp_prod, rx->sring->rsp_event);
+		}
 	}
 	return buf;
 }
@@ -1458,10 +1456,8 @@
 	case VIF_SYSCTL_HANDLE:
 		return sysctl_handle_int(oidp, NULL, netif->handle, req);
 	case VIF_SYSCTL_TXRING:
-		value = buf = vif_sysctl_txring_info(&netif->tx);
-		break;
 	case VIF_SYSCTL_RXRING:
-		value = buf = vif_sysctl_rxring_info(&netif->rx);
+		value = buf = vif_sysctl_ring_info(netif, arg2);
 		break;
 	default:
 		return (EINVAL);


More information about the p4-projects mailing list